@applitools/core-base
Advanced tools
Comparing version 1.1.32 to 1.1.33
@@ -30,3 +30,3 @@ "use strict"; | ||
return async function closeBatch({ settings, logger = defaultLogger, }) { | ||
logger === null || logger === void 0 ? void 0 : logger.log('Command "closeBatch" is called with settings', settings); | ||
logger.log('Command "closeBatch" is called with settings', settings); | ||
settings = utils.types.isArray(settings) ? settings : [settings]; | ||
@@ -33,0 +33,0 @@ const results = await Promise.allSettled(settings.map(settings => (settings.batchId ? requests.closeBatch({ settings, logger }) : null))); |
@@ -10,5 +10,5 @@ "use strict"; | ||
const delete_test_1 = require("./delete-test"); | ||
function makeCore({ agentId = 'core-base', cwd = process.cwd(), logger }) { | ||
function makeCore({ agentId = 'core-base', cwd = process.cwd(), logger: defaultLogger }) { | ||
var _a; | ||
logger = (_a = logger === null || logger === void 0 ? void 0 : logger.extend({ label: 'core-base' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-base' }); | ||
const logger = (_a = defaultLogger === null || defaultLogger === void 0 ? void 0 : defaultLogger.extend({ label: 'core-base' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-base' }); | ||
logger.log(`Core is initialized in directory ${cwd} for agent ${agentId}`); | ||
@@ -15,0 +15,0 @@ const coreRequests = (0, requests_1.makeCoreRequests)({ agentId, logger }); |
@@ -36,24 +36,22 @@ "use strict"; | ||
function makeOpenEyes({ requests, cwd = process.cwd(), logger: defaultLogger }) { | ||
return async function openEyes({ settings, logger = defaultLogger }) { | ||
return async function openEyes({ settings, logger = defaultLogger, }) { | ||
var _a; | ||
logger.log('Command "openEyes" is called with settings', settings); | ||
if (!settings.ignoreGitBranching) { | ||
if (!settings.gitBranchingTimestamp) { | ||
let branches = { branchName: settings.branchName, parentBranchName: settings.parentBranchName }; | ||
try { | ||
if (((_a = settings.batch) === null || _a === void 0 ? void 0 : _a.id) && | ||
!settings.batch.id.startsWith('generated') && | ||
!branches.branchName && | ||
!branches.parentBranchName) { | ||
branches = await requests.getBatchBranches({ settings: { ...settings, batchId: settings.batch.id } }); | ||
} | ||
if (branches.branchName && branches.parentBranchName && branches.branchName !== branches.parentBranchName) { | ||
settings.gitBranchingTimestamp = await (0, extract_branching_timestamp_1.extractBranchingTimestamp)(branches, { cwd }); | ||
logger.log('Branching timestamp successfully extracted', settings.gitBranchingTimestamp); | ||
} | ||
if (!settings.ignoreGitBranching && !settings.gitBranchingTimestamp) { | ||
let branchName = settings.branchName; | ||
let parentBranchName = settings.parentBranchName; | ||
try { | ||
if (!branchName && !parentBranchName && ((_a = settings.batch) === null || _a === void 0 ? void 0 : _a.id) && !settings.batch.id.startsWith('generated')) { | ||
const branches = await requests.getBatchBranches({ settings: { ...settings, batchId: settings.batch.id } }); | ||
branchName = branches.branchName; | ||
parentBranchName = branches.parentBranchName; | ||
} | ||
catch (err) { | ||
logger.error('Error during extracting merge timestamp', err); | ||
if (branchName && parentBranchName && branchName !== parentBranchName) { | ||
settings.gitBranchingTimestamp = await (0, extract_branching_timestamp_1.extractBranchingTimestamp)({ branchName, parentBranchName }, { cwd }); | ||
logger.log('Branching timestamp successfully extracted', settings.gitBranchingTimestamp); | ||
} | ||
} | ||
catch (err) { | ||
logger.error('Error during extracting merge timestamp', err); | ||
} | ||
} | ||
@@ -68,8 +66,8 @@ else { | ||
check: utils.general.wrap((0, check_1.makeCheck)({ requests: eyesRequests, logger }), async (check, options) => { | ||
var _a, _b, _c; | ||
var _d; | ||
const index = (_a = options.settings) === null || _a === void 0 ? void 0 : _a.stepIndex; | ||
(_b = queue[index]) !== null && _b !== void 0 ? _b : (queue[index] = utils.promises.makeControlledPromise()); | ||
var _a, _b, _c, _d; | ||
var _e; | ||
const index = (_b = (_a = options.settings) === null || _a === void 0 ? void 0 : _a.stepIndex) !== null && _b !== void 0 ? _b : -1; | ||
(_c = queue[index]) !== null && _c !== void 0 ? _c : (queue[index] = utils.promises.makeControlledPromise()); | ||
if (index > 0) | ||
await Promise.race([((_c = queue[_d = index - 1]) !== null && _c !== void 0 ? _c : (queue[_d] = utils.promises.makeControlledPromise())), aborted]); | ||
await Promise.race([((_d = queue[_e = index - 1]) !== null && _d !== void 0 ? _d : (queue[_e] = utils.promises.makeControlledPromise())), aborted]); | ||
return Promise.race([check(options), aborted]).finally(queue[index].resolve); | ||
@@ -76,0 +74,0 @@ }), |
@@ -52,3 +52,3 @@ "use strict"; | ||
{ | ||
timeout: [].concat(Array(5).fill(2000) /* 5x2s */, Array(4).fill(5000) /* 4x5s */, 10000 /* 10s */), | ||
timeout: [...Array(5).fill(2000) /* 5x2s */, ...Array(4).fill(5000) /* 4x5s */, 10000 /* 10s */], | ||
statuses: [503], | ||
@@ -68,3 +68,3 @@ }, | ||
var _a; | ||
const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
const logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
let requestId = request.headers.get('x-applitools-eyes-client-request-id'); | ||
@@ -75,3 +75,3 @@ if (!requestId) { | ||
} | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options.name}" [${requestId}] will be sent to the address "[${request.method}]${request.url}" with body`, options.body); | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options === null || options === void 0 ? void 0 : options.name}" [${requestId}] will be sent to the address "[${request.method}]${request.url}" with body`, options === null || options === void 0 ? void 0 : options.body); | ||
}, | ||
@@ -87,11 +87,11 @@ beforeRetry({ request, attempt }) { | ||
var _a; | ||
const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
const logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
const requestId = request.headers.get('x-applitools-eyes-client-request-id'); | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options.name}" [${requestId}] that was sent to the address "[${request.method}]${request.url}" respond with ${response.statusText}(${response.status})`, !response.ok ? `and body ${JSON.stringify(await response.clone().text())}` : ''); | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options === null || options === void 0 ? void 0 : options.name}" [${requestId}] that was sent to the address "[${request.method}]${request.url}" respond with ${response.statusText}(${response.status})`, !response.ok ? `and body ${JSON.stringify(await response.clone().text())}` : ''); | ||
}, | ||
afterError({ request, error, options }) { | ||
var _a; | ||
const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
const logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : defaultLogger; | ||
const requestId = request.headers.get('x-applitools-eyes-client-request-id'); | ||
logger === null || logger === void 0 ? void 0 : logger.error(`Request "${options.name}" [${requestId}] that was sent to the address "[${request.method}]${request.url}" failed with error`, error); | ||
logger === null || logger === void 0 ? void 0 : logger.error(`Request "${options === null || options === void 0 ? void 0 : options.name}" [${requestId}] that was sent to the address "[${request.method}]${request.url}" failed with error`, error); | ||
}, | ||
@@ -103,5 +103,7 @@ }; | ||
async afterResponse({ request, response, options }) { | ||
const { expected, name } = options; | ||
if (expected && (utils.types.isArray(expected) ? !expected.includes(response.status) : expected !== response.status)) { | ||
throw new Error(`Request "${name}" that was sent to the address "[${request.method}]${request.url}" failed due to unexpected status ${response.statusText}(${response.status})`); | ||
if ((options === null || options === void 0 ? void 0 : options.expected) && | ||
(utils.types.isArray(options === null || options === void 0 ? void 0 : options.expected) | ||
? !options.expected.includes(response.status) | ||
: options.expected !== response.status)) { | ||
throw new Error(`Request "${options === null || options === void 0 ? void 0 : options.name}" that was sent to the address "[${request.method}]${request.url}" failed due to unexpected status ${response.statusText}(${response.status})`); | ||
} | ||
@@ -124,9 +126,9 @@ }, | ||
// polling for result | ||
const pollResponse = await req(response.headers.get('Location'), (0, req_1.mergeOptions)(options, { | ||
const pollResponse = await req(response.headers.get('Location'), (0, req_1.mergeOptions)(options !== null && options !== void 0 ? options : {}, { | ||
method: 'GET', | ||
body: null, | ||
expected: null, | ||
body: undefined, | ||
expected: undefined, | ||
retry: { | ||
statuses: [200], | ||
timeout: [].concat(Array(5).fill(1000) /* 5x1s */, Array(5).fill(2000) /* 5x2s */, 5000 /* 5s */), | ||
timeout: [...Array(5).fill(1000) /* 5x1s */, ...Array(5).fill(2000) /* 5x2s */, 5000 /* 5s */], | ||
}, | ||
@@ -142,9 +144,9 @@ hooks: { | ||
// getting result of the initial request | ||
const resultResponse = await req(pollResponse.headers.get('Location'), (0, req_1.mergeOptions)(options, { | ||
const resultResponse = await req(pollResponse.headers.get('Location'), (0, req_1.mergeOptions)(options !== null && options !== void 0 ? options : {}, { | ||
method: 'DELETE', | ||
expected: null, | ||
expected: undefined, | ||
hooks: { | ||
beforeRetry({ response, stop }) { | ||
// if the long request is blocked due to concurrency the whole long request should start over | ||
if (response.status === 503) | ||
if ((response === null || response === void 0 ? void 0 : response.status) === 503) | ||
return stop; | ||
@@ -151,0 +153,0 @@ }, |
@@ -31,5 +31,5 @@ "use strict"; | ||
const utils = __importStar(require("@applitools/utils")); | ||
const to_self_healing_report_1 = require("../utils/to-self-healing-report"); | ||
function makeCoreRequests({ agentId: defaultAgentId, fetch, logger: defaultLogger, }) { | ||
defaultLogger !== null && defaultLogger !== void 0 ? defaultLogger : (defaultLogger = (0, logger_1.makeLogger)()); | ||
function makeCoreRequests({ agentId: defaultAgentId, fetch, logger, }) { | ||
var _a; | ||
const defaultLogger = (_a = logger === null || logger === void 0 ? void 0 : logger.extend({ label: 'core-requests' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-requests' }); | ||
const getAccountInfoWithCache = utils.general.cachify(getAccountInfo, ([{ settings }]) => { | ||
@@ -50,3 +50,3 @@ return [settings.serverUrl, settings.apiKey, settings.proxy]; | ||
}; | ||
async function openEyes({ settings, logger = defaultLogger }) { | ||
async function openEyes({ settings, logger = defaultLogger, }) { | ||
var _a, _b, _c; | ||
@@ -86,3 +86,3 @@ const agentId = `${defaultAgentId} ${settings.agentId ? `[${settings.agentId}]` : ''}`.trim(); | ||
deviceInfo: settings.environment.deviceName, | ||
displaySize: utils.geometry.round(settings.environment.viewportSize), | ||
displaySize: settings.environment.viewportSize && utils.geometry.round(settings.environment.viewportSize), | ||
inferred: settings.environment.userAgent && `useragent:${settings.environment.userAgent}`, | ||
@@ -106,3 +106,3 @@ }), | ||
const test = await response.json().then(async (result) => { | ||
var _a, _b, _c, _d, _e; | ||
var _a, _b, _c, _d, _e, _f; | ||
const test = { | ||
@@ -117,7 +117,6 @@ testId: result.id, | ||
isNew: (_c = result.isNew) !== null && _c !== void 0 ? _c : response.status === 201, | ||
keepBatchOpen: settings.keepBatchOpen, | ||
keepBatchOpen: (_d = settings.keepBatchOpen) !== null && _d !== void 0 ? _d : false, | ||
server: { serverUrl: settings.serverUrl, apiKey: settings.apiKey, proxy: settings.proxy }, | ||
rendererId: (_d = settings.environment) === null || _d === void 0 ? void 0 : _d.rendererId, | ||
rendererInfo: (_e = settings.environment) === null || _e === void 0 ? void 0 : _e.rendererInfo, | ||
account: null, | ||
rendererId: (_e = settings.environment) === null || _e === void 0 ? void 0 : _e.rendererId, | ||
rendererInfo: (_f = settings.environment) === null || _f === void 0 ? void 0 : _f.rendererInfo, | ||
}; | ||
@@ -184,8 +183,9 @@ if (result.renderingInfo) { | ||
method: 'GET', | ||
expected: 200, | ||
logger, | ||
}); | ||
const result = await response.json().then(result => { | ||
return { branchName: result.scmSourceBranch, parentBranchName: result.scmTargetBranch }; | ||
}); | ||
const result = response.status === 200 | ||
? await response.json().then(result => { | ||
return { branchName: result.scmSourceBranch, parentBranchName: result.scmTargetBranch }; | ||
}) | ||
: { branchName: undefined, parentBranchName: undefined }; | ||
logger.log('Request "getBatchBranches" finished successfully with body', result); | ||
@@ -221,3 +221,3 @@ return result; | ||
} | ||
async function logEvent({ settings, logger = defaultLogger }) { | ||
async function logEvent({ settings, logger = defaultLogger, }) { | ||
settings = utils.types.isArray(settings) ? settings : [settings]; | ||
@@ -267,2 +267,3 @@ const [config] = settings; | ||
extractText, | ||
report, | ||
close, | ||
@@ -275,3 +276,3 @@ abort, | ||
upload({ name: 'image', resource: target.image }), | ||
upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
target.dom && upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
]); | ||
@@ -299,3 +300,3 @@ const response = await req(`/api/sessions/running/${encodeURIComponent(test.testId)}`, { | ||
upload({ name: 'image', resource: target.image }), | ||
upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
target.dom && upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
]); | ||
@@ -321,3 +322,3 @@ const matchOptions = transformCheckOptions({ target, settings }); | ||
beforeRetry({ response, stop }) { | ||
if (response.status === 404) | ||
if ((response === null || response === void 0 ? void 0 : response.status) === 404) | ||
return stop; | ||
@@ -342,3 +343,3 @@ }, | ||
upload({ name: 'image', resource: target.image }), | ||
upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
target.dom && upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
]); | ||
@@ -352,3 +353,3 @@ const response = await req('/api/sessions/running/images/textregions', { | ||
domUrl: target.dom, | ||
location: utils.geometry.round(target.locationInViewport), | ||
location: target.locationInViewport && utils.geometry.round(target.locationInViewport), | ||
}, | ||
@@ -371,3 +372,3 @@ patterns: settings.patterns, | ||
upload({ name: 'image', resource: target.image }), | ||
upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
target.dom && upload({ name: 'dom', resource: target.dom, gzip: true }), | ||
]); | ||
@@ -381,5 +382,5 @@ const response = await req('/api/sessions/running/images/text', { | ||
domUrl: target.dom, | ||
location: utils.geometry.round(target.locationInViewport), | ||
location: target.locationInViewport && utils.geometry.round(target.locationInViewport), | ||
}, | ||
regions: [{ left: 0, top: 0, ...utils.geometry.round(target.size), expected: settings.hint }], | ||
regions: target.size && [{ left: 0, top: 0, ...utils.geometry.round(target.size), expected: settings.hint }], | ||
minMatch: settings.minMatch, | ||
@@ -402,4 +403,4 @@ language: settings.language, | ||
} | ||
const sendSelfHealingReport = reportSelfHealing({ settings, logger }); | ||
closed = true; | ||
const reportPromise = report({ settings, logger }); | ||
const response = await req(`/api/sessions/running/${encodeURIComponent(test.testId)}`, { | ||
@@ -422,3 +423,3 @@ name: 'close', | ||
logger.log('Request "close" finished successfully with body', result); | ||
await sendSelfHealingReport; | ||
await reportPromise; | ||
return [result]; | ||
@@ -432,4 +433,4 @@ } | ||
} | ||
const sendSelfHealingReport = reportSelfHealing({ settings, logger }); | ||
aborted = true; | ||
const reportPromise = report({ settings, logger }); | ||
const response = await req(`/api/sessions/running/${encodeURIComponent(test.testId)}`, { | ||
@@ -447,14 +448,18 @@ name: 'abort', | ||
logger.log('Request "abort" finished successfully with body', result); | ||
await sendSelfHealingReport; | ||
await reportPromise; | ||
return [result]; | ||
} | ||
async function reportSelfHealing({ settings, logger = defaultLogger, }) { | ||
async function report({ settings, logger = defaultLogger, }) { | ||
logger.log(`Request "report" called for test ${test.testId} with settings`, settings); | ||
if (!(settings === null || settings === void 0 ? void 0 : settings.testMetadata) || utils.types.isEmpty(settings.testMetadata)) | ||
return; | ||
try { | ||
if (utils.types.isNull(settings === null || settings === void 0 ? void 0 : settings.testMetadata) || utils.types.isEmpty(settings === null || settings === void 0 ? void 0 : settings.testMetadata)) | ||
return; | ||
logger.log('Request "reportSelfHealing" called'); | ||
await req(`/api/sessions/running/${encodeURIComponent(test.testId)}/selfhealdata`, { | ||
name: 'reportSelfHealing', | ||
method: 'PUT', | ||
body: (0, to_self_healing_report_1.toSelfHealingReport)(settings.testMetadata), | ||
body: { | ||
operations: settings.testMetadata.map(item => { | ||
return { old: item === null || item === void 0 ? void 0 : item.originalSelector, new: item === null || item === void 0 ? void 0 : item.successfulSelector, timestamp: new Date().toISOString() }; | ||
}), | ||
}, | ||
expected: 200, | ||
@@ -477,7 +482,7 @@ logger, | ||
domUrl: target.dom, | ||
location: utils.geometry.round(target.locationInViewport), | ||
location: target.locationInViewport && utils.geometry.round(target.locationInViewport), | ||
pageCoverageInfo: settings.pageId && { | ||
pageId: settings.pageId, | ||
imagePositionInPage: utils.geometry.round(target.locationInView), | ||
...utils.geometry.round(target.fullViewSize), | ||
imagePositionInPage: target.locationInView && utils.geometry.round(target.locationInView), | ||
...(target.fullViewSize && utils.geometry.round(target.fullViewSize)), | ||
}, | ||
@@ -513,2 +518,3 @@ }, | ||
return regions === null || regions === void 0 ? void 0 : regions.map(region => { | ||
var _a; | ||
const options = {}; | ||
@@ -527,3 +533,3 @@ if (utils.types.has(region, 'region')) { | ||
} | ||
region = utils.geometry.round(utils.geometry.padding(region.region, region.padding)); | ||
region = utils.geometry.round(utils.geometry.padding(region.region, (_a = region.padding) !== null && _a !== void 0 ? _a : 0)); | ||
} | ||
@@ -530,0 +536,0 @@ return { left: region.x, top: region.y, width: region.width, height: region.height, ...options }; |
@@ -32,3 +32,3 @@ "use strict"; | ||
return async function upload({ name, resource, gzip }) { | ||
logger.log(`Upload called for ${name} resource`); | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Upload called for ${name} resource`); | ||
if (utils.types.isNull(resource) || utils.types.isHttpUrl(resource)) | ||
@@ -57,3 +57,5 @@ return resource; | ||
beforeRetry({ response, error, attempt }) { | ||
logger.warn(`Upload of ${name} resource will be retried due to ${error ? `an error with message "${error.message}"` : `unexpected status ${response.statusText}(${response.status})`} in previous attempt (${attempt})`); | ||
logger === null || logger === void 0 ? void 0 : logger.warn(`Upload of ${name} resource will be retried due to ${error | ||
? `an error with message "${error.message}"` | ||
: `unexpected status ${response.statusText}(${response.status})`} in previous attempt (${attempt})`); | ||
}, | ||
@@ -65,3 +67,3 @@ }, | ||
} | ||
logger.log(`Upload of ${name} resource finished successfully in location`, url); | ||
logger === null || logger === void 0 ? void 0 : logger.log(`Upload of ${name} resource finished successfully in location`, url); | ||
return url; | ||
@@ -68,0 +70,0 @@ }; |
@@ -28,3 +28,4 @@ "use strict"; | ||
const utils = __importStar(require("@applitools/utils")); | ||
exports.extractBranchingTimestamp = utils.general.cachify(async ({ branchName, parentBranchName }, options) => { | ||
exports.extractBranchingTimestamp = utils.general.cachify(extractGitBranchingTimestamp); | ||
async function extractGitBranchingTimestamp({ branchName, parentBranchName }, options) { | ||
var _a; | ||
@@ -47,2 +48,2 @@ const command = `HASH=$(git merge-base ${branchName} ${parentBranchName}) && git show -q --format=%cI $HASH`; | ||
return timestamp; | ||
}); | ||
} |
@@ -31,3 +31,3 @@ "use strict"; | ||
const utils = __importStar(require("@applitools/utils")); | ||
async function transformTarget({ target, settings }) { | ||
async function transformTarget({ target, settings, }) { | ||
if (target.image instanceof URL) | ||
@@ -63,3 +63,3 @@ target.image = target.image.href; | ||
target.image = await image.toPng(); | ||
if (!target.size || settings.normalization || settings.region) { | ||
if (!target.size || (settings === null || settings === void 0 ? void 0 : settings.normalization) || (settings === null || settings === void 0 ? void 0 : settings.region)) { | ||
target.size = image.size; | ||
@@ -66,0 +66,0 @@ } |
{ | ||
"name": "@applitools/core-base", | ||
"version": "1.1.32", | ||
"version": "1.1.33", | ||
"homepage": "https://applitools.com", | ||
@@ -40,4 +40,4 @@ "bugs": { | ||
"scripts": { | ||
"lint": "eslint '**/*.ts'", | ||
"build": "tsc", | ||
"lint": "node ../../node_modules/.bin/eslint '**/*.ts'", | ||
"build": "node ../../node_modules/.bin/tsc --project ./tsconfig.build.json", | ||
"test": "mocha --no-timeouts -r ts-node/register --parallel --jobs 15 './test/**/*.spec.ts'", | ||
@@ -53,33 +53,16 @@ "test:sanity": "yarn test:unit", | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-push": "yarn bongo lint" | ||
} | ||
}, | ||
"dependencies": { | ||
"@applitools/image": "1.0.22", | ||
"@applitools/logger": "1.1.42", | ||
"@applitools/req": "1.1.28", | ||
"@applitools/utils": "1.3.28" | ||
"@applitools/image": "1.0.25", | ||
"@applitools/logger": "1.1.45", | ||
"@applitools/req": "1.1.30", | ||
"@applitools/utils": "1.3.30" | ||
}, | ||
"devDependencies": { | ||
"@applitools/bongo": "^2.2.2", | ||
"@applitools/test-server": "^1.1.22", | ||
"@applitools/test-utils": "^1.5.10", | ||
"@applitools/test-server": "^1.1.24", | ||
"@applitools/test-utils": "^1.5.12", | ||
"@types/mocha": "^9.1.1", | ||
"@types/node": "12", | ||
"@types/node-fetch": "^2.6.2", | ||
"@typescript-eslint/eslint-plugin": "^5.22.0", | ||
"@typescript-eslint/parser": "^5.22.0", | ||
"eslint": "^8.14.0", | ||
"eslint-config-prettier": "^8.5.0", | ||
"eslint-plugin-mocha-no-only": "^1.1.1", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-prettier": "^4.0.0", | ||
"husky": "^4.3.7", | ||
"mocha": "^10.0.0", | ||
"nock": "^13.2.8", | ||
"prettier": "^2.6.2", | ||
"ts-node": "^10.7.0", | ||
"typescript": "^4.6.4" | ||
"nock": "^13.2.8" | ||
}, | ||
@@ -86,0 +69,0 @@ "engines": { |
import type { AbortSettings, TestResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -9,5 +9,5 @@ logger: Logger; | ||
export declare function makeAbort({ requests, logger: defaultLogger }: Options): ({ settings, logger, }?: { | ||
settings?: AbortSettings; | ||
logger?: Logger; | ||
settings?: AbortSettings | undefined; | ||
logger?: Logger | undefined; | ||
}) => Promise<TestResult[]>; | ||
export {}; |
import type { ImageTarget, CheckSettings, CloseSettings, TestResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -10,5 +10,5 @@ logger: Logger; | ||
target: ImageTarget; | ||
settings?: CheckSettings & CloseSettings; | ||
logger?: Logger; | ||
settings?: (CheckSettings<import("@applitools/utils").Region> & CloseSettings) | undefined; | ||
logger?: Logger | undefined; | ||
}) => Promise<TestResult[]>; | ||
export {}; |
import type { ImageTarget, CheckSettings, CheckResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -10,5 +10,5 @@ logger: Logger; | ||
target: ImageTarget; | ||
settings?: CheckSettings; | ||
logger?: Logger; | ||
settings?: CheckSettings<import("@applitools/utils").Region> | undefined; | ||
logger?: Logger | undefined; | ||
}) => Promise<CheckResult[]>; | ||
export {}; |
@@ -5,10 +5,10 @@ import type { CloseBatchSettings } from './types'; | ||
import { type CoreRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: CoreRequests; | ||
logger?: Logger; | ||
logger: Logger; | ||
}; | ||
export declare function makeCloseBatch({ requests, logger: defaultLogger }: Options): ({ settings, logger, }: { | ||
settings: MaybeArray<CloseBatchSettings>; | ||
logger?: Logger; | ||
logger?: Logger | undefined; | ||
}) => Promise<void>; | ||
export {}; |
import type { CloseSettings, TestResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -9,5 +9,5 @@ logger: Logger; | ||
export declare function makeClose({ requests, logger: defaultLogger }: Options): ({ settings, logger, }?: { | ||
settings?: CloseSettings; | ||
logger?: Logger; | ||
settings?: CloseSettings | undefined; | ||
logger?: Logger | undefined; | ||
}) => Promise<TestResult[]>; | ||
export {}; |
import type { Core } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
declare type Options = { | ||
type Options = { | ||
agentId?: string; | ||
@@ -8,3 +8,3 @@ cwd?: string; | ||
}; | ||
export declare function makeCore({ agentId, cwd, logger }: Options): Core; | ||
export declare function makeCore({ agentId, cwd, logger: defaultLogger }: Options): Core; | ||
export {}; |
@@ -5,3 +5,3 @@ import type { DeleteTestSettings } from './types'; | ||
import { type CoreRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: CoreRequests; | ||
@@ -12,4 +12,4 @@ logger: Logger; | ||
settings: MaybeArray<DeleteTestSettings>; | ||
logger?: Logger; | ||
logger?: Logger | undefined; | ||
}) => Promise<void>; | ||
export {}; |
@@ -11,6 +11,6 @@ export declare class CoreError extends Error { | ||
message: string; | ||
stack: string; | ||
stack: string | undefined; | ||
reason: string; | ||
info: Record<string, any>; | ||
info: Record<string, any> | undefined; | ||
}; | ||
} |
@@ -5,3 +5,3 @@ import type { ImageTarget, ExtractTextSettings } from './types'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -12,5 +12,5 @@ logger: Logger; | ||
target: ImageTarget; | ||
settings?: MaybeArray<ExtractTextSettings>; | ||
logger?: Logger; | ||
settings: MaybeArray<ExtractTextSettings>; | ||
logger?: Logger | undefined; | ||
}) => Promise<string[]>; | ||
export {}; |
import type { ImageTarget, LocateTextSettings, LocateTextResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type EyesRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: EyesRequests; | ||
@@ -10,5 +10,5 @@ logger: Logger; | ||
target: ImageTarget; | ||
settings?: LocateTextSettings<TPattern, import("@applitools/utils").Region>; | ||
logger?: Logger; | ||
settings: LocateTextSettings<TPattern, import("@applitools/utils").Region>; | ||
logger?: Logger | undefined; | ||
}) => Promise<LocateTextResult<TPattern>>; | ||
export {}; |
import type { ImageTarget, LocateSettings, LocateResult } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type CoreRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: CoreRequests; | ||
@@ -11,4 +11,4 @@ logger: Logger; | ||
settings: LocateSettings<TLocator, import("@applitools/utils").Region>; | ||
logger?: Logger; | ||
logger?: Logger | undefined; | ||
}) => Promise<LocateResult<TLocator>>; | ||
export {}; |
import type { OpenSettings, Eyes } from './types'; | ||
import { type Logger } from '@applitools/logger'; | ||
import { type CoreRequests } from './server/requests'; | ||
declare type Options = { | ||
type Options = { | ||
requests: CoreRequests; | ||
@@ -9,6 +9,6 @@ cwd: string; | ||
}; | ||
export declare function makeOpenEyes({ requests, cwd, logger: defaultLogger }: Options): ({ settings, logger }: { | ||
export declare function makeOpenEyes({ requests, cwd, logger: defaultLogger }: Options): ({ settings, logger, }: { | ||
settings: OpenSettings; | ||
logger?: Logger; | ||
logger?: Logger | undefined; | ||
}) => Promise<Eyes>; | ||
export {}; |
import { type Req, type Options, type Proxy, type Fetch } from '@applitools/req'; | ||
import { Logger } from '@applitools/logger'; | ||
export declare type ReqEyesConfig = { | ||
export type ReqEyesConfig = { | ||
serverUrl: string; | ||
@@ -11,3 +11,3 @@ apiKey: string; | ||
}; | ||
export declare type ReqEyesOptions = Options & { | ||
export type ReqEyesOptions = Options & { | ||
name?: string; | ||
@@ -17,3 +17,3 @@ expected?: number | number[]; | ||
}; | ||
export declare type ReqEyes = Req<ReqEyesOptions>; | ||
export type ReqEyes = Req<ReqEyesOptions>; | ||
export declare function makeReqEyes({ config, fetch, logger }: { | ||
@@ -20,0 +20,0 @@ config: ReqEyesConfig; |
@@ -1,3 +0,2 @@ | ||
import type { MaybeArray } from '@applitools/utils'; | ||
import type { ImageTarget, Core, Eyes, ServerSettings, CheckSettings, LocateSettings, LocateTextSettings, ExtractTextSettings, CloseSettings, CloseBatchSettings, DeleteTestSettings, LogEventSettings, TestInfo, AccountInfo, LocateResult, CheckResult, LocateTextResult, TestResult, OpenSettings } from '../types'; | ||
import type { Core, Eyes, ServerSettings, TestReportSettings, TestInfo } from '../types'; | ||
import { type Fetch } from '@applitools/req'; | ||
@@ -7,16 +6,3 @@ import { type Logger } from '@applitools/logger'; | ||
import { type Upload } from './upload'; | ||
export interface CoreRequests extends Core { | ||
openEyes(options: { | ||
settings: OpenSettings; | ||
logger?: Logger; | ||
}): Promise<EyesRequests>; | ||
locate<TLocator extends string>(options: { | ||
target: ImageTarget; | ||
settings: LocateSettings<TLocator>; | ||
logger?: Logger; | ||
}): Promise<LocateResult<TLocator>>; | ||
getAccountInfo(options: { | ||
settings: ServerSettings; | ||
logger?: Logger; | ||
}): Promise<AccountInfo>; | ||
export interface CoreRequests extends Core<EyesRequests> { | ||
getBatchBranches(options: { | ||
@@ -28,46 +14,13 @@ settings: ServerSettings & { | ||
}): Promise<{ | ||
branchName: string; | ||
parentBranchName: string; | ||
branchName?: string; | ||
parentBranchName?: string; | ||
}>; | ||
closeBatch(options: { | ||
settings: CloseBatchSettings; | ||
} | ||
export interface EyesRequests extends Required<Eyes> { | ||
report(options: { | ||
settings?: TestReportSettings; | ||
logger?: Logger; | ||
}): Promise<void>; | ||
deleteTest(options: { | ||
settings: DeleteTestSettings; | ||
logger?: Logger; | ||
}): Promise<void>; | ||
logEvent(options: { | ||
settings: MaybeArray<LogEventSettings>; | ||
logger?: Logger; | ||
}): any; | ||
} | ||
export interface EyesRequests extends Eyes { | ||
readonly test: TestInfo; | ||
check(options: { | ||
target: ImageTarget; | ||
settings?: CheckSettings; | ||
logger?: Logger; | ||
}): Promise<CheckResult[]>; | ||
checkAndClose(options: { | ||
target: ImageTarget; | ||
settings?: CheckSettings; | ||
logger?: Logger; | ||
}): Promise<TestResult[]>; | ||
locateText<TPattern extends string>(options: { | ||
target: ImageTarget; | ||
settings: LocateTextSettings<TPattern>; | ||
logger?: Logger; | ||
}): Promise<LocateTextResult<TPattern>>; | ||
extractText(options: { | ||
target: ImageTarget; | ||
settings: ExtractTextSettings; | ||
logger?: Logger; | ||
}): Promise<string[]>; | ||
close(options?: { | ||
settings?: CloseSettings; | ||
logger?: Logger; | ||
}): Promise<TestResult[]>; | ||
} | ||
export declare function makeCoreRequests({ agentId: defaultAgentId, fetch, logger: defaultLogger, }: { | ||
export declare function makeCoreRequests({ agentId: defaultAgentId, fetch, logger, }: { | ||
agentId: string; | ||
@@ -81,3 +34,3 @@ fetch?: Fetch; | ||
upload: Upload; | ||
logger?: Logger; | ||
logger: Logger; | ||
}): EyesRequests; |
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
import { type Logger } from '@applitools/logger'; | ||
import { type Proxy } from '@applitools/req'; | ||
export declare type Upload = (options: { | ||
export type Upload = (options: { | ||
name: string; | ||
@@ -7,0 +6,0 @@ resource: Buffer | URL | string; |
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
import { type MaybeArray, type Region, type Size, type Location } from '@applitools/utils'; | ||
@@ -61,3 +60,3 @@ import { type Logger } from '@applitools/logger'; | ||
}): Promise<TestResult[]>; | ||
locateText?<TPattern extends string>(options: { | ||
locateText<TPattern extends string>(options: { | ||
target: TTarget; | ||
@@ -67,3 +66,3 @@ settings: LocateTextSettings<TPattern>; | ||
}): Promise<LocateTextResult<TPattern>>; | ||
extractText?(options: { | ||
extractText(options: { | ||
target: TTarget; | ||
@@ -106,8 +105,8 @@ settings: MaybeArray<ExtractTextSettings>; | ||
} | ||
declare type SessionType = 'SEQUENTIAL' | 'PROGRESSION'; | ||
declare type CustomProperty = { | ||
type SessionType = 'SEQUENTIAL' | 'PROGRESSION'; | ||
type CustomProperty = { | ||
name: string; | ||
value: string; | ||
}; | ||
export declare type Batch = { | ||
export type Batch = { | ||
id?: string; | ||
@@ -120,3 +119,3 @@ name?: string; | ||
}; | ||
declare type Environment = { | ||
type Environment = { | ||
os?: string; | ||
@@ -170,3 +169,3 @@ osInfo?: string; | ||
} | ||
export declare type LocateResult<TLocator extends string> = Record<TLocator, Region[]>; | ||
export type LocateResult<TLocator extends string> = Record<TLocator, Region[]>; | ||
export interface CloseBatchSettings extends ServerSettings { | ||
@@ -199,4 +198,4 @@ batchId: string; | ||
} | ||
declare type ImageRotation = -270 | -180 | -90 | 0 | 90 | 180 | 270; | ||
declare type OffsetRect = { | ||
type ImageRotation = -270 | -180 | -90 | 0 | 90 | 180 | 270; | ||
type OffsetRect = { | ||
top?: number; | ||
@@ -207,4 +206,4 @@ right?: number; | ||
}; | ||
declare type ImageCropRect = OffsetRect; | ||
declare type ImageCropRegion = Region; | ||
type ImageCropRect = OffsetRect; | ||
type ImageCropRegion = Region; | ||
export interface ImageSettings<TRegion = Region> { | ||
@@ -223,7 +222,7 @@ region?: TRegion; | ||
} | ||
declare type MatchLevel = 'None' | 'Layout' | 'Layout1' | 'Layout2' | 'Content' | 'IgnoreColors' | 'Strict' | 'Exact'; | ||
declare type AccessibilityRegionType = 'IgnoreContrast' | 'RegularText' | 'LargeText' | 'BoldText' | 'GraphicalObject'; | ||
declare type AccessibilityLevel = 'AA' | 'AAA'; | ||
declare type AccessibilityGuidelinesVersion = 'WCAG_2_0' | 'WCAG_2_1'; | ||
declare type CodedRegion<TRegion = Region> = { | ||
type MatchLevel = 'None' | 'Layout' | 'Layout1' | 'Layout2' | 'Content' | 'IgnoreColors' | 'Strict' | 'Exact'; | ||
type AccessibilityRegionType = 'IgnoreContrast' | 'RegularText' | 'LargeText' | 'BoldText' | 'GraphicalObject'; | ||
type AccessibilityLevel = 'AA' | 'AAA'; | ||
type AccessibilityGuidelinesVersion = 'WCAG_2_0' | 'WCAG_2_1'; | ||
type CodedRegion<TRegion = Region> = { | ||
region: TRegion; | ||
@@ -233,6 +232,6 @@ padding?: number | OffsetRect; | ||
}; | ||
declare type FloatingRegion<TRegion = Region> = CodedRegion<TRegion> & { | ||
type FloatingRegion<TRegion = Region> = CodedRegion<TRegion> & { | ||
offset?: OffsetRect; | ||
}; | ||
declare type AccessibilityRegion<TRegion = Region> = CodedRegion<TRegion> & { | ||
type AccessibilityRegion<TRegion = Region> = CodedRegion<TRegion> & { | ||
type?: AccessibilityRegionType; | ||
@@ -287,6 +286,6 @@ }; | ||
} | ||
declare type TextRegion = Region & { | ||
type TextRegion = Region & { | ||
text: string; | ||
}; | ||
export declare type LocateTextResult<TPattern extends string> = Record<TPattern, TextRegion[]>; | ||
export type LocateTextResult<TPattern extends string> = Record<TPattern, TextRegion[]>; | ||
export interface ExtractTextSettings<TRegion = Region> extends ImageSettings<TRegion> { | ||
@@ -299,3 +298,3 @@ hint?: string; | ||
} | ||
export declare type SelfHealingReport = { | ||
export type SelfHealingReport = { | ||
operations: { | ||
@@ -313,7 +312,6 @@ timestamp: string; | ||
}; | ||
export declare type TestMetadata = Record<string, any>[]; | ||
export interface ReportSelfHealingSettings { | ||
testMetadata?: TestMetadata; | ||
export interface TestReportSettings { | ||
testMetadata?: Record<string, any>[]; | ||
} | ||
export interface CloseSettings extends ReportSelfHealingSettings { | ||
export interface CloseSettings extends TestReportSettings { | ||
updateBaselineIfNew?: boolean; | ||
@@ -324,9 +322,9 @@ updateBaselineIfDifferent?: boolean; | ||
} | ||
export interface AbortSettings extends ReportSelfHealingSettings { | ||
export interface AbortSettings extends TestReportSettings { | ||
/** @internal */ | ||
userCommandId?: string; | ||
} | ||
declare type TestResultsStatus = 'Passed' | 'Unresolved' | 'Failed'; | ||
declare type AccessibilityStatus = 'Passed' | 'Failed'; | ||
declare type StepInfo = { | ||
type TestResultsStatus = 'Passed' | 'Unresolved' | 'Failed'; | ||
type AccessibilityStatus = 'Passed' | 'Failed'; | ||
type StepInfo = { | ||
readonly name?: string; | ||
@@ -340,3 +338,3 @@ readonly isDifferent?: boolean; | ||
}; | ||
declare type ApiUrls = { | ||
type ApiUrls = { | ||
readonly baselineImage?: string; | ||
@@ -348,7 +346,7 @@ readonly currentImage?: string; | ||
}; | ||
declare type AppUrls = { | ||
type AppUrls = { | ||
readonly step?: string; | ||
readonly stepEditor?: string; | ||
}; | ||
declare type SessionUrls = { | ||
type SessionUrls = { | ||
readonly batch?: string; | ||
@@ -355,0 +353,0 @@ readonly session?: string; |
@@ -0,6 +1,4 @@ | ||
/// <reference types="node" /> | ||
import { ExecOptions } from 'child_process'; | ||
export declare const extractBranchingTimestamp: (({ branchName, parentBranchName }: { | ||
branchName: string; | ||
parentBranchName: string; | ||
}, options?: ExecOptions) => Promise<string>) & { | ||
export declare const extractBranchingTimestamp: typeof extractGitBranchingTimestamp & { | ||
getCachedValues(): Promise<string>[]; | ||
@@ -10,1 +8,6 @@ setCachedValue(key: any, value: Promise<string>): void; | ||
}; | ||
declare function extractGitBranchingTimestamp({ branchName, parentBranchName }: { | ||
branchName: string; | ||
parentBranchName: string; | ||
}, options?: ExecOptions): Promise<string>; | ||
export {}; |
import type { ImageTarget, ImageSettings } from '../types'; | ||
export declare function transformTarget({ target, settings }: { | ||
export declare function transformTarget({ target, settings, }: { | ||
target: ImageTarget; | ||
settings?: ImageSettings; | ||
}): Promise<ImageTarget>; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7
97270
40
1842
+ Added@applitools/image@1.0.25(transitive)
+ Added@applitools/logger@1.1.45(transitive)
+ Added@applitools/req@1.1.30(transitive)
+ Added@applitools/utils@1.3.30(transitive)
- Removed@applitools/image@1.0.22(transitive)
- Removed@applitools/logger@1.1.42(transitive)
- Removed@applitools/req@1.1.28(transitive)
- Removed@applitools/utils@1.3.28(transitive)
Updated@applitools/image@1.0.25
Updated@applitools/logger@1.1.45
Updated@applitools/req@1.1.30
Updated@applitools/utils@1.3.30