
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
problem-matcher
Advanced tools
This library runs Problem Matcher definitions against an input and outputs any matches. These matches can then be used to add annotations etc to source code (like Github Actions does).
The inputs used for tests have been taken from problem matchers
npm install problem-matcher
Pass single Problem matcher and any input you have to the function and it will return a list of annotations.
const matcher = require("problem-matcher");
const results = matcher(yourMatcher, input);
See below for yourMatcher format examples.
const eslintSingleMatcher = {
owner: "eslint-compact",
pattern: [
{
regexp:
"^(.+):\\sline\\s(\\d+),\\scol\\s(\\d+),\\s(Error|Warning|Info)\\s-\\s(.+)\\s\\((.+)\\)$",
file: 1,
line: 2,
column: 3,
severity: 4,
message: 5,
code: 6
}
]
};
const input = "badFile.js: line 50, col 11, Error - 'myVar' is defined but never used. (no-unused-vars)";
const result = matcher(eslintSingleMatcher, input);
// result
[{
file: "badFile.js",
line: "50",
column: "11",
severity: "Error",
message: "'myVar' is defined but never used.",
code: "no-unused-vars"
}]
const eslintLoopMatcher = {
owner: "eslint-stylish",
pattern: [
{
// Matches the 1st line in the output
regexp: "^([^\\s].*)$",
file: 1
},
{
// Matches the 2nd and 3rd line in the output
regexp: "^\\s+(\\d+):(\\d+)\\s+(error|warning|info)\\s+(.*)\\s\\s+(.*)$",
// File is carried through from above, so we define the rest of the groups
line: 1,
column: 2,
severity: 3,
message: 4,
code: 5,
loop: true
}
]
};
const input = `test.js
1:0 error Missing "use strict" statement strict
5:10 error 'addOne' is defined but never used no-unused-vars
foo.js
36:10 error Expected parentheses around arrow function argument arrow-parens
37:13 error Expected parentheses around arrow function argument arrow-parens
✖ 4 problems (4 errors, 0 warnings)`;
const result = matcher(eslintLoopMatcher, input);
// result
[
{
file: "test.js",
line: "1",
column: "0",
severity: "error",
message: 'Missing "use strict" statement',
code: "strict"
},
{
file: "test.js",
line: "5",
column: "10",
severity: "error",
message: "'addOne' is defined but never used",
code: "no-unused-vars"
},
{
file: "foo.js",
line: "36",
column: "10",
severity: "error",
message: "Expected parentheses around arrow function argument",
code: "arrow-parens"
},
{
file: "foo.js",
line: "37",
column: "13",
severity: "error",
message: "Expected parentheses around arrow function argument",
code: "arrow-parens"
}
];
FAQs
Evaluate VSCode Problem Matchers
We found that problem-matcher demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.