verdaccio-audit 10.0.0-next.1 → 10.0.3

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/lib/audit.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Logger, IPluginMiddleware, IBasicAuth, PluginOptions } from '@verdaccio/types';
2
2
  import { ConfigAudit } from './types';
3
+ export declare const REGISTRY_DOMAIN = "https://registry.npmjs.org";
3
4
  export default class ProxyAudit implements IPluginMiddleware<ConfigAudit> {
4
5
  enabled: boolean;
5
6
  logger: Logger;
package/lib/audit.js CHANGED
@@ -3,16 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.REGISTRY_DOMAIN = void 0;
7
7
 
8
- var _request = _interopRequireDefault(require("request"));
8
+ var _https = _interopRequireDefault(require("https"));
9
+
10
+ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
9
11
 
10
12
  var _express = _interopRequireDefault(require("express"));
11
13
 
14
+ var _httpsProxyAgent = _interopRequireDefault(require("https-proxy-agent"));
15
+
16
+ var _bodyParser = require("body-parser");
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
19
 
14
20
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
21
 
22
+ // FUTURE: we should be able to overwrite this
23
+ const REGISTRY_DOMAIN = 'https://registry.npmjs.org';
24
+ exports.REGISTRY_DOMAIN = REGISTRY_DOMAIN;
25
+
16
26
  class ProxyAudit {
17
27
  constructor(config, options) {
18
28
  _defineProperty(this, "enabled", void 0);
@@ -28,23 +38,48 @@ class ProxyAudit {
28
38
 
29
39
  register_middlewares(app, auth) {
30
40
  const fetchAudit = (req, res) => {
41
+ var _auth$config;
42
+
31
43
  const headers = req.headers;
32
- headers.host = 'https://registry.npmjs.org/';
33
- const requestOptions = {
34
- url: 'https://registry.npmjs.org/-/npm/v1/security/audits',
35
- method: req.method,
36
- proxy: auth.config.https_proxy,
37
- req,
38
- strictSSL: this.strict_ssl
44
+ headers['host'] = 'registry.npmjs.org';
45
+ headers['content-encoding'] = 'gzip,deflate,br';
46
+ let requestOptions = {
47
+ agent: new _https.default.Agent({
48
+ rejectUnauthorized: this.strict_ssl
49
+ }),
50
+ body: JSON.stringify(req.body),
51
+ headers,
52
+ method: req.method
39
53
  };
40
- req.pipe((0, _request.default)(requestOptions)).on('error', err => {
41
- if (typeof res.report_error === 'function') {
42
- return res.report_error(err);
43
- }
44
54
 
45
- this.logger.error(err);
46
- return res.status(500).end();
47
- }).pipe(res);
55
+ if (auth !== null && auth !== void 0 && (_auth$config = auth.config) !== null && _auth$config !== void 0 && _auth$config.https_proxy) {
56
+ var _auth$config2;
57
+
58
+ // we should check whether this works fine after this migration
59
+ // please notify if anyone is having issues
60
+ const agent = (0, _httpsProxyAgent.default)(auth === null || auth === void 0 ? void 0 : (_auth$config2 = auth.config) === null || _auth$config2 === void 0 ? void 0 : _auth$config2.https_proxy);
61
+ requestOptions = Object.assign({}, requestOptions, {
62
+ agent
63
+ });
64
+ }
65
+
66
+ (async () => {
67
+ try {
68
+ const auditEndpoint = `${REGISTRY_DOMAIN}${req.baseUrl}${req.route.path}`;
69
+ this.logger.debug('fetching audit from ' + auditEndpoint);
70
+ const response = await (0, _nodeFetch.default)(auditEndpoint, requestOptions);
71
+
72
+ if (response.ok) {
73
+ res.status(response.status).send(await response.json());
74
+ } else {
75
+ this.logger.warn('could not fetch audit: ' + JSON.stringify(await response.json()));
76
+ res.status(response.status).end();
77
+ }
78
+ } catch (error) {
79
+ this.logger.warn('could not fetch audit: ' + error);
80
+ res.status(500).end();
81
+ }
82
+ })();
48
83
  };
49
84
 
50
85
  const handleAudit = (req, res) => {
@@ -61,12 +96,19 @@ class ProxyAudit {
61
96
  /* eslint new-cap:off */
62
97
 
63
98
 
64
- router.post('/audits', handleAudit);
65
- router.post('/audits/quick', handleAudit);
99
+ router.post('/audits', (0, _bodyParser.json)({
100
+ limit: '10mb'
101
+ }), handleAudit);
102
+ router.post('/audits/quick', (0, _bodyParser.json)({
103
+ limit: '10mb'
104
+ }), handleAudit);
105
+ router.post('/advisories/bulk', (0, _bodyParser.json)({
106
+ limit: '10mb'
107
+ }), handleAudit);
66
108
  app.use('/-/npm/v1/security', router);
67
109
  }
68
110
 
69
111
  }
70
112
 
71
113
  exports.default = ProxyAudit;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdWRpdC50cyJdLCJuYW1lcyI6WyJQcm94eUF1ZGl0IiwiY29uc3RydWN0b3IiLCJjb25maWciLCJvcHRpb25zIiwiZW5hYmxlZCIsInN0cmljdF9zc2wiLCJ1bmRlZmluZWQiLCJsb2dnZXIiLCJyZWdpc3Rlcl9taWRkbGV3YXJlcyIsImFwcCIsImF1dGgiLCJmZXRjaEF1ZGl0IiwicmVxIiwicmVzIiwiaGVhZGVycyIsImhvc3QiLCJyZXF1ZXN0T3B0aW9ucyIsInVybCIsIm1ldGhvZCIsInByb3h5IiwiaHR0cHNfcHJveHkiLCJzdHJpY3RTU0wiLCJwaXBlIiwib24iLCJlcnIiLCJyZXBvcnRfZXJyb3IiLCJlcnJvciIsInN0YXR1cyIsImVuZCIsImhhbmRsZUF1ZGl0Iiwicm91dGVyIiwiZXhwcmVzcyIsIlJvdXRlciIsInBvc3QiLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7O0FBS2UsTUFBTUEsVUFBTixDQUEyRDtBQUtqRUMsRUFBQUEsV0FBUCxDQUFtQkMsTUFBbkIsRUFBd0NDLE9BQXhDLEVBQTZFO0FBQUE7O0FBQUE7O0FBQUE7O0FBQzNFLFNBQUtDLE9BQUwsR0FBZUYsTUFBTSxDQUFDRSxPQUFQLElBQWtCLEtBQWpDO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQkgsTUFBTSxDQUFDRyxVQUFQLEtBQXNCQyxTQUF0QixHQUFrQ0osTUFBTSxDQUFDRyxVQUF6QyxHQUFzRCxJQUF4RTtBQUNBLFNBQUtFLE1BQUwsR0FBY0osT0FBTyxDQUFDSSxNQUF0QjtBQUNEOztBQUVNQyxFQUFBQSxvQkFBUCxDQUE0QkMsR0FBNUIsRUFBc0NDLElBQXRDLEVBQTJFO0FBQ3pFLFVBQU1DLFVBQVUsR0FBRyxDQUFDQyxHQUFELEVBQWVDLEdBQWYsS0FBcUU7QUFDdEYsWUFBTUMsT0FBTyxHQUFHRixHQUFHLENBQUNFLE9BQXBCO0FBQ0FBLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixHQUFlLDZCQUFmO0FBRUEsWUFBTUMsY0FBYyxHQUFHO0FBQ3JCQyxRQUFBQSxHQUFHLEVBQUUscURBRGdCO0FBRXJCQyxRQUFBQSxNQUFNLEVBQUVOLEdBQUcsQ0FBQ00sTUFGUztBQUdyQkMsUUFBQUEsS0FBSyxFQUFFVCxJQUFJLENBQUNSLE1BQUwsQ0FBWWtCLFdBSEU7QUFJckJSLFFBQUFBLEdBSnFCO0FBS3JCUyxRQUFBQSxTQUFTLEVBQUUsS0FBS2hCO0FBTEssT0FBdkI7QUFRQU8sTUFBQUEsR0FBRyxDQUNBVSxJQURILENBQ1Esc0JBQVFOLGNBQVIsQ0FEUixFQUVHTyxFQUZILENBRU0sT0FGTixFQUVlQyxHQUFHLElBQUk7QUFDbEIsWUFBSSxPQUFPWCxHQUFHLENBQUNZLFlBQVgsS0FBNEIsVUFBaEMsRUFBNEM7QUFDMUMsaUJBQU9aLEdBQUcsQ0FBQ1ksWUFBSixDQUFpQkQsR0FBakIsQ0FBUDtBQUNEOztBQUNELGFBQUtqQixNQUFMLENBQVltQixLQUFaLENBQWtCRixHQUFsQjtBQUNBLGVBQU9YLEdBQUcsQ0FBQ2MsTUFBSixDQUFXLEdBQVgsRUFBZ0JDLEdBQWhCLEVBQVA7QUFDRCxPQVJILEVBU0dOLElBVEgsQ0FTUVQsR0FUUjtBQVVELEtBdEJEOztBQXdCQSxVQUFNZ0IsV0FBVyxHQUFHLENBQUNqQixHQUFELEVBQWVDLEdBQWYsS0FBdUM7QUFDekQsVUFBSSxLQUFLVCxPQUFULEVBQWtCO0FBQ2hCTyxRQUFBQSxVQUFVLENBQUNDLEdBQUQsRUFBTUMsR0FBTixDQUFWO0FBQ0QsT0FGRCxNQUVPO0FBQ0xBLFFBQUFBLEdBQUcsQ0FBQ2MsTUFBSixDQUFXLEdBQVgsRUFBZ0JDLEdBQWhCO0FBQ0Q7QUFDRixLQU5EO0FBUUE7OztBQUNBLFVBQU1FLE1BQU0sR0FBR0MsaUJBQVFDLE1BQVIsRUFBZjtBQUNBOzs7QUFDQUYsSUFBQUEsTUFBTSxDQUFDRyxJQUFQLENBQVksU0FBWixFQUF1QkosV0FBdkI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDRyxJQUFQLENBQVksZUFBWixFQUE2QkosV0FBN0I7QUFFQXBCLElBQUFBLEdBQUcsQ0FBQ3lCLEdBQUosQ0FBUSxvQkFBUixFQUE4QkosTUFBOUI7QUFDRDs7QUFwRHVFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlcXVlc3QgZnJvbSAncmVxdWVzdCc7XG5pbXBvcnQgZXhwcmVzcywgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgTG9nZ2VyLCBJUGx1Z2luTWlkZGxld2FyZSwgSUJhc2ljQXV0aCwgUGx1Z2luT3B0aW9ucyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBDb25maWdBdWRpdCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm94eUF1ZGl0IGltcGxlbWVudHMgSVBsdWdpbk1pZGRsZXdhcmU8Q29uZmlnQXVkaXQ+IHtcbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsb2dnZXI6IExvZ2dlcjtcbiAgcHVibGljIHN0cmljdF9zc2w6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmlnQXVkaXQsIG9wdGlvbnM6IFBsdWdpbk9wdGlvbnM8Q29uZmlnQXVkaXQ+KSB7XG4gICAgdGhpcy5lbmFibGVkID0gY29uZmlnLmVuYWJsZWQgfHwgZmFsc2U7XG4gICAgdGhpcy5zdHJpY3Rfc3NsID0gY29uZmlnLnN0cmljdF9zc2wgIT09IHVuZGVmaW5lZCA/IGNvbmZpZy5zdHJpY3Rfc3NsIDogdHJ1ZTtcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyX21pZGRsZXdhcmVzKGFwcDogYW55LCBhdXRoOiBJQmFzaWNBdXRoPENvbmZpZ0F1ZGl0Pik6IHZvaWQge1xuICAgIGNvbnN0IGZldGNoQXVkaXQgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlICYgeyByZXBvcnRfZXJyb3I/OiBGdW5jdGlvbiB9KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gcmVxLmhlYWRlcnM7XG4gICAgICBoZWFkZXJzLmhvc3QgPSAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJztcblxuICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgIHVybDogJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLy0vbnBtL3YxL3NlY3VyaXR5L2F1ZGl0cycsXG4gICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgcHJveHk6IGF1dGguY29uZmlnLmh0dHBzX3Byb3h5LFxuICAgICAgICByZXEsXG4gICAgICAgIHN0cmljdFNTTDogdGhpcy5zdHJpY3Rfc3NsLFxuICAgICAgfTtcblxuICAgICAgcmVxXG4gICAgICAgIC5waXBlKHJlcXVlc3QocmVxdWVzdE9wdGlvbnMpKVxuICAgICAgICAub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlcy5yZXBvcnRfZXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMucmVwb3J0X2Vycm9yKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGVycik7XG4gICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNTAwKS5lbmQoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUocmVzKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQXVkaXQgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogdm9pZCA9PiB7XG4gICAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICAgIGZldGNoQXVkaXQocmVxLCByZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLnN0YXR1cyg1MDApLmVuZCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICAgIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICAgIHJvdXRlci5wb3N0KCcvYXVkaXRzJywgaGFuZGxlQXVkaXQpO1xuXG4gICAgcm91dGVyLnBvc3QoJy9hdWRpdHMvcXVpY2snLCBoYW5kbGVBdWRpdCk7XG5cbiAgICBhcHAudXNlKCcvLS9ucG0vdjEvc2VjdXJpdHknLCByb3V0ZXIpO1xuICB9XG59XG4iXX0=
114
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/audit.ts"],"names":["REGISTRY_DOMAIN","ProxyAudit","constructor","config","options","enabled","strict_ssl","undefined","logger","register_middlewares","app","auth","fetchAudit","req","res","headers","requestOptions","agent","https","Agent","rejectUnauthorized","body","JSON","stringify","method","https_proxy","Object","assign","auditEndpoint","baseUrl","route","path","debug","response","ok","status","send","json","warn","end","error","handleAudit","router","express","Router","post","limit","use"],"mappings":"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","sourcesContent":["import https from 'https';\nimport fetch from 'node-fetch';\nimport express, { Request, Response } from 'express';\nimport createHttpsProxyAgent from 'https-proxy-agent';\nimport { json as jsonParser } from 'body-parser';\nimport { Logger, IPluginMiddleware, IBasicAuth, PluginOptions } from '@verdaccio/types';\n\nimport { ConfigAudit } from './types';\n\n// FUTURE: we should be able to overwrite this\nexport const REGISTRY_DOMAIN = 'https://registry.npmjs.org';\n\nexport default class ProxyAudit implements IPluginMiddleware<ConfigAudit> {\n public enabled: boolean;\n public logger: Logger;\n public strict_ssl: boolean;\n\n public constructor(config: ConfigAudit, options: PluginOptions<ConfigAudit>) {\n this.enabled = config.enabled || false;\n this.strict_ssl = config.strict_ssl !== undefined ? config.strict_ssl : true;\n this.logger = options.logger;\n }\n\n public register_middlewares(app: any, auth: IBasicAuth<ConfigAudit>): void {\n const fetchAudit = (req: Request, res: Response & { report_error?: Function }): void => {\n const headers = req.headers;\n\n headers['host'] = 'registry.npmjs.org';\n headers['content-encoding'] = 'gzip,deflate,br';\n\n let requestOptions: any = {\n agent: new https.Agent({ rejectUnauthorized: this.strict_ssl }),\n body: JSON.stringify(req.body),\n headers,\n method: req.method,\n };\n\n if (auth?.config?.https_proxy) {\n // we should check whether this works fine after this migration\n // please notify if anyone is having issues\n const agent = createHttpsProxyAgent(auth?.config?.https_proxy);\n requestOptions = Object.assign({}, requestOptions, {\n agent,\n });\n }\n\n (async () => {\n try {\n const auditEndpoint = `${REGISTRY_DOMAIN}${req.baseUrl}${req.route.path}`;\n this.logger.debug('fetching audit from ' + auditEndpoint);\n\n const response = await fetch(auditEndpoint, requestOptions);\n\n if (response.ok) {\n res.status(response.status).send(await response.json());\n } else {\n this.logger.warn('could not fetch audit: ' + JSON.stringify(await response.json()));\n res.status(response.status).end();\n }\n } catch (error) {\n this.logger.warn('could not fetch audit: ' + error);\n res.status(500).end();\n }\n })();\n };\n\n const handleAudit = (req: Request, res: Response): void => {\n if (this.enabled) {\n fetchAudit(req, res);\n } else {\n res.status(500).end();\n }\n };\n\n /* eslint new-cap:off */\n const router = express.Router();\n /* eslint new-cap:off */\n\n router.post('/audits', jsonParser({ limit: '10mb' }), handleAudit);\n router.post('/audits/quick', jsonParser({ limit: '10mb' }), handleAudit);\n\n router.post('/advisories/bulk', jsonParser({ limit: '10mb' }), handleAudit);\n\n app.use('/-/npm/v1/security', router);\n }\n}\n"],"file":"audit.js"}
package/lib/index.js CHANGED
@@ -19,4 +19,4 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
 
20
20
  var _default = _audit.default;
21
21
  exports.default = _default;
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJBdWRpdFBsdWdpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O2VBSWVBLGMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXVkaXRQbHVnaW4gZnJvbSAnLi9hdWRpdCc7XG5pbXBvcnQgeyBDb25maWdBdWRpdCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgeyBDb25maWdBdWRpdCB9O1xuXG5leHBvcnQgZGVmYXVsdCBBdWRpdFBsdWdpbjtcbiJdfQ==
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["AuditPlugin"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;eAIeA,c","sourcesContent":["import AuditPlugin from './audit';\nimport { ConfigAudit } from './types';\n\nexport { ConfigAudit };\n\nexport default AuditPlugin;\n"],"file":"index.js"}
package/lib/types.js CHANGED
@@ -1,2 +1,6 @@
1
1
  "use strict";
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio-audit",
3
- "version": "10.0.0-next.1",
3
+ "version": "10.0.3",
4
4
  "description": "Verdaccio Middleware plugin to bypass npmjs audit",
5
5
  "keywords": [
6
6
  "verdaccio",
@@ -29,27 +29,24 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "express": "4.17.1",
32
- "request": "2.88.0"
32
+ "https-proxy-agent": "5.0.0",
33
+ "body-parser": "1.19.0",
34
+ "node-fetch": "2.6.6"
33
35
  },
34
36
  "devDependencies": {
35
- "@verdaccio/babel-preset": "^10.0.0-next.1",
36
- "@verdaccio/eslint-config": "^10.0.0-next.1",
37
- "@verdaccio/types": "^9.3.0"
38
- },
39
- "scripts": {
40
- "build": "npm run build:types && npm run build:js",
41
- "build:js": "babel src/ --out-dir lib --extensions \".ts,.tsx\" --source-maps inline",
42
- "build:types": "tsc --emitDeclarationOnly",
43
- "coverage:publish": "codecov --root=../../ -F plugins",
44
- "lint": "eslint \"**/*.{js,ts}\"",
45
- "lint:stage": "lint-staged",
46
- "test": "jest",
47
- "type-check": "tsc --noEmit",
48
- "type-check:watch": "npm run type-check -- --watch"
37
+ "@verdaccio/types": "10.0.1"
49
38
  },
50
39
  "funding": {
51
40
  "type": "opencollective",
52
41
  "url": "https://opencollective.com/verdaccio"
53
42
  },
54
- "gitHead": "1c83f6e766a5ed042ce1bcf2ab2cb68631ad83fd"
55
- }
43
+ "scripts": {
44
+ "clean": "rimraf ./build",
45
+ "test": "cross-env NODE_ENV=test BABEL_ENV=test jest",
46
+ "type-check": "tsc --noEmit -p tsconfig.build.json",
47
+ "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
48
+ "build:js": "babel src/ --out-dir lib/ --copy-files --extensions \".ts,.tsx\" --source-maps",
49
+ "watch": "pnpm build:js -- --watch",
50
+ "build": "pnpm run build:js && pnpm run build:types"
51
+ }
52
+ }
package/CHANGELOG.md DELETED
@@ -1,313 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [10.0.0-next.1](https://github.com/verdaccio/monorepo/compare/v10.0.0-next.0...v10.0.0-next.1) (2020-04-12)
7
-
8
- **Note:** Version bump only for package verdaccio-audit
9
-
10
-
11
-
12
-
13
-
14
- # [10.0.0-next.0](https://github.com/verdaccio/monorepo/compare/v9.4.0...v10.0.0-next.0) (2020-03-28)
15
-
16
- **Note:** Version bump only for package verdaccio-audit
17
-
18
-
19
-
20
-
21
-
22
- # [9.4.0](https://github.com/verdaccio/monorepo/compare/v9.3.4...v9.4.0) (2020-03-21)
23
-
24
- **Note:** Version bump only for package verdaccio-audit
25
-
26
-
27
-
28
-
29
-
30
- ## [9.3.2](https://github.com/verdaccio/monorepo/compare/v9.3.1...v9.3.2) (2020-03-08)
31
-
32
- **Note:** Version bump only for package verdaccio-audit
33
-
34
-
35
-
36
-
37
-
38
- ## [9.3.1](https://github.com/verdaccio/monorepo/compare/v9.3.0...v9.3.1) (2020-02-23)
39
-
40
- **Note:** Version bump only for package verdaccio-audit
41
-
42
-
43
-
44
-
45
-
46
- # [9.3.0](https://github.com/verdaccio/monorepo/compare/v9.2.0...v9.3.0) (2020-01-29)
47
-
48
- **Note:** Version bump only for package verdaccio-audit
49
-
50
-
51
-
52
-
53
-
54
- # [9.0.0](https://github.com/verdaccio/monorepo/compare/v8.5.3...v9.0.0) (2020-01-07)
55
-
56
- **Note:** Version bump only for package verdaccio-audit
57
-
58
-
59
-
60
-
61
-
62
- ## [8.5.2](https://github.com/verdaccio/monorepo/compare/v8.5.1...v8.5.2) (2019-12-25)
63
-
64
- **Note:** Version bump only for package verdaccio-audit
65
-
66
-
67
-
68
-
69
-
70
- ## [8.5.1](https://github.com/verdaccio/monorepo/compare/v8.5.0...v8.5.1) (2019-12-24)
71
-
72
- **Note:** Version bump only for package verdaccio-audit
73
-
74
-
75
-
76
-
77
-
78
- # [8.5.0](https://github.com/verdaccio/monorepo/compare/v8.4.2...v8.5.0) (2019-12-22)
79
-
80
- **Note:** Version bump only for package verdaccio-audit
81
-
82
-
83
-
84
-
85
-
86
- ## [8.4.2](https://github.com/verdaccio/monorepo/compare/v8.4.1...v8.4.2) (2019-11-23)
87
-
88
- **Note:** Version bump only for package verdaccio-audit
89
-
90
-
91
-
92
-
93
-
94
- ## [8.4.1](https://github.com/verdaccio/monorepo/compare/v8.4.0...v8.4.1) (2019-11-22)
95
-
96
- **Note:** Version bump only for package verdaccio-audit
97
-
98
-
99
-
100
-
101
-
102
- # [8.4.0](https://github.com/verdaccio/monorepo/compare/v8.3.0...v8.4.0) (2019-11-22)
103
-
104
- **Note:** Version bump only for package verdaccio-audit
105
-
106
-
107
-
108
-
109
-
110
- # [8.3.0](https://github.com/verdaccio/monorepo/compare/v8.2.0...v8.3.0) (2019-10-27)
111
-
112
- **Note:** Version bump only for package verdaccio-audit
113
-
114
-
115
-
116
-
117
-
118
- # [8.2.0](https://github.com/verdaccio/monorepo/compare/v8.2.0-next.0...v8.2.0) (2019-10-23)
119
-
120
- **Note:** Version bump only for package verdaccio-audit
121
-
122
-
123
-
124
-
125
-
126
- # [8.2.0-next.0](https://github.com/verdaccio/monorepo/compare/v8.1.4...v8.2.0-next.0) (2019-10-08)
127
-
128
-
129
- ### Bug Fixes
130
-
131
- * fixed lint errors ([c80e915](https://github.com/verdaccio/monorepo/commit/c80e915))
132
-
133
-
134
-
135
-
136
-
137
- ## [8.1.4](https://github.com/verdaccio/monorepo/compare/v8.1.3...v8.1.4) (2019-09-30)
138
-
139
- **Note:** Version bump only for package verdaccio-audit
140
-
141
-
142
-
143
-
144
-
145
- ## [8.1.3](https://github.com/verdaccio/monorepo/compare/v8.1.2...v8.1.3) (2019-09-30)
146
-
147
- **Note:** Version bump only for package verdaccio-audit
148
-
149
-
150
-
151
-
152
-
153
- ## [8.1.2](https://github.com/verdaccio/monorepo/compare/v8.1.1...v8.1.2) (2019-09-29)
154
-
155
- **Note:** Version bump only for package verdaccio-audit
156
-
157
-
158
-
159
-
160
-
161
- ## [8.1.1](https://github.com/verdaccio/monorepo/compare/v8.1.0...v8.1.1) (2019-09-26)
162
-
163
- **Note:** Version bump only for package verdaccio-audit
164
-
165
-
166
-
167
-
168
-
169
- # [8.1.0](https://github.com/verdaccio/monorepo/compare/v8.0.1-next.1...v8.1.0) (2019-09-07)
170
-
171
- **Note:** Version bump only for package verdaccio-audit
172
-
173
-
174
-
175
-
176
-
177
- ## [8.0.1-next.1](https://github.com/verdaccio/monorepo/compare/v8.0.1-next.0...v8.0.1-next.1) (2019-08-29)
178
-
179
- **Note:** Version bump only for package verdaccio-audit
180
-
181
-
182
-
183
-
184
-
185
- ## [8.0.1-next.0](https://github.com/verdaccio/monorepo/compare/v8.0.0...v8.0.1-next.0) (2019-08-29)
186
-
187
- **Note:** Version bump only for package verdaccio-audit
188
-
189
-
190
-
191
-
192
-
193
- # [8.0.0](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.4...v8.0.0) (2019-08-22)
194
-
195
- **Note:** Version bump only for package verdaccio-audit
196
-
197
-
198
-
199
-
200
-
201
- # [8.0.0-next.4](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.3...v8.0.0-next.4) (2019-08-18)
202
-
203
- **Note:** Version bump only for package verdaccio-audit
204
-
205
-
206
-
207
-
208
-
209
- # [8.0.0-next.2](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.1...v8.0.0-next.2) (2019-08-03)
210
-
211
- **Note:** Version bump only for package verdaccio-audit
212
-
213
-
214
-
215
-
216
-
217
- # [8.0.0-next.1](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.0...v8.0.0-next.1) (2019-08-01)
218
-
219
- **Note:** Version bump only for package verdaccio-audit
220
-
221
-
222
-
223
-
224
-
225
- # [8.0.0-next.0](https://github.com/verdaccio/monorepo/compare/v2.0.0...v8.0.0-next.0) (2019-08-01)
226
-
227
-
228
- ### Bug Fixes
229
-
230
- * on error returns 500 by default ([86bf628](https://github.com/verdaccio/monorepo/commit/86bf628))
231
- * package.json to reduce vulnerabilities ([457a791](https://github.com/verdaccio/monorepo/commit/457a791))
232
-
233
-
234
- ### Features
235
-
236
- * add audit quick endpoint ([5ab2ece](https://github.com/verdaccio/monorepo/commit/5ab2ece))
237
- * migrate to typescript ([caffcd5](https://github.com/verdaccio/monorepo/commit/caffcd5))
238
- * proxy npm audit endpoint ([b11151d](https://github.com/verdaccio/monorepo/commit/b11151d))
239
-
240
-
241
-
242
-
243
-
244
- # Changelog
245
-
246
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
247
-
248
- ### [1.2.1](https://github.com/verdaccio/verdaccio-audit/compare/v1.2.0...v1.2.1) (2019-07-29)
249
-
250
-
251
- ### Bug Fixes
252
-
253
- * audit module doesn't support strict_ssl flag ([f7d3f86](https://github.com/verdaccio/verdaccio-audit/commit/f7d3f86))
254
-
255
-
256
- ### Build System
257
-
258
- * update dependencies ([ddaa990](https://github.com/verdaccio/verdaccio-audit/commit/ddaa990))
259
-
260
-
261
-
262
- # [1.2.0](https://github.com/verdaccio/verdaccio-audit/compare/v1.1.0...v1.2.0) (2019-04-06)
263
-
264
-
265
- ### Bug Fixes
266
-
267
- * bad network causes the server down ([2c838b4](https://github.com/verdaccio/verdaccio-audit/commit/2c838b4))
268
- * types error ([16d623e](https://github.com/verdaccio/verdaccio-audit/commit/16d623e))
269
-
270
-
271
- ### Features
272
-
273
- * migrate to typescript ([bec6824](https://github.com/verdaccio/verdaccio-audit/commit/bec6824))
274
-
275
-
276
-
277
- <a name="1.1.0"></a>
278
- # [1.1.0](https://github.com/verdaccio/verdaccio-audit/compare/v1.0.1...v1.1.0) (2019-01-09)
279
-
280
-
281
- ### Features
282
-
283
- * pipe request and response bodies to save memory ([#8](https://github.com/verdaccio/verdaccio-audit/issues/8)) ([0af7363](https://github.com/verdaccio/verdaccio-audit/commit/0af7363))
284
-
285
-
286
-
287
- <a name="1.0.1"></a>
288
- ## [1.0.1](https://github.com/verdaccio/verdaccio-audit/compare/v1.0.0...v1.0.1) (2019-01-09)
289
-
290
-
291
- ### Bug Fixes
292
-
293
- * package.json to reduce vulnerabilities ([bdf35df](https://github.com/verdaccio/verdaccio-audit/commit/bdf35df))
294
-
295
-
296
-
297
- <a name="1.0.0"></a>
298
- # [1.0.0](https://github.com/verdaccio/verdaccio-audit/compare/v0.2.0...v1.0.0) (2018-10-18)
299
-
300
-
301
- ### Features
302
-
303
- * handle 'application/json, application/octet-stream' content types ([cf38a38](https://github.com/verdaccio/verdaccio-audit/commit/cf38a38))
304
-
305
-
306
-
307
- <a name="0.2.0"></a>
308
- # [0.2.0](https://github.com/verdaccio/verdaccio-audit/compare/v0.1.0...v0.2.0) (2018-06-15)
309
-
310
-
311
- ### Features
312
-
313
- * support audit via HTTPS proxy ([5328bc3](https://github.com/verdaccio/verdaccio-audit/commit/5328bc3))