@applitools/eyes-testcafe
Version:
Applitools Eyes SDK for TestCafe
524 lines • 119 kB
TypeScript
export default Eyes;
export type Driver = TestController & { __applitoolsBrand?: undefined; };
export type Context = TestController & { __applitoolsBrand?: undefined; };
export type Element = globalThis.Selector & { __applitoolsBrand?: undefined; };
export type Selector = globalThis.Selector & { __applitoolsBrand?: undefined; };
export type SpecType = {
driver: Context;
context: Context;
element: Element;
selector: Selector;
secondary: {
driver: never;
context: never;
element: NodeSnapshot;
selector: never;
secondary: never;
userFunction: unknown;
};
userFunction: unknown;
};
export class Eyes {
static setViewportSize: (driver: Context, viewportSize: RectangleSize) => Promise<void>;
static getExecutionCloudUrl: (config?: undefined | (ConfigurationPlain & { maskLog?: undefined | boolean; })) => Promise<string>;
static setMobileCapabilities: <TCapabilities extends Record<string, any>>(capabilities: TCapabilities, config?: undefined | ConfigurationPlain) => TCapabilities;
constructor(runner?: undefined | EyesRunner, config?: undefined | ConfigurationPlain);
constructor(config?: undefined | ConfigurationPlain, runner?: undefined | EyesRunner);
constructor(options: { configPath: string; runner?: undefined | EyesRunner; });
get logger(): Logger;
getLogger(): Logger;
get runner(): EyesRunner;
getRunner(): EyesRunner;
get driver(): Context;
getDriver(): Context;
get configuration(): ConfigurationPlain;
set configuration(configuration: ConfigurationPlain);
getConfiguration(): Configuration;
setConfiguration(config: ConfigurationPlain): void;
get isOpen(): boolean;
getIsOpen(): boolean;
on(handler: (event: string, data?: undefined | Record<string, any>) => any): () => void;
on(event: "setSizeWillStart", handler: (data: { viewportSize: RectangleSizePlain; }) => any): () => void;
on(event: "setSizeEnded", handler: () => any): () => void;
on(event: "initStarted", handler: () => any): () => void;
on(event: "initEnded", handler: () => any): () => void;
on(event: "testStarted", handler: (data: { sessionId: string; }) => any): () => void;
on(event: "validationWillStart", handler: (data: { sessionId: string; validationInfo: ValidationInfoPlain; }) => any): () => void;
on(event: "validationEnded", handler: (data: { sessionId: string; validationId: number; validationResult: ValidationResultPlain; }) => any): () => void;
on(event: "testEnded", handler: (data: { sessionId: string; testResults: TestResultsPlain; }) => any): () => void;
off(event: string): void;
off(handler: (...args: Array<any>) => any): void;
getExecutionCloudUrl(): Promise<string>;
setMobileCapabilities<TCapabilities extends Record<string, any>>(capabilities: TCapabilities): TCapabilities;
open(driver: Context, config?: undefined | ConfigurationPlain): Promise<Context>;
open(driver: Context, appName?: undefined | string, testName?: undefined | string, viewportSize?: undefined | RectangleSizePlain, sessionType?: undefined | SessionTypePlain): Promise<Context>;
open(config?: undefined | ConfigurationPlain): Promise<void>;
open(appName?: undefined | string, testName?: undefined | string, viewportSize?: undefined | RectangleSizePlain, sessionType?: undefined | SessionTypePlain): Promise<void>;
open(options: { t: Context; } & TestCafeConfiguration): Promise<Context>;
check(name: string, checkSettings: CheckSettingsImage | CheckSettingsAutomation): Promise<MatchResult>;
check(target: Image, checkSettings?: undefined | CheckSettingsImagePlain): Promise<MatchResult>;
check(checkSettings?: undefined | CheckSettingsAutomationPlain): Promise<MatchResult>;
checkWindow(name?: undefined | string, timeout?: undefined | number, fully?: undefined | boolean): Promise<MatchResult>;
checkWindow(settings: TestCafeCheckSettings): Promise<MatchResult>;
checkFrame(element: number | Element | EyesSelector<Selector>, timeout?: undefined | number, name?: undefined | string): Promise<MatchResult>;
checkElement(element: Element, timeout?: undefined | number, name?: undefined | string): Promise<MatchResult>;
checkElementBy(selector: EyesSelector<Selector>, timeout?: undefined | number, name?: undefined | string): Promise<MatchResult>;
checkRegion(region: RegionPlain, name?: undefined | string, timeout?: undefined | number): Promise<MatchResult>;
checkRegion(image: string | Buffer | URL, region: RegionPlain, name?: undefined | string, ignoreMismatch?: undefined | boolean): Promise<MatchResult>;
checkRegionByElement(element: Element, name?: undefined | string, timeout?: undefined | number): Promise<MatchResult>;
checkRegionBy(selector: EyesSelector<Selector>, name?: undefined | string, timeout?: undefined | number, fully?: undefined | boolean): Promise<MatchResult>;
checkRegionInFrame(frame: number | Element | EyesSelector<Selector>, selector: EyesSelector<Selector>, timeout?: undefined | number, name?: undefined | string, fully?: undefined | boolean): Promise<MatchResult>;
checkImage(image: string | Buffer | URL, name?: undefined | string, ignoreMismatch?: undefined | boolean): Promise<MatchResult>;
locate<TLocator extends string>(target: Image, settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
locate<TLocator extends string>(settingsWithImage: VisualLocatorSettings<TLocator> & { image: string | Buffer | URL; }): Promise<Record<TLocator, Array<RegionPlain>>>;
locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
extractTextRegions<TPattern extends string>(target: Image, settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
extractTextRegions<TPattern extends string>(settingsWithImage: OCRSettings<TPattern> & { image: string | Buffer | URL; }): Promise<Record<TPattern, Array<TextRegion>>>;
extractTextRegions<TPattern extends string>(settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
extractText(target: Image, settings: Array<OCRRegion>): Promise<Array<string>>;
extractText(settingsWithImage: Array<OCRRegion & { image: string | Buffer | URL; }>): Promise<Array<string>>;
extractText(settings: Array<OCRRegion>): Promise<Array<string>>;
close(throwErr?: undefined | boolean): Promise<TestResults>;
closeAsync(): Promise<void>;
abort(): Promise<TestResults>;
abortAsync(): Promise<void>;
abortIfNotClosed(): Promise<TestResultsPlain>;
getResults(throwErr?: undefined | boolean): Promise<Array<TestResults>>;
getViewportSize(): Promise<RectangleSize>;
setViewportSize(size: RectangleSizePlain): Promise<void>;
getScrollRootElement(): Element | EyesSelector<Selector>;
setScrollRootElement(scrollRootElement: Element | EyesSelector<Selector>): void;
setLogHandler(handler: LogHandler | LogHandlerPlain): void;
getLogHandler(): LogHandler;
setCutProvider(cutProvider: CutProvider): void;
setImageCut(cutProvider: CutProvider): void;
getIsCutProviderExplicitlySet(): boolean;
getRotation(): ImageRotation;
setRotation(rotation: ImageRotation | ImageRotationPlain): void;
getScaleRatio(): number;
setScaleRatio(scaleRatio: number): void;
getSaveDebugScreenshots(): boolean;
setSaveDebugScreenshots(save: boolean): void;
getDebugScreenshotsPath(): string;
setDebugScreenshotsPath(path: string): void;
getDebugScreenshotsPrefix(): string;
setDebugScreenshotsPrefix(prefix: string): void;
addProperty(name: string, value: string): Configuration;
clearProperties(): Configuration;
getBatch(): BatchInfo;
setBatch(batch: BatchInfoPlain): void;
setBatch(name: string, id?: undefined | string, startedAt?: undefined | string | Date): void;
getApiKey(): string;
setApiKey(apiKey: string): void;
getTestName(): string;
setTestName(testName: string): void;
getAppName(): string;
setAppName(appName: string): void;
getBaselineBranchName(): string;
setBaselineBranchName(baselineBranchName: string): void;
getBaselineName(): string;
setBaselineName(baselineName: string): void;
getBaselineEnvName(): string;
setBaselineEnvName(baselineEnvName: string): void;
getBranchName(): string;
setBranchName(branchName: string): void;
getHostApp(): string;
setHostApp(hostApp: string): void;
getHostOS(): string;
setHostOS(hostOS: string): void;
getHostAppInfo(): string;
setHostAppInfo(hostAppInfo: string): void;
getHostOSInfo(): string;
setHostOSInfo(hostOSInfo: string): void;
getDeviceInfo(): string;
setDeviceInfo(deviceInfo: string): void;
setIgnoreCaret(ignoreCaret: boolean): void;
getIgnoreCaret(): boolean;
getIsDisabled(): boolean;
setIsDisabled(isDisabled: boolean): void;
getMatchLevel(): MatchLevel;
setMatchLevel(matchLevel: MatchLevelPlain): void;
getMatchTimeout(): number;
setMatchTimeout(matchTimeout: number): void;
getParentBranchName(): string;
setParentBranchName(parentBranchName: string): void;
setProxy(proxy: ProxySettingsPlain): void;
setProxy(url: string, username?: undefined | string, password?: undefined | string, isHttpOnly?: undefined | boolean): void;
setProxy(isEnabled: false): void;
getProxy(): ProxySettings;
getSaveDiffs(): boolean;
setSaveDiffs(saveDiffs: boolean): void;
getSaveNewTests(): boolean;
setSaveNewTests(saveNewTests: boolean): void;
getServerUrl(): string;
setServerUrl(serverUrl: string): void;
getSendDom(): boolean;
setSendDom(sendDom: boolean): void;
getHideCaret(): boolean;
setHideCaret(hideCaret: boolean): void;
getHideScrollbars(): boolean;
setHideScrollbars(hideScrollbars: boolean): void;
getForceFullPageScreenshot(): boolean;
setForceFullPageScreenshot(forceFullPageScreenshot: boolean): void;
getWaitBeforeScreenshots(): number;
setWaitBeforeScreenshots(waitBeforeScreenshots: number): void;
getStitchMode(): StitchMode;
setStitchMode(stitchMode: StitchModePlain): void;
getStitchOverlap(): number;
setStitchOverlap(stitchOverlap: number): void;
getSessionEventHandlers(): SessionEventHandlers;
addSessionEventHandler(handler: SessionEventHandler): void;
removeSessionEventHandler(handler: SessionEventHandler): void;
clearSessionEventHandlers(): void;
waitForResults(throwErr: boolean): Promise<TestResultsSummary>;
}
export type CheckSettingsImagePlain = {
name?: undefined | string;
region?: undefined | RegionPlain | LegacyRegionPlain;
matchLevel?: undefined | MatchLevelPlain;
useDom?: undefined | boolean;
sendDom?: undefined | boolean;
enablePatterns?: undefined | boolean;
ignoreDisplacements?: undefined | boolean;
ignoreMismatch?: undefined | boolean;
ignoreCaret?: undefined | boolean;
ignoreRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | { region: RegionPlain | LegacyRegionPlain; padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
layoutRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | { region: RegionPlain | LegacyRegionPlain; padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
strictRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | { region: RegionPlain | LegacyRegionPlain; padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
contentRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | { region: RegionPlain | LegacyRegionPlain; padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
floatingRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | {
region: RegionPlain | LegacyRegionPlain;
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
} | {
region: RegionPlain | LegacyRegionPlain;
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
maxUpOffset?: undefined | number;
maxDownOffset?: undefined | number;
maxLeftOffset?: undefined | number;
maxRightOffset?: undefined | number;
}>;
accessibilityRegions?: undefined | Array<RegionPlain | LegacyRegionPlain | {
region: RegionPlain | LegacyRegionPlain;
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | AccessibilityRegionTypePlain;
}>;
dynamicRegions?: undefined | Array<RegionPlain | {
region: RegionPlain | LegacyRegionPlain;
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | string | Array<string>;
}>;
pageId?: undefined | string;
variationGroupId?: undefined | string;
densityMetrics?: undefined | { scaleRatio?: undefined | number; xdpi?: undefined | number; ydpi?: undefined | number; };
stitchMode?: undefined | StitchModePlain;
};
export type CheckSettingsAutomationPlain = {
name?: undefined | string;
region?: undefined | (RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })));
matchLevel?: undefined | MatchLevelPlain;
useDom?: undefined | boolean;
sendDom?: undefined | boolean;
enablePatterns?: undefined | boolean;
ignoreDisplacements?: undefined | boolean;
ignoreMismatch?: undefined | boolean;
ignoreCaret?: undefined | boolean;
ignoreRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
layoutRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
strictRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
contentRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>;
floatingRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
} | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
maxUpOffset?: undefined | number;
maxDownOffset?: undefined | number;
maxLeftOffset?: undefined | number;
maxRightOffset?: undefined | number;
}>;
accessibilityRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | AccessibilityRegionTypePlain;
}>;
dynamicRegions?: undefined | Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | string | Array<string>;
}>;
pageId?: undefined | string;
variationGroupId?: undefined | string;
densityMetrics?: undefined | { scaleRatio?: undefined | number; xdpi?: undefined | number; ydpi?: undefined | number; };
stitchMode?: undefined | StitchModePlain;
frames?: undefined | Array<{ frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); } | (number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })))>;
webview?: undefined | string | boolean;
scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
fully?: undefined | boolean;
disableBrowserFetching?: undefined | boolean;
layoutBreakpoints?: undefined | boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; };
visualGridOptions?: undefined | { [key: string]: any; };
ufgOptions?: undefined | { [key: string]: any; };
nmgOptions?: undefined | { [key: string]: any; };
useSystemScreenshot?: undefined | boolean;
hooks?: undefined | { beforeCaptureScreenshot: string; };
timeout?: undefined | number;
waitBeforeCapture?: undefined | number | (() => Promise<void>);
lazyLoad?: undefined | boolean | { scrollLength?: undefined | number; waitingTime?: undefined | number; maxAmountToScroll?: undefined | number; };
};
export class CheckSettingsAutomation {
constructor(settings?: undefined | CheckSettingsAutomation | CheckSettingsAutomationPlain);
region(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
shadow(selector: string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }): CheckSettingsAutomation;
frame(context: { frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); }): CheckSettingsAutomation;
frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
webview(webview?: undefined | string | boolean): CheckSettingsAutomation;
scrollRootElement(scrollRootElement: Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })): CheckSettingsAutomation;
fully(fully?: undefined | boolean): CheckSettingsAutomation;
stitchContent(stitchContent?: undefined | boolean): CheckSettingsAutomation;
disableBrowserFetching(disableBrowserFetching: boolean): CheckSettingsAutomation;
layoutBreakpoints(breakpoints?: undefined | boolean | Array<number>, settings?: undefined | { reload?: undefined | boolean; }): CheckSettingsAutomation;
hook(name: string, script: string): CheckSettingsAutomation;
beforeRenderScreenshotHook(script: string): CheckSettingsAutomation;
webHook(script: string): CheckSettingsAutomation;
ufgOption(key: string, value: any): CheckSettingsAutomation;
ufgOptions(options: { [key: string]: any; }): CheckSettingsAutomation;
nmgOption(key: string, value: any): CheckSettingsAutomation;
nmgOptions(options: { [key: string]: any; }): CheckSettingsAutomation;
visualGridOption(key: string, value: any): CheckSettingsAutomation;
visualGridOptions(options: { [key: string]: any; }): CheckSettingsAutomation;
useSystemScreenshot(useSystemScreenshot?: undefined | boolean): CheckSettingsAutomation;
timeout(timeout: number): CheckSettingsAutomation;
waitBeforeCapture(waitBeforeCapture: number | (() => Promise<void>)): CheckSettingsAutomation;
lazyLoad(options?: undefined | boolean | { scrollLength?: undefined | number; waitingTime?: undefined | number; maxAmountToScroll?: undefined | number; }): CheckSettingsAutomation;
densityMetrics(options: { scaleRatio?: undefined | number; xdpi?: undefined | number; ydpi?: undefined | number; }): CheckSettingsAutomation;
stitchMode(stitchMode: StitchModePlain): CheckSettingsAutomation;
name(name: string): CheckSettingsAutomation;
withName(name: string): CheckSettingsAutomation;
ignoreRegion(region: (RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }): CheckSettingsAutomation;
ignoreRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>): CheckSettingsAutomation;
ignore(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
ignores(...regions: Array<RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))>): CheckSettingsAutomation;
layoutRegion(region: (RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }): CheckSettingsAutomation;
layoutRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>): CheckSettingsAutomation;
strictRegion(region: (RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }): CheckSettingsAutomation;
strictRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>): CheckSettingsAutomation;
contentRegion(region: (RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }): CheckSettingsAutomation;
contentRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | { region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); padding?: undefined | number | { top: number; bottom: number; left: number; right: number; }; regionId?: undefined | string; }>): CheckSettingsAutomation;
floatingRegion(region: {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
}): CheckSettingsAutomation;
floatingRegion(region: {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
maxUpOffset?: undefined | number;
maxDownOffset?: undefined | number;
maxLeftOffset?: undefined | number;
maxRightOffset?: undefined | number;
}): CheckSettingsAutomation;
floatingRegion(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), maxUpOffset?: undefined | number, maxDownOffset?: undefined | number, maxLeftOffset?: undefined | number, maxRightOffset?: undefined | number): CheckSettingsAutomation;
floatingRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
}>): CheckSettingsAutomation;
floatingRegions(maxOffset: number, ...regions: Array<RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))>): CheckSettingsAutomation;
floating(region: {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
}): CheckSettingsAutomation;
floating(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
floatings(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
offset?: undefined | { top?: undefined | number; bottom?: undefined | number; left?: undefined | number; right?: undefined | number; };
}>): CheckSettingsAutomation;
floatings(maxOffset: number, ...regions: Array<RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))>): CheckSettingsAutomation;
accessibilityRegion(region: {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | AccessibilityRegionTypePlain;
}): CheckSettingsAutomation;
accessibilityRegion(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), type?: undefined | AccessibilityRegionTypePlain): CheckSettingsAutomation;
accessibilityRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | AccessibilityRegionTypePlain;
}>): CheckSettingsAutomation;
accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))>): CheckSettingsAutomation;
dynamicRegion(region: {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | string | Array<string>;
}): CheckSettingsAutomation;
dynamicRegion(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
dynamicRegion(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), type?: undefined | string | Array<string>): CheckSettingsAutomation;
dynamicRegions(...regions: Array<(RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))) | {
region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }));
padding?: undefined | number | { top: number; bottom: number; left: number; right: number; };
regionId?: undefined | string;
type?: undefined | string | Array<string>;
}>): CheckSettingsAutomation;
matchLevel(matchLevel: MatchLevelPlain): CheckSettingsAutomation;
layout(): CheckSettingsAutomation;
exact(): CheckSettingsAutomation;
strict(): CheckSettingsAutomation;
ignoreColors(): CheckSettingsAutomation;
dynamic(): CheckSettingsAutomation;
content(): CheckSettingsAutomation;
enablePatterns(enablePatterns?: undefined | boolean): CheckSettingsAutomation;
ignoreDisplacements(ignoreDisplacements?: undefined | boolean): CheckSettingsAutomation;
ignoreCaret(ignoreCaret?: undefined | boolean): CheckSettingsAutomation;
useDom(useDom?: undefined | boolean): CheckSettingsAutomation;
sendDom(sendDom?: undefined | boolean): CheckSettingsAutomation;
pageId(pageId: string): CheckSettingsAutomation;
variationGroupId(variationGroupId: string): CheckSettingsAutomation;
}
export class CheckSettings extends CheckSettingsAutomation {
}
export type TargetAutomation = {
window(): CheckSettingsAutomation;
region(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
frame(context: { frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); }): CheckSettingsAutomation;
frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
shadow(selector: string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }): CheckSettingsAutomation;
webview(webview?: undefined | string | boolean): CheckSettingsAutomation;
};
export const TargetAutomation: {
window(): CheckSettingsAutomation;
region(region: RegionPlain | LegacyRegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
frame(context: { frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })); }): CheckSettingsAutomation;
frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; })), scrollRootElement?: undefined | (Element | (string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }))): CheckSettingsAutomation;
shadow(selector: string | Selector | { selector: string | Selector; type?: undefined | string; shadow?: undefined | EyesSelector<Selector>; frame?: undefined | EyesSelector<Selector>; }): CheckSettingsAutomation;
webview(webview?: undefined | string | boolean): CheckSettingsAutomation;
};
export type Target = TargetImage & TargetAutomation;
export const Target: TargetImage & TargetAutomation;
export type OCRRegion = { target: Element | RegionPlain | EyesSelector<Selector>; hint?: undefined | string; minMatch?: undefined | number; language?: undefined | string; };
export type ConfigurationPlain = {
accessibilityValidation?: undefined | AccessibilitySettings;
agentId?: undefined | string;
apiKey?: undefined | string;
appName?: undefined | string;
autProxy?: undefined | (ProxySettingsPlain & { mode?: undefined | "Allow" | "Block"; domains?: undefined | Array<string>; });
baselineBranchName?: undefined | string;
baselineEnvName?: undefined | string;
batch?: undefined | BatchInfoPlain;
branchName?: undefined | string;
browsersInfo?: undefined | Array<(DesktopBrowserInfo | ChromeEmulationInfo | IOSDeviceInfo | { iosDeviceInfo: { deviceName: "iPhone X" | "iPhone 14 Plus" | "iPhone 14 Pro" | "iPhone XR" | "iPhone 11" | "iPhone 11 Pro Max" | "iPhone 11 Pro" | "iPhone SE (3rd generation)" | "iPhone SE (2nd generation)" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 13 mini" | "iPhone 12 mini" | "iPhone Xs" | "iPhone Xs Max" | "iPhone 12" | "iPhone 12 Pro" | "iPhone 12 Pro Max" | "iPhone 13" | "iPhone 13 Pro" | "iPhone 13 Pro Max" | "iPhone 14" | "iPhone 14 Pro Max"; }; })>;
captureStatusBar?: undefined | boolean;
compareWithParentBranch?: undefined | boolean;
concurrentSessions?: undefined | number;
connectionTimeout?: undefined | number;
cut?: undefined | CutProviderPlain;
debugScreenshots?: undefined | { save: boolean; path?: undefined | string; prefix?: undefined | string; };
defaultMatchSettings?: undefined | ImageMatchSettingsPlain;
deviceInfo?: undefined | string;
disableBrowserFetching?: undefined | boolean;
disableNMLUrlCache?: undefined | boolean;
displayName?: undefined | string;
dontCloseBatches?: undefined | boolean;
enablePatterns?: undefined | boolean;
environmentName?: undefined | string;
forceFullPageScreenshot?: undefined | boolean;
fully?: undefined | boolean;
gitMergeBaseTimestamp?: undefined | string;
latestCommitInfo?: undefined | { timestamp: string; sha: string; };
hideCaret?: undefined | boolean;
hideScrollbars?: undefined | boolean;
hostApp?: undefined | string;
hostAppInfo?: undefined | string;
hostOS?: undefined | string;
hostOSInfo?: undefined | string;
ignoreBaseline?: undefined | boolean;
ignoreCaret?: undefined | boolean;
ignoreDisplacements?: undefined | boolean;
ignoreGitMergeBase?: undefined | boolean;
isDisabled?: undefined | boolean;
layoutBreakpoints?: undefined | boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; };
matchLevel?: undefined | MatchLevelPlain;
matchTimeout?: undefined | number;
mobileOptions?: undefined | { keepNavigationBar?: undefined | boolean; };
parentBranchName?: undefined | string;
properties?: undefined | Array<PropertyDataPlain>;
proxy?: undefined | ProxySettingsPlain;
removeSession?: undefined | boolean;
rotation?: undefined | ImageRotationPlain;
saveDiffs?: undefined | boolean;
saveFailedTests?: undefined | boolean;
saveNewTests?: undefined | boolean;
scaleRatio?: undefined | number;
scrollRootElement?: undefined | Element | EyesSelector<Selector>;
sendDom?: undefined | boolean;
serverUrl?: undefined | string;
sessionType?: undefined | SessionTypePlain;
stitchMode?: undefined | StitchModePlain;
stitchOverlap?: undefined | number;
testName?: undefined | string;
useDom?: undefined | boolean;
viewportSize?: undefined | RectangleSizePlain;
visualGridOptions?: undefined | Record<string, any>;
waitBeforeCapture?: undefined | number | (() => Promise<void>);
waitBeforeScreenshots?: undefined | number;
};
export class Configuration implements Required<ConfigurationPlain> {
constructor(config?: undefined | ConfigurationPlain);
get accessibilityValidation(): AccessibilitySettings;
set accessibilityValidation(accessibilityValidation: AccessibilitySettings);
getAccessibilityValidation(): AccessibilitySettings;
setAccessibilityValidation(accessibilityValidation: AccessibilitySettings): Configuration;
get agentId(): string;
set agentId(agentId: string);
getAgentId(): string;
setAgentId(agentId: string): Configuration;
get apiKey(): string;
set apiKey(apiKey: string);
getApiKey(): string;
setApiKey(apiKey: string): Configuration;
get appName(): string;
set appName(appName: string);
getAppName(): string;
setAppName(appName: string): Configuration;
get autProxy(): ProxySettingsPlain & { mode?: undefined | "Allow" | "Block"; domains?: undefined | Array<string>; };
set autProxy(autProxy: ProxySettingsPlain & { mode?: undefined | "Allow" | "Block"; domains?: undefined | Array<string>; });
getAutProxy(): ProxySettingsPlain & { mode?: undefined | "Allow" | "Block"; domains?: undefined | Array<string>; };
setAutProxy(autProxy: ProxySettingsPlain & { mode?: undefined | "Allow" | "Block"; domains?: undefined | Array<string>; }): Configuration;
get baselineBranchName(): string;
set baselineBranchName(baselineBranchName: string);
getBaselineBranchName(): string;
setBaselineBranchName(baselineBranchName: string): Configuration;
get baselineEnvName(): string;
set baselineEnvName(baselineEnvName: string);
getBaselineEnvName(): string;
setBaselineEnvName(baselineEnvName: string): Configuration;
get batch(): BatchInfoPlain;
set batch(batch: BatchInfoPlain);
getBatch(): BatchInfo;
setBatch(batch: BatchInfoPlain): Configuration;
get branchName(): string;
set branchName(branchName: string);
getBranchName(): string;
setBranchName(branchName: string): Configuration;
get browsersInfo(): Array<(DesktopBrowserInfo | ChromeEmulationInfo | IOSDeviceInfo | { iosDeviceInfo: { deviceName: "iPhone X" | "iPhone 14 Plus" | "iPhone 14 Pro" | "iPhone XR" | "iPhone 11" | "iPhone 11 Pro Max" | "iPhone 11 Pro" | "iPhone SE (3rd generation)" | "iPhone SE (2nd generation)" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 13 mini" | "iPhone 12 mini" | "iPhone Xs" | "iPhone Xs Max" | "iPhone 12" | "iPhone 12 Pro" | "iPhone 12 Pro Max" | "iPhone 13" | "iPhone 13 Pro" | "iPhone 13 Pro Max" | "iPhone 14" | "iPhone 14 Pro Max"; }; })>;
set browsersInfo(browsersInfo: Array<(DesktopBrowserInfo | ChromeEmulationInfo | IOSDeviceInfo | { iosDeviceInfo: { deviceName: "iPhone X" | "iPhone 14 Plus" | "iPhone 14 Pro" | "iPhone XR" | "iPhone 11" | "iPhone 11 Pro Max" | "iPhone 11 Pro" | "iPhone SE (3rd generation)" | "iPhone SE (2nd generation)" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 13 mini" | "iPhone 12 mini" | "iPhone Xs" | "iPhone Xs Max" | "iPhone 12" | "iPhone 12 Pro" | "iPhone 12 Pro Max" | "iPhone 13" | "iPhone 13 P