Socket
Socket
Sign inDemoInstall

snyk-policy

Package Overview
Dependencies
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

snyk-policy - npm Package Compare versions

Comparing version 1.21.5 to 1.22.0

9

lib/filter/ignore.js

@@ -10,3 +10,8 @@ module.exports = filterIgnored;

// see http://git.io/vCHmV for example of what ignore structure looks like
function filterIgnored(ignore, vuln, filtered) {
function filterIgnored(
ignore,
vuln,
filtered,
matchStrategy = 'packageManager'
) {
if (!ignore) {

@@ -79,3 +84,3 @@ return vuln;

// first check if the path is a match on the rule
const pathMatch = matchToRule(vuln, rule);
const pathMatch = matchToRule(vuln, rule, matchStrategy);

@@ -82,0 +87,0 @@ if (pathMatch && expires && expires < now) {

@@ -9,3 +9,3 @@ module.exports = filter;

// warning: mutates vulns
function filter(vulns, policy, root) {
function filter(vulns, policy, root, matchStrategy = 'packageManager') {
if (!root) {

@@ -28,3 +28,4 @@ root = process.cwd();

vulns.vulnerabilities,
filtered.ignore
filtered.ignore,
matchStrategy
);

@@ -31,0 +32,0 @@

@@ -32,4 +32,9 @@ const fs = require('promise-fs');

function attachMethods(policy) {
policy.filter = function (vulns, root) {
return filter(vulns, policy, root || path.dirname(policy.__filename));
policy.filter = function (vulns, root, matchStrategy = 'packageManager') {
return filter(
vulns,
policy,
root || path.dirname(policy.__filename),
matchStrategy
);
};

@@ -36,0 +41,0 @@ policy.save = save.bind(null, policy);

@@ -108,9 +108,13 @@ module.exports = {

function matchToRule(vuln, rule) {
function matchToRule(vuln, rule, matchStrategy = 'packageManager') {
return Object.keys(rule).some(function (path) {
return matchToSingleRule(vuln, path);
return matchToSingleRule(vuln, path, matchStrategy);
});
}
function matchToSingleRule(vuln, path) {
function matchToSingleRule(vuln, path, matchStrategy) {
if (matchStrategy === 'exact') {
return matchExactWithStars(vuln, path);
}
// check for an exact match

@@ -129,2 +133,21 @@ let pathMatch = false;

function matchExactWithStars(vuln, path) {
const parts = path.split(' > ');
if (parts[parts.length - 1] === '*') {
const paddingLength = vuln.from.length - parts.length;
for (let i = 0; i < paddingLength; i++) {
parts.push('*');
}
}
if (parts.length !== vuln.from.length) {
return false;
}
for (let i = 0; i < parts.length; i++) {
if (parts[i] !== vuln.from[i] && parts[i] !== '*') {
return false;
}
}
return true;
}
function getByVuln(policy, vuln) {

@@ -131,0 +154,0 @@ let found = null;

@@ -46,3 +46,3 @@ {

},
"version": "1.21.5"
"version": "1.22.0"
}
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