UNPKG

verdaccio

Version:

A lightweight private npm proxy registry

69 lines (65 loc) 10.6 kB
"use strict"; 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==