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, config); (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/IChyZXMubG9jYWxzIGFzIGFueSkucmVtb3RlX3VzZXI7XG4gICAgaWYgKHJlbW90ZVVzZXIpIHtcbiAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgfVxuICAgIHJldHVybiBhcGlKd3RNaWRkbGV3YXJlKHJlcSwgcmVzLCBuZXh0KTtcbiAgfSk7XG4gIGFwcC51c2UoZW5mb3JjZUdlbmVyYXRlZFRva2VuTWV0YWRhdGEoc3RvcmFnZSwgbG9nZ2VyKSk7XG4gIGFwcC51c2UoZXhwcmVzcy5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICB3aG9hbWkoYXBwKTtcbiAgcHJvZmlsZShhcHAsIGF1dGgsIGNvbmZpZyk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICB0b2tlbihhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBrZyhhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHJldHVybiBhcHA7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQVVBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVgsc0JBQUEsQ0FB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