fix: remove vulnerable deprecated npm dependency "request" + upgrade all packages

This commit is contained in:
Nikolaj Fabricius-Bjerre 2024-03-05 12:36:17 +01:00
parent f5f16961b0
commit bfc43eef33
3 changed files with 278 additions and 908 deletions

View File

@ -1,8 +1,6 @@
const router = require('express').Router();
const request = require('request');
router.get('/cvr/:cvr', (req, res, next) => {
// TODO: ratelimits?
const cvr_regex = /^\d{8}$/g;
const cvr_api = cvr => `https://cvrapi.dk/api?search=${cvr}&country=dk`;
@ -11,35 +9,33 @@ router.get('/cvr/:cvr', (req, res, next) => {
return next({name: 'Server-side validering', message: 'Forkert CVR format.'});
}
const cvr_api_options = {
url: cvr_api(req.params.cvr),
fetch(cvr_api(req.params.cvr), {
headers: {
'User-Agent': 'frifaktura.dk | n@nikobojs.com'
}
};
}).then(async (cvrres) => {
request(cvr_api_options, (err, response, body) => {
if (err) return next('server fejl');
let json_body = null;
if (cvrres.headers.get('Content-Type').includes('application/json')) {
json_body = await cvrres.json();
} else {
throw new Error('cvrapi.dk did not return JSON!');
}
if(response.statusCode == 404) {
if(cvrres.status == 404) {
res.statusCode = 404;
return next({name: 'kunne ikke finde firma'});
}
else if (response.statusCode != 200){
console.log('cvr respons:', response.statusCode);
else if (cvrres.status != 200){
res.statusCode = 500;
return next({name: 'cvr api returnerede en fejl', message: ''});
}
let json_body;
try {
json_body = JSON.parse(body);
res.json(json_body);
}
catch(e) {
res.statusCode = 500;
return next({name: 'cvrapi.dk returnerede ikke json', message: ''});
}
res.json(json_body);
}).catch(err => {
console.error(err)
res.statusCode = 500;
return next({name: 'cvrapi.dk integrationen virker ikke p.t :/', message: ''});
});
});

1138
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -13,16 +13,14 @@
"tmux": "NODE_ENV=development ./tmux_dev.sh"
},
"dependencies": {
"ejs": "^3.1.8",
"express": "^4.18.2",
"formidable": "^2.1.1",
"node-latex": "^3.1.0",
"nodemailer": "^6.9.1",
"request": "^2.88.2"
"ejs": "^3.1.9",
"express": "^4.18.3",
"formidable": "^3.1.5",
"node-latex": "^3.1.0"
},
"devDependencies": {
"minify": "^9.2.0",
"nodemon": "^2.0.20"
"minify": "^11.1.1",
"nodemon": "^3.1.0"
},
"nodemonConfig": {
"ignore": [