Socket
Socket
Sign inDemoInstall

@percy/core

Package Overview
Dependencies
Maintainers
6
Versions
238
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@percy/core - npm Package Compare versions

Comparing version 1.8.1 to 1.9.0

109

dist/api.js

@@ -15,2 +15,14 @@ import fs from 'fs';

.websocket('/(logger)?', ws => {
var _percy$testing, _percy$testing2;
// support sabotaging remote logging connections in testing mode
if (((_percy$testing = percy.testing) === null || _percy$testing === void 0 ? void 0 : _percy$testing.remoteLogging) === false) return ws.terminate(); // track all remote logging connections in testing mode
if (percy.testing) ((_percy$testing2 = percy.testing).remoteLoggers || (_percy$testing2.remoteLoggers = new Set())).add(ws);
ws.addEventListener('close', () => {
var _percy$testing3, _percy$testing3$remot;
return (_percy$testing3 = percy.testing) === null || _percy$testing3 === void 0 ? void 0 : (_percy$testing3$remot = _percy$testing3.remoteLoggers) === null || _percy$testing3$remot === void 0 ? void 0 : _percy$testing3$remot.delete(ws);
}); // listen for messages with specific logging payloads
ws.addEventListener('message', ({

@@ -27,3 +39,4 @@ data

if (log) logger.instance.log(...log);
});
}); // respond with the current loglevel
ws.send(JSON.stringify({

@@ -34,3 +47,3 @@ loglevel: logger.loglevel()

.route((req, res, next) => {
var _percy$testing, _percy$testing3, _percy$testing3$api, _percy$testing4, _percy$testing4$api;
var _percy$testing4, _percy$testing7, _percy$testing7$api, _percy$testing8, _percy$testing8$api;

@@ -44,31 +57,51 @@ // treat all request bodies as json

if (((_percy$testing = percy.testing) === null || _percy$testing === void 0 ? void 0 : _percy$testing.version) !== false) {
var _percy$testing2;
if (((_percy$testing4 = percy.testing) === null || _percy$testing4 === void 0 ? void 0 : _percy$testing4.version) !== false) {
var _percy$testing5;
res.setHeader('X-Percy-Core-Version', ((_percy$testing2 = percy.testing) === null || _percy$testing2 === void 0 ? void 0 : _percy$testing2.version) ?? pkg.version);
res.setHeader('X-Percy-Core-Version', ((_percy$testing5 = percy.testing) === null || _percy$testing5 === void 0 ? void 0 : _percy$testing5.version) ?? pkg.version);
} // track all api reqeusts in testing mode
if (percy.testing && !req.url.pathname.startsWith('/test/')) {
var _percy$testing6;
((_percy$testing6 = percy.testing).requests || (_percy$testing6.requests = [])).push({
url: `${req.url.pathname}${req.url.search}`,
method: req.method,
body: req.body
});
} // support sabotaging requests in testing mode
if (((_percy$testing3 = percy.testing) === null || _percy$testing3 === void 0 ? void 0 : (_percy$testing3$api = _percy$testing3.api) === null || _percy$testing3$api === void 0 ? void 0 : _percy$testing3$api[req.url.pathname]) === 'error') {
return res.json(500, {
success: false,
error: 'Error: testing'
});
} else if (((_percy$testing4 = percy.testing) === null || _percy$testing4 === void 0 ? void 0 : (_percy$testing4$api = _percy$testing4.api) === null || _percy$testing4$api === void 0 ? void 0 : _percy$testing4$api[req.url.pathname]) === 'disconnect') {
return req.connection.destroy();
if (((_percy$testing7 = percy.testing) === null || _percy$testing7 === void 0 ? void 0 : (_percy$testing7$api = _percy$testing7.api) === null || _percy$testing7$api === void 0 ? void 0 : _percy$testing7$api[req.url.pathname]) === 'error') {
next = () => {
var _percy$testing$build;
return Promise.reject(new Error(((_percy$testing$build = percy.testing.build) === null || _percy$testing$build === void 0 ? void 0 : _percy$testing$build.error) || 'testing'));
};
} else if (((_percy$testing8 = percy.testing) === null || _percy$testing8 === void 0 ? void 0 : (_percy$testing8$api = _percy$testing8.api) === null || _percy$testing8$api === void 0 ? void 0 : _percy$testing8$api[req.url.pathname]) === 'disconnect') {
next = () => req.connection.destroy();
} // return json errors
return next().catch(e => res.json(e.status ?? 500, {
build: percy.build,
error: e.message,
success: false
}));
return next().catch(e => {
var _percy$testing9;
return res.json(e.status ?? 500, {
build: ((_percy$testing9 = percy.testing) === null || _percy$testing9 === void 0 ? void 0 : _percy$testing9.build) || percy.build,
error: e.message,
success: false
});
});
}) // healthcheck returns basic information
.route('get', '/percy/healthcheck', (req, res) => res.json(200, {
loglevel: percy.loglevel(),
config: percy.config,
build: percy.build,
success: true
})) // get or set config options
.route('get', '/percy/healthcheck', (req, res) => {
var _percy$testing10;
return res.json(200, {
build: ((_percy$testing10 = percy.testing) === null || _percy$testing10 === void 0 ? void 0 : _percy$testing10.build) ?? percy.build,
loglevel: percy.loglevel(),
config: percy.config,
success: true
});
}) // get or set config options
.route(['get', 'post'], '/percy/config', async (req, res) => res.json(200, {

@@ -114,5 +147,8 @@ config: req.body ? await percy.setConfig(req.body) : percy.config,

if (cmd === 'reset') {
// the reset command will reset testing mode and clear any logs
var _percy$testing$remote;
// the reset command will terminate connections, clear logs, and reset testing mode
(_percy$testing$remote = percy.testing.remoteLoggers) === null || _percy$testing$remote === void 0 ? void 0 : _percy$testing$remote.forEach(ws => ws.terminate());
logger.instance.messages.clear();
percy.testing = {};
logger.instance.messages.clear();
} else if (cmd === 'version') {

@@ -122,6 +158,18 @@ // the version command will update the api version header for testing

} else if (cmd === 'error' || cmd === 'disconnect') {
var _percy$testing11;
// the error or disconnect commands will cause specific endpoints to fail
percy.testing.api = { ...percy.testing.api,
[body]: cmd
((_percy$testing11 = percy.testing).api || (_percy$testing11.api = {}))[body] = cmd;
} else if (cmd === 'build-failure') {
// the build-failure command will cause api errors to include a failed build
percy.testing.build = {
failed: true,
error: 'Build failed'
};
} else if (cmd === 'remote-logging') {
var _percy$testing$remote2;
// the remote-logging command will toggle remote logging support
if (body === false) (_percy$testing$remote2 = percy.testing.remoteLoggers) === null || _percy$testing$remote2 === void 0 ? void 0 : _percy$testing$remote2.forEach(ws => ws.terminate());
percy.testing.remoteLogging = body;
} else {

@@ -133,5 +181,8 @@ // 404 for unknown commands

return res.json(200, {
testing: percy.testing
success: true
});
}) // returns an array of raw logs from the logger
}) // returns an array of raw requests made to the api
.route('get', '/test/requests', (req, res) => res.json(200, {
requests: percy.testing.requests
})) // returns an array of raw logs from the logger
.route('get', '/test/logs', (req, res) => res.json(200, {

@@ -138,0 +189,0 @@ logs: Array.from(logger.instance.messages)

{
"name": "@percy/core",
"version": "1.8.1",
"version": "1.9.0",
"license": "MIT",

@@ -42,6 +42,6 @@ "repository": {

"dependencies": {
"@percy/client": "1.8.1",
"@percy/config": "1.8.1",
"@percy/dom": "1.8.1",
"@percy/logger": "1.8.1",
"@percy/client": "1.9.0",
"@percy/config": "1.9.0",
"@percy/dom": "1.9.0",
"@percy/logger": "1.9.0",
"content-disposition": "^0.5.4",

@@ -57,3 +57,3 @@ "cross-spawn": "^7.0.3",

},
"gitHead": "497772c62e2fa2d763b350c40a0cfec918f7125f"
"gitHead": "3332a2a63802c58848d0a5fbdd3c7aadc076212b"
}
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