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
|
|
76
|
-
const
|
|
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
|
-
|
|
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,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmUiLCJfbG9nZ2VyIiwiX2Rpc3RUYWdzIiwiX3BhY2thZ2UiLCJfcGluZyIsIl9wdWJsaXNoIiwiX3NlYXJjaCIsIl9zdGFycyIsIl91c2VyIiwiX3Byb2ZpbGUiLCJfc2VhcmNoMiIsIl90b2tlbiIsIl93aG9hbWkiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImNvbmZpZyIsImF1dGgiLCJzdG9yYWdlIiwiYXBwIiwiZXhwcmVzcyIsIlJvdXRlciIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwibWF0Y2giLCJhcGlKd3RNaWRkbGV3YXJlIiwiYXBpSldUbWlkZGxld2FyZSIsInVzZSIsInJlcSIsInJlcyIsIm5leHQiLCJyZW1vdGVVc2VyIiwicmVtb3RlX3VzZXIiLCJsb2NhbHMiLCJlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSIsImxvZ2dlciIsImpzb24iLCJzdHJpY3QiLCJsaW1pdCIsIm1heF9ib2R5X3NpemUiLCJhbnRpTG9vcCIsImVuY29kZVNjb3BlUGFja2FnZSIsIndob2FtaSIsInByb2ZpbGUiLCJzZWFyY2giLCJ1c2VyIiwiZGlzdFRhZ3MiLCJwdWJsaXNoIiwicGluZyIsInN0YXJzIiwidjFTZWFyY2giLCJ0b2tlbiIsInBrZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQge1xuICBhbnRpTG9vcCxcbiAgZW5jb2RlU2NvcGVQYWNrYWdlLFxuICBlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSxcbiAgbWF0Y2gsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCBkaXN0VGFncyBmcm9tICcuL2FwaS9kaXN0LXRhZ3MnO1xuaW1wb3J0IHBrZyBmcm9tICcuL2FwaS9wYWNrYWdlJztcbmltcG9ydCBwaW5nIGZyb20gJy4vYXBpL3BpbmcnO1xuaW1wb3J0IHB1Ymxpc2ggZnJvbSAnLi9hcGkvcHVibGlzaCc7XG5pbXBvcnQgc2VhcmNoIGZyb20gJy4vYXBpL3NlYXJjaCc7XG5pbXBvcnQgc3RhcnMgZnJvbSAnLi9hcGkvc3RhcnMnO1xuaW1wb3J0IHVzZXIgZnJvbSAnLi9hcGkvdXNlcic7XG5pbXBvcnQgcHJvZmlsZSBmcm9tICcuL2FwaS92MS9wcm9maWxlJztcbmltcG9ydCB2MVNlYXJjaCBmcm9tICcuL2FwaS92MS9zZWFyY2gnO1xuaW1wb3J0IHRva2VuIGZyb20gJy4vYXBpL3YxL3Rva2VuJztcbmltcG9ydCB3aG9hbWkgZnJvbSAnLi9hcGkvd2hvYW1pJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoLCBzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MuUm91dGVyKCk7XG5cbiAgLy8gdmFsaWRhdGUgYWxsIG9mIHRoZXNlIHBhcmFtcyBhcyBhIHBhY2thZ2UgbmFtZVxuICAvLyB0aGlzIG1pZ2h0IGJlIHRvbyBoYXJzaCwgc28gYXNrIGlmIGl0IGNhdXNlcyB0cm91YmxlXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIGFwcC5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3RhZycsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgncmV2aXNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3Rva2VuJywgdmFsaWRhdGVOYW1lKTtcblxuICAvLyB0aGVzZSBjYW4ndCBiZSBzYWZlbHkgcHV0IGludG8gZXhwcmVzcyB1cmwgZm9yIHNvbWUgcmVhc29uXG4gIC8vIFRPRE86IEZvciBzb21lIHJlYXNvbj8gd2hhdCByZWFzb24/XG4gIGFwcC5wYXJhbSgnX3JldicsIG1hdGNoKC9eLXJldiQvKSk7XG4gIGFwcC5wYXJhbSgnb3JnX2NvdWNoZGJfdXNlcicsIG1hdGNoKC9eb3JnXFwuY291Y2hkYlxcLnVzZXI6LykpO1xuXG4gIC8vIEF2b2lkIGV4ZWN1dGluZyBKV1QgdHdpY2Ugd2hlbiB0aGUgcGFyZW50IGFwcCBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIEpXVCBtaWRkbGV3YXJlXG4gIGNvbnN0IGFwaUp3dE1pZGRsZXdhcmUgPSBhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKTtcbiAgYXBwLnVzZSgocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCByZW1vdGVVc2VyID0gKHJlcSBhcyBhbnkpLnJlbW90ZV91c2VyID8/IChyZXMubG9jYWxzIGFzIGFueSkucmVtb3RlX3VzZXI7XG4gICAgaWYgKHJlbW90ZVVzZXIpIHtcbiAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgfVxuICAgIHJldHVybiBhcGlKd3RNaWRkbGV3YXJlKHJlcSwgcmVzLCBuZXh0KTtcbiAgfSk7XG4gIGFwcC51c2UoZW5mb3JjZUdlbmVyYXRlZFRva2VuTWV0YWRhdGEoc3RvcmFnZSwgbG9nZ2VyKSk7XG4gIGFwcC51c2UoZXhwcmVzcy5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICB3aG9hbWkoYXBwKTtcbiAgcHJvZmlsZShhcHAsIGF1dGgsIGNvbmZpZyk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgdG9rZW4oYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICBwa2coYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICByZXR1cm4gYXBwO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFVQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFBa0MsU0FBQUQsdUJBQUFlLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbkIsU0FBQUcsU0FBVUMsTUFBYyxFQUFFQyxJQUFVLEVBQUVDLE9BQWdCLEVBQUU7RUFDckUsTUFBTUMsR0FBRyxHQUFHQyxnQkFBTyxDQUFDQyxNQUFNLENBQUMsQ0FBQzs7RUFFNUI7RUFDQTtFQUNBRixHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVDLDJCQUFlLENBQUM7RUFDckNKLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsS0FBSyxFQUFFRSx3QkFBWSxDQUFDO0VBQzlCTCxHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVFLHdCQUFZLENBQUM7RUFDbENMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsT0FBTyxFQUFFRSx3QkFBWSxDQUFDOztFQUVoQztFQUNBO0VBQ0FMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFBRyxpQkFBSyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ2xDTixHQUFHLENBQUNHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFBRyxpQkFBSyxFQUFDLHNCQUFzQixDQUFDLENBQUM7O0VBRTVEO0VBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdULElBQUksQ0FBQ1UsZ0JBQWdCLENBQUMsQ0FBQztFQUNoRFIsR0FBRyxDQUFDUyxHQUFHLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLElBQUksS0FBSztJQUMxQixNQUFNQyxVQUFVLEdBQUlILEdBQUcsQ0FBU0ksV0FBVyxJQUFLSCxHQUFHLENBQUNJLE1BQU0sQ0FBU0QsV0FBVztJQUM5RSxJQUFJRCxVQUFVLEVBQUU7TUFDZCxPQUFPRCxJQUFJLENBQUMsQ0FBQztJQUNmO0lBQ0EsT0FBT0wsZ0JBQWdCLENBQUNHLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7RUFDekMsQ0FBQyxDQUFDO0VBQ0ZaLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFPLHlDQUE2QixFQUFDakIsT0FBTyxFQUFFa0IsY0FBTSxDQUFDLENBQUM7RUFDdkRqQixHQUFHLENBQUNTLEdBQUcsQ0FBQ1IsZ0JBQU8sQ0FBQ2lCLElBQUksQ0FBQztJQUFFQyxNQUFNLEVBQUUsS0FBSztJQUFFQyxLQUFLLEVBQUV2QixNQUFNLENBQUN3QixhQUFhLElBQUk7RUFBTyxDQUFDLENBQUMsQ0FBQztFQUMvRXJCLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFhLG9CQUFRLEVBQUN6QixNQUFNLENBQUMsQ0FBQztFQUN6QjtFQUNBRyxHQUFHLENBQUNTLEdBQUcsQ0FBQ2MsOEJBQWtCLENBQUM7RUFDM0IsSUFBQUMsZUFBTSxFQUFDeEIsR0FBRyxDQUFDO0VBQ1gsSUFBQXlCLGdCQUFPLEVBQUN6QixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQzFCLElBQUE2QixlQUFNLEVBQUMxQixHQUFHLEVBQUVGLElBQUksRUFBRUMsT0FBTyxDQUFDO0VBQzFCLElBQUE0QixhQUFJLEVBQUMzQixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQ3ZCLElBQUErQixpQkFBUSxFQUFDNUIsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBOEIsZ0JBQU8sRUFBQzdCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLEVBQUVGLE1BQU0sQ0FBQztFQUNuQyxJQUFBaUMsYUFBSSxFQUFDOUIsR0FBRyxDQUFDO0VBQ1QsSUFBQStCLGNBQUssRUFBQy9CLEdBQUcsRUFBRUQsT0FBTyxDQUFDO0VBQ25CLElBQUFpQyxnQkFBUSxFQUFDaEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBa0MsY0FBSyxFQUFDakMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQ2pDLElBQUFxQyxnQkFBRyxFQUFDbEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQy9CLE9BQU9HLEdBQUc7QUFDWiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/build/api/index.js
CHANGED
|
@@ -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.
|
|
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+IHtcbiAgY29uc3QgY29uZmlnOiBJQ29uZmlnID0gbmV3IEFwcENvbmZpZyhfLmNsb25lRGVlcChjb25maWdIYXNoKSk7XG5cbiAgY29uc3Qgc3RvcmFnZSA9IG5ldyBTdG9yYWdlKGNvbmZpZyk7XG4gIC8vIHdhaXRzIHVudGlsIGluaXQgY2FsbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkXG4gIGF3YWl0IHN0b3JhZ2UuaW5pdChjb25maWcpO1xuICByZXR1cm4gYXdhaXQgZGVmaW5lQVBJKGNvbmZpZywgc3RvcmFnZSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sS0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsY0FBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsUUFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsVUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsUUFBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBRUEsSUFBQWUsTUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixTQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLFlBQUEsR0FBQWpCLE9BQUE7QUFDQSxJQUFBa0IsSUFBQSxHQUFBbkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUFrQyxTQUFBRCx1QkFBQW9CLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbEMsTUFBTUcsT0FBTyxHQUFHLFdBQStCLEtBQUs7QUFFcEQsTUFBTUMsU0FBUyxHQUFHLGVBQUFBLENBQWdCQyxNQUFlLEVBQUVDLE9BQWdCLEVBQWdDO0VBQ2pHLE1BQU1DLElBQUksR0FBRyxJQUFJQyxVQUFJLENBQUNILE1BQU0sRUFBRUksY0FBTSxFQUFFO0lBQUVDLGtCQUFrQixFQUFFO0VBQUssQ0FBQyxDQUFDO0VBQ25FLE1BQU1ILElBQUksQ0FBQ0ksSUFBSSxDQUFDLENBQUM7RUFDakIsTUFBTUMsR0FBZ0IsR0FBRyxJQUFBQyxnQkFBTyxFQUFDLENBQUM7RUFDbENDLGtDQUFtQixDQUFDQyxnQkFBZ0IsQ0FBQ1QsT0FBTyxDQUFDO0VBQzdDLE1BQU1RLGtDQUFtQixDQUFDSCxJQUFJLENBQUNGLGNBQU0sQ0FBQztFQUN0QztFQUNBO0VBQ0FHLEdBQUcsQ0FBQ0ksR0FBRyxDQUFDLEtBQUssRUFBRUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsSUFBSSxZQUFZLENBQUM7O0VBRXBEO0VBQ0E7RUFDQSxJQUFJZCxNQUFNLENBQUNlLE1BQU0sRUFBRUMsVUFBVSxFQUFFO0lBQzdCVCxHQUFHLENBQUNJLEdBQUcsQ0FBQyxhQUFhLEVBQUVYLE1BQU0sQ0FBQ2UsTUFBTSxDQUFDQyxVQUFVLENBQUM7RUFDbEQ7RUFFQVQsR0FBRyxDQUFDVSxHQUFHLENBQUMsSUFBQUMsYUFBSSxFQUFDLENBQUMsQ0FBQzs7RUFFZjtFQUNBWCxHQUFHLENBQUNVLEdBQUcsQ0FBQyxJQUFBRSxlQUFHLEVBQUNmLGNBQU0sQ0FBQyxDQUFDO0VBQ3BCRyxHQUFHLENBQUNVLEdBQUcsQ0FBQyxJQUFBRyxvQ0FBd0IsRUFBQ2hCLGNBQU0sQ0FBQyxDQUFDO0VBQ3pDLElBQUlKLE1BQU0sQ0FBQ3FCLFVBQVUsRUFBRTtJQUNyQmQsR0FBRyxDQUFDVSxHQUFHLENBQUMsVUFBVUssSUFBb0IsRUFBRUMsR0FBb0IsRUFBRUMsSUFBc0IsRUFBUTtNQUMxRkQsR0FBRyxDQUFDRSxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUFDLG9CQUFZLEVBQUMxQixNQUFNLENBQUNxQixVQUFVLENBQUMsQ0FBQztNQUM5REcsSUFBSSxDQUFDLENBQUM7SUFDUixDQUFDLENBQUM7RUFDSixDQUFDLE1BQU07SUFDTGpCLEdBQUcsQ0FBQ29CLE9BQU8sQ0FBQyxjQUFjLENBQUM7RUFDN0I7RUFFQXBCLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDLElBQUFXLG9CQUFXLEVBQUMsQ0FBQyxDQUFDO0VBRXRCckIsR0FBRyxDQUFDc0IsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUFDLHlCQUFZLEVBQUM5QixNQUFNLENBQUMsQ0FBQzs7RUFFdEQ7RUFDQSxJQUFJQSxNQUFNLENBQUNULE1BQU0sRUFBRTtJQUNqQixJQUFBd0MsY0FBUyxFQUFDeEIsR0FBRyxFQUFFUCxNQUFNLENBQUNnQyxVQUFVLENBQUM7RUFDbkM7RUFFQSxNQUFNQyxPQUEyRCxHQUFHLE1BQU0sSUFBQUMsd0JBQWUsRUFDdkZsQyxNQUFNLENBQUNtQyxXQUFXLEVBQ2xCO0lBQ0VuQyxNQUFNO0lBQ05JLE1BQU0sRUFBTkE7RUFDRixDQUFDLEVBQ0QsVUFBVWdDLE1BQU0sRUFBRTtJQUNoQixPQUFPLE9BQU9BLE1BQU0sQ0FBQ0Msb0JBQW9CLEtBQUssV0FBVztFQUMzRCxDQUFDLEVBQ0QsSUFBSSxFQUNKckMsTUFBTSxFQUFFc0MsY0FBYyxFQUFFQyxZQUFZLElBQUksV0FBVyxFQUNuREMscUJBQWUsQ0FBQ0MsVUFDbEIsQ0FBQzs7RUFFRDtFQUNBbEMsR0FBRyxDQUFDVSxHQUFHLENBQUNmLElBQUksQ0FBQ3dDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztFQUVoQ1QsT0FBTyxDQUFDVSxPQUFPLENBQUVQLE1BQVcsSUFBSztJQUMvQkEsTUFBTSxDQUFDQyxvQkFBb0IsQ0FBQzlCLEdBQUcsRUFBRUwsSUFBSSxFQUFFRCxPQUFPLENBQUM7RUFDakQsQ0FBQyxDQUFDOztFQUVGO0VBQ0FNLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDLElBQUEyQixpQkFBVyxFQUFDNUMsTUFBTSxFQUFFRSxJQUFJLEVBQUVELE9BQU8sQ0FBQyxDQUFDOztFQUUzQztFQUNBLElBQUk0QyxlQUFDLENBQUNoQixHQUFHLENBQUM3QixNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO0lBQ3JDTyxHQUFHLENBQUNVLEdBQUcsQ0FBQyxDQUFDSyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsSUFBSSxLQUFLO01BQzNCRCxHQUFHLENBQUN1QixNQUFNLENBQUNDLFdBQVcsR0FBR2pELE9BQU8sSUFBSSxFQUFFO01BQ3RDMEIsSUFBSSxDQUFDLENBQUM7SUFDUixDQUFDLENBQUM7SUFDRixNQUFNd0IsVUFBVSxHQUFHLE1BQU0sSUFBQUMsWUFBYSxFQUFDakQsTUFBTSxFQUFFRSxJQUFJLEVBQUVELE9BQU8sRUFBRUcsY0FBTSxDQUFDO0lBQ3JFRyxHQUFHLENBQUNVLEdBQUcsQ0FBQytCLFVBQVUsQ0FBQztFQUNyQixDQUFDLE1BQU07SUFDTHpDLEdBQUcsQ0FBQ3NCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVWdCLENBQUMsRUFBRUssRUFBRSxFQUFFMUIsSUFBc0IsRUFBRTtNQUNwREEsSUFBSSxDQUFDMkIsZ0JBQVMsQ0FBQ0MsV0FBVyxDQUFDQyxvQkFBUyxDQUFDQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7RUFDSjtFQUVBL0MsR0FBRyxDQUFDc0IsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVZ0IsQ0FBQyxFQUFFSyxFQUFFLEVBQUUxQixJQUFzQixFQUFFO0lBQ3JEQSxJQUFJLENBQUMyQixnQkFBUyxDQUFDQyxXQUFXLENBQUNDLG9CQUFTLENBQUNFLGNBQWMsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztFQUNGaEQsR0FBRyxDQUFDVSxHQUFHLENBQUMsSUFBQXVDLHVCQUFXLEVBQUNwRCxjQUFNLENBQUMsQ0FBQztFQUM1QkcsR0FBRyxDQUFDVSxHQUFHLENBQUN3QyxpQkFBSyxDQUFDO0VBRWQsT0FBT2xELEdBQUc7QUFDWixDQUFDO0FBQUMsSUFBQW1ELFFBQUEsR0FBQUMsT0FBQSxDQUFBOUQsT0FBQSxHQUVjLGVBQUE2RCxTQUFnQkUsVUFBc0IsRUFBZ0M7RUFDcEYsTUFBTTVELE1BQWUsR0FBRyxJQUFJNkQsZ0JBQVMsQ0FBQ2hCLGVBQUMsQ0FBQ2lCLFNBQVMsQ0FBQ0YsVUFBVSxDQUFDLENBQUM7RUFFOUQsTUFBTTNELE9BQU8sR0FBRyxJQUFJOEQsZ0JBQU8sQ0FBQy9ELE1BQU0sQ0FBQztFQUNuQztFQUNBLE1BQU1DLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDTixNQUFNLENBQUM7RUFDMUIsT0FBTyxNQUFNRCxTQUFTLENBQUNDLE1BQU0sRUFBRUMsT0FBTyxDQUFDO0FBQ3pDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/build/lib/cli/cli.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
24
|
-
"@verdaccio/config": "8.1.
|
|
25
|
-
"@verdaccio/core": "8.1.
|
|
26
|
-
"@verdaccio/hooks": "8.0.
|
|
27
|
-
"@verdaccio/loaders": "8.0.
|
|
28
|
-
"@verdaccio/local-storage-legacy": "11.3.
|
|
29
|
-
"@verdaccio/logger": "8.0.
|
|
30
|
-
"@verdaccio/middleware": "8.0.
|
|
31
|
-
"@verdaccio/package-filter": "13.0.
|
|
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.
|
|
33
|
+
"@verdaccio/signature": "8.0.3",
|
|
34
34
|
"@verdaccio/streams": "10.2.5",
|
|
35
|
-
"@verdaccio/tarball": "13.0.
|
|
36
|
-
"@verdaccio/ui-theme": "9.0.0-next-9.
|
|
37
|
-
"@verdaccio/url": "13.0.
|
|
38
|
-
"@verdaccio/utils": "8.1.
|
|
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.
|
|
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.
|
|
51
|
-
"verdaccio-audit": "13.0.
|
|
52
|
-
"verdaccio-htpasswd": "13.0.
|
|
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.
|
|
56
|
-
"@babel/core": "7.29.
|
|
57
|
-
"@babel/node": "7.29.
|
|
58
|
-
"@babel/preset-env": "7.29.
|
|
59
|
-
"@babel/preset-typescript": "7.
|
|
60
|
-
"@babel/register": "7.
|
|
61
|
-
"@babel/runtime": "7.
|
|
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.
|
|
64
|
-
"@changesets/get-dependents-graph": "2.1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
79
|
+
"@verdaccio/e2e-cli": "2.10.2",
|
|
81
80
|
"@verdaccio/e2e-ui": "2.4.1",
|
|
82
|
-
"@verdaccio/eslint-config": "13.1.
|
|
83
|
-
"@verdaccio/test-helper": "4.0.
|
|
84
|
-
"@verdaccio/types": "13.0.
|
|
85
|
-
"@vitest/coverage-v8": "4.1.
|
|
86
|
-
"@vitest/eslint-plugin": "1.6.
|
|
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.
|
|
91
|
-
"eslint-plugin-cypress": "6.1
|
|
92
|
-
"fs-extra": "11.3.
|
|
93
|
-
"get-port": "7.
|
|
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.
|
|
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.
|
|
103
|
-
"verdaccio-memory": "10.4.
|
|
104
|
-
"vitest": "4.1.
|
|
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",
|