Socket
Socket
Sign inDemoInstall

@applitools/eyes-api

Package Overview
Dependencies
139
Maintainers
33
Versions
95
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.9.2 to 1.10.0

dist/Core.js

145

dist/Eyes.js

@@ -120,10 +120,18 @@ "use strict";

}
async open(driver, configOrAppName, testName, viewportSize, sessionType) {
var _a;
this._driver = driver;
async open(driverOrConfigOrAppName, configOrAppNameOrTestName, testNameOrViewportSize, viewportSizeOrSessionType, sessionType) {
var _a, _b, _c;
if ((_b = (_a = this._spec).isDriver) === null || _b === void 0 ? void 0 : _b.call(_a, driverOrConfigOrAppName)) {
this._driver = driverOrConfigOrAppName;
}
else {
sessionType = viewportSizeOrSessionType;
viewportSizeOrSessionType = testNameOrViewportSize;
testNameOrViewportSize = configOrAppNameOrTestName;
configOrAppNameOrTestName = driverOrConfigOrAppName;
}
if (this._config.isDisabled)
return driver;
return this._driver;
const config = this._config.toJSON();
if (utils.types.instanceOf(configOrAppName, Configuration_1.ConfigurationData)) {
const transformedConfig = configOrAppName.toJSON();
if (utils.types.instanceOf(configOrAppNameOrTestName, Configuration_1.ConfigurationData)) {
const transformedConfig = configOrAppNameOrTestName.toJSON();
config.open = { ...config.open, ...transformedConfig.open };

@@ -134,4 +142,4 @@ config.screenshot = { ...config.screenshot, ...transformedConfig.screenshot };

}
else if (utils.types.isObject(configOrAppName)) {
const transformedConfig = new Configuration_1.ConfigurationData(configOrAppName, this._spec).toJSON();
else if (utils.types.isObject(configOrAppNameOrTestName)) {
const transformedConfig = new Configuration_1.ConfigurationData(configOrAppNameOrTestName, this._spec).toJSON();
config.open = { ...config.open, ...transformedConfig.open };

@@ -142,13 +150,13 @@ config.screenshot = { ...config.screenshot, ...transformedConfig.screenshot };

}
else if (utils.types.isString(configOrAppName)) {
config.open.appName = configOrAppName;
else if (utils.types.isString(configOrAppNameOrTestName)) {
config.open.appName = configOrAppNameOrTestName;
}
if (utils.types.isString(testName))
config.open.testName = testName;
if (utils.types.has(viewportSize, ['width', 'height']))
config.open.environment.viewportSize = viewportSize;
if (utils.types.isString(testNameOrViewportSize))
config.open.testName = testNameOrViewportSize;
if (utils.types.has(viewportSizeOrSessionType, ['width', 'height']))
config.open.environment.viewportSize = viewportSizeOrSessionType;
if (utils.types.isEnumValue(sessionType, SessionType_1.SessionTypeEnum))
config.open.sessionType = sessionType;
config.open.keepPlatformNameAsIs = true;
this._state.appName = (_a = config.open) === null || _a === void 0 ? void 0 : _a.appName;
this._state.appName = (_c = config.open) === null || _c === void 0 ? void 0 : _c.appName;
this._eyes = await this._runner.openEyes({

@@ -167,10 +175,41 @@ target: this._driver,

});
return new Proxy(this._driver, {
get(target, key) {
if (key === 'then')
return;
return Reflect.get(target, key);
},
});
return (this._driver &&
new Proxy(this._driver, {
get(target, key) {
if (key === 'then')
return;
return Reflect.get(target, key);
},
}));
}
async check(checkSettingsOrTargetOrName, checkSettings) {
var _a;
var _b;
if (this._config.isDisabled)
return null;
if (!this.isOpen)
throw new EyesError_1.EyesError('Eyes not open');
let serialized;
if (utils.types.isString(checkSettingsOrTargetOrName)) {
serialized = this._driver
? new CheckSettings_1.CheckSettingsAutomationFluent(checkSettings, this._spec)
.name(checkSettingsOrTargetOrName)
.toJSON()
: new CheckSettings_1.CheckSettingsImageFluent(checkSettings)
.name(checkSettingsOrTargetOrName)
.toJSON();
}
else if (utils.types.has(checkSettingsOrTargetOrName, 'image')) {
serialized = new CheckSettings_1.CheckSettingsImageFluent(checkSettings, checkSettingsOrTargetOrName).toJSON();
}
else {
serialized = new CheckSettings_1.CheckSettingsAutomationFluent(checkSettingsOrTargetOrName, this._spec).toJSON();
}
const { target, settings } = serialized;
const config = this._config.toJSON();
// TODO remove when major version of sdk should be released
(_a = (_b = config.screenshot).fully) !== null && _a !== void 0 ? _a : (_b.fully = false);
const [result] = await this._eyes.check({ target, settings, config });
return new MatchResult_1.MatchResultData(result);
}
/** @deprecated */

@@ -192,5 +231,6 @@ async checkWindow(name, timeout, fully = false) {

}
/** @deprecated */
async checkRegion(region, name, timeout) {
return this.check({ name, region, timeout });
async checkRegion(imageOrRegion, regionOrName, nameOrTimeout, ignoreMismatch = false) {
return utils.types.has(imageOrRegion, ['x', 'y', 'width', 'height'])
? this.check({ region: imageOrRegion, name: regionOrName, timeout: nameOrTimeout })
: this.check({ image: imageOrRegion }, { region: regionOrName, name: nameOrTimeout, ignoreMismatch });
}

@@ -209,22 +249,5 @@ /** @deprecated */

}
async check(checkSettingsOrName, checkSettings) {
var _a;
var _b;
if (this._config.isDisabled)
return null;
if (!this.isOpen)
throw new EyesError_1.EyesError('Eyes not open');
let settings;
if (utils.types.isString(checkSettingsOrName)) {
utils.guard.notNull(checkSettings, { name: 'checkSettings' });
settings = new CheckSettings_1.CheckSettingsFluent(checkSettings, this._spec).name(checkSettingsOrName).toJSON();
}
else {
settings = new CheckSettings_1.CheckSettingsFluent(checkSettingsOrName, this._spec).toJSON();
}
const config = this._config.toJSON();
// TODO remove when major version of sdk should be released
(_a = (_b = config.screenshot).fully) !== null && _a !== void 0 ? _a : (_b.fully = false);
const [result] = await this._eyes.check({ settings, config });
return new MatchResult_1.MatchResultData(result);
/** @deprecated */
async checkImage(image, name, ignoreMismatch = false) {
return this.check({ image }, { name, ignoreMismatch });
}

@@ -239,3 +262,3 @@ async locate(settings) {

}
async extractTextRegions(settings) {
async extractTextRegions(targetOrSettings, settings) {
if (this._config.isDisabled)

@@ -245,6 +268,16 @@ return null;

throw new EyesError_1.EyesError('Eyes not open');
let target;
if (utils.types.has(targetOrSettings, 'patterns')) {
settings = targetOrSettings;
if (utils.types.has(targetOrSettings, 'image')) {
target = { image: targetOrSettings.image };
}
}
else {
target = targetOrSettings;
}
const config = this._config.toJSON();
return this._eyes.locateText({ settings, config });
return this._eyes.locateText({ target, settings, config });
}
async extractText(settings) {
async extractText(targetOrSettings, settings) {
if (this._config.isDisabled)

@@ -254,2 +287,12 @@ return null;

throw new EyesError_1.EyesError('Eyes not open');
let targets;
if (utils.types.isArray(targetOrSettings)) {
settings = targetOrSettings;
targets = targetOrSettings.map(settings => {
return utils.types.has(settings, 'image') ? { image: settings.image } : undefined;
});
}
else {
targets = Array(settings.length).fill(targetOrSettings);
}
settings = settings.map(settings => ({

@@ -262,3 +305,7 @@ ...settings,

const config = this._config.toJSON();
return this._eyes.extractText({ settings, config });
return await settings.reduce((results, settings, index) => {
return results.then(async (results) => {
return results.concat(await this._eyes.extractText({ target: targets[index], settings, config }));
});
}, Promise.resolve([]));
}

@@ -265,0 +312,0 @@ async close(throwErr = true) {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestResultContainer = exports.TestResults = exports.StepInfo = exports.SessionUrls = exports.MatchResult = exports.AppUrls = exports.ApiUrls = exports.RunnerOptions = exports.RunnerOptionsFluent = exports.Region = exports.RectangleSize = exports.ProxySettings = exports.PropertyData = exports.NullLogHandler = exports.ConsoleLogHandler = exports.FileLogHandler = exports.LogHandler = exports.Location = exports.ImageRotation = exports.ImageMatchSettings = exports.FloatingMatchSettings = exports.ExactMatchSettings = exports.UnscaledFixedCutProvider = exports.FixedCutProvider = exports.CutProvider = exports.Configuration = exports.CheckSettings = exports.BatchInfo = exports.AccessibilityMatchSettings = exports.NewTestError = exports.DiffsFoundError = exports.TestFailedError = exports.EyesError = exports.TestResultsStatus = exports.StitchMode = exports.SessionType = exports.ScreenOrientation = exports.MatchLevel = exports.AndroidVersion = exports.AndroidDeviceName = exports.IosVersion = exports.IosDeviceName = exports.FailureReport = exports.DeviceName = exports.CorsIframeHandle = exports.BrowserType = exports.AccessibilityStatus = exports.AccessibilityRegionType = exports.AccessibilityLevel = exports.AccessibilityGuidelinesVersion = void 0;
exports.RemoteSessionEventHandler = exports.SessionEventHandlers = exports.SessionEventHandler = exports.VisualGridRunner = exports.ClassicRunner = exports.EyesRunner = exports.closeBatch = exports.BatchClose = exports.Eyes = exports.Logger = exports.ValidationResult = exports.ValidationInfo = exports.TestResultsSummary = void 0;
exports.TestResults = exports.StepInfo = exports.SessionUrls = exports.MatchResult = exports.AppUrls = exports.ApiUrls = exports.RunnerOptions = exports.RunnerOptionsFluent = exports.Region = exports.RectangleSize = exports.ProxySettings = exports.PropertyData = exports.NullLogHandler = exports.ConsoleLogHandler = exports.FileLogHandler = exports.LogHandler = exports.Location = exports.ImageRotation = exports.ImageMatchSettings = exports.FloatingMatchSettings = exports.ExactMatchSettings = exports.UnscaledFixedCutProvider = exports.FixedCutProvider = exports.CutProvider = exports.Configuration = exports.CheckSettingsAutomation = exports.CheckSettingsImage = exports.BatchInfo = exports.AccessibilityMatchSettings = exports.NewTestError = exports.DiffsFoundError = exports.TestFailedError = exports.EyesError = exports.TestResultsStatus = exports.StitchMode = exports.SessionType = exports.ScreenOrientation = exports.MatchLevel = exports.AndroidVersion = exports.AndroidDeviceName = exports.IosVersion = exports.IosDeviceName = exports.FailureReport = exports.DeviceName = exports.CorsIframeHandle = exports.BrowserType = exports.AccessibilityStatus = exports.AccessibilityRegionType = exports.AccessibilityLevel = exports.AccessibilityGuidelinesVersion = void 0;
exports.RemoteSessionEventHandler = exports.SessionEventHandlers = exports.SessionEventHandler = exports.VisualGridRunner = exports.ClassicRunner = exports.EyesRunner = exports.closeBatch = exports.BatchClose = exports.Eyes = exports.Logger = exports.ValidationResult = exports.ValidationInfo = exports.TestResultsSummary = exports.TestResultContainer = void 0;
// #region ENUM

@@ -57,3 +57,4 @@ var AccessibilityGuidelinesVersion_1 = require("./enums/AccessibilityGuidelinesVersion");

var CheckSettings_1 = require("./input/CheckSettings");
Object.defineProperty(exports, "CheckSettings", { enumerable: true, get: function () { return CheckSettings_1.CheckSettingsFluent; } });
Object.defineProperty(exports, "CheckSettingsImage", { enumerable: true, get: function () { return CheckSettings_1.CheckSettingsImageFluent; } });
Object.defineProperty(exports, "CheckSettingsAutomation", { enumerable: true, get: function () { return CheckSettings_1.CheckSettingsAutomationFluent; } });
var Configuration_1 = require("./input/Configuration");

@@ -60,0 +61,0 @@ Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return Configuration_1.ConfigurationData; } });

@@ -26,132 +26,11 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.CheckSettingsFluent = void 0;
exports.CheckSettingsAutomationFluent = exports.CheckSettingsImageFluent = exports.CheckSettingsBaseFluent = void 0;
const utils = __importStar(require("@applitools/utils"));
const AccessibilityRegionType_1 = require("../enums/AccessibilityRegionType");
const MatchLevel_1 = require("../enums/MatchLevel");
class CheckSettingsFluent {
constructor(settings, spec) {
class CheckSettingsBaseFluent {
constructor(settings) {
this._settings = {};
if (!settings)
return this;
if (utils.types.instanceOf(settings, CheckSettingsFluent))
return settings;
this._spec = spec;
if (settings.name)
this.name(settings.name);
if (settings.region)
this.region(settings.region);
if (settings.scrollRootElement)
this.scrollRootElement(settings.scrollRootElement);
if (settings.frames) {
settings.frames.forEach(reference => {
if (!utils.types.isNull(reference))
this.frame(reference);
});
}
if (!utils.types.isNull(settings.fully))
this.fully(settings.fully);
if (settings.matchLevel)
this.matchLevel(settings.matchLevel);
if (!utils.types.isNull(settings.useDom))
this.useDom(settings.useDom);
if (!utils.types.isNull(settings.sendDom))
this.sendDom(settings.sendDom);
if (!utils.types.isNull(settings.enablePatterns))
this.enablePatterns(settings.enablePatterns);
if (!utils.types.isNull(settings.ignoreDisplacements))
this.ignoreDisplacements(settings.ignoreDisplacements);
if (!utils.types.isNull(settings.ignoreCaret))
this.ignoreCaret(settings.ignoreCaret);
if (settings.ignoreRegions) {
settings.ignoreRegions.forEach(ignoreRegion => this.ignoreRegion(ignoreRegion));
}
if (settings.layoutRegions) {
settings.layoutRegions.forEach(layoutRegion => this.layoutRegion(layoutRegion));
}
if (settings.strictRegions) {
settings.strictRegions.forEach(strictRegion => this.strictRegion(strictRegion));
}
if (settings.contentRegions) {
settings.contentRegions.forEach(contentRegion => this.contentRegion(contentRegion));
}
if (settings.floatingRegions) {
settings.floatingRegions.forEach(floatingRegion => this.floatingRegion(floatingRegion));
}
if (settings.accessibilityRegions) {
settings.accessibilityRegions.forEach(accessibilityRegion => this.accessibilityRegion(accessibilityRegion));
}
if (!utils.types.isNull(settings.disableBrowserFetching))
this.disableBrowserFetching(settings.disableBrowserFetching);
if (!utils.types.isNull(settings.layoutBreakpoints))
this.layoutBreakpoints(settings.layoutBreakpoints);
if (settings.hooks) {
Object.entries(settings.hooks).forEach(([name, script]) => this.hook(name, script));
}
if (settings.visualGridOptions) {
Object.entries(settings.visualGridOptions).forEach(([key, value]) => this.visualGridOption(key, value));
}
if (settings.renderId)
this.renderId(settings.renderId);
if (settings.pageId)
this.pageId(settings.pageId);
if (settings.variationGroupId)
this.variationGroupId(settings.variationGroupId);
if (!utils.types.isNull(settings.timeout))
this.timeout(settings.timeout);
if (!utils.types.isNull(settings.waitBeforeCapture))
this.waitBeforeCapture(settings.waitBeforeCapture);
if (!utils.types.isNull(settings.lazyLoad))
this.lazyLoad(settings.lazyLoad);
if (!utils.types.isNull(settings.webview))
this.webview(settings.webview);
this._settings = utils.types.instanceOf(settings, CheckSettingsBaseFluent) ? settings.toObject() : settings !== null && settings !== void 0 ? settings : {};
}
/** @internal */
static window() {
return new this();
}
/** @internal */
static region(region) {
return new this().region(region);
}
/** @internal */
static frame(contextOrFrame, scrollRootElement) {
return new this().frame(contextOrFrame, scrollRootElement);
}
/** @internal */
static shadow(selector) {
return new this().shadow(selector);
}
/** @internal */
static webview(option) {
return new this().webview(option);
}
_isFrameReference(value) {
return utils.types.isNumber(value) || utils.types.isString(value) || this._isElementReference(value);
}
_isRegionReference(value) {
return utils.types.has(value, ['x', 'y', 'width', 'height']) || this._isElementReference(value);
}
_isElementReference(value) {
var _a;
const spec = (_a = this._spec) !== null && _a !== void 0 ? _a : this.constructor._spec;
return spec.isElement(value) || this._isSelectorReference(value);
}
_isSelectorReference(selector) {
var _a;
const spec = (_a = this._spec) !== null && _a !== void 0 ? _a : this.constructor._spec;
return (spec.isSelector(selector) ||
utils.types.isString(selector) ||
(utils.types.isPlainObject(selector) &&
utils.types.has(selector, 'selector') &&
(utils.types.isString(selector.selector) || spec.isSelector(selector.selector))));
}
/** @undocumented */
name(name) {
utils.guard.isString(name, { name: 'name' });
this._settings.name = name;
return this;
}
withName(name) {
return this.name(name);
}
region(region) {

@@ -161,49 +40,11 @@ if (utils.types.has(region, ['left', 'top', 'width', 'height'])) {

}
utils.guard.custom(region, value => this._isRegionReference(value), { name: 'region' });
if (this._isSelectorReference(region) &&
this._isSelectorReference(this._settings.region) &&
utils.types.has(this._settings.region, 'selector')) {
let lastSelector = this._settings.region;
while (lastSelector.shadow)
lastSelector = lastSelector.shadow;
lastSelector.shadow = region;
}
else {
this._settings.region = region;
}
this._settings.region = region;
return this;
}
shadow(selector) {
utils.guard.custom(selector, value => this._isSelectorReference(value), { name: 'selector' });
selector = utils.types.has(selector, 'selector') ? selector : { selector };
if (!this._settings.region) {
this._settings.region = selector;
}
else if (this._isSelectorReference(this._settings.region)) {
let lastSelector;
if (utils.types.has(this._settings.region, 'selector')) {
lastSelector = this._settings.region;
while (lastSelector.shadow)
lastSelector = lastSelector.shadow;
}
else {
lastSelector = { selector: this._settings.region };
}
lastSelector.shadow = selector;
}
name(name) {
this._settings.name = name;
return this;
}
frame(contextOrFrame, scrollRootElement) {
const context = this._isFrameReference(contextOrFrame) || this._isSelectorReference(contextOrFrame)
? { frame: contextOrFrame, scrollRootElement }
: contextOrFrame;
if (!this._settings.frames)
this._settings.frames = [];
utils.guard.custom(context.frame, value => this._isFrameReference(value), { name: 'frame' });
utils.guard.custom(context.scrollRootElement, value => this._isElementReference(value), {
name: 'scrollRootElement',
strict: false,
});
this._settings.frames.push(context);
return this;
withName(name) {
return this.name(name);
}

@@ -288,9 +129,2 @@ ignoreRegion(region) {

}
utils.guard.custom(floatingRegion.region, value => this._isRegionReference(value), {
name: 'region',
});
utils.guard.isNumber(floatingRegion.offset.top, { name: 'maxUpOffset' });
utils.guard.isNumber(floatingRegion.offset.bottom, { name: 'maxDownOffset' });
utils.guard.isNumber(floatingRegion.offset.left, { name: 'maxLeftOffset' });
utils.guard.isNumber(floatingRegion.offset.right, { name: 'maxRightOffset' });
if (!this._settings.floatingRegions)

@@ -331,9 +165,2 @@ this._settings.floatingRegions = [];

const accessibilityRegion = utils.types.has(region, 'region') ? region : { region, type };
utils.guard.custom(accessibilityRegion.region, value => this._isRegionReference(value), {
name: 'region',
});
utils.guard.isEnumValue(accessibilityRegion.type, AccessibilityRegionType_1.AccessibilityRegionTypeEnum, {
name: 'type',
strict: false,
});
if (!this._settings.accessibilityRegions)

@@ -360,24 +187,3 @@ this._settings.accessibilityRegions = [];

}
scrollRootElement(scrollRootElement) {
utils.guard.custom(scrollRootElement, value => this._isElementReference(value), {
name: 'scrollRootElement',
});
if (this._settings.frames && this._settings.frames.length > 0) {
const context = this._settings.frames[this._settings.frames.length - 1];
context.scrollRootElement = scrollRootElement;
}
this._settings.scrollRootElement = scrollRootElement;
return this;
}
fully(fully = true) {
utils.guard.isBoolean(fully, { name: 'fully' });
this._settings.fully = fully;
return this;
}
/** @deprecated */
stitchContent(stitchContent = true) {
return this.fully(stitchContent);
}
matchLevel(matchLevel) {
utils.guard.isEnumValue(matchLevel, MatchLevel_1.MatchLevelEnum, { name: 'matchLevel' });
this._settings.matchLevel = matchLevel;

@@ -402,4 +208,15 @@ return this;

}
enablePatterns(enablePatterns = true) {
this._settings.enablePatterns = enablePatterns;
return this;
}
ignoreDisplacements(ignoreDisplacements = true) {
this._settings.ignoreDisplacements = ignoreDisplacements;
return this;
}
ignoreCaret(ignoreCaret = true) {
this._settings.ignoreCaret = ignoreCaret;
return this;
}
useDom(useDom = true) {
utils.guard.isBoolean(useDom, { name: 'useDom' });
this._settings.useDom = useDom;

@@ -409,23 +226,208 @@ return this;

sendDom(sendDom = true) {
utils.guard.isBoolean(sendDom, { name: 'sendDom' });
this._settings.sendDom = sendDom;
return this;
}
enablePatterns(enablePatterns = true) {
utils.guard.isBoolean(enablePatterns, { name: 'enablePatterns' });
this._settings.enablePatterns = enablePatterns;
pageId(pageId) {
this._settings.pageId = pageId;
return this;
}
ignoreDisplacements(ignoreDisplacements = true) {
utils.guard.isBoolean(ignoreDisplacements, { name: 'ignoreDisplacements' });
this._settings.ignoreDisplacements = ignoreDisplacements;
variationGroupId(variationGroupId) {
this._settings.variationGroupId = variationGroupId;
return this;
}
ignoreCaret(ignoreCaret = true) {
utils.guard.isBoolean(ignoreCaret, { name: 'ignoreCaret' });
this._settings.ignoreCaret = ignoreCaret;
/** @internal */
toObject() {
return this._settings;
}
/** @internal */
toString() {
return utils.general.toString(this);
}
}
exports.CheckSettingsBaseFluent = CheckSettingsBaseFluent;
class CheckSettingsImageFluent extends CheckSettingsBaseFluent {
constructor(settings, target) {
super(settings);
this._target = target !== null && target !== void 0 ? target : settings === null || settings === void 0 ? void 0 : settings._target;
}
/** @internal */
static image(image) {
return new this().image(image);
}
/** @internal */
static buffer(imageBuffer) {
return new this().image(imageBuffer);
}
/** @internal */
static base64(imageBase64) {
return new this().image(imageBase64);
}
/** @internal */
static path(imagePath) {
return new this().image(imagePath);
}
/** @internal */
static url(imageUrl) {
return new this().image(imageUrl);
}
image(image) {
var _a;
(_a = this._target) !== null && _a !== void 0 ? _a : (this._target = {});
this._target.image = image;
return this;
}
buffer(imageBuffer) {
return this.image(imageBuffer);
}
base64(imageBase64) {
return this.image(imageBase64);
}
path(imagePath) {
return this.image(imagePath);
}
url(imageUrl) {
return this.image(imageUrl);
}
name(name) {
this._target.name = name;
return super.name(name);
}
withDom(dom) {
this._settings.sendDom = true;
this._target.dom = dom;
return this;
}
withLocation(locationInViewport) {
this._target.locationInViewport = locationInViewport;
return this;
}
/** @internal */
toJSON() {
return {
target: this._target,
settings: utils.general.removeUndefinedProps({
name: this._settings.name,
region: this._settings.region,
matchLevel: this._settings.matchLevel,
useDom: this._settings.useDom,
sendDom: this._settings.sendDom,
enablePatterns: this._settings.enablePatterns,
ignoreDisplacements: this._settings.ignoreDisplacements,
ignoreCaret: this._settings.ignoreCaret,
ignoreRegions: this._settings.ignoreRegions,
layoutRegions: this._settings.layoutRegions,
strictRegions: this._settings.strictRegions,
contentRegions: this._settings.contentRegions,
floatingRegions: this._settings.floatingRegions,
accessibilityRegions: this._settings.accessibilityRegions,
pageId: this._settings.pageId,
userCommandId: this._settings.variationGroupId,
}),
};
}
}
exports.CheckSettingsImageFluent = CheckSettingsImageFluent;
class CheckSettingsAutomationFluent extends CheckSettingsBaseFluent {
constructor(settings, spec) {
super(settings);
this._spec = spec;
}
/** @internal */
static window() {
return new this();
}
/** @internal */
static region(region) {
return new this().region(region);
}
/** @internal */
static frame(contextOrFrame, scrollRootElement) {
return new this().frame(contextOrFrame, scrollRootElement);
}
/** @internal */
static shadow(selector) {
return new this().shadow(selector);
}
/** @internal */
static webview(webview) {
return new this().webview(webview);
}
_isElementReference(value) {
var _a;
const spec = (_a = this._spec) !== null && _a !== void 0 ? _a : this.constructor._spec;
return spec.isElement(value) || this._isSelectorReference(value);
}
_isSelectorReference(selector) {
var _a;
const spec = (_a = this._spec) !== null && _a !== void 0 ? _a : this.constructor._spec;
return (spec.isSelector(selector) ||
utils.types.isString(selector) ||
(utils.types.isPlainObject(selector) &&
utils.types.has(selector, 'selector') &&
(utils.types.isString(selector.selector) || spec.isSelector(selector.selector))));
}
_isFrameReference(value) {
return utils.types.isNumber(value) || utils.types.isString(value) || this._isElementReference(value);
}
region(region) {
if (this._isSelectorReference(region) &&
this._isSelectorReference(this._settings.region) &&
utils.types.has(this._settings.region, 'selector')) {
let lastSelector = this._settings.region;
while (lastSelector.shadow)
lastSelector = lastSelector.shadow;
lastSelector.shadow = region;
return this;
}
return super.region(region);
}
shadow(selector) {
selector = utils.types.has(selector, 'selector') ? selector : { selector };
if (!this._settings.region) {
this._settings.region = selector;
}
else if (this._isSelectorReference(this._settings.region)) {
let lastSelector;
if (utils.types.has(this._settings.region, 'selector')) {
lastSelector = this._settings.region;
while (lastSelector.shadow)
lastSelector = lastSelector.shadow;
}
else {
lastSelector = { selector: this._settings.region };
}
lastSelector.shadow = selector;
}
return this;
}
frame(contextOrFrame, scrollRootElement) {
const context = this._isFrameReference(contextOrFrame) || this._isSelectorReference(contextOrFrame)
? { frame: contextOrFrame, scrollRootElement }
: contextOrFrame;
if (!this._settings.frames)
this._settings.frames = [];
this._settings.frames.push(context);
return this;
}
webview(webview) {
this._settings.webview = webview !== null && webview !== void 0 ? webview : true;
return this;
}
scrollRootElement(scrollRootElement) {
if (this._settings.frames && this._settings.frames.length > 0) {
const context = this._settings.frames[this._settings.frames.length - 1];
context.scrollRootElement = scrollRootElement;
}
this._settings.scrollRootElement = scrollRootElement;
return this;
}
fully(fully = true) {
this._settings.fully = fully;
return this;
}
/** @deprecated */
stitchContent(stitchContent = true) {
return this.fully(stitchContent);
}
disableBrowserFetching(disableBrowserFetching) {
utils.guard.isBoolean(disableBrowserFetching, { name: 'disableBrowserFetching' });
this._settings.disableBrowserFetching = disableBrowserFetching;

@@ -474,18 +476,6 @@ return this;

renderId(renderId) {
utils.guard.isString(renderId, { name: 'renderId' });
this._settings.renderId = renderId;
return this;
}
pageId(pageId) {
utils.guard.isString(pageId, { name: 'pageId' });
this._settings.pageId = pageId;
return this;
}
variationGroupId(variationGroupId) {
utils.guard.isString(variationGroupId, { name: 'variationGroupId' });
this._settings.variationGroupId = variationGroupId;
return this;
}
timeout(timeout) {
utils.guard.isNumber(timeout, { name: 'timeout' });
this._settings.timeout = timeout;

@@ -495,3 +485,2 @@ return this;

waitBeforeCapture(waitBeforeCapture) {
utils.guard.isNumber(waitBeforeCapture, { name: 'waitBeforeCapture' });
this._settings.waitBeforeCapture = waitBeforeCapture;

@@ -504,50 +493,38 @@ return this;

}
webview(option) {
this._settings.webview = option !== null && option !== void 0 ? option : true;
return this;
}
/** @internal */
toObject() {
return this._settings;
}
/** @internal */
toJSON() {
return dropUndefinedProperties({
name: this._settings.name,
region: this._settings.region,
frames: this._settings.frames,
scrollRootElement: this._settings.scrollRootElement,
fully: this._settings.fully,
matchLevel: this._settings.matchLevel,
useDom: this._settings.useDom,
sendDom: this._settings.sendDom,
enablePatterns: this._settings.enablePatterns,
ignoreDisplacements: this._settings.ignoreDisplacements,
ignoreCaret: this._settings.ignoreCaret,
ignoreRegions: this._settings.ignoreRegions,
layoutRegions: this._settings.layoutRegions,
strictRegions: this._settings.strictRegions,
contentRegions: this._settings.contentRegions,
floatingRegions: this._settings.floatingRegions,
accessibilityRegions: this._settings.accessibilityRegions,
disableBrowserFetching: this._settings.disableBrowserFetching,
layoutBreakpoints: this._settings.layoutBreakpoints,
ufgOptions: this._settings.visualGridOptions,
hooks: this._settings.hooks,
pageId: this._settings.pageId,
lazyLoad: this._settings.lazyLoad,
waitBeforeCapture: this._settings.waitBeforeCapture,
retryTimeout: this._settings.timeout,
userCommandId: this._settings.variationGroupId,
webview: this._settings.webview,
});
return {
target: undefined,
settings: utils.general.removeUndefinedProps({
name: this._settings.name,
region: this._settings.region,
frames: this._settings.frames,
webview: this._settings.webview,
scrollRootElement: this._settings.scrollRootElement,
fully: this._settings.fully,
matchLevel: this._settings.matchLevel,
useDom: this._settings.useDom,
sendDom: this._settings.sendDom,
enablePatterns: this._settings.enablePatterns,
ignoreDisplacements: this._settings.ignoreDisplacements,
ignoreCaret: this._settings.ignoreCaret,
ignoreRegions: this._settings.ignoreRegions,
layoutRegions: this._settings.layoutRegions,
strictRegions: this._settings.strictRegions,
contentRegions: this._settings.contentRegions,
floatingRegions: this._settings.floatingRegions,
accessibilityRegions: this._settings.accessibilityRegions,
disableBrowserFetching: this._settings.disableBrowserFetching,
layoutBreakpoints: this._settings.layoutBreakpoints,
ufgOptions: this._settings.visualGridOptions,
hooks: this._settings.hooks,
pageId: this._settings.pageId,
lazyLoad: this._settings.lazyLoad,
waitBeforeCapture: this._settings.waitBeforeCapture,
retryTimeout: this._settings.timeout,
userCommandId: this._settings.variationGroupId,
}),
};
}
/** @internal */
toString() {
return utils.general.toString(this);
}
}
exports.CheckSettingsFluent = CheckSettingsFluent;
function dropUndefinedProperties(object) {
return Object.entries(object).reduce((object, [key, value]) => (value !== undefined ? Object.assign(object, { [key]: value }) : object), {});
}
exports.CheckSettingsAutomationFluent = CheckSettingsAutomationFluent;

@@ -984,3 +984,3 @@ "use strict";

return {
open: dropUndefinedProperties({
open: utils.general.removeUndefinedProps({
serverUrl: this.serverUrl,

@@ -1000,3 +1000,3 @@ apiKey: this.apiKey,

environmentName: this.environmentName,
environment: dropUndefinedProperties({
environment: utils.general.removeUndefinedProps({
hostingApp: this.hostApp,

@@ -1018,3 +1018,3 @@ hostingAppInfo: this.hostAppInfo,

}),
screenshot: dropUndefinedProperties({
screenshot: utils.general.removeUndefinedProps({
fully: this.forceFullPageScreenshot,

@@ -1028,3 +1028,3 @@ scrollRootElement: this.scrollRootElement,

waitBeforeCapture: this.waitBeforeCapture,
normalization: dropUndefinedProperties({
normalization: utils.general.removeUndefinedProps({
cut: this.cut,

@@ -1038,3 +1038,3 @@ rotation: this.rotation,

}),
check: dropUndefinedProperties({
check: utils.general.removeUndefinedProps({
renderers: (_b = this.browsersInfo) === null || _b === void 0 ? void 0 : _b.map(browserInfo => {

@@ -1069,3 +1069,3 @@ if (utils.types.has(browserInfo, 'iosDeviceInfo')) {

}),
close: dropUndefinedProperties({
close: utils.general.removeUndefinedProps({
updateBaselineIfDifferent: this.saveFailedTests,

@@ -1082,4 +1082,1 @@ updateBaselineIfNew: this.saveNewTests,

exports.ConfigurationData = ConfigurationData;
function dropUndefinedProperties(object) {
return Object.entries(object).reduce((object, [key, value]) => (value !== undefined ? Object.assign(object, { [key]: value }) : object), {});
}

@@ -49,3 +49,3 @@ "use strict";

handler: this._handler instanceof LogHandler_1.LogHandlerData ? this._handler.toJSON() : this._handler,
level: this._show ? 'info' : 'silent',
level: this._show || utils.general.getEnvValue('SHOW_LOGS', 'boolean') ? 'info' : 'silent',
label: this._label,

@@ -52,0 +52,0 @@ });

{
"name": "@applitools/eyes-api",
"version": "1.9.2",
"version": "1.10.0",
"keywords": [

@@ -58,5 +58,5 @@ "applitools",

"dependencies": {
"@applitools/core": "1.2.8",
"@applitools/logger": "1.1.28",
"@applitools/utils": "1.3.14"
"@applitools/core": "1.2.9",
"@applitools/logger": "1.1.29",
"@applitools/utils": "1.3.15"
},

@@ -63,0 +63,0 @@ "devDependencies": {

@@ -1,2 +0,3 @@

import type * as core from '@applitools/core';
import { type Logger } from '@applitools/logger';
import { type MaybeArray } from '@applitools/utils';
import { ProxySettings } from './input/ProxySettings';

@@ -9,3 +10,13 @@ declare type BatchCloseOptions = {

};
declare type BatchCloseSpec = Pick<core.Core<unknown, unknown, unknown>, 'closeBatch'>;
declare type BatchCloseSpec = {
closeBatch(options: {
settings: MaybeArray<{
serverUrl?: string;
apiKey?: string;
proxy?: ProxySettings;
batchId: string;
}>;
logger?: Logger;
}): Promise<void>;
};
export declare function closeBatch(spec: BatchCloseSpec): (options: BatchCloseOptions) => Promise<void>;

@@ -12,0 +23,0 @@ export declare class BatchClose {

@@ -1,6 +0,10 @@

import type * as core from '@applitools/core';
/// <reference types="node" />
/// <reference types="node" />
import { CoreSpec, CoreTargetImage } from './Core';
import { EyesSelector } from './input/EyesSelector';
import { SessionType } from './enums/SessionType';
import { StitchMode, StitchModeEnum } from './enums/StitchMode';
import { MatchLevel, MatchLevelEnum } from './enums/MatchLevel';
import { CheckSettings, CheckSettingsFluent } from './input/CheckSettings';
import { CheckSettingsAutomation, CheckSettingsAutomationFluent, CheckSettingsImage, CheckSettingsImageFluent } from './input/CheckSettings';
import { Image } from './input/Image';
import { OCRSettings } from './input/OCRSettings';

@@ -25,6 +29,5 @@ import { VisualLocatorSettings } from './input/VisualLocatorSettings';

import { Logger } from './Logger';
declare type EyesSpec<TDriver = unknown, TElement = unknown, TSelector = unknown> = core.Core<TDriver, TElement, TSelector>;
export declare class Eyes<TDriver = unknown, TElement = unknown, TSelector = unknown> {
protected static readonly _spec: EyesSpec;
protected get _spec(): EyesSpec<TDriver, TElement, TSelector>;
protected static readonly _spec: CoreSpec;
protected get _spec(): CoreSpec<TDriver, TElement, TSelector>;
private _logger;

@@ -91,22 +94,39 @@ private _config;

open(driver: TDriver, appName?: string, testName?: string, viewportSize?: RectangleSize, sessionType?: SessionType): Promise<TDriver>;
open(config?: Configuration<TElement, TSelector>): Promise<void>;
open(appName?: string, testName?: string, viewportSize?: RectangleSize, sessionType?: SessionType): Promise<void>;
check(name: string, checkSettings: CheckSettingsImageFluent | CheckSettingsAutomationFluent<TElement, TSelector>): Promise<MatchResultData>;
check(target: Image, checkSettings?: CheckSettingsImage): Promise<MatchResultData>;
check(checkSettings?: CheckSettingsAutomation<TElement, TSelector>): Promise<MatchResultData>;
/** @deprecated */
checkWindow(name?: string, timeout?: number, fully?: boolean): Promise<MatchResultData>;
/** @deprecated */
checkFrame(element: TElement | core.Selector<TSelector> | string | number, timeout?: number, name?: string): Promise<MatchResultData>;
checkFrame(element: TElement | EyesSelector<TSelector> | string | number, timeout?: number, name?: string): Promise<MatchResultData>;
/** @deprecated */
checkElement(element: TElement, timeout?: number, name?: string): Promise<MatchResultData>;
/** @deprecated */
checkElementBy(selector: core.Selector<TSelector>, timeout?: number, name?: string): Promise<MatchResultData>;
checkElementBy(selector: EyesSelector<TSelector>, timeout?: number, name?: string): Promise<MatchResultData>;
/** @deprecated */
checkRegion(region?: Region, name?: string, timeout?: number): Promise<MatchResultData>;
checkRegion(region: Region, name?: string, timeout?: number): Promise<MatchResultData>;
/** @deprecated */
checkRegion(image: Buffer | URL | string, region: Region, name?: string, ignoreMismatch?: boolean): Promise<MatchResultData>;
/** @deprecated */
checkRegionByElement(element: TElement, name?: string, timeout?: number): Promise<MatchResultData>;
/** @deprecated */
checkRegionBy(selector: core.Selector<TSelector>, name?: string, timeout?: number, fully?: boolean): Promise<MatchResultData>;
checkRegionBy(selector: EyesSelector<TSelector>, name?: string, timeout?: number, fully?: boolean): Promise<MatchResultData>;
/** @deprecated */
checkRegionInFrame(frame: TElement | core.Selector<TSelector> | string | number, selector: core.Selector<TSelector>, timeout?: number, name?: string, fully?: boolean): Promise<MatchResultData>;
check(name: string, checkSettings: CheckSettingsFluent<TElement, TSelector>): Promise<MatchResultData>;
check(checkSettings?: CheckSettings<TElement, TSelector>): Promise<MatchResultData>;
checkRegionInFrame(frame: TElement | EyesSelector<TSelector> | string | number, selector: EyesSelector<TSelector>, timeout?: number, name?: string, fully?: boolean): Promise<MatchResultData>;
/** @deprecated */
checkImage(image: Buffer | URL | string, name?: string, ignoreMismatch?: boolean): Promise<MatchResultData>;
locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Region[]>>;
extractTextRegions<TPattern extends string>(target: CoreTargetImage, settings: OCRSettings<TPattern>): Promise<Record<TPattern, TextRegion[]>>;
/** @deprecated */
extractTextRegions<TPattern extends string>(settingsWithImage: OCRSettings<TPattern> & {
image: CoreTargetImage['image'];
}): Promise<Record<TPattern, TextRegion[]>>;
extractTextRegions<TPattern extends string>(settings: OCRSettings<TPattern>): Promise<Record<TPattern, TextRegion[]>>;
extractText(target: CoreTargetImage, settings: OCRRegion<TElement, TSelector>[]): Promise<string[]>;
/** @deprecated */
extractText(settingsWithImage: (OCRRegion<never, never> & {
image: CoreTargetImage['image'];
})[]): Promise<string[]>;
extractText(settings: OCRRegion<TElement, TSelector>[]): Promise<string[]>;

@@ -123,4 +143,4 @@ close(throwErr?: boolean): Promise<TestResultsData>;

setViewportSize(size: RectangleSize): Promise<void>;
getScrollRootElement(): TElement | core.Selector<TSelector>;
setScrollRootElement(scrollRootElement: TElement | core.Selector<TSelector>): void;
getScrollRootElement(): TElement | EyesSelector<TSelector>;
setScrollRootElement(scrollRootElement: TElement | EyesSelector<TSelector>): void;
setLogHandler(handler: LogHandlerData | LogHandler): void;

@@ -227,2 +247,1 @@ getLogHandler(): LogHandlerData;

}
export {};

@@ -25,3 +25,3 @@ export { AccessibilityGuidelinesVersion as AccessibilityGuidelinesVersionPlain, AccessibilityGuidelinesVersionEnum as AccessibilityGuidelinesVersion, } from './enums/AccessibilityGuidelinesVersion';

export { BatchInfo as BatchInfoPlain, BatchInfoData as BatchInfo } from './input/BatchInfo';
export { CheckSettings as CheckSettingsPlain, CheckSettingsFluent as CheckSettings, Target } from './input/CheckSettings';
export { CheckSettingsImage as CheckSettingsImagePlain, CheckSettingsImageFluent as CheckSettingsImage, CheckSettingsAutomation as CheckSettingsAutomationPlain, CheckSettingsAutomationFluent as CheckSettingsAutomation, TargetImage, TargetAutomation, } from './input/CheckSettings';
export { Configuration as ConfigurationPlain, ConfigurationData as Configuration } from './input/Configuration';

@@ -56,3 +56,3 @@ export { CutProvider as CutProviderPlain, CutProviderData as CutProvider, FixedCutProviderData as FixedCutProvider, UnscaledFixedCutProviderData as UnscaledFixedCutProvider, } from './input/CutProvider';

export { ValidationResult as ValidationResultPlain, ValidationResultData as ValidationResult, } from './output/ValidationResult';
export type { Selector as EyesSelector } from '@applitools/core';
export { EyesSelector } from './input/EyesSelector';
export { Logger } from './Logger';

@@ -59,0 +59,0 @@ export { Eyes } from './Eyes';

@@ -1,9 +0,14 @@

import type * as core from '@applitools/core';
/// <reference types="node" />
/// <reference types="node" />
import { CoreCheckSettingsAutomation, CoreCheckSettingsImage } from '../Core';
import { EyesSelector } from './EyesSelector';
import { Image } from './Image';
import { AccessibilityRegionType } from '../enums/AccessibilityRegionType';
import { MatchLevel } from '../enums/MatchLevel';
import { Region, LegacyRegion } from './Region';
import { Location } from './Location';
import { LazyLoadOptions } from './LazyLoadOptions';
declare type RegionReference<TElement, TSelector> = Region | ElementReference<TElement, TSelector>;
declare type ElementReference<TElement, TSelector> = TElement | SelectorReference<TSelector>;
declare type SelectorReference<TSelector> = core.Selector<TSelector>;
declare type SelectorReference<TSelector> = EyesSelector<TSelector>;
declare type FrameReference<TElement, TSelector> = ElementReference<TElement, TSelector> | string | number;

@@ -14,4 +19,4 @@ declare type ContextReference<TElement, TSelector> = {

};
declare type CodedRegionReference<TElement, TSelector> = {
region: RegionReference<TElement, TSelector>;
declare type CodedRegion<TRegion = never> = {
region: Region | TRegion;
padding?: number | {

@@ -25,3 +30,3 @@ top: number;

};
declare type FloatingRegionReference<TElement, TSelector> = CodedRegionReference<TElement, TSelector> & {
declare type CodedFloatingRegion<TRegion = never> = CodedRegion<TRegion> & {
offset?: {

@@ -35,3 +40,3 @@ top?: number;

/** @deprecated */
declare type LegacyFloatingRegionReference<TElement, TSelector> = CodedRegionReference<TElement, TSelector> & {
declare type LegacyCodedFloatingRegion<TRegion = never> = CodedRegion<TRegion> & {
maxUpOffset?: number;

@@ -42,15 +47,8 @@ maxDownOffset?: number;

};
declare type AccessibilityRegionReference<TElement, TSelector> = CodedRegionReference<TElement, TSelector> & {
declare type CodedAccessibilityRegion<TRegion = never> = CodedRegion<TRegion> & {
type?: AccessibilityRegionType;
};
declare type CheckSettingsSpec<TElement = unknown, TSelector = unknown> = {
isElement(value: any): value is TElement;
isSelector(value: any): value is TSelector;
};
export declare type CheckSettings<TElement, TSelector> = {
export declare type CheckSettingsBase<TRegion = never> = {
name?: string;
region?: RegionReference<TElement, TSelector>;
frames?: (ContextReference<TElement, TSelector> | FrameReference<TElement, TSelector>)[];
scrollRootElement?: ElementReference<TElement, TSelector>;
fully?: boolean;
region?: Region | TRegion;
matchLevel?: MatchLevel;

@@ -61,9 +59,19 @@ useDom?: boolean;

ignoreDisplacements?: boolean;
ignoreMismatch?: boolean;
ignoreCaret?: boolean;
ignoreRegions?: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector>)[];
layoutRegions?: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector>)[];
strictRegions?: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector>)[];
contentRegions?: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector>)[];
floatingRegions?: (FloatingRegionReference<TElement, TSelector> | LegacyFloatingRegionReference<TElement, TSelector> | RegionReference<TElement, TSelector>)[];
accessibilityRegions?: (AccessibilityRegionReference<TElement, TSelector> | RegionReference<TElement, TSelector>)[];
ignoreRegions?: (CodedRegion<TRegion> | Region | TRegion)[];
layoutRegions?: (CodedRegion<TRegion> | Region | TRegion)[];
strictRegions?: (CodedRegion<TRegion> | Region | TRegion)[];
contentRegions?: (CodedRegion<TRegion> | Region | TRegion)[];
floatingRegions?: (CodedFloatingRegion<TRegion> | LegacyCodedFloatingRegion<TRegion> | Region | TRegion)[];
accessibilityRegions?: (CodedAccessibilityRegion<TRegion> | Region | TRegion)[];
pageId?: string;
variationGroupId?: string;
};
export declare type CheckSettingsImage = CheckSettingsBase;
export declare type CheckSettingsAutomation<TElement, TSelector> = CheckSettingsBase<RegionReference<TElement, TSelector>> & {
frames?: (ContextReference<TElement, TSelector> | FrameReference<TElement, TSelector>)[];
webview?: boolean | string;
scrollRootElement?: ElementReference<TElement, TSelector>;
fully?: boolean;
disableBrowserFetching?: boolean;

@@ -78,76 +86,41 @@ layoutBreakpoints?: boolean | number[];

renderId?: string;
pageId?: string;
variationGroupId?: string;
timeout?: number;
waitBeforeCapture?: number;
lazyLoad?: boolean | LazyLoadOptions;
webview?: boolean | string;
};
export declare type Target<TElement, TSelector> = {
window(): CheckSettingsFluent<TElement, TSelector>;
region(region: RegionReference<TElement, TSelector> | LegacyRegion): CheckSettingsFluent<TElement, TSelector>;
frame(context: ContextReference<TElement, TSelector>): CheckSettingsFluent<TElement, TSelector>;
frame(frame: FrameReference<TElement, TSelector>, scrollRootElement?: ElementReference<TElement, TSelector>): CheckSettingsFluent<TElement, TSelector>;
shadow(selector: SelectorReference<TSelector>): CheckSettingsFluent<TSelector>;
webview(option?: string | boolean): CheckSettingsFluent<TElement, TSelector>;
};
export declare class CheckSettingsFluent<TElement = unknown, TSelector = unknown> {
/** @internal */
static window(): CheckSettingsFluent;
/** @internal */
static region(region: unknown): CheckSettingsFluent;
/** @internal */
static frame(contextOrFrame: unknown, scrollRootElement?: unknown): CheckSettingsFluent;
/** @internal */
static shadow(selector: unknown): CheckSettingsFluent;
/** @internal */
static webview(option: string | boolean | null): CheckSettingsFluent;
protected static readonly _spec: CheckSettingsSpec<any, any>;
private _spec;
private _settings;
private _isFrameReference;
private _isRegionReference;
private _isElementReference;
private _isSelectorReference;
constructor(settings?: CheckSettings<TElement, TSelector> | CheckSettingsFluent<TElement, TSelector>, spec?: CheckSettingsSpec<TElement, TSelector>);
/** @undocumented */
export declare class CheckSettingsBaseFluent<TRegion = never> {
protected _settings: CheckSettingsBase<TRegion>;
constructor(settings?: CheckSettingsBase<TRegion> | CheckSettingsBaseFluent<TRegion>);
region(region: Region | LegacyRegion | TRegion): this;
name(name: string): this;
withName(name: string): this;
region(region: RegionReference<TElement, TSelector> | LegacyRegion): this;
shadow(selector: SelectorReference<TSelector>): this;
frame(context: ContextReference<TElement, TSelector>): this;
frame(frame: FrameReference<TElement, TSelector>, scrollRootElement?: ElementReference<TElement, TSelector>): this;
ignoreRegion(region: RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion): this;
ignoreRegions(...regions: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion)[]): this;
ignoreRegion(region: CodedRegion<TRegion> | Region | LegacyRegion | TRegion): this;
ignoreRegions(...regions: (CodedRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
/** @deprecated */
ignore(region: RegionReference<TElement, TSelector> | LegacyRegion): this;
ignore(region: Region | LegacyRegion | TRegion): this;
/** @deprecated */
ignores(...regions: (RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
layoutRegion(region: RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion): this;
layoutRegions(...regions: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion)[]): this;
strictRegion(region: RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion): this;
strictRegions(...regions: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion)[]): this;
contentRegion(region: RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion): this;
contentRegions(...regions: (RegionReference<TElement, TSelector> | CodedRegionReference<TElement, TSelector> | LegacyRegion)[]): this;
floatingRegion(region: FloatingRegionReference<TElement, TSelector>): this;
floatingRegion(region: LegacyFloatingRegionReference<TElement, TSelector>): this;
floatingRegion(region: RegionReference<TElement, TSelector> | LegacyRegion, maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): this;
floatingRegions(...regions: (FloatingRegionReference<TElement, TSelector> | RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
floatingRegions(maxOffset: number, ...regions: (RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
ignores(...regions: (Region | LegacyRegion | TRegion)[]): this;
layoutRegion(region: CodedRegion<TRegion> | Region | LegacyRegion | TRegion): this;
layoutRegions(...regions: (CodedRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
strictRegion(region: CodedRegion<TRegion> | Region | LegacyRegion | TRegion): this;
strictRegions(...regions: (CodedRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
contentRegion(region: CodedRegion<TRegion> | Region | LegacyRegion | TRegion): this;
contentRegions(...regions: (CodedRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
floatingRegion(region: CodedFloatingRegion<TRegion>): this;
floatingRegion(region: LegacyCodedFloatingRegion<TRegion>): this;
floatingRegion(region: Region | LegacyRegion | TRegion, maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): this;
floatingRegions(...regions: (CodedFloatingRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
floatingRegions(maxOffset: number, ...regions: (Region | LegacyRegion | TRegion)[]): this;
/** @deprecated */
floating(region: FloatingRegionReference<TElement, TSelector>): this;
floating(region: CodedFloatingRegion<TRegion>): this;
/** @deprecated */
floating(region: RegionReference<TElement, TSelector> | LegacyRegion): this;
floating(region: Region | LegacyRegion | TRegion): this;
/** @deprecated */
floatings(...regions: (FloatingRegionReference<TElement, TSelector> | RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
floatings(...regions: (CodedFloatingRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
/** @deprecated */
floatings(maxOffset: number, ...regions: (RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
accessibilityRegion(region: AccessibilityRegionReference<TElement, TSelector>): this;
accessibilityRegion(region: RegionReference<TElement, TSelector> | LegacyRegion, type?: AccessibilityRegionType): this;
accessibilityRegions(...regions: (AccessibilityRegionReference<TElement, TSelector> | RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
accessibilityRegions(type: AccessibilityRegionType, ...regions: (RegionReference<TElement, TSelector> | LegacyRegion)[]): this;
scrollRootElement(scrollRootElement: ElementReference<TElement, TSelector>): this;
fully(fully?: boolean): this;
/** @deprecated */
stitchContent(stitchContent?: boolean): this;
floatings(maxOffset: number, ...regions: (Region | LegacyRegion | TRegion)[]): this;
accessibilityRegion(region: CodedAccessibilityRegion<TRegion>): this;
accessibilityRegion(region: Region | LegacyRegion | TRegion, type?: AccessibilityRegionType): this;
accessibilityRegions(...regions: (CodedAccessibilityRegion<TRegion> | Region | LegacyRegion | TRegion)[]): this;
accessibilityRegions(type: AccessibilityRegionType, ...regions: (Region | LegacyRegion | TRegion)[]): this;
matchLevel(matchLevel: MatchLevel): this;

@@ -158,7 +131,73 @@ layout(): this;

content(): this;
useDom(useDom?: boolean): this;
sendDom(sendDom?: boolean): this;
enablePatterns(enablePatterns?: boolean): this;
ignoreDisplacements(ignoreDisplacements?: boolean): this;
ignoreCaret(ignoreCaret?: boolean): this;
useDom(useDom?: boolean): this;
sendDom(sendDom?: boolean): this;
pageId(pageId: string): this;
variationGroupId(variationGroupId: string): this;
/** @internal */
toObject(): CheckSettingsBase<TRegion>;
/** @internal */
toString(): string;
}
export declare class CheckSettingsImageFluent extends CheckSettingsBaseFluent {
/** @internal */
static image(image: Buffer | URL | string): CheckSettingsImageFluent;
/** @internal */
static buffer(imageBuffer: Buffer): CheckSettingsImageFluent;
/** @internal */
static base64(imageBase64: string): CheckSettingsImageFluent;
/** @internal */
static path(imagePath: string): CheckSettingsImageFluent;
/** @internal */
static url(imageUrl: URL | string): CheckSettingsImageFluent;
protected _settings: CheckSettingsImage;
protected _target: Image;
constructor(settings?: CheckSettingsImage | CheckSettingsImageFluent, target?: Image);
image(image: Buffer | URL | string): this;
buffer(imageBuffer: Buffer): this;
base64(imageBase64: Buffer): this;
path(imagePath: string): this;
url(imageUrl: URL | string): this;
name(name: string): this;
withDom(dom: string): this;
withLocation(locationInViewport: Location): this;
/** @internal */
toJSON(): {
target: Image;
settings: CoreCheckSettingsImage;
};
}
declare type CheckSettingsAutomationSpec<TElement = unknown, TSelector = unknown> = {
isElement(value: any): value is TElement;
isSelector(value: any): value is TSelector;
};
export declare class CheckSettingsAutomationFluent<TElement = unknown, TSelector = unknown> extends CheckSettingsBaseFluent<RegionReference<TElement, TSelector>> {
/** @internal */
static window(): CheckSettingsAutomationFluent;
/** @internal */
static region(region: unknown): CheckSettingsAutomationFluent;
/** @internal */
static frame(contextOrFrame: unknown, scrollRootElement?: unknown): CheckSettingsAutomationFluent;
/** @internal */
static shadow(selector: unknown): CheckSettingsAutomationFluent;
/** @internal */
static webview(webview: string | boolean | null): CheckSettingsAutomationFluent;
protected _settings: CheckSettingsAutomation<TElement, TSelector>;
protected static readonly _spec: CheckSettingsAutomationSpec<any, any>;
protected _spec: CheckSettingsAutomationSpec<TElement, TSelector>;
protected _isElementReference(value: any): value is ElementReference<TSelector, TElement>;
protected _isSelectorReference(selector: any): selector is SelectorReference<TSelector>;
protected _isFrameReference(value: any): value is FrameReference<TSelector, TElement>;
constructor(settings?: CheckSettingsAutomation<TElement, TSelector> | CheckSettingsAutomationFluent<TElement, TSelector>, spec?: CheckSettingsAutomationSpec<TElement, TSelector>);
region(region: RegionReference<TElement, TSelector>): this;
shadow(selector: SelectorReference<TSelector>): this;
frame(context: ContextReference<TElement, TSelector>): this;
frame(frame: FrameReference<TElement, TSelector>, scrollRootElement?: ElementReference<TElement, TSelector>): this;
webview(webview?: string | boolean): this;
scrollRootElement(scrollRootElement: ElementReference<TElement, TSelector>): this;
fully(fully?: boolean): this;
/** @deprecated */
stitchContent(stitchContent?: boolean): this;
disableBrowserFetching(disableBrowserFetching: boolean): this;

@@ -181,15 +220,27 @@ layoutBreakpoints(layoutBreakpoints?: boolean | number[]): this;

renderId(renderId: string): this;
pageId(pageId: string): this;
variationGroupId(variationGroupId: string): this;
timeout(timeout: number): this;
waitBeforeCapture(waitBeforeCapture: number): this;
lazyLoad(options?: LazyLoadOptions | boolean): this;
webview(option?: string | boolean): this;
/** @internal */
toObject(): CheckSettings<TElement, TSelector>;
/** @internal */
toJSON(): core.CheckSettings<TElement, TSelector, 'classic' | 'ufg'>;
/** @internal */
toString(): string;
toJSON(): {
target: undefined;
settings: CoreCheckSettingsAutomation<TElement, TSelector>;
};
}
export declare type TargetImage = {
image(image: Buffer | URL | string): CheckSettingsImageFluent;
buffer(imageBuffer: Buffer): CheckSettingsImageFluent;
base64(imageBase64: string): CheckSettingsImageFluent;
path(imagePath: string): CheckSettingsImageFluent;
url(imageUrl: URL | string): CheckSettingsImageFluent;
};
export declare type TargetAutomation<TElement, TSelector> = {
window(): CheckSettingsAutomationFluent<TElement, TSelector>;
region(region: RegionReference<TElement, TSelector> | LegacyRegion): CheckSettingsAutomationFluent<TElement, TSelector>;
frame(context: ContextReference<TElement, TSelector>): CheckSettingsAutomationFluent<TElement, TSelector>;
frame(frame: FrameReference<TElement, TSelector>, scrollRootElement?: ElementReference<TElement, TSelector>): CheckSettingsAutomationFluent<TElement, TSelector>;
shadow(selector: SelectorReference<TSelector>): CheckSettingsAutomationFluent<TSelector>;
webview(webview?: string | boolean): CheckSettingsAutomationFluent<TElement, TSelector>;
};
export declare type Target<TElement, TSelector> = TargetImage & TargetAutomation<TElement, TSelector>;
export {};

@@ -1,2 +0,3 @@

import type * as core from '@applitools/core';
import { EyesSelector } from './EyesSelector';
import { CoreConfig } from '../Core';
import { SessionType, SessionTypeEnum } from '../enums/SessionType';

@@ -87,3 +88,3 @@ import { StitchMode, StitchModeEnum } from '../enums/StitchMode';

stitchOverlap?: number;
scrollRootElement?: TElement | core.Selector<TSelector>;
scrollRootElement?: TElement | EyesSelector<TSelector>;
cut?: CutProvider;

@@ -340,6 +341,6 @@ rotation?: ImageRotation;

setStitchOverlap(stitchOverlap: number): this;
get scrollRootElement(): TElement | core.Selector<TSelector>;
set scrollRootElement(scrollRootElement: TElement | core.Selector<TSelector>);
getScrollRootElement(): TElement | core.Selector<TSelector>;
setScrollRootElement(scrollRootElement: TElement | core.Selector<TSelector>): this;
get scrollRootElement(): TElement | EyesSelector<TSelector>;
set scrollRootElement(scrollRootElement: TElement | EyesSelector<TSelector>);
getScrollRootElement(): TElement | EyesSelector<TSelector>;
setScrollRootElement(scrollRootElement: TElement | EyesSelector<TSelector>): this;
get cut(): CutProvider;

@@ -407,3 +408,3 @@ set cut(cut: CutProvider);

/** @internal */
toJSON(): core.Config<TElement, TSelector, 'classic'> & core.Config<TElement, TSelector, 'ufg'>;
toJSON(): CoreConfig<TElement, TSelector>;
/** @internal */

@@ -410,0 +411,0 @@ toString(): string;

@@ -1,5 +0,5 @@

import type * as core from '@applitools/core';
import { EyesSelector } from './EyesSelector';
import { Region } from './Region';
export declare type OCRRegion<TElement = unknown, TSelector = unknown> = {
target: Region | TElement | core.Selector<TSelector>;
target: Region | TElement | EyesSelector<TSelector>;
hint?: string;

@@ -6,0 +6,0 @@ minMatch?: number;

@@ -1,2 +0,2 @@

import type * as core from '@applitools/core';
import { CoreSpec, CoreTestResultContainer } from '../Core';
import { TestResults, TestResultsData } from './TestResults';

@@ -15,4 +15,4 @@ import { AndroidDeviceInfo, ChromeEmulationInfo, ChromeEmulationInfoLegacy, DesktopBrowserInfo, IOSDeviceInfo } from '../input/RenderInfo';

constructor(options?: {
container: core.TestResultContainer<'classic' | 'ufg'>;
deleteTest: core.Core<unknown, unknown, unknown>['deleteTest'];
container: CoreTestResultContainer;
deleteTest: CoreSpec['deleteTest'];
});

@@ -28,3 +28,3 @@ get testResults(): TestResults;

/** @internal */
toJSON(): core.TestResultContainer<'classic' | 'ufg'>;
toJSON(): CoreTestResultContainer;
/** @internal */

@@ -31,0 +31,0 @@ toString(): string;

@@ -1,2 +0,2 @@

import type * as core from '@applitools/core';
import { CoreSpec, CoreTestResult } from '../Core';
import { TestResultsStatus, TestResultsStatusEnum } from '../enums/TestResultsStatus';

@@ -44,4 +44,4 @@ import { RectangleSize, RectangleSizeData } from '../input/RectangleSize';

constructor(options?: {
result?: core.TestResult<'classic' | 'ufg'>;
deleteTest?: core.Core<unknown, unknown, unknown>['deleteTest'];
result?: CoreTestResult;
deleteTest?: CoreSpec['deleteTest'];
});

@@ -175,5 +175,5 @@ get id(): string;

/** @internal */
toJSON(): core.TestResult<'classic' | 'ufg'>;
toJSON(): CoreTestResult;
/** @internal */
toString(): string;
}

@@ -1,2 +0,2 @@

import type * as core from '@applitools/core';
import { CoreSpec, CoreTestResultContainer, CoreTestResultSummary } from '../Core';
import { TestResultContainer, TestResultContainerData } from './TestResultContainer';

@@ -9,4 +9,4 @@ export declare type TestResultsSummary = Iterable<TestResultContainer>;

constructor(options?: {
summary: core.TestResultSummary<'classic' | 'ufg'>;
deleteTest: core.Core<unknown, unknown, unknown>['deleteTest'];
summary: CoreTestResultSummary;
deleteTest: CoreSpec['deleteTest'];
});

@@ -16,5 +16,5 @@ getAllResults(): TestResultContainerData[];

/** @internal */
toJSON(): core.TestResultContainer<'classic' | 'ufg'>[];
toJSON(): CoreTestResultContainer[];
/** @internal */
toString(): string;
}

@@ -1,2 +0,2 @@

import type * as core from '@applitools/core';
import { CoreSpec, CoreEyes, CoreConfig } from './Core';
import { type Logger } from '@applitools/logger';

@@ -6,5 +6,4 @@ import { RunnerOptions, RunnerOptionsFluent } from './input/RunnerOptions';

import { Eyes } from './Eyes';
declare type EyesRunnerSpec<TDriver = unknown, TElement = unknown, TSelector = unknown> = core.Core<TDriver, TElement, TSelector>;
export declare abstract class EyesRunner {
protected _spec: EyesRunnerSpec<unknown, unknown, unknown>;
protected _spec: CoreSpec;
private _manager;

@@ -15,10 +14,10 @@ private _eyes;

/** @internal */
attach<TDriver, TElement, TSelector>(eyes: Eyes<TDriver, TElement, TSelector>, spec: EyesRunnerSpec<TDriver, TElement, TSelector>): void;
attach<TDriver, TElement, TSelector>(eyes: Eyes<TDriver, TElement, TSelector>, spec: CoreSpec<TDriver, TElement, TSelector>): void;
/** @internal */
openEyes<TDriver, TElement, TSelector>(options: {
target: TDriver;
config?: core.Config<TElement, TSelector, 'classic' | 'ufg'>;
config?: CoreConfig<TElement, TSelector>;
logger?: Logger;
on?: (name: string, data?: Record<string, any>) => void;
}): Promise<core.Eyes<TDriver, TElement, TSelector, 'classic' | 'ufg'>>;
}): Promise<CoreEyes<TDriver, TElement, TSelector>>;
getAllTestResults(throwErr?: boolean): Promise<TestResultsSummaryData>;

@@ -52,2 +51,1 @@ }

}
export {};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc