verdaccio 6.7.2 → 6.7.4

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.
@@ -14,6 +14,11 @@ var _logger = require("../../../../lib/logger");
14
14
  var _utils = require("../../../../lib/utils");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  const debug = (0, _debug.default)('verdaccio:token');
17
+
18
+ // Granular access token options (npm >= 11) that Verdaccio does not implement
19
+ // yet. They are accepted so `npm token create` succeeds, but the restrictions
20
+ // they express are NOT enforced — warn so the operator is not misled.
21
+ const UNSUPPORTED_TOKEN_OPTIONS = ['packages_and_scopes_permission', 'packages', 'packages_all', 'scopes', 'orgs', 'orgs_permission', 'expires', 'description', 'bypass_2fa'];
17
22
  function normalizeToken(token) {
18
23
  return {
19
24
  ...token,
@@ -53,15 +58,27 @@ function _default(router, auth, storage, config) {
53
58
  router.post('/-/npm/v1/tokens', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
54
59
  const {
55
60
  password,
56
- readonly,
57
- cidr_whitelist
61
+ readonly = false,
62
+ cidr_whitelist = []
58
63
  } = req.body;
59
64
  const {
60
65
  name
61
66
  } = req.remote_user;
67
+ // `readonly` and `cidr_whitelist` are optional: npm >= 11 rewrote
68
+ // `npm token create` to omit them (and only sends `cidr_whitelist` with
69
+ // `--cidr`), so default them rather than rejecting the request. A wrong
70
+ // type is still rejected.
71
+
62
72
  if (!_lodash.default.isBoolean(readonly) || !_lodash.default.isArray(cidr_whitelist)) {
63
73
  return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_DATA, _constants.SUPPORT_ERRORS.PARAMETERS_NOT_VALID));
64
74
  }
75
+ const unsupportedOptions = UNSUPPORTED_TOKEN_OPTIONS.filter(option => _lodash.default.isNil(req.body[option]) === false);
76
+ if (unsupportedOptions.length > 0) {
77
+ _logger.logger.warn({
78
+ options: unsupportedOptions.join(', '),
79
+ userAgent: req.get('user-agent') ?? 'unknown'
80
+ }, 'granular access token options are not supported yet and will be ignored: @{options} (client: @{userAgent})');
81
+ }
65
82
  auth.authenticate(name, password, async (err, user) => {
66
83
  if (err) {
67
84
  const errorCode = err.message ? _constants.HTTP_STATUS.UNAUTHORIZED : _constants.HTTP_STATUS.INTERNAL_ERROR;
@@ -72,8 +89,10 @@ function _default(router, auth, storage, config) {
72
89
  return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.NOT_IMPLEMENTED, _constants.SUPPORT_ERRORS.STORAGE_NOT_IMPLEMENT));
73
90
  }
74
91
  try {
75
- const token = await (0, _auth.getApiToken)(auth, config, user, password);
76
- const key = _core.cryptoUtils.stringToMD5(token);
92
+ const key = _core.cryptoUtils.generateRandomHexString(16);
93
+ const token = await (0, _auth.getApiToken)(auth, config, user, password, {
94
+ tokenKey: key
95
+ });
77
96
  // TODO: use a utility here
78
97
  const maskedToken = _core.cryptoUtils.mask(token, 5);
79
98
  const created = new Date().getTime();
@@ -137,4 +156,4 @@ function _default(router, auth, storage, config) {
137
156
  return next(_utils.ErrorCode.getUnauthorized());
138
157
  });
139
158
  }
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfYXV0aCIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsIm5vcm1hbGl6ZVRva2VuIiwidG9rZW4iLCJjcmVhdGVkIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiX2RlZmF1bHQiLCJyb3V0ZXIiLCJhdXRoIiwic3RvcmFnZSIsImNvbmZpZyIsImdldCIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwibmFtZSIsInJlbW90ZV91c2VyIiwiXyIsImlzTmlsIiwidG9rZW5zIiwicmVhZFRva2VucyIsInVzZXIiLCJ0b3RhbFRva2VucyIsImxlbmd0aCIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJvYmplY3RzIiwibWFwIiwidXJscyIsImVycm9yIiwibG9nZ2VyIiwibXNnIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIklOVEVSTkFMX0VSUk9SIiwibWVzc2FnZSIsImdldFVuYXV0aG9yaXplZCIsInBvc3QiLCJwYXNzd29yZCIsInJlYWRvbmx5IiwiY2lkcl93aGl0ZWxpc3QiLCJib2R5IiwiaXNCb29sZWFuIiwiaXNBcnJheSIsIkJBRF9EQVRBIiwiU1VQUE9SVF9FUlJPUlMiLCJQQVJBTUVURVJTX05PVF9WQUxJRCIsImF1dGhlbnRpY2F0ZSIsImVyciIsImVycm9yQ29kZSIsIlVOQVVUSE9SSVpFRCIsImlzRnVuY3Rpb24iLCJzYXZlVG9rZW4iLCJOT1RfSU1QTEVNRU5URUQiLCJTVE9SQUdFX05PVF9JTVBMRU1FTlQiLCJnZXRBcGlUb2tlbiIsImtleSIsImNyeXB0b1V0aWxzIiwic3RyaW5nVG9NRDUiLCJtYXNrZWRUb2tlbiIsIm1hc2siLCJnZXRUaW1lIiwiY2lkciIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwiZGVsZXRlIiwicGFyYW1zIiwidG9rZW5LZXkiLCJkZWxldGVUb2tlbiIsImluZm8iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS92MS90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgeyBjcnlwdG9VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyByYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcsIFJlbW90ZVVzZXIsIFRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEhFQURFUlMsIEhUVFBfU1RBVFVTLCBTVVBQT1JUX0VSUk9SUyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2Npbzp0b2tlbicpO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplVG9rZW4gPSBUb2tlbiAmIHtcbiAgY3JlYXRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplVG9rZW4odG9rZW46IFRva2VuKTogTm9ybWFsaXplVG9rZW4ge1xuICByZXR1cm4ge1xuICAgIC4uLnRva2VuLFxuICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKHRva2VuLmNyZWF0ZWQpLnRvSVNPU3RyaW5nKCksXG4gIH07XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXByb2ZpbGUvYmxvYi9sYXRlc3QvbGliL2luZGV4LmpzXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGVyOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnKSB7XG4gIHJvdXRlci5nZXQoXG4gICAgJy8tL25wbS92MS90b2tlbnMnLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGFzeW5jIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwobmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgc3RvcmFnZS5yZWFkVG9rZW5zKHsgdXNlcjogbmFtZSB9KTtcbiAgICAgICAgICBjb25zdCB0b3RhbFRva2VucyA9IHRva2Vucy5sZW5ndGg7XG4gICAgICAgICAgZGVidWcoJ3Rva2VuIGxpc3QgcmV0cmlldmVkOiAlbycsIHRvdGFsVG9rZW5zKTtcbiAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICBvYmplY3RzOiB0b2tlbnMubWFwKG5vcm1hbGl6ZVRva2VuKSxcbiAgICAgICAgICAgIHVybHM6IHtcbiAgICAgICAgICAgICAgbmV4dDogJycsIC8vIFRPRE86IHBhZ2luYXRpb24/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gbGlzdCBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoKSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5wb3N0KFxuICAgICcvLS9ucG0vdjEvdG9rZW5zJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgY29uc3QgeyBwYXNzd29yZCwgcmVhZG9ubHksIGNpZHJfd2hpdGVsaXN0IH0gPSByZXEuYm9keTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoIV8uaXNCb29sZWFuKHJlYWRvbmx5KSB8fCAhXy5pc0FycmF5KGNpZHJfd2hpdGVsaXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5CQURfREFUQSwgU1VQUE9SVF9FUlJPUlMuUEFSQU1FVEVSU19OT1RfVkFMSUQpKTtcbiAgICAgIH1cblxuICAgICAgYXV0aC5hdXRoZW50aWNhdGUobmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI/OiBSZW1vdGVVc2VyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubWVzc2FnZSA/IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCA6IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG5cbiAgICAgICAgaWYgKCFfLmlzRnVuY3Rpb24oc3RvcmFnZS5zYXZlVG9rZW4pKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5OT1RfSU1QTEVNRU5URUQsIFNVUFBPUlRfRVJST1JTLlNUT1JBR0VfTk9UX0lNUExFTUVOVClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBnZXRBcGlUb2tlbihhdXRoLCBjb25maWcsIHVzZXIgYXMgUmVtb3RlVXNlciwgcGFzc3dvcmQpKSBhcyBzdHJpbmc7XG4gICAgICAgICAgY29uc3Qga2V5ID0gY3J5cHRvVXRpbHMuc3RyaW5nVG9NRDUodG9rZW4gYXMgc3RyaW5nKTtcbiAgICAgICAgICAvLyBUT0RPOiB1c2UgYSB1dGlsaXR5IGhlcmVcbiAgICAgICAgICBjb25zdCBtYXNrZWRUb2tlbiA9IGNyeXB0b1V0aWxzLm1hc2sodG9rZW4gYXMgc3RyaW5nLCA1KTtcbiAgICAgICAgICBjb25zdCBjcmVhdGVkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBjaWRyX3doaXRlbGlzdDogaXMgbm90IGJlaW5nIHVzZWQsIHdlIHBhc3MgaXQgdGhyb3VnaFxuICAgICAgICAgICAqIHRva2VuOiB3ZSBkbyBub3Qgc3RvcmUgdGhlIHJlYWwgdG9rZW4gKGl0IGlzIGdlbmVyYXRlZCBvbmNlIGFuZCByZXRyaWV2ZWQgdG8gdGhlIHVzZXIpLCBqdXN0IGEgbWFzayBvZiBpdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjb25zdCBzYXZlVG9rZW46IFRva2VuID0ge1xuICAgICAgICAgICAgdXNlcjogbmFtZSxcbiAgICAgICAgICAgIHRva2VuOiBtYXNrZWRUb2tlbixcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGNpZHI6IGNpZHJfd2hpdGVsaXN0LFxuICAgICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgICBjcmVhdGVkLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhd2FpdCBzdG9yYWdlLnNhdmVUb2tlbihzYXZlVG9rZW4pO1xuICAgICAgICAgIGRlYnVnKCd0b2tlbiAlbyB3YXMgY3JlYXRlZCBmb3IgdXNlciAlbycsIGtleSwgbmFtZSk7XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgIG5vcm1hbGl6ZVRva2VuKHtcbiAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgICAgIGtleTogc2F2ZVRva2VuLmtleSxcbiAgICAgICAgICAgICAgY2lkcjogY2lkcl93aGl0ZWxpc3QsXG4gICAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgICBjcmVhdGVkOiBzYXZlVG9rZW4uY3JlYXRlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGNyZWF0aW9uIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5kZWxldGUoXG4gICAgJy8tL25wbS92MS90b2tlbnMvdG9rZW4vOnRva2VuS2V5JyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBhc3luYyAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwYXJhbXM6IHsgdG9rZW5LZXkgfSxcbiAgICAgIH0gPSByZXE7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwobmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGRlYnVnKCclbyBoYXMgcmVxdWVzdGVkIHJlbW92ZSBhIHRva2VuJywgbmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc3RvcmFnZS5kZWxldGVUb2tlbihuYW1lLCB0b2tlbktleSk7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oeyB0b2tlbktleSwgbmFtZSB9LCAndG9rZW4gaWQgQHt0b2tlbktleX0gd2FzIHJldm9rZWQgZm9yIHVzZXIgQHtuYW1lfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KHt9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGNyZWF0aW9uIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0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
159
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfYXV0aCIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsIlVOU1VQUE9SVEVEX1RPS0VOX09QVElPTlMiLCJub3JtYWxpemVUb2tlbiIsInRva2VuIiwiY3JlYXRlZCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsIl9kZWZhdWx0Iiwicm91dGVyIiwiYXV0aCIsInN0b3JhZ2UiLCJjb25maWciLCJnZXQiLCJyYXRlTGltaXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsIm5hbWUiLCJyZW1vdGVfdXNlciIsIl8iLCJpc05pbCIsInRva2VucyIsInJlYWRUb2tlbnMiLCJ1c2VyIiwidG90YWxUb2tlbnMiLCJsZW5ndGgiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2JqZWN0cyIsIm1hcCIsInVybHMiLCJlcnJvciIsImxvZ2dlciIsIm1zZyIsIkVycm9yQ29kZSIsImdldENvZGUiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRVbmF1dGhvcml6ZWQiLCJwb3N0IiwicGFzc3dvcmQiLCJyZWFkb25seSIsImNpZHJfd2hpdGVsaXN0IiwiYm9keSIsImlzQm9vbGVhbiIsImlzQXJyYXkiLCJCQURfREFUQSIsIlNVUFBPUlRfRVJST1JTIiwiUEFSQU1FVEVSU19OT1RfVkFMSUQiLCJ1bnN1cHBvcnRlZE9wdGlvbnMiLCJmaWx0ZXIiLCJvcHRpb24iLCJ3YXJuIiwib3B0aW9ucyIsImpvaW4iLCJ1c2VyQWdlbnQiLCJhdXRoZW50aWNhdGUiLCJlcnIiLCJlcnJvckNvZGUiLCJVTkFVVEhPUklaRUQiLCJpc0Z1bmN0aW9uIiwic2F2ZVRva2VuIiwiTk9UX0lNUExFTUVOVEVEIiwiU1RPUkFHRV9OT1RfSU1QTEVNRU5UIiwia2V5IiwiY3J5cHRvVXRpbHMiLCJnZW5lcmF0ZVJhbmRvbUhleFN0cmluZyIsImdldEFwaVRva2VuIiwidG9rZW5LZXkiLCJtYXNrZWRUb2tlbiIsIm1hc2siLCJnZXRUaW1lIiwiY2lkciIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwiZGVsZXRlIiwicGFyYW1zIiwiZGVsZXRlVG9rZW4iLCJpbmZvIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvdjEvdG9rZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBnZXRBcGlUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgdHlwZSB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgY3J5cHRvVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgcmF0ZUxpbWl0IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBIRUFERVJTLCBIVFRQX1NUQVRVUywgU1VQUE9SVF9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHR5cGUgU3RvcmFnZSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW86dG9rZW4nKTtcblxuLy8gR3JhbnVsYXIgYWNjZXNzIHRva2VuIG9wdGlvbnMgKG5wbSA+PSAxMSkgdGhhdCBWZXJkYWNjaW8gZG9lcyBub3QgaW1wbGVtZW50XG4vLyB5ZXQuIFRoZXkgYXJlIGFjY2VwdGVkIHNvIGBucG0gdG9rZW4gY3JlYXRlYCBzdWNjZWVkcywgYnV0IHRoZSByZXN0cmljdGlvbnNcbi8vIHRoZXkgZXhwcmVzcyBhcmUgTk9UIGVuZm9yY2VkIOKAlCB3YXJuIHNvIHRoZSBvcGVyYXRvciBpcyBub3QgbWlzbGVkLlxuY29uc3QgVU5TVVBQT1JURURfVE9LRU5fT1BUSU9OUyA9IFtcbiAgJ3BhY2thZ2VzX2FuZF9zY29wZXNfcGVybWlzc2lvbicsXG4gICdwYWNrYWdlcycsXG4gICdwYWNrYWdlc19hbGwnLFxuICAnc2NvcGVzJyxcbiAgJ29yZ3MnLFxuICAnb3Jnc19wZXJtaXNzaW9uJyxcbiAgJ2V4cGlyZXMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnYnlwYXNzXzJmYScsXG5dO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVUb2tlbiA9IFRva2VuICYge1xuICBjcmVhdGVkOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBub3JtYWxpemVUb2tlbih0b2tlbjogVG9rZW4pOiBOb3JtYWxpemVUb2tlbiB7XG4gIHJldHVybiB7XG4gICAgLi4udG9rZW4sXG4gICAgY3JlYXRlZDogbmV3IERhdGUodG9rZW4uY3JlYXRlZCkudG9JU09TdHJpbmcoKSxcbiAgfTtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL25wbS9ucG0tcHJvZmlsZS9ibG9iL2xhdGVzdC9saWIvaW5kZXguanNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZXI6IFJvdXRlciwgYXV0aDogQXV0aCwgc3RvcmFnZTogU3RvcmFnZSwgY29uZmlnOiBDb25maWcpIHtcbiAgcm91dGVyLmdldChcbiAgICAnLy0vbnBtL3YxL3Rva2VucycsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgYXN5bmMgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzdG9yYWdlLnJlYWRUb2tlbnMoeyB1c2VyOiBuYW1lIH0pO1xuICAgICAgICAgIGNvbnN0IHRvdGFsVG9rZW5zID0gdG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICBkZWJ1ZygndG9rZW4gbGlzdCByZXRyaWV2ZWQ6ICVvJywgdG90YWxUb2tlbnMpO1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuT0spO1xuICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIG9iamVjdHM6IHRva2Vucy5tYXAobm9ybWFsaXplVG9rZW4pLFxuICAgICAgICAgICAgdXJsczoge1xuICAgICAgICAgICAgICBuZXh0OiAnJywgLy8gVE9ETzogcGFnaW5hdGlvbj9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBsaXN0IGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZCgpKTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGVyLnBvc3QoXG4gICAgJy8tL25wbS92MS90b2tlbnMnLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBjb25zdCB7IHBhc3N3b3JkLCByZWFkb25seSA9IGZhbHNlLCBjaWRyX3doaXRlbGlzdCA9IFtdIH0gPSByZXEuYm9keTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuICAgICAgLy8gYHJlYWRvbmx5YCBhbmQgYGNpZHJfd2hpdGVsaXN0YCBhcmUgb3B0aW9uYWw6IG5wbSA+PSAxMSByZXdyb3RlXG4gICAgICAvLyBgbnBtIHRva2VuIGNyZWF0ZWAgdG8gb21pdCB0aGVtIChhbmQgb25seSBzZW5kcyBgY2lkcl93aGl0ZWxpc3RgIHdpdGhcbiAgICAgIC8vIGAtLWNpZHJgKSwgc28gZGVmYXVsdCB0aGVtIHJhdGhlciB0aGFuIHJlamVjdGluZyB0aGUgcmVxdWVzdC4gQSB3cm9uZ1xuICAgICAgLy8gdHlwZSBpcyBzdGlsbCByZWplY3RlZC5cblxuICAgICAgaWYgKCFfLmlzQm9vbGVhbihyZWFkb25seSkgfHwgIV8uaXNBcnJheShjaWRyX3doaXRlbGlzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX0RBVEEsIFNVUFBPUlRfRVJST1JTLlBBUkFNRVRFUlNfTk9UX1ZBTElEKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkT3B0aW9ucyA9IFVOU1VQUE9SVEVEX1RPS0VOX09QVElPTlMuZmlsdGVyKFxuICAgICAgICAob3B0aW9uKSA9PiBfLmlzTmlsKHJlcS5ib2R5W29wdGlvbl0pID09PSBmYWxzZVxuICAgICAgKTtcbiAgICAgIGlmICh1bnN1cHBvcnRlZE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICB7IG9wdGlvbnM6IHVuc3VwcG9ydGVkT3B0aW9ucy5qb2luKCcsICcpLCB1c2VyQWdlbnQ6IHJlcS5nZXQoJ3VzZXItYWdlbnQnKSA/PyAndW5rbm93bicgfSxcbiAgICAgICAgICAnZ3JhbnVsYXIgYWNjZXNzIHRva2VuIG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB3aWxsIGJlIGlnbm9yZWQ6IEB7b3B0aW9uc30gKGNsaWVudDogQHt1c2VyQWdlbnR9KSdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgYXV0aC5hdXRoZW50aWNhdGUobmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI/OiBSZW1vdGVVc2VyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubWVzc2FnZSA/IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCA6IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG5cbiAgICAgICAgaWYgKCFfLmlzRnVuY3Rpb24oc3RvcmFnZS5zYXZlVG9rZW4pKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5OT1RfSU1QTEVNRU5URUQsIFNVUFBPUlRfRVJST1JTLlNUT1JBR0VfTk9UX0lNUExFTUVOVClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBjcnlwdG9VdGlscy5nZW5lcmF0ZVJhbmRvbUhleFN0cmluZygxNik7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyIGFzIFJlbW90ZVVzZXIsIHBhc3N3b3JkLCB7XG4gICAgICAgICAgICB0b2tlbktleToga2V5LFxuICAgICAgICAgIH0pKSBhcyBzdHJpbmc7XG4gICAgICAgICAgLy8gVE9ETzogdXNlIGEgdXRpbGl0eSBoZXJlXG4gICAgICAgICAgY29uc3QgbWFza2VkVG9rZW4gPSBjcnlwdG9VdGlscy5tYXNrKHRva2VuIGFzIHN0cmluZywgNSk7XG4gICAgICAgICAgY29uc3QgY3JlYXRlZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogY2lkcl93aGl0ZWxpc3Q6IGlzIG5vdCBiZWluZyB1c2VkLCB3ZSBwYXNzIGl0IHRocm91Z2hcbiAgICAgICAgICAgKiB0b2tlbjogd2UgZG8gbm90IHN0b3JlIHRoZSByZWFsIHRva2VuIChpdCBpcyBnZW5lcmF0ZWQgb25jZSBhbmQgcmV0cmlldmVkIHRvIHRoZSB1c2VyKSwganVzdCBhIG1hc2sgb2YgaXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgY29uc3Qgc2F2ZVRva2VuOiBUb2tlbiA9IHtcbiAgICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgICB0b2tlbjogbWFza2VkVG9rZW4sXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBjaWRyOiBjaWRyX3doaXRlbGlzdCxcbiAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYXdhaXQgc3RvcmFnZS5zYXZlVG9rZW4oc2F2ZVRva2VuKTtcbiAgICAgICAgICBkZWJ1ZygndG9rZW4gJW8gd2FzIGNyZWF0ZWQgZm9yIHVzZXIgJW8nLCBrZXksIG5hbWUpO1xuICAgICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICBub3JtYWxpemVUb2tlbih7XG4gICAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgICB1c2VyOiBuYW1lLFxuICAgICAgICAgICAgICBrZXk6IHNhdmVUb2tlbi5rZXksXG4gICAgICAgICAgICAgIGNpZHI6IGNpZHJfd2hpdGVsaXN0LFxuICAgICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgICAgY3JlYXRlZDogc2F2ZVRva2VuLmNyZWF0ZWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZXIuZGVsZXRlKFxuICAgICcvLS9ucG0vdjEvdG9rZW5zL3Rva2VuLzp0b2tlbktleScsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgYXN5bmMgKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFyYW1zOiB7IHRva2VuS2V5IH0sXG4gICAgICB9ID0gcmVxO1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmIChfLmlzTmlsKG5hbWUpID09PSBmYWxzZSkge1xuICAgICAgICBkZWJ1ZygnJW8gaGFzIHJlcXVlc3RlZCByZW1vdmUgYSB0b2tlbicsIG5hbWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHN0b3JhZ2UuZGVsZXRlVG9rZW4obmFtZSwgdG9rZW5LZXkpO1xuICAgICAgICAgIGxvZ2dlci5pbmZvKHsgdG9rZW5LZXksIG5hbWUgfSwgJ3Rva2VuIGlkIEB7dG9rZW5LZXl9IHdhcyByZXZva2VkIGZvciB1c2VyIEB7bmFtZX0nKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7fSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoKSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFHQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFBa0QsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHbEQsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGNBQVUsRUFBQyxpQkFBaUIsQ0FBQzs7QUFFM0M7QUFDQTtB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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = _default;
7
7
  var _express = _interopRequireDefault(require("express"));
8
8
  var _middleware = require("@verdaccio/middleware");
9
+ var _logger = require("../../lib/logger");
9
10
  var _distTags = _interopRequireDefault(require("./api/dist-tags"));
10
11
  var _package = _interopRequireDefault(require("./api/package"));
11
12
  var _ping = _interopRequireDefault(require("./api/ping"));
@@ -34,7 +35,17 @@ function _default(config, auth, storage) {
34
35
  // TODO: For some reason? what reason?
35
36
  app.param('_rev', (0, _middleware.match)(/^-rev$/));
36
37
  app.param('org_couchdb_user', (0, _middleware.match)(/^org\.couchdb\.user:/));
37
- app.use(auth.apiJWTmiddleware());
38
+
39
+ // Avoid executing JWT twice when the parent app already registered the JWT middleware
40
+ const apiJwtMiddleware = auth.apiJWTmiddleware();
41
+ app.use((req, res, next) => {
42
+ const remoteUser = req.remote_user ?? res.locals.remote_user;
43
+ if (remoteUser) {
44
+ return next();
45
+ }
46
+ return apiJwtMiddleware(req, res, next);
47
+ });
48
+ app.use((0, _middleware.enforceGeneratedTokenMetadata)(storage, _logger.logger));
38
49
  app.use(_express.default.json({
39
50
  strict: false,
40
51
  limit: config.max_body_size || '10mb'
@@ -55,4 +66,4 @@ function _default(config, auth, storage) {
55
66
  (0, _package.default)(app, auth, storage, config);
56
67
  return app;
57
68
  }
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmUiLCJfZGlzdFRhZ3MiLCJfcGFja2FnZSIsIl9waW5nIiwiX3B1Ymxpc2giLCJfc2VhcmNoIiwiX3N0YXJzIiwiX3VzZXIiLCJfcHJvZmlsZSIsIl9zZWFyY2gyIiwiX3Rva2VuIiwiX3dob2FtaSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZhdWx0IiwiY29uZmlnIiwiYXV0aCIsInN0b3JhZ2UiLCJhcHAiLCJleHByZXNzIiwiUm91dGVyIiwicGFyYW0iLCJ2YWxpZGF0ZVBhY2thZ2UiLCJ2YWxpZGF0ZU5hbWUiLCJtYXRjaCIsInVzZSIsImFwaUpXVG1pZGRsZXdhcmUiLCJqc29uIiwic3RyaWN0IiwibGltaXQiLCJtYXhfYm9keV9zaXplIiwiYW50aUxvb3AiLCJlbmNvZGVTY29wZVBhY2thZ2UiLCJ3aG9hbWkiLCJwcm9maWxlIiwic2VhcmNoIiwidXNlciIsImRpc3RUYWdzIiwicHVibGlzaCIsInBpbmciLCJzdGFycyIsInYxU2VhcmNoIiwidG9rZW4iLCJwa2ciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBleHByZXNzIGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHtcbiAgYW50aUxvb3AsXG4gIGVuY29kZVNjb3BlUGFja2FnZSxcbiAgbWF0Y2gsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHR5cGUgU3RvcmFnZSBmcm9tICcuLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgZGlzdFRhZ3MgZnJvbSAnLi9hcGkvZGlzdC10YWdzJztcbmltcG9ydCBwa2cgZnJvbSAnLi9hcGkvcGFja2FnZSc7XG5pbXBvcnQgcGluZyBmcm9tICcuL2FwaS9waW5nJztcbmltcG9ydCBwdWJsaXNoIGZyb20gJy4vYXBpL3B1Ymxpc2gnO1xuaW1wb3J0IHNlYXJjaCBmcm9tICcuL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHN0YXJzIGZyb20gJy4vYXBpL3N0YXJzJztcbmltcG9ydCB1c2VyIGZyb20gJy4vYXBpL3VzZXInO1xuaW1wb3J0IHByb2ZpbGUgZnJvbSAnLi9hcGkvdjEvcHJvZmlsZSc7XG5pbXBvcnQgdjFTZWFyY2ggZnJvbSAnLi9hcGkvdjEvc2VhcmNoJztcbmltcG9ydCB0b2tlbiBmcm9tICcuL2FwaS92MS90b2tlbic7XG5pbXBvcnQgd2hvYW1pIGZyb20gJy4vYXBpL3dob2FtaSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb25maWc6IENvbmZpZywgYXV0aDogQXV0aCwgc3RvcmFnZTogU3RvcmFnZSkge1xuICBjb25zdCBhcHAgPSBleHByZXNzLlJvdXRlcigpO1xuXG4gIC8vIHZhbGlkYXRlIGFsbCBvZiB0aGVzZSBwYXJhbXMgYXMgYSBwYWNrYWdlIG5hbWVcbiAgLy8gdGhpcyBtaWdodCBiZSB0b28gaGFyc2gsIHNvIGFzayBpZiBpdCBjYXVzZXMgdHJvdWJsZVxuICBhcHAucGFyYW0oJ3BhY2thZ2UnLCB2YWxpZGF0ZVBhY2thZ2UpO1xuICBhcHAucGFyYW0oJ2ZpbGVuYW1lJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCd0YWcnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3ZlcnNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3JldmlzaW9uJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCd0b2tlbicsIHZhbGlkYXRlTmFtZSk7XG5cbiAgLy8gdGhlc2UgY2FuJ3QgYmUgc2FmZWx5IHB1dCBpbnRvIGV4cHJlc3MgdXJsIGZvciBzb21lIHJlYXNvblxuICAvLyBUT0RPOiBGb3Igc29tZSByZWFzb24/IHdoYXQgcmVhc29uP1xuICBhcHAucGFyYW0oJ19yZXYnLCBtYXRjaCgvXi1yZXYkLykpO1xuICBhcHAucGFyYW0oJ29yZ19jb3VjaGRiX3VzZXInLCBtYXRjaCgvXm9yZ1xcLmNvdWNoZGJcXC51c2VyOi8pKTtcblxuICBhcHAudXNlKGF1dGguYXBpSldUbWlkZGxld2FyZSgpKTtcbiAgYXBwLnVzZShleHByZXNzLmpzb24oeyBzdHJpY3Q6IGZhbHNlLCBsaW1pdDogY29uZmlnLm1heF9ib2R5X3NpemUgfHwgJzEwbWInIH0pKTtcbiAgYXBwLnVzZShhbnRpTG9vcChjb25maWcpKTtcbiAgLy8gZW5jb2RlIC8gaW4gYSBzY29wZWQgcGFja2FnZSBuYW1lIHRvIGJlIG1hdGNoZWQgYXMgYSBzaW5nbGUgcGFyYW1ldGVyIGluIHJvdXRlc1xuICBhcHAudXNlKGVuY29kZVNjb3BlUGFja2FnZSk7XG4gIHdob2FtaShhcHApO1xuICBwcm9maWxlKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgc2VhcmNoKGFwcCwgYXV0aCwgc3RvcmFnZSk7XG4gIHVzZXIoYXBwLCBhdXRoLCBjb25maWcpO1xuICBkaXN0VGFncyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICBwdWJsaXNoKGFwcCwgYXV0aCwgc3RvcmFnZSwgY29uZmlnKTtcbiAgcGluZyhhcHApO1xuICBzdGFycyhhcHAsIHN0b3JhZ2UpO1xuICB2MVNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB0b2tlbihhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBrZyhhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHJldHVybiBhcHA7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQVVBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLE1BQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUFrQyxTQUFBRCx1QkFBQWMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVuQixTQUFBRyxTQUFVQyxNQUFjLEVBQUVDLElBQVUsRUFBRUMsT0FBZ0IsRUFBRTtFQUNyRSxNQUFNQyxHQUFHLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQyxDQUFDOztFQUU1QjtFQUNBO0VBQ0FGLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFNBQVMsRUFBRUMsMkJBQWUsQ0FBQztFQUNyQ0osR0FBRyxDQUFDRyxLQUFLLENBQUMsVUFBVSxFQUFFRSx3QkFBWSxDQUFDO0VBQ25DTCxHQUFHLENBQUNHLEtBQUssQ0FBQyxLQUFLLEVBQUVFLHdCQUFZLENBQUM7RUFDOUJMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFNBQVMsRUFBRUUsd0JBQVksQ0FBQztFQUNsQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsVUFBVSxFQUFFRSx3QkFBWSxDQUFDO0VBQ25DTCxHQUFHLENBQUNHLEtBQUssQ0FBQyxPQUFPLEVBQUVFLHdCQUFZLENBQUM7O0VBRWhDO0VBQ0E7RUFDQUwsR0FBRyxDQUFDRyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUFHLGlCQUFLLEVBQUMsUUFBUSxDQUFDLENBQUM7RUFDbENOLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUFHLGlCQUFLLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztFQUU1RE4sR0FBRyxDQUFDTyxHQUFHLENBQUNULElBQUksQ0FBQ1UsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0VBQ2hDUixHQUFHLENBQUNPLEdBQUcsQ0FBQ04sZ0JBQU8sQ0FBQ1EsSUFBSSxDQUFDO0lBQUVDLE1BQU0sRUFBRSxLQUFLO0lBQUVDLEtBQUssRUFBRWQsTUFBTSxDQUFDZSxhQUFhLElBQUk7RUFBTyxDQUFDLENBQUMsQ0FBQztFQUMvRVosR0FBRyxDQUFDTyxHQUFHLENBQUMsSUFBQU0sb0JBQVEsRUFBQ2hCLE1BQU0sQ0FBQyxDQUFDO0VBQ3pCO0VBQ0FHLEdBQUcsQ0FBQ08sR0FBRyxDQUFDTyw4QkFBa0IsQ0FBQztFQUMzQixJQUFBQyxlQUFNLEVBQUNmLEdBQUcsQ0FBQztFQUNYLElBQUFnQixnQkFBTyxFQUFDaEIsR0FBRyxFQUFFRixJQUFJLEVBQUVELE1BQU0sQ0FBQztFQUMxQixJQUFBb0IsZUFBTSxFQUFDakIsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUMxQixJQUFBbUIsYUFBSSxFQUFDbEIsR0FBRyxFQUFFRixJQUFJLEVBQUVELE1BQU0sQ0FBQztFQUN2QixJQUFBc0IsaUJBQVEsRUFBQ25CLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLENBQUM7RUFDNUIsSUFBQXFCLGdCQUFPLEVBQUNwQixHQUFHLEVBQUVGLElBQUksRUFBRUMsT0FBTyxFQUFFRixNQUFNLENBQUM7RUFDbkMsSUFBQXdCLGFBQUksRUFBQ3JCLEdBQUcsQ0FBQztFQUNULElBQUFzQixjQUFLLEVBQUN0QixHQUFHLEVBQUVELE9BQU8sQ0FBQztFQUNuQixJQUFBd0IsZ0JBQVEsRUFBQ3ZCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLENBQUM7RUFDNUIsSUFBQXlCLGNBQUssRUFBQ3hCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLEVBQUVGLE1BQU0sQ0FBQztFQUNqQyxJQUFBNEIsZ0JBQUcsRUFBQ3pCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLEVBQUVGLE1BQU0sQ0FBQztFQUMvQixPQUFPRyxHQUFHO0FBQ1oiLCJpZ25vcmVMaXN0IjpbXX0=
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmUiLCJfbG9nZ2VyIiwiX2Rpc3RUYWdzIiwiX3BhY2thZ2UiLCJfcGluZyIsIl9wdWJsaXNoIiwiX3NlYXJjaCIsIl9zdGFycyIsIl91c2VyIiwiX3Byb2ZpbGUiLCJfc2VhcmNoMiIsIl90b2tlbiIsIl93aG9hbWkiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImNvbmZpZyIsImF1dGgiLCJzdG9yYWdlIiwiYXBwIiwiZXhwcmVzcyIsIlJvdXRlciIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwibWF0Y2giLCJhcGlKd3RNaWRkbGV3YXJlIiwiYXBpSldUbWlkZGxld2FyZSIsInVzZSIsInJlcSIsInJlcyIsIm5leHQiLCJyZW1vdGVVc2VyIiwicmVtb3RlX3VzZXIiLCJsb2NhbHMiLCJlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSIsImxvZ2dlciIsImpzb24iLCJzdHJpY3QiLCJsaW1pdCIsIm1heF9ib2R5X3NpemUiLCJhbnRpTG9vcCIsImVuY29kZVNjb3BlUGFja2FnZSIsIndob2FtaSIsInByb2ZpbGUiLCJzZWFyY2giLCJ1c2VyIiwiZGlzdFRhZ3MiLCJwdWJsaXNoIiwicGluZyIsInN0YXJzIiwidjFTZWFyY2giLCJ0b2tlbiIsInBrZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQge1xuICBhbnRpTG9vcCxcbiAgZW5jb2RlU2NvcGVQYWNrYWdlLFxuICBlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSxcbiAgbWF0Y2gsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCBkaXN0VGFncyBmcm9tICcuL2FwaS9kaXN0LXRhZ3MnO1xuaW1wb3J0IHBrZyBmcm9tICcuL2FwaS9wYWNrYWdlJztcbmltcG9ydCBwaW5nIGZyb20gJy4vYXBpL3BpbmcnO1xuaW1wb3J0IHB1Ymxpc2ggZnJvbSAnLi9hcGkvcHVibGlzaCc7XG5pbXBvcnQgc2VhcmNoIGZyb20gJy4vYXBpL3NlYXJjaCc7XG5pbXBvcnQgc3RhcnMgZnJvbSAnLi9hcGkvc3RhcnMnO1xuaW1wb3J0IHVzZXIgZnJvbSAnLi9hcGkvdXNlcic7XG5pbXBvcnQgcHJvZmlsZSBmcm9tICcuL2FwaS92MS9wcm9maWxlJztcbmltcG9ydCB2MVNlYXJjaCBmcm9tICcuL2FwaS92MS9zZWFyY2gnO1xuaW1wb3J0IHRva2VuIGZyb20gJy4vYXBpL3YxL3Rva2VuJztcbmltcG9ydCB3aG9hbWkgZnJvbSAnLi9hcGkvd2hvYW1pJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoLCBzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MuUm91dGVyKCk7XG5cbiAgLy8gdmFsaWRhdGUgYWxsIG9mIHRoZXNlIHBhcmFtcyBhcyBhIHBhY2thZ2UgbmFtZVxuICAvLyB0aGlzIG1pZ2h0IGJlIHRvbyBoYXJzaCwgc28gYXNrIGlmIGl0IGNhdXNlcyB0cm91YmxlXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIGFwcC5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3RhZycsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgncmV2aXNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3Rva2VuJywgdmFsaWRhdGVOYW1lKTtcblxuICAvLyB0aGVzZSBjYW4ndCBiZSBzYWZlbHkgcHV0IGludG8gZXhwcmVzcyB1cmwgZm9yIHNvbWUgcmVhc29uXG4gIC8vIFRPRE86IEZvciBzb21lIHJlYXNvbj8gd2hhdCByZWFzb24/XG4gIGFwcC5wYXJhbSgnX3JldicsIG1hdGNoKC9eLXJldiQvKSk7XG4gIGFwcC5wYXJhbSgnb3JnX2NvdWNoZGJfdXNlcicsIG1hdGNoKC9eb3JnXFwuY291Y2hkYlxcLnVzZXI6LykpO1xuXG4gIC8vIEF2b2lkIGV4ZWN1dGluZyBKV1QgdHdpY2Ugd2hlbiB0aGUgcGFyZW50IGFwcCBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIEpXVCBtaWRkbGV3YXJlXG4gIGNvbnN0IGFwaUp3dE1pZGRsZXdhcmUgPSBhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKTtcbiAgYXBwLnVzZSgocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCByZW1vdGVVc2VyID0gKHJlcSBhcyBhbnkpLnJlbW90ZV91c2VyID8/IChyZXMubG9jYWxzIGFzIGFueSkucmVtb3RlX3VzZXI7XG4gICAgaWYgKHJlbW90ZVVzZXIpIHtcbiAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgfVxuICAgIHJldHVybiBhcGlKd3RNaWRkbGV3YXJlKHJlcSwgcmVzLCBuZXh0KTtcbiAgfSk7XG4gIGFwcC51c2UoZW5mb3JjZUdlbmVyYXRlZFRva2VuTWV0YWRhdGEoc3RvcmFnZSwgbG9nZ2VyKSk7XG4gIGFwcC51c2UoZXhwcmVzcy5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICB3aG9hbWkoYXBwKTtcbiAgcHJvZmlsZShhcHAsIGF1dGgsIGNvbmZpZyk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgdG9rZW4oYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICBwa2coYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICByZXR1cm4gYXBwO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFVQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFBa0MsU0FBQUQsdUJBQUFlLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbkIsU0FBQUcsU0FBVUMsTUFBYyxFQUFFQyxJQUFVLEVBQUVDLE9BQWdCLEVBQUU7RUFDckUsTUFBTUMsR0FBRyxHQUFHQyxnQkFBTyxDQUFDQyxNQUFNLENBQUMsQ0FBQzs7RUFFNUI7RUFDQTtFQUNBRixHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVDLDJCQUFlLENBQUM7RUFDckNKLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsS0FBSyxFQUFFRSx3QkFBWSxDQUFDO0VBQzlCTCxHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVFLHdCQUFZLENBQUM7RUFDbENMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsT0FBTyxFQUFFRSx3QkFBWSxDQUFDOztFQUVoQztFQUNBO0VBQ0FMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFBRyxpQkFBSyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ2xDTixHQUFHLENBQUNHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFBRyxpQkFBSyxFQUFDLHNCQUFzQixDQUFDLENBQUM7O0VBRTVEO0VBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdULElBQUksQ0FBQ1UsZ0JBQWdCLENBQUMsQ0FBQztFQUNoRFIsR0FBRyxDQUFDUyxHQUFHLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLElBQUksS0FBSztJQUMxQixNQUFNQyxVQUFVLEdBQUlILEdBQUcsQ0FBU0ksV0FBVyxJQUFLSCxHQUFHLENBQUNJLE1BQU0sQ0FBU0QsV0FBVztJQUM5RSxJQUFJRCxVQUFVLEVBQUU7TUFDZCxPQUFPRCxJQUFJLENBQUMsQ0FBQztJQUNmO0lBQ0EsT0FBT0wsZ0JBQWdCLENBQUNHLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7RUFDekMsQ0FBQyxDQUFDO0VBQ0ZaLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFPLHlDQUE2QixFQUFDakIsT0FBTyxFQUFFa0IsY0FBTSxDQUFDLENBQUM7RUFDdkRqQixHQUFHLENBQUNTLEdBQUcsQ0FBQ1IsZ0JBQU8sQ0FBQ2lCLElBQUksQ0FBQztJQUFFQyxNQUFNLEVBQUUsS0FBSztJQUFFQyxLQUFLLEVBQUV2QixNQUFNLENBQUN3QixhQUFhLElBQUk7RUFBTyxDQUFDLENBQUMsQ0FBQztFQUMvRXJCLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFhLG9CQUFRLEVBQUN6QixNQUFNLENBQUMsQ0FBQztFQUN6QjtFQUNBRyxHQUFHLENBQUNTLEdBQUcsQ0FBQ2MsOEJBQWtCLENBQUM7RUFDM0IsSUFBQUMsZUFBTSxFQUFDeEIsR0FBRyxDQUFDO0VBQ1gsSUFBQXlCLGdCQUFPLEVBQUN6QixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQzFCLElBQUE2QixlQUFNLEVBQUMxQixHQUFHLEVBQUVGLElBQUksRUFBRUMsT0FBTyxDQUFDO0VBQzFCLElBQUE0QixhQUFJLEVBQUMzQixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQ3ZCLElBQUErQixpQkFBUSxFQUFDNUIsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBOEIsZ0JBQU8sRUFBQzdCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLEVBQUVGLE1BQU0sQ0FBQztFQUNuQyxJQUFBaUMsYUFBSSxFQUFDOUIsR0FBRyxDQUFDO0VBQ1QsSUFBQStCLGNBQUssRUFBQy9CLEdBQUcsRUFBRUQsT0FBTyxDQUFDO0VBQ25CLElBQUFpQyxnQkFBUSxFQUFDaEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBa0MsY0FBSyxFQUFDakMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQ2pDLElBQUFxQyxnQkFBRyxFQUFDbEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQy9CLE9BQU9HLEdBQUc7QUFDWiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -24,7 +24,7 @@ var _endpoint = _interopRequireDefault(require("./endpoint"));
24
24
  var _middleware2 = require("./middleware");
25
25
  var _web = _interopRequireDefault(require("./web"));
26
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
- const version = "6.7.2" || 'dev';
27
+ const version = "6.7.4" || 'dev';
28
28
  const defineAPI = async function (config, storage) {
29
29
  const auth = new _auth.Auth(config, _logger.logger, {
30
30
  legacyMergeConfigs: true
@@ -68,6 +68,9 @@ const defineAPI = async function (config, storage) {
68
68
  }, function (plugin) {
69
69
  return typeof plugin.register_middlewares !== 'undefined';
70
70
  }, true, config?.serverSettings?.pluginPrefix ?? 'verdaccio', _core.PLUGIN_CATEGORY.MIDDLEWARE);
71
+
72
+ // Register JWT middleware so middleware plugins can access req.remote_user
73
+ app.use(auth.apiJWTmiddleware());
71
74
  plugins.forEach(plugin => {
72
75
  plugin.register_middlewares(app, auth, storage);
73
76
  });
@@ -102,4 +105,4 @@ var _default = exports.default = async function _default(configHash) {
102
105
  await storage.init(config);
103
106
  return await defineAPI(config, storage);
104
107
  };
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcHJlc3Npb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb3JzIiwiX2V4cHJlc3MiLCJfbG9kYXNoIiwiX2F1dGgiLCJfY29uZmlnIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9taWRkbGV3YXJlIiwiX3NlYXJjaEluZGV4ZXIiLCJfY29uZmlnMiIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2UiLCJfdXRpbHMiLCJfZGVidWciLCJfZW5kcG9pbnQiLCJfbWlkZGxld2FyZTIiLCJfd2ViIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidmVyc2lvbiIsImRlZmluZUFQSSIsImNvbmZpZyIsInN0b3JhZ2UiLCJhdXRoIiwiQXV0aCIsImxvZ2dlciIsImxlZ2FjeU1lcmdlQ29uZmlncyIsImluaXQiLCJhcHAiLCJleHByZXNzIiwiU2VhcmNoTWVtb3J5SW5kZXhlciIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJzZXQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlIiwiY29ycyIsImxvZyIsImVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSIsInVzZXJfYWdlbnQiLCJfcmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsImdldFVzZXJBZ2VudCIsImRpc2FibGUiLCJjb21wcmVzc2lvbiIsImdldCIsInNlcnZlRmF2aWNvbiIsImhvb2tEZWJ1ZyIsImNvbmZpZ1BhdGgiLCJwbHVnaW5zIiwiYXN5bmNMb2FkUGx1Z2luIiwibWlkZGxld2FyZXMiLCJwbHVnaW4iLCJyZWdpc3Rlcl9taWRkbGV3YXJlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiTUlERExFV0FSRSIsImZvckVhY2giLCJhcGlFbmRwb2ludCIsIl8iLCJsb2NhbHMiLCJhcHBfdmVyc2lvbiIsIm1pZGRsZXdhcmUiLCJ3ZWJNaWRkbGV3YXJlIiwiX18iLCJFcnJvckNvZGUiLCJnZXROb3RGb3VuZCIsIkFQSV9FUlJPUiIsIldFQl9ESVNBQkxFRCIsIkZJTEVfTk9UX0ZPVU5EIiwiaGFuZGxlRXJyb3IiLCJmaW5hbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImNvbmZpZ0hhc2giLCJBcHBDb25maWciLCJjbG9uZURlZXAiLCJTdG9yYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50IH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBwbHVnaW5VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyBQTFVHSU5fQ0FURUdPUlkgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgYXN5bmNMb2FkUGx1Z2luIH0gZnJvbSAnQHZlcmRhY2Npby9sb2FkZXJzJztcbmltcG9ydCB7IGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSwgZmluYWwsIGhhbmRsZUVycm9yLCBsb2cgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgU2VhcmNoTWVtb3J5SW5kZXhlciB9IGZyb20gJ0B2ZXJkYWNjaW8vc2VhcmNoLWluZGV4ZXInO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sLCBDb25maWcgYXMgSUNvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgQXBwQ29uZmlnIGZyb20gJy4uL2xpYi9jb25maWcnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9saWIvbG9nZ2VyJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgaG9va0RlYnVnIGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IGFwaUVuZHBvaW50IGZyb20gJy4vZW5kcG9pbnQnO1xuaW1wb3J0IHsgc2VydmVGYXZpY29uIH0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB3ZWJNaWRkbGV3YXJlIGZyb20gJy4vd2ViJztcblxuY29uc3QgdmVyc2lvbiA9IHByb2Nlc3MuZW52LlBBQ0tBR0VfVkVSU0lPTiB8fCAnZGV2JztcblxuY29uc3QgZGVmaW5lQVBJID0gYXN5bmMgZnVuY3Rpb24gKGNvbmZpZzogSUNvbmZpZywgc3RvcmFnZTogU3RvcmFnZSk6IFByb21pc2U8ZXhwcmVzcy5BcHBsaWNhdGlvbj4ge1xuICBjb25zdCBhdXRoID0gbmV3IEF1dGgoY29uZmlnLCBsb2dnZXIsIHsgbGVnYWN5TWVyZ2VDb25maWdzOiB0cnVlIH0pO1xuICBhd2FpdCBhdXRoLmluaXQoKTtcbiAgY29uc3QgYXBwOiBBcHBsaWNhdGlvbiA9IGV4cHJlc3MoKTtcbiAgU2VhcmNoTWVtb3J5SW5kZXhlci5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuICBhd2FpdCBTZWFyY2hNZW1vcnlJbmRleGVyLmluaXQobG9nZ2VyKTtcbiAgLy8gcnVuIGluIHByb2R1Y3Rpb24gbW9kZSBieSBkZWZhdWx0LCBqdXN0IGluIGNhc2VcbiAgLy8gaXQgc2hvdWxkbid0IG1ha2UgYW55IGRpZmZlcmVuY2UgYW55d2F5XG4gIGFwcC5zZXQoJ2VudicsIHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdwcm9kdWN0aW9uJyk7XG5cbiAgLy8gQWxsb3cgYHJlcS5pcGAgdG8gcmVzb2x2ZSBwcm9wZXJseSB3aGVuIFZlcmRhY2NpbyBpcyBiZWhpbmQgYSBwcm94eSBvciBsb2FkLWJhbGFuY2VyXG4gIC8vIFNlZTogaHR0cHM6Ly9leHByZXNzanMuY29tL2VuL2d1aWRlL2JlaGluZC1wcm94aWVzLmh0bWxcbiAgaWYgKGNvbmZpZy5zZXJ2ZXI/LnRydXN0UHJveHkpIHtcbiAgICBhcHAuc2V0KCd0cnVzdCBwcm94eScsIGNvbmZpZy5zZXJ2ZXIudHJ1c3RQcm94eSk7XG4gIH1cblxuICBhcHAudXNlKGNvcnMoKSk7XG5cbiAgLy8gLy8gUm91dGVyIHNldHVwXG4gIGFwcC51c2UobG9nKGxvZ2dlcikpO1xuICBhcHAudXNlKGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZShsb2dnZXIpKTtcbiAgaWYgKGNvbmZpZy51c2VyX2FnZW50KSB7XG4gICAgYXBwLnVzZShmdW5jdGlvbiAoX3JlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCBnZXRVc2VyQWdlbnQoY29uZmlnLnVzZXJfYWdlbnQpKTtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIH1cblxuICBhcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuXG4gIGFwcC5nZXQoJy8tL3N0YXRpYy9mYXZpY29uLmljbycsIHNlcnZlRmF2aWNvbihjb25maWcpKTtcblxuICAvLyBIb29rIGZvciB0ZXN0cyBvbmx5XG4gIGlmIChjb25maWcuX2RlYnVnKSB7XG4gICAgaG9va0RlYnVnKGFwcCwgY29uZmlnLmNvbmZpZ1BhdGgpO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogcGx1Z2luVXRpbHMuRXhwcmVzc01pZGRsZXdhcmU8SUNvbmZpZywgJycsIEF1dGg+W10gPSBhd2FpdCBhc3luY0xvYWRQbHVnaW4oXG4gICAgY29uZmlnLm1pZGRsZXdhcmVzLFxuICAgIHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIGxvZ2dlcixcbiAgICB9LFxuICAgIGZ1bmN0aW9uIChwbHVnaW4pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzICE9PSAndW5kZWZpbmVkJztcbiAgICB9LFxuICAgIHRydWUsXG4gICAgY29uZmlnPy5zZXJ2ZXJTZXR0aW5ncz8ucGx1Z2luUHJlZml4ID8/ICd2ZXJkYWNjaW8nLFxuICAgIFBMVUdJTl9DQVRFR09SWS5NSURETEVXQVJFXG4gICk7XG5cbiAgcGx1Z2lucy5mb3JFYWNoKChwbHVnaW46IGFueSkgPT4ge1xuICAgIHBsdWdpbi5yZWdpc3Rlcl9taWRkbGV3YXJlcyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB9KTtcblxuICAvLyAvLyBGb3IgIG5wbSByZXF1ZXN0XG4gIGFwcC51c2UoYXBpRW5kcG9pbnQoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSk7XG5cbiAgLy8gRm9yIFdlYlVJICYgV2ViVUkgQVBJXG4gIGlmIChfLmdldChjb25maWcsICd3ZWIuZW5hYmxlJywgdHJ1ZSkpIHtcbiAgICBhcHAudXNlKChfcmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgIHJlcy5sb2NhbHMuYXBwX3ZlcnNpb24gPSB2ZXJzaW9uID8/ICcnO1xuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1pZGRsZXdhcmUgPSBhd2FpdCB3ZWJNaWRkbGV3YXJlKGNvbmZpZywgYXV0aCwgc3RvcmFnZSwgbG9nZ2VyKTtcbiAgICBhcHAudXNlKG1pZGRsZXdhcmUpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAoXywgX18sIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFwcC5nZXQoJy8qJywgZnVuY3Rpb24gKF8sIF9fLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgbmV4dChFcnJvckNvZGUuZ2V0Tm90Rm91bmQoQVBJX0VSUk9SLkZJTEVfTk9UX0ZPVU5EKSk7XG4gIH0pO1xuICBhcHAudXNlKGhhbmRsZUVycm9yKGxvZ2dlcikpO1xuICBhcHAudXNlKGZpbmFsKTtcblxuICByZXR1cm4gYXBwO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKGFzeW5jIGZ1bmN0aW9uIChjb25maWdIYXNoOiBDb25maWdZYW1sKTogUHJvbWlzZTxleHByZXNzLkFwcGxpY2F0aW9uPiB7XG4gIGNvbnN0IGNvbmZpZzogSUNvbmZpZyA9IG5ldyBBcHBDb25maWcoXy5jbG9uZURlZXAoY29uZmlnSGFzaCkpO1xuXG4gIGNvbnN0IHN0b3JhZ2UgPSBuZXcgU3RvcmFnZShjb25maWcpO1xuICAvLyB3YWl0cyB1bnRpbCBpbml0IGNhbGxzIGhhdmUgYmVlbiBpbml0aWFsaXplZFxuICBhd2FpdCBzdG9yYWdlLmluaXQoY29uZmlnKTtcbiAgcmV0dXJuIGF3YWl0IGRlZmluZUFQSShjb25maWcsIHN0b3JhZ2UpO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLEtBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEs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
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcHJlc3Npb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb3JzIiwiX2V4cHJlc3MiLCJfbG9kYXNoIiwiX2F1dGgiLCJfY29uZmlnIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9taWRkbGV3YXJlIiwiX3NlYXJjaEluZGV4ZXIiLCJfY29uZmlnMiIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2UiLCJfdXRpbHMiLCJfZGVidWciLCJfZW5kcG9pbnQiLCJfbWlkZGxld2FyZTIiLCJfd2ViIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidmVyc2lvbiIsImRlZmluZUFQSSIsImNvbmZpZyIsInN0b3JhZ2UiLCJhdXRoIiwiQXV0aCIsImxvZ2dlciIsImxlZ2FjeU1lcmdlQ29uZmlncyIsImluaXQiLCJhcHAiLCJleHByZXNzIiwiU2VhcmNoTWVtb3J5SW5kZXhlciIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJzZXQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlIiwiY29ycyIsImxvZyIsImVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSIsInVzZXJfYWdlbnQiLCJfcmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsImdldFVzZXJBZ2VudCIsImRpc2FibGUiLCJjb21wcmVzc2lvbiIsImdldCIsInNlcnZlRmF2aWNvbiIsImhvb2tEZWJ1ZyIsImNvbmZpZ1BhdGgiLCJwbHVnaW5zIiwiYXN5bmNMb2FkUGx1Z2luIiwibWlkZGxld2FyZXMiLCJwbHVnaW4iLCJyZWdpc3Rlcl9taWRkbGV3YXJlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiTUlERExFV0FSRSIsImFwaUpXVG1pZGRsZXdhcmUiLCJmb3JFYWNoIiwiYXBpRW5kcG9pbnQiLCJfIiwibG9jYWxzIiwiYXBwX3ZlcnNpb24iLCJtaWRkbGV3YXJlIiwid2ViTWlkZGxld2FyZSIsIl9fIiwiRXJyb3JDb2RlIiwiZ2V0Tm90Rm91bmQiLCJBUElfRVJST1IiLCJXRUJfRElTQUJMRUQiLCJGSUxFX05PVF9GT1VORCIsImhhbmRsZUVycm9yIiwiZmluYWwiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJjb25maWdIYXNoIiwiQXBwQ29uZmlnIiwiY2xvbmVEZWVwIiwiU3RvcmFnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbXByZXNzaW9uIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBjb3JzIGZyb20gJ2NvcnMnO1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB7IGdldFVzZXJBZ2VudCB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB0eXBlIHsgcGx1Z2luVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgUExVR0lOX0NBVEVHT1JZIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IGFzeW5jTG9hZFBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vbG9hZGVycyc7XG5pbXBvcnQgeyBlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUsIGZpbmFsLCBoYW5kbGVFcnJvciwgbG9nIH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IFNlYXJjaE1lbW9yeUluZGV4ZXIgfSBmcm9tICdAdmVyZGFjY2lvL3NlYXJjaC1pbmRleGVyJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnWWFtbCwgQ29uZmlnIGFzIElDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IEFwcENvbmZpZyBmcm9tICcuLi9saWIvY29uZmlnJztcbmltcG9ydCB7IEFQSV9FUlJPUiB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgU3RvcmFnZSBmcm9tICcuLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IGhvb2tEZWJ1ZyBmcm9tICcuL2RlYnVnJztcbmltcG9ydCBhcGlFbmRwb2ludCBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCB7IHNlcnZlRmF2aWNvbiB9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5pbXBvcnQgd2ViTWlkZGxld2FyZSBmcm9tICcuL3dlYic7XG5cbmNvbnN0IHZlcnNpb24gPSBwcm9jZXNzLmVudi5QQUNLQUdFX1ZFUlNJT04gfHwgJ2Rldic7XG5cbmNvbnN0IGRlZmluZUFQSSA9IGFzeW5jIGZ1bmN0aW9uIChjb25maWc6IElDb25maWcsIHN0b3JhZ2U6IFN0b3JhZ2UpOiBQcm9taXNlPGV4cHJlc3MuQXBwbGljYXRpb24+IHtcbiAgY29uc3QgYXV0aCA9IG5ldyBBdXRoKGNvbmZpZywgbG9nZ2VyLCB7IGxlZ2FjeU1lcmdlQ29uZmlnczogdHJ1ZSB9KTtcbiAgYXdhaXQgYXV0aC5pbml0KCk7XG4gIGNvbnN0IGFwcDogQXBwbGljYXRpb24gPSBleHByZXNzKCk7XG4gIFNlYXJjaE1lbW9yeUluZGV4ZXIuY29uZmlndXJlU3RvcmFnZShzdG9yYWdlKTtcbiAgYXdhaXQgU2VhcmNoTWVtb3J5SW5kZXhlci5pbml0KGxvZ2dlcik7XG4gIC8vIHJ1biBpbiBwcm9kdWN0aW9uIG1vZGUgYnkgZGVmYXVsdCwganVzdCBpbiBjYXNlXG4gIC8vIGl0IHNob3VsZG4ndCBtYWtlIGFueSBkaWZmZXJlbmNlIGFueXdheVxuICBhcHAuc2V0KCdlbnYnLCBwcm9jZXNzLmVudi5OT0RFX0VOViB8fCAncHJvZHVjdGlvbicpO1xuXG4gIC8vIEFsbG93IGByZXEuaXBgIHRvIHJlc29sdmUgcHJvcGVybHkgd2hlbiBWZXJkYWNjaW8gaXMgYmVoaW5kIGEgcHJveHkgb3IgbG9hZC1iYWxhbmNlclxuICAvLyBTZWU6IGh0dHBzOi8vZXhwcmVzc2pzLmNvbS9lbi9ndWlkZS9iZWhpbmQtcHJveGllcy5odG1sXG4gIGlmIChjb25maWcuc2VydmVyPy50cnVzdFByb3h5KSB7XG4gICAgYXBwLnNldCgndHJ1c3QgcHJveHknLCBjb25maWcuc2VydmVyLnRydXN0UHJveHkpO1xuICB9XG5cbiAgYXBwLnVzZShjb3JzKCkpO1xuXG4gIC8vIC8vIFJvdXRlciBzZXR1cFxuICBhcHAudXNlKGxvZyhsb2dnZXIpKTtcbiAgYXBwLnVzZShlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUobG9nZ2VyKSk7XG4gIGlmIChjb25maWcudXNlcl9hZ2VudCkge1xuICAgIGFwcC51c2UoZnVuY3Rpb24gKF9yZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnNldEhlYWRlcignWC1Qb3dlcmVkLUJ5JywgZ2V0VXNlckFnZW50KGNvbmZpZy51c2VyX2FnZW50KSk7XG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgYXBwLmRpc2FibGUoJ3gtcG93ZXJlZC1ieScpO1xuICB9XG5cbiAgYXBwLnVzZShjb21wcmVzc2lvbigpKTtcblxuICBhcHAuZ2V0KCcvLS9zdGF0aWMvZmF2aWNvbi5pY28nLCBzZXJ2ZUZhdmljb24oY29uZmlnKSk7XG5cbiAgLy8gSG9vayBmb3IgdGVzdHMgb25seVxuICBpZiAoY29uZmlnLl9kZWJ1Zykge1xuICAgIGhvb2tEZWJ1ZyhhcHAsIGNvbmZpZy5jb25maWdQYXRoKTtcbiAgfVxuXG4gIGNvbnN0IHBsdWdpbnM6IHBsdWdpblV0aWxzLkV4cHJlc3NNaWRkbGV3YXJlPElDb25maWcsICcnLCBBdXRoPltdID0gYXdhaXQgYXN5bmNMb2FkUGx1Z2luKFxuICAgIGNvbmZpZy5taWRkbGV3YXJlcyxcbiAgICB7XG4gICAgICBjb25maWcsXG4gICAgICBsb2dnZXIsXG4gICAgfSxcbiAgICBmdW5jdGlvbiAocGx1Z2luKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHBsdWdpbi5yZWdpc3Rlcl9taWRkbGV3YXJlcyAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfSxcbiAgICB0cnVlLFxuICAgIGNvbmZpZz8uc2VydmVyU2V0dGluZ3M/LnBsdWdpblByZWZpeCA/PyAndmVyZGFjY2lvJyxcbiAgICBQTFVHSU5fQ0FURUdPUlkuTUlERExFV0FSRVxuICApO1xuXG4gIC8vIFJlZ2lzdGVyIEpXVCBtaWRkbGV3YXJlIHNvIG1pZGRsZXdhcmUgcGx1Z2lucyBjYW4gYWNjZXNzIHJlcS5yZW1vdGVfdXNlclxuICBhcHAudXNlKGF1dGguYXBpSldUbWlkZGxld2FyZSgpKTtcblxuICBwbHVnaW5zLmZvckVhY2goKHBsdWdpbjogYW55KSA9PiB7XG4gICAgcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzKGFwcCwgYXV0aCwgc3RvcmFnZSk7XG4gIH0pO1xuXG4gIC8vIC8vIEZvciAgbnBtIHJlcXVlc3RcbiAgYXBwLnVzZShhcGlFbmRwb2ludChjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcblxuICAvLyBGb3IgV2ViVUkgJiBXZWJVSSBBUElcbiAgaWYgKF8uZ2V0KGNvbmZpZywgJ3dlYi5lbmFibGUnLCB0cnVlKSkge1xuICAgIGFwcC51c2UoKF9yZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgcmVzLmxvY2Fscy5hcHBfdmVyc2lvbiA9IHZlcnNpb24gPz8gJyc7XG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgbWlkZGxld2FyZSA9IGF3YWl0IHdlYk1pZGRsZXdhcmUoY29uZmlnLCBhdXRoLCBzdG9yYWdlLCBsb2dnZXIpO1xuICAgIGFwcC51c2UobWlkZGxld2FyZSk7XG4gIH0gZWxzZSB7XG4gICAgYXBwLmdldCgnLycsIGZ1bmN0aW9uIChfLCBfXywgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgbmV4dChFcnJvckNvZGUuZ2V0Tm90Rm91bmQoQVBJX0VSUk9SLldFQl9ESVNBQkxFRCkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXBwLmdldCgnLyonLCBmdW5jdGlvbiAoXywgX18sIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBuZXh0KEVycm9yQ29kZS5nZXROb3RGb3VuZChBUElfRVJST1IuRklMRV9OT1RfRk9VTkQpKTtcbiAgfSk7XG4gIGFwcC51c2UoaGFuZGxlRXJyb3IobG9nZ2VyKSk7XG4gIGFwcC51c2UoZmluYWwpO1xuXG4gIHJldHVybiBhcHA7XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoYXN5bmMgZnVuY3Rpb24gKGNvbmZpZ0hhc2g6IENvbmZpZ1lhbWwpOiBQcm9taXNlPGV4cHJlc3MuQXBwbGljYXRpb24+IHtcbiAgY29uc3QgY29uZmlnOiBJQ29uZmlnID0gbmV3IEFwcENvbmZpZyhfLmNsb25lRGVlcChjb25maWdIYXNoKSk7XG5cbiAgY29uc3Qgc3RvcmFnZSA9IG5ldyBTdG9yYWdlKGNvbmZpZyk7XG4gIC8vIHdhaXRzIHVudGlsIGluaXQgY2FsbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkXG4gIGF3YWl0IHN0b3JhZ2UuaW5pdChjb25maWcpO1xuICByZXR1cm4gYXdhaXQgZGVmaW5lQVBJKGNvbmZpZywgc3RvcmFnZSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFB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
@@ -5,7 +5,7 @@ var _info = require("./commands/info");
5
5
  var _init = require("./commands/init");
6
6
  var _version = require("./commands/version");
7
7
  var _utils = require("./utils");
8
- const pkgVersion = "6.7.2" || 'dev';
8
+ const pkgVersion = "6.7.4" || 'dev';
9
9
  if (process.getuid && process.getuid() === 0) {
10
10
  process.emitWarning(`Verdaccio doesn't need superuser privileges. don't run it under root`);
11
11
  }
@@ -13,7 +13,7 @@ var _runServer = require("../../run-server");
13
13
  var _utils = require("../../utils");
14
14
  var _utils2 = require("../utils");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- const pkgVersion = "6.7.2" || 'dev';
16
+ const pkgVersion = "6.7.4" || 'dev';
17
17
  const pkgName = 'verdaccio';
18
18
  const DEFAULT_PROCESS_NAME = exports.DEFAULT_PROCESS_NAME = 'verdaccio';
19
19
  class InitCommand extends _clipanion.Command {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.VersionCommand = void 0;
7
7
  var _clipanion = require("clipanion");
8
- const pkgVersion = "6.7.2" || 'dev';
8
+ const pkgVersion = "6.7.4" || 'dev';
9
9
  class VersionCommand extends _clipanion.Command {
10
10
  static paths = [[`--version`], [`-v`]];
11
11
  async execute() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio",
3
- "version": "6.7.2",
3
+ "version": "6.7.4",
4
4
  "description": "A lightweight private npm proxy registry",
5
5
  "author": {
6
6
  "name": "Verdaccio Maintainers",
@@ -20,22 +20,22 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@cypress/request": "3.0.10",
23
- "@verdaccio/auth": "8.0.2",
24
- "@verdaccio/config": "8.1.1",
25
- "@verdaccio/core": "8.1.1",
26
- "@verdaccio/hooks": "8.0.2",
27
- "@verdaccio/loaders": "8.0.2",
28
- "@verdaccio/local-storage-legacy": "11.3.3",
29
- "@verdaccio/logger": "8.0.2",
30
- "@verdaccio/middleware": "8.0.2",
31
- "@verdaccio/package-filter": "13.0.2",
23
+ "@verdaccio/auth": "8.0.4",
24
+ "@verdaccio/config": "8.1.2",
25
+ "@verdaccio/core": "8.1.2",
26
+ "@verdaccio/hooks": "8.0.3",
27
+ "@verdaccio/loaders": "8.0.3",
28
+ "@verdaccio/local-storage-legacy": "11.3.4",
29
+ "@verdaccio/logger": "8.0.3",
30
+ "@verdaccio/middleware": "8.0.5",
31
+ "@verdaccio/package-filter": "13.0.3",
32
32
  "@verdaccio/search-indexer": "8.0.2",
33
- "@verdaccio/signature": "8.0.2",
33
+ "@verdaccio/signature": "8.0.3",
34
34
  "@verdaccio/streams": "10.2.5",
35
- "@verdaccio/tarball": "13.0.2",
36
- "@verdaccio/ui-theme": "9.0.0-next-9.14",
37
- "@verdaccio/url": "13.0.2",
38
- "@verdaccio/utils": "8.1.2",
35
+ "@verdaccio/tarball": "13.0.3",
36
+ "@verdaccio/ui-theme": "9.0.0-next-9.20",
37
+ "@verdaccio/url": "13.0.3",
38
+ "@verdaccio/utils": "8.1.3",
39
39
  "JSONStream": "1.3.5",
40
40
  "async": "3.2.6",
41
41
  "clipanion": "4.0.0-rc.4",
@@ -43,65 +43,64 @@
43
43
  "cors": "2.8.6",
44
44
  "debug": "4.4.3",
45
45
  "envinfo": "7.21.0",
46
- "express": "4.22.1",
46
+ "express": "4.22.2",
47
47
  "lodash": "4.18.1",
48
48
  "lru-cache": "7.18.3",
49
49
  "mime": "3.0.0",
50
- "semver": "7.8.0",
51
- "verdaccio-audit": "13.0.2",
52
- "verdaccio-htpasswd": "13.0.2"
50
+ "semver": "7.8.2",
51
+ "verdaccio-audit": "13.0.3",
52
+ "verdaccio-htpasswd": "13.0.3"
53
53
  },
54
54
  "devDependencies": {
55
- "@babel/cli": "7.28.6",
56
- "@babel/core": "7.29.0",
57
- "@babel/node": "7.29.0",
58
- "@babel/preset-env": "7.29.0",
59
- "@babel/preset-typescript": "7.28.5",
60
- "@babel/register": "7.28.6",
61
- "@babel/runtime": "7.28.6",
55
+ "@babel/cli": "7.29.7",
56
+ "@babel/core": "7.29.7",
57
+ "@babel/node": "7.29.7",
58
+ "@babel/preset-env": "7.29.7",
59
+ "@babel/preset-typescript": "7.29.7",
60
+ "@babel/register": "7.29.7",
61
+ "@babel/runtime": "7.29.7",
62
62
  "@changesets/changelog-github": "0.5.2",
63
- "@changesets/cli": "2.27.12",
64
- "@changesets/get-dependents-graph": "2.1.3",
63
+ "@changesets/cli": "2.31.0",
64
+ "@changesets/get-dependents-graph": "2.1.4",
65
65
  "@trivago/prettier-plugin-sort-imports": "5.2.2",
66
66
  "@types/async": "3.2.25",
67
- "@types/debug": "4.1.12",
67
+ "@types/debug": "4.1.13",
68
68
  "@types/express": "4.17.25",
69
69
  "@types/express-serve-static-core": "4.19.8",
70
70
  "@types/http-errors": "2.0.5",
71
- "@types/lodash": "4.17.23",
71
+ "@types/lodash": "4.17.24",
72
72
  "@types/mime": "3.0.4",
73
73
  "@types/minimatch": "5.1.2",
74
- "@types/node": "20.19.33",
75
- "@types/pino": "7.0.5",
74
+ "@types/node": "20.19.41",
76
75
  "@types/request": "2.48.13",
77
76
  "@types/semver": "7.7.1",
78
77
  "@types/supertest": "6.0.3",
79
78
  "@verdaccio-scope/verdaccio-auth-foo": "0.0.2",
80
- "@verdaccio/e2e-cli": "2.6.0",
79
+ "@verdaccio/e2e-cli": "2.10.2",
81
80
  "@verdaccio/e2e-ui": "2.4.1",
82
- "@verdaccio/eslint-config": "13.1.0",
83
- "@verdaccio/test-helper": "4.0.0",
84
- "@verdaccio/types": "13.0.0",
85
- "@vitest/coverage-v8": "4.1.5",
86
- "@vitest/eslint-plugin": "1.6.17",
81
+ "@verdaccio/eslint-config": "13.1.2",
82
+ "@verdaccio/test-helper": "4.0.5",
83
+ "@verdaccio/types": "13.0.2",
84
+ "@vitest/coverage-v8": "4.1.8",
85
+ "@vitest/eslint-plugin": "1.6.19",
87
86
  "babel-plugin-transform-inline-environment-variables": "0.4.4",
88
87
  "cross-env": "10.1.0",
89
- "cypress": "15",
90
- "eslint": "10.0.3",
91
- "eslint-plugin-cypress": "6.1.0",
92
- "fs-extra": "11.3.2",
93
- "get-port": "7.1.0",
88
+ "cypress": "15.16.0",
89
+ "eslint": "10.4.1",
90
+ "eslint-plugin-cypress": "6.4.1",
91
+ "fs-extra": "11.3.5",
92
+ "get-port": "7.2.0",
94
93
  "kleur": "4.1.5",
95
94
  "nock": "13.5.6",
96
95
  "node-mocks-http": "^1.17.2",
97
- "prettier": "3.6.2",
96
+ "prettier": "3.8.3",
98
97
  "selfsigned": "5.5.0",
99
98
  "supertest": "7.2.2",
100
99
  "ts-node": "10.9.2",
101
100
  "typescript": "5.9.3",
102
- "verdaccio-auth-memory": "13.0.1",
103
- "verdaccio-memory": "10.4.3",
104
- "vitest": "4.1.5"
101
+ "verdaccio-auth-memory": "13.0.3",
102
+ "verdaccio-memory": "10.4.6",
103
+ "vitest": "4.1.8"
105
104
  },
106
105
  "keywords": [
107
106
  "private",
@@ -152,7 +151,11 @@
152
151
  "license": "MIT",
153
152
  "resolutions": {
154
153
  "@types/serve-static": "1.15.10",
155
- "@types/express-serve-static-core": "4.19.8"
154
+ "@types/express-serve-static-core": "4.19.8",
155
+ "ajv/fast-uri": "3.1.2",
156
+ "@cypress/request/form-data": "4.0.6",
157
+ "lowdb/lodash": "4.18.1",
158
+ "express/path-to-regexp": "0.1.13"
156
159
  },
157
160
  "collective": {
158
161
  "type": "opencollective",