New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@applitools/visual-grid-client

Package Overview
Dependencies
Maintainers
12
Versions
574
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@applitools/visual-grid-client - npm Package Compare versions

Comparing version 4.2.4 to 4.2.5

2

package.json
{
"name": "@applitools/visual-grid-client",
"version": "4.2.4",
"version": "4.2.5",
"description": "",

@@ -5,0 +5,0 @@ "main": "src/visual-grid-client.js",

@@ -25,3 +25,2 @@ 'use strict';

setError,
resourceCache,
wrappers,

@@ -173,3 +172,3 @@ renderWrapper,

const renderInfo = await renderInfoPromise;
const bundledCss = getBundledCssFromCdt(cdt, resourceCache, url);
const bundledCss = getBundledCssFromCdt(cdt, url);
return await uploadResource(

@@ -176,0 +175,0 @@ renderInfo.getResultsUrl(),

@@ -16,2 +16,3 @@ 'use strict';

entry.value = value;
return value;
}

@@ -38,2 +39,6 @@

function remove(key) {
delete cache[key];
}
const cache = {};

@@ -46,2 +51,3 @@

getWithDependencies,
remove,
};

@@ -48,0 +54,0 @@ }

@@ -5,8 +5,8 @@ 'use strict';

function makeFetchResource(logger) {
return url => {
logger.log(`fetching ${url}`);
return retryFetch(
_retry =>
fetch(url).then(resp =>
function makeFetchResource(logger, retries = 5) {
return url =>
retryFetch(
retry => {
logger.log(`fetching ${url} ${retry ? `(retry ${retry}/${retries})` : ''}`);
return fetch(url).then(resp =>
resp.buffer().then(buff => ({

@@ -17,8 +17,11 @@ url,

})),
),
{retries: 5},
);
};
);
},
{retries},
).then(result => {
logger.log(`fetched ${url}`);
return result;
});
}
module.exports = makeFetchResource;

@@ -25,3 +25,20 @@ 'use strict';

function makeGetAllResources({resourceCache, fetchResource, extractCssResources}) {
function makeProcessResource({
resourceCache,
getOrFetchResources,
extractCssResources,
fetchCache,
}) {
return function processResource(resource) {
const {url} = resource;
return fetchCache.getValue(url) || fetchCache.setValue(url, doProcessResource(resource));
};
async function doProcessResource(resource) {
let {dependentResources, fetchedResources} = await getDependantResources(resource);
const rGridResource = fromFetchedToRGridResource(resource);
resourceCache.setDependencies(resource.url, dependentResources);
return Object.assign({[resource.url]: rGridResource}, fetchedResources);
}
async function getDependantResources({url, type, value}) {

@@ -35,11 +52,15 @@ let dependentResources, fetchedResources;

}
}
async function processResource(resource) {
let {dependentResources, fetchedResources} = await getDependantResources(resource);
const rGridResource = fromFetchedToRGridResource(resource);
resourceCache.setDependencies(resource.url, dependentResources);
return Object.assign({[resource.url]: rGridResource}, fetchedResources);
}
function makeGetAllResources({resourceCache, fetchResource, extractCssResources, fetchCache}) {
const processResource = makeProcessResource({
resourceCache,
extractCssResources,
getOrFetchResources,
fetchCache,
});
async function getOrFetchResources(resourceUrls, preResources = {}) {
return getOrFetchResources;
async function getOrFetchResources(resourceUrls = [], preResources = {}) {
const resources = {};

@@ -75,8 +96,4 @@

}
return async (absoluteUrls = [], preResources) =>
await getOrFetchResources(absoluteUrls, preResources);
}
module.exports = makeGetAllResources;
module.exports.isCss = isCss;

@@ -30,4 +30,4 @@ 'use strict';

function makeGetBundledCssFromCdt(logger) {
function getBundledCssFromCdt(cdt, resourceCache, baseUrl) {
function makeGetBundledCssFromCdt({resourceCache, logger}) {
return function getBundledCssFromCdt(cdt, baseUrl) {
let bundledCss = '';

@@ -66,3 +66,3 @@ traverseCdt(cdt, node => {

return bundledCss;
}
};

@@ -94,4 +94,2 @@ function getBundledCssFromCssText(cssText, resourceCache, resourceUrl) {

}
return (cdt, resourceCache, baseUrl) => getBundledCssFromCdt(cdt, resourceCache, baseUrl);
}

@@ -98,0 +96,0 @@

@@ -15,4 +15,5 @@ 'use strict';

getAllResources,
resourceCache,
renderThroat,
renderInfoPromise,
renderWrapper,
}) {

@@ -47,2 +48,6 @@ return async function openEyes({

}) {
if (getError()) {
throw getError();
}
const logger = createLogger(showLogs);

@@ -69,3 +74,2 @@

initWrappers({count: browsers.length, apiKey, logHandler: logger.getLogHandler()});
const renderWrapper = wrappers[0];

@@ -97,16 +101,2 @@ configureWrappers({

const renderInfoPromise = renderWrapper
.getRenderInfo()
.then(renderInfo => {
renderWrapper.setRenderingInfo(renderInfo);
return renderInfo;
})
.catch(err => {
if (err.response && err.response.status === 401) {
setError(new Error('Unauthorized access to Eyes server. Please check your API key.'));
} else {
setError(err);
}
});
const checkWindow = makeCheckWindow({

@@ -126,3 +116,2 @@ getError,

setError,
resourceCache,
wrappers,

@@ -129,0 +118,0 @@ renderWrapper,

@@ -6,3 +6,3 @@ 'use strict';

function makeRenderBatch({putResources, resourceCache}) {
function makeRenderBatch({putResources, resourceCache, fetchCache, logger}) {
return async function renderBatch(renderRequests, wrapper) {

@@ -17,7 +17,9 @@ const runningRenders = await wrapper.renderBatch(renderRequests);

await putResources(renderRequest.getDom(), runningRender, wrapper);
for (const resource of renderRequest.getResources()) {
wrapper._logger.verbose('adding resource to cache: ', resource.getUrl());
resourceCache.setValue(resource.getUrl(), toCacheEntry(resource));
}
}
for (const resource of renderRequest.getResources()) {
logger.verbose('adding resource to cache: ', resource.getUrl());
const url = resource.getUrl();
fetchCache.remove(url);
resourceCache.setValue(url, toCacheEntry(resource));
}
}),

@@ -29,3 +31,3 @@ );

if (runningRenders2.some(rr => rr.getRenderStatus() === RenderStatus.NEED_MORE_RESOURCES)) {
wrapper._logger.log('unexpectedly got "need more resources" on second render request');
logger.log('unexpectedly got "need more resources" on second render request');
throw new Error('Unexpected error while taking screenshot');

@@ -32,0 +34,0 @@ }

@@ -17,2 +17,3 @@ 'use strict';

const makeOpenEyesLimitedConcurrency = require('./openEyesLimitedConcurrency');
const EyesWrapper = require('./EyesWrapper');

@@ -28,2 +29,3 @@ function makeRenderingGridClient({

renderConcurrencyFactor = 5,
wrapper,
}) {

@@ -41,12 +43,14 @@ const openEyesConcurrency = Number(getConfig({concurrency}).concurrency);

const resourceCache = createResourceCache();
const fetchCache = createResourceCache();
const extractCssResources = makeExtractCssResources(logger);
const fetchResource = makeFetchResource(logger);
const extractCssResourcesFromCdt = makeExtractCssResourcesFromCdt(extractCssResources);
const getBundledCssFromCdt = makeGetBundledCssFromCdt(logger);
const getBundledCssFromCdt = makeGetBundledCssFromCdt({resourceCache, logger});
const putResources = makePutResources();
const renderBatch = makeRenderBatch({putResources, resourceCache});
const waitForRenderedStatus = makeWaitForRenderedStatus(
renderStatusTimeout,
renderStatusInterval,
);
const renderBatch = makeRenderBatch({putResources, resourceCache, fetchCache, logger});
const waitForRenderedStatus = makeWaitForRenderedStatus({
timeout: renderStatusTimeout,
getStatusInterval: renderStatusInterval,
logger,
});
const getAllResources = makeGetAllResources({

@@ -56,4 +60,22 @@ resourceCache,

fetchResource,
fetchCache,
});
wrapper =
wrapper || new EyesWrapper({apiKey: getConfig().apiKey, logHandler: logger.getLogHandler()}); // TODO when organizing config, make this a default value in the function parameters
const renderInfoPromise = wrapper
.getRenderInfo()
.then(renderInfo => {
wrapper.setRenderingInfo(renderInfo);
return renderInfo;
})
.catch(err => {
if (err.response && err.response.status === 401) {
setError(new Error('Unauthorized access to Eyes server. Please check your API key.'));
} else {
setError(err);
}
});
const openEyes = makeOpenEyes({

@@ -67,4 +89,5 @@ setError,

getAllResources,
resourceCache,
renderThroat,
renderInfoPromise,
renderWrapper: wrapper,
});

@@ -71,0 +94,0 @@ const openEyesLimitedConcurrency = makeOpenEyesLimitedConcurrency(

@@ -9,7 +9,7 @@ 'use strict';

function makeWaitForRenderedStatus(timeout = 120000, getStatusInterval = 500) {
function makeWaitForRenderedStatus({timeout = 120000, getStatusInterval = 500, logger}) {
return async function waitForRenderedStatus(renderIds, wrapper, stopCondition = () => {}) {
async function getStatus() {
if (timeoutReached) {
wrapper._logger.verbose(`waitForRenderedStatus: timeout reached for ${renderIds}`);
logger.verbose(`waitForRenderedStatus: timeout reached for ${renderIds}`);
throw new Error(`failed to render screenshot`);

@@ -39,3 +39,3 @@ }

}
wrapper._logger.log(`error during getRenderStatus: ${ex}`);
logger.log(`error during getRenderStatus: ${ex}`);
await psetTimeout(getStatusInterval);

@@ -42,0 +42,0 @@ return await getStatus();

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc