zsyp 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -2,9 +2,7 @@ require('dotenv').config({ path: '/etc/default/zsyp' });
2
2
 
3
3
  const makeApp = require('./lib/app');
4
4
 
5
- const {
6
- ZSYP_PORT: PORT = 3090,
7
- } = process.env;
5
+ const { ZSYP_PORT: PORT = 3090 } = process.env;
8
6
 
9
7
  const app = makeApp();
10
8
 
package/lib/app.js CHANGED
@@ -6,10 +6,7 @@ const event = require('./event');
6
6
 
7
7
  module.exports = makeApp;
8
8
 
9
- const {
10
- ZSYP_DOMAINS: domains,
11
- ZSYP_DB: database = 'mongodb://localhost/zsyp'
12
- } = process.env;
9
+ const { ZSYP_DOMAINS: domains, ZSYP_DB: database = 'mongodb://localhost/zsyp' } = process.env;
13
10
 
14
11
  function makeApp(opts = {}) {
15
12
  const app = connect();
@@ -23,4 +20,3 @@ function makeApp(opts = {}) {
23
20
 
24
21
  return app;
25
22
  }
26
-
package/lib/converter.js CHANGED
@@ -1,14 +1,13 @@
1
1
  module.exports = makeConverter;
2
2
 
3
3
  function makeConverter({ converter }) {
4
-
5
- async function convert(req, res, next) {
4
+ async function convert(req, _res, next) {
6
5
  try {
7
6
  const { item, meta } = await converter(req.body);
8
7
  req.item = item;
9
8
  req.meta = meta;
10
9
  return next();
11
- } catch(e) {
10
+ } catch (e) {
12
11
  return next(e);
13
12
  }
14
13
  }
@@ -16,8 +15,7 @@ function makeConverter({ converter }) {
16
15
  return converter ? convert : keep;
17
16
  }
18
17
 
19
- function keep(req, res, next) {
18
+ function keep(req, _res, next) {
20
19
  req.item = req.body;
21
20
  return next();
22
21
  }
23
-
package/lib/filter.js CHANGED
@@ -3,7 +3,6 @@ module.exports = makeFilter;
3
3
  /* global URL */
4
4
 
5
5
  function makeFilter({ domains }) {
6
-
7
6
  if (!domains) {
8
7
  return;
9
8
  }
@@ -11,7 +10,7 @@ function makeFilter({ domains }) {
11
10
  const domainRe = domains && new RegExp(domains);
12
11
  return filter;
13
12
 
14
- function filter({ body: csp }, res, next) {
13
+ function filter({ body: csp }, _res, next) {
15
14
  const uri = csp['csp-report']['document-uri'];
16
15
  const { hostname } = new URL(uri);
17
16
  if (domainRe.test(hostname)) {
@@ -19,4 +18,3 @@ function makeFilter({ domains }) {
19
18
  }
20
19
  }
21
20
  }
22
-
package/lib/from.js CHANGED
@@ -2,15 +2,10 @@ const { parse } = require('useragent');
2
2
 
3
3
  module.exports = from;
4
4
 
5
- function from(req, res, next) {
5
+ function from(req, _res, next) {
6
6
  const { headers, body } = req;
7
- const ua = body?.from?.ua ?? headers['user-agent'];
8
- const {
9
- family,
10
- major,
11
- os,
12
- device
13
- } = parse(ua);
7
+ const ua = body?.from?.ua ?? headers['user-agent'];
8
+ const { family, major, os, device } = parse(ua);
14
9
  const data = {
15
10
  ua,
16
11
  browser: {
package/lib/logger.js CHANGED
@@ -5,18 +5,19 @@ module.exports = makeLogger;
5
5
  function makeLogger({ db, name }) {
6
6
  const cache = Object.create(null);
7
7
 
8
- const getCollection = name ?
9
- () => collectionFromCache(name) :
10
- ({ name }) => collectionFromCache(name);
8
+ const getCollection = name ? () => collectionFromCache(name) : ({ name }) => collectionFromCache(name);
11
9
 
12
10
  return log;
13
11
 
14
- function log({ from, item, meta }, res, next) {
12
+ function log({ from, item, meta }, _res, next) {
15
13
  debug('saving %j', item);
16
14
  getCollection(meta)
17
15
  .insertOne({ ...item, from })
18
16
  .then(() => next())
19
- .catch(err => { console.error(err); next(); });
17
+ .catch(err => {
18
+ console.error(err);
19
+ next();
20
+ });
20
21
  }
21
22
 
22
23
  function collectionFromCache(name) {
package/lib/router.js CHANGED
@@ -3,22 +3,18 @@ const makeFilter = require('./filter');
3
3
  const makeConverter = require('./converter');
4
4
  const makeLogger = require('./logger');
5
5
 
6
- module.exports = function (opts) {
7
- const stack = [
8
- respond,
9
- from,
10
- makeFilter(opts),
11
- makeConverter(opts),
12
- makeLogger(opts),
13
- opts.finalMiddleware
14
- ].filter(Boolean);
6
+ module.exports = router;
15
7
 
16
- return loop(stack);
17
- };
8
+ function router(opts) {
9
+ const stack = [respond, from, makeFilter(opts), makeConverter(opts), makeLogger(opts), opts.finalMiddleware].filter(
10
+ Boolean
11
+ );
18
12
 
13
+ return loop(stack);
14
+ }
19
15
 
20
16
  function loop(stack) {
21
- return function (req, res, next) {
17
+ return (req, res, next) => {
22
18
  let i = 0;
23
19
  fn();
24
20
 
package/lib/source-map.js CHANGED
@@ -1,5 +1,5 @@
1
- const { readFile } = require('fs').promises;
2
- const path = require('path');
1
+ const { readFile } = require('node:fs').promises;
2
+ const path = require('node:path');
3
3
  const { SourceMapConsumer } = require('source-map');
4
4
  const { LRUCache: LRU } = require('lru-cache');
5
5
 
@@ -8,20 +8,16 @@ module.exports = {
8
8
  clear
9
9
  };
10
10
 
11
- const {
12
- ZSYP_SOURCE_MAP_DIR = '/var/lib/zsyp',
13
- ZSYP_SOURCE_MAP_CACHE_SIZE = 30
14
- } = process.env;
15
-
11
+ const { ZSYP_SOURCE_MAP_DIR = '/var/lib/zsyp', ZSYP_SOURCE_MAP_CACHE_SIZE = 30 } = process.env;
16
12
 
17
13
  const cache = new LRU({
18
14
  max: ZSYP_SOURCE_MAP_CACHE_SIZE,
19
15
  fetchMethod: fetchSourceMap,
20
- dispose: smc => smc && smc.destroy()
16
+ dispose: smc => smc?.destroy()
21
17
  });
22
18
 
23
19
  async function resolve({ an, av }, frame) {
24
- const [source, line, column ] = frame;
20
+ const [source, line, column] = frame;
25
21
  const smc = await loadSourceMap(an, av, source);
26
22
  if (!smc) {
27
23
  return frame;
@@ -48,7 +44,7 @@ function loadSourceMap(app, version, source) {
48
44
 
49
45
  async function fetchSourceMap(filename) {
50
46
  try {
51
- const txt = await readFile(filename + '.map');
47
+ const txt = await readFile(`${filename}.map`);
52
48
  const map = JSON.parse(txt);
53
49
  return new SourceMapConsumer(map);
54
50
  } catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zsyp",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "CSP violation reports logger.",
5
5
  "author": {
6
6
  "name": "Damian Krzeminski",
@@ -27,8 +27,8 @@
27
27
  "useragent": "^2.3.0"
28
28
  },
29
29
  "devDependencies": {
30
- "@pirxpilot/jshint": "~3",
31
- "supertest": "~7"
30
+ "@biomejs/biome": "^1.9.4",
31
+ "supertest-fetch": "~2"
32
32
  },
33
33
  "scripts": {
34
34
  "test": "make check"