verdaccio
Version:
A lightweight private npm proxy registry
69 lines (65 loc) • 10.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _express = _interopRequireDefault(require("express"));
var _middleware = require("@verdaccio/middleware");
var _logger = require("../../lib/logger");
var _distTags = _interopRequireDefault(require("./api/dist-tags"));
var _package = _interopRequireDefault(require("./api/package"));
var _ping = _interopRequireDefault(require("./api/ping"));
var _publish = _interopRequireDefault(require("./api/publish"));
var _search = _interopRequireDefault(require("./api/search"));
var _stars = _interopRequireDefault(require("./api/stars"));
var _user = _interopRequireDefault(require("./api/user"));
var _profile = _interopRequireDefault(require("./api/v1/profile"));
var _search2 = _interopRequireDefault(require("./api/v1/search"));
var _token = _interopRequireDefault(require("./api/v1/token"));
var _whoami = _interopRequireDefault(require("./api/whoami"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _default(config, auth, storage) {
const app = _express.default.Router();
// validate all of these params as a package name
// this might be too harsh, so ask if it causes trouble
app.param('package', _middleware.validatePackage);
app.param('filename', _middleware.validateName);
app.param('tag', _middleware.validateName);
app.param('version', _middleware.validateName);
app.param('revision', _middleware.validateName);
app.param('token', _middleware.validateName);
// these can't be safely put into express url for some reason
// TODO: For some reason? what reason?
app.param('_rev', (0, _middleware.match)(/^-rev$/));
app.param('org_couchdb_user', (0, _middleware.match)(/^org\.couchdb\.user:/));
// Avoid executing JWT twice when the parent app already registered the JWT middleware
const apiJwtMiddleware = auth.apiJWTmiddleware();
app.use((req, res, next) => {
const remoteUser = req.remote_user ?? res.locals.remote_user;
if (remoteUser) {
return next();
}
return apiJwtMiddleware(req, res, next);
});
app.use((0, _middleware.enforceGeneratedTokenMetadata)(storage, _logger.logger));
app.use(_express.default.json({
strict: false,
limit: config.max_body_size || '10mb'
}));
app.use((0, _middleware.antiLoop)(config));
// encode / in a scoped package name to be matched as a single parameter in routes
app.use(_middleware.encodeScopePackage);
(0, _whoami.default)(app);
(0, _profile.default)(app, auth, config);
(0, _search.default)(app, auth, storage);
(0, _user.default)(app, auth, config);
(0, _distTags.default)(app, auth, storage);
(0, _publish.default)(app, auth, storage, config);
(0, _ping.default)(app);
(0, _stars.default)(app, storage);
(0, _search2.default)(app, auth, storage);
(0, _token.default)(app, auth, storage, config);
(0, _package.default)(app, auth, storage, config);
return app;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmUiLCJfbG9nZ2VyIiwiX2Rpc3RUYWdzIiwiX3BhY2thZ2UiLCJfcGluZyIsIl9wdWJsaXNoIiwiX3NlYXJjaCIsIl9zdGFycyIsIl91c2VyIiwiX3Byb2ZpbGUiLCJfc2VhcmNoMiIsIl90b2tlbiIsIl93aG9hbWkiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImNvbmZpZyIsImF1dGgiLCJzdG9yYWdlIiwiYXBwIiwiZXhwcmVzcyIsIlJvdXRlciIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwibWF0Y2giLCJhcGlKd3RNaWRkbGV3YXJlIiwiYXBpSldUbWlkZGxld2FyZSIsInVzZSIsInJlcSIsInJlcyIsIm5leHQiLCJyZW1vdGVVc2VyIiwicmVtb3RlX3VzZXIiLCJsb2NhbHMiLCJlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSIsImxvZ2dlciIsImpzb24iLCJzdHJpY3QiLCJsaW1pdCIsIm1heF9ib2R5X3NpemUiLCJhbnRpTG9vcCIsImVuY29kZVNjb3BlUGFja2FnZSIsIndob2FtaSIsInByb2ZpbGUiLCJzZWFyY2giLCJ1c2VyIiwiZGlzdFRhZ3MiLCJwdWJsaXNoIiwicGluZyIsInN0YXJzIiwidjFTZWFyY2giLCJ0b2tlbiIsInBrZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQge1xuICBhbnRpTG9vcCxcbiAgZW5jb2RlU2NvcGVQYWNrYWdlLFxuICBlbmZvcmNlR2VuZXJhdGVkVG9rZW5NZXRhZGF0YSxcbiAgbWF0Y2gsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxufSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCBkaXN0VGFncyBmcm9tICcuL2FwaS9kaXN0LXRhZ3MnO1xuaW1wb3J0IHBrZyBmcm9tICcuL2FwaS9wYWNrYWdlJztcbmltcG9ydCBwaW5nIGZyb20gJy4vYXBpL3BpbmcnO1xuaW1wb3J0IHB1Ymxpc2ggZnJvbSAnLi9hcGkvcHVibGlzaCc7XG5pbXBvcnQgc2VhcmNoIGZyb20gJy4vYXBpL3NlYXJjaCc7XG5pbXBvcnQgc3RhcnMgZnJvbSAnLi9hcGkvc3RhcnMnO1xuaW1wb3J0IHVzZXIgZnJvbSAnLi9hcGkvdXNlcic7XG5pbXBvcnQgcHJvZmlsZSBmcm9tICcuL2FwaS92MS9wcm9maWxlJztcbmltcG9ydCB2MVNlYXJjaCBmcm9tICcuL2FwaS92MS9zZWFyY2gnO1xuaW1wb3J0IHRva2VuIGZyb20gJy4vYXBpL3YxL3Rva2VuJztcbmltcG9ydCB3aG9hbWkgZnJvbSAnLi9hcGkvd2hvYW1pJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoLCBzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MuUm91dGVyKCk7XG5cbiAgLy8gdmFsaWRhdGUgYWxsIG9mIHRoZXNlIHBhcmFtcyBhcyBhIHBhY2thZ2UgbmFtZVxuICAvLyB0aGlzIG1pZ2h0IGJlIHRvbyBoYXJzaCwgc28gYXNrIGlmIGl0IGNhdXNlcyB0cm91YmxlXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIGFwcC5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3RhZycsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgncmV2aXNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3Rva2VuJywgdmFsaWRhdGVOYW1lKTtcblxuICAvLyB0aGVzZSBjYW4ndCBiZSBzYWZlbHkgcHV0IGludG8gZXhwcmVzcyB1cmwgZm9yIHNvbWUgcmVhc29uXG4gIC8vIFRPRE86IEZvciBzb21lIHJlYXNvbj8gd2hhdCByZWFzb24/XG4gIGFwcC5wYXJhbSgnX3JldicsIG1hdGNoKC9eLXJldiQvKSk7XG4gIGFwcC5wYXJhbSgnb3JnX2NvdWNoZGJfdXNlcicsIG1hdGNoKC9eb3JnXFwuY291Y2hkYlxcLnVzZXI6LykpO1xuXG4gIC8vIEF2b2lkIGV4ZWN1dGluZyBKV1QgdHdpY2Ugd2hlbiB0aGUgcGFyZW50IGFwcCBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIEpXVCBtaWRkbGV3YXJlXG4gIGNvbnN0IGFwaUp3dE1pZGRsZXdhcmUgPSBhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKTtcbiAgYXBwLnVzZSgocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCByZW1vdGVVc2VyID0gKHJlcSBhcyBhbnkpLnJlbW90ZV91c2VyID8/IChyZXMubG9jYWxzIGFzIGFueSkucmVtb3RlX3VzZXI7XG4gICAgaWYgKHJlbW90ZVVzZXIpIHtcbiAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgfVxuICAgIHJldHVybiBhcGlKd3RNaWRkbGV3YXJlKHJlcSwgcmVzLCBuZXh0KTtcbiAgfSk7XG4gIGFwcC51c2UoZW5mb3JjZUdlbmVyYXRlZFRva2VuTWV0YWRhdGEoc3RvcmFnZSwgbG9nZ2VyKSk7XG4gIGFwcC51c2UoZXhwcmVzcy5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICB3aG9hbWkoYXBwKTtcbiAgcHJvZmlsZShhcHAsIGF1dGgsIGNvbmZpZyk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgdG9rZW4oYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICBwa2coYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICByZXR1cm4gYXBwO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFVQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFBa0MsU0FBQUQsdUJBQUFlLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbkIsU0FBQUcsU0FBVUMsTUFBYyxFQUFFQyxJQUFVLEVBQUVDLE9BQWdCLEVBQUU7RUFDckUsTUFBTUMsR0FBRyxHQUFHQyxnQkFBTyxDQUFDQyxNQUFNLENBQUMsQ0FBQzs7RUFFNUI7RUFDQTtFQUNBRixHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVDLDJCQUFlLENBQUM7RUFDckNKLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsS0FBSyxFQUFFRSx3QkFBWSxDQUFDO0VBQzlCTCxHQUFHLENBQUNHLEtBQUssQ0FBQyxTQUFTLEVBQUVFLHdCQUFZLENBQUM7RUFDbENMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLFVBQVUsRUFBRUUsd0JBQVksQ0FBQztFQUNuQ0wsR0FBRyxDQUFDRyxLQUFLLENBQUMsT0FBTyxFQUFFRSx3QkFBWSxDQUFDOztFQUVoQztFQUNBO0VBQ0FMLEdBQUcsQ0FBQ0csS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFBRyxpQkFBSyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ2xDTixHQUFHLENBQUNHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFBRyxpQkFBSyxFQUFDLHNCQUFzQixDQUFDLENBQUM7O0VBRTVEO0VBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdULElBQUksQ0FBQ1UsZ0JBQWdCLENBQUMsQ0FBQztFQUNoRFIsR0FBRyxDQUFDUyxHQUFHLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLElBQUksS0FBSztJQUMxQixNQUFNQyxVQUFVLEdBQUlILEdBQUcsQ0FBU0ksV0FBVyxJQUFLSCxHQUFHLENBQUNJLE1BQU0sQ0FBU0QsV0FBVztJQUM5RSxJQUFJRCxVQUFVLEVBQUU7TUFDZCxPQUFPRCxJQUFJLENBQUMsQ0FBQztJQUNmO0lBQ0EsT0FBT0wsZ0JBQWdCLENBQUNHLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7RUFDekMsQ0FBQyxDQUFDO0VBQ0ZaLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFPLHlDQUE2QixFQUFDakIsT0FBTyxFQUFFa0IsY0FBTSxDQUFDLENBQUM7RUFDdkRqQixHQUFHLENBQUNTLEdBQUcsQ0FBQ1IsZ0JBQU8sQ0FBQ2lCLElBQUksQ0FBQztJQUFFQyxNQUFNLEVBQUUsS0FBSztJQUFFQyxLQUFLLEVBQUV2QixNQUFNLENBQUN3QixhQUFhLElBQUk7RUFBTyxDQUFDLENBQUMsQ0FBQztFQUMvRXJCLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDLElBQUFhLG9CQUFRLEVBQUN6QixNQUFNLENBQUMsQ0FBQztFQUN6QjtFQUNBRyxHQUFHLENBQUNTLEdBQUcsQ0FBQ2MsOEJBQWtCLENBQUM7RUFDM0IsSUFBQUMsZUFBTSxFQUFDeEIsR0FBRyxDQUFDO0VBQ1gsSUFBQXlCLGdCQUFPLEVBQUN6QixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQzFCLElBQUE2QixlQUFNLEVBQUMxQixHQUFHLEVBQUVGLElBQUksRUFBRUMsT0FBTyxDQUFDO0VBQzFCLElBQUE0QixhQUFJLEVBQUMzQixHQUFHLEVBQUVGLElBQUksRUFBRUQsTUFBTSxDQUFDO0VBQ3ZCLElBQUErQixpQkFBUSxFQUFDNUIsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBOEIsZ0JBQU8sRUFBQzdCLEdBQUcsRUFBRUYsSUFBSSxFQUFFQyxPQUFPLEVBQUVGLE1BQU0sQ0FBQztFQUNuQyxJQUFBaUMsYUFBSSxFQUFDOUIsR0FBRyxDQUFDO0VBQ1QsSUFBQStCLGNBQUssRUFBQy9CLEdBQUcsRUFBRUQsT0FBTyxDQUFDO0VBQ25CLElBQUFpQyxnQkFBUSxFQUFDaEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sQ0FBQztFQUM1QixJQUFBa0MsY0FBSyxFQUFDakMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQ2pDLElBQUFxQyxnQkFBRyxFQUFDbEMsR0FBRyxFQUFFRixJQUFJLEVBQUVDLE9BQU8sRUFBRUYsTUFBTSxDQUFDO0VBQy9CLE9BQU9HLEdBQUc7QUFDWiIsImlnbm9yZUxpc3QiOltdfQ==