verdaccio
Version:
A lightweight private npm proxy registry
96 lines (69 loc) • 8.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _lodash = _interopRequireDefault(require("lodash"));
var _express = _interopRequireDefault(require("express"));
var _bodyParser = _interopRequireDefault(require("body-parser"));
var _whoami = _interopRequireDefault(require("./api/whoami"));
var _ping = _interopRequireDefault(require("./api/ping"));
var _user = _interopRequireDefault(require("./api/user"));
var _distTags = _interopRequireDefault(require("./api/dist-tags"));
var _publish = _interopRequireDefault(require("./api/publish"));
var _search = _interopRequireDefault(require("./api/search"));
var _package = _interopRequireDefault(require("./api/package"));
var _stars = _interopRequireDefault(require("./api/stars"));
var _profile = _interopRequireDefault(require("./api/v1/profile"));
var _token = _interopRequireDefault(require("./api/v1/token"));
var _search2 = _interopRequireDefault(require("./api/v1/search"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const {
match,
validateName,
validatePackage,
encodeScopePackage,
antiLoop
} = require('../middleware');
function _default(config, auth, storage) {
/* eslint new-cap:off */
const app = _express.default.Router();
/* eslint new-cap:off */
// validate all of these params as a package name
// this might be too harsh, so ask if it causes trouble
// $FlowFixMe
app.param('package', validatePackage); // $FlowFixMe
app.param('filename', validateName);
app.param('tag', validateName);
app.param('version', validateName);
app.param('revision', validateName);
app.param('token', validateName); // these can't be safely put into express url for some reason
// TODO: For some reason? what reason?
app.param('_rev', match(/^-rev$/));
app.param('org_couchdb_user', match(/^org\.couchdb\.user:/));
app.param('anything', match(/.*/));
app.use(auth.apiJWTmiddleware());
app.use(_bodyParser.default.json({
strict: false,
limit: config.max_body_size || '10mb'
}));
app.use(antiLoop(config)); // encode / in a scoped package name to be matched as a single parameter in routes
app.use(encodeScopePackage); // for "npm whoami"
(0, _whoami.default)(app);
(0, _package.default)(app, auth, storage, config);
(0, _profile.default)(app, auth);
(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);
if (_lodash.default.get(config, 'experiments.search') === true) {
(0, _search2.default)(app, auth, storage);
}
if (_lodash.default.get(config, 'experiments.token') === true) {
(0, _token.default)(app, auth, storage, config);
}
return app;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOlsibWF0Y2giLCJ2YWxpZGF0ZU5hbWUiLCJ2YWxpZGF0ZVBhY2thZ2UiLCJlbmNvZGVTY29wZVBhY2thZ2UiLCJhbnRpTG9vcCIsInJlcXVpcmUiLCJjb25maWciLCJhdXRoIiwic3RvcmFnZSIsImFwcCIsImV4cHJlc3MiLCJSb3V0ZXIiLCJwYXJhbSIsInVzZSIsImFwaUpXVG1pZGRsZXdhcmUiLCJib2R5UGFyc2VyIiwianNvbiIsInN0cmljdCIsImxpbWl0IiwibWF4X2JvZHlfc2l6ZSIsIl8iLCJnZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7OztBQUVBLE1BQU07QUFDSkEsRUFBQUEsS0FESTtBQUVKQyxFQUFBQSxZQUZJO0FBR0pDLEVBQUFBLGVBSEk7QUFJSkMsRUFBQUEsa0JBSkk7QUFLSkMsRUFBQUE7QUFMSSxJQU1GQyxPQUFPLENBQUMsZUFBRCxDQU5YOztBQVFlLGtCQUFVQyxNQUFWLEVBQTBCQyxJQUExQixFQUF1Q0MsT0FBdkMsRUFBaUU7QUFDOUU7QUFDQSxRQUFNQyxHQUFHLEdBQUdDLGlCQUFRQyxNQUFSLEVBQVo7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7O0FBQ0FGLEVBQUFBLEdBQUcsQ0FBQ0csS0FBSixDQUFVLFNBQVYsRUFBcUJWLGVBQXJCLEVBUjhFLENBUzlFOztBQUNBTyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWCxZQUF0QjtBQUNBUSxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxLQUFWLEVBQWlCWCxZQUFqQjtBQUNBUSxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxTQUFWLEVBQXFCWCxZQUFyQjtBQUNBUSxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWCxZQUF0QjtBQUNBUSxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxPQUFWLEVBQW1CWCxZQUFuQixFQWQ4RSxDQWdCOUU7QUFDQTs7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsTUFBVixFQUFrQlosS0FBSyxDQUFDLFFBQUQsQ0FBdkI7QUFDQVMsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsa0JBQVYsRUFBOEJaLEtBQUssQ0FBQyxzQkFBRCxDQUFuQztBQUNBUyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWixLQUFLLENBQUMsSUFBRCxDQUEzQjtBQUVBUyxFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUU4sSUFBSSxDQUFDTyxnQkFBTCxFQUFSO0FBQ0FMLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRRSxvQkFBV0MsSUFBWCxDQUFnQjtBQUFFQyxJQUFBQSxNQUFNLEVBQUUsS0FBVjtBQUFpQkMsSUFBQUEsS0FBSyxFQUFFWixNQUFNLENBQUNhLGFBQVAsSUFBd0I7QUFBaEQsR0FBaEIsQ0FBUjtBQUNBVixFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUVQsUUFBUSxDQUFDRSxNQUFELENBQWhCLEVBeEI4RSxDQXlCOUU7O0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRVixrQkFBUixFQTFCOEUsQ0EyQjlFOztBQUNBLHVCQUFPTSxHQUFQO0FBQ0Esd0JBQUlBLEdBQUosRUFBU0YsSUFBVCxFQUFlQyxPQUFmLEVBQXdCRixNQUF4QjtBQUNBLHdCQUFRRyxHQUFSLEVBQWFGLElBQWI7QUFDQSx1QkFBT0UsR0FBUCxFQUFZRixJQUFaLEVBQWtCQyxPQUFsQjtBQUNBLHFCQUFLQyxHQUFMLEVBQVVGLElBQVYsRUFBZ0JELE1BQWhCO0FBQ0EseUJBQVNHLEdBQVQsRUFBY0YsSUFBZCxFQUFvQkMsT0FBcEI7QUFDQSx3QkFBUUMsR0FBUixFQUFhRixJQUFiLEVBQW1CQyxPQUFuQixFQUE0QkYsTUFBNUI7QUFDQSxxQkFBS0csR0FBTDtBQUNBLHNCQUFNQSxHQUFOLEVBQVdELE9BQVg7O0FBRUEsTUFBSVksZ0JBQUVDLEdBQUYsQ0FBTWYsTUFBTixFQUFjLG9CQUFkLE1BQXdDLElBQTVDLEVBQWtEO0FBQ2hELDBCQUFTRyxHQUFULEVBQWNGLElBQWQsRUFBb0JDLE9BQXBCO0FBQ0Q7O0FBRUQsTUFBSVksZ0JBQUVDLEdBQUYsQ0FBTWYsTUFBTixFQUFjLG1CQUFkLE1BQXVDLElBQTNDLEVBQWlEO0FBQy9DLHdCQUFNRyxHQUFOLEVBQVdGLElBQVgsRUFBaUJDLE9BQWpCLEVBQTBCRixNQUExQjtBQUNEOztBQUNELFNBQU9HLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7XG5pbXBvcnQgeyBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHdob2FtaSBmcm9tICcuL2FwaS93aG9hbWknO1xuaW1wb3J0IHBpbmcgZnJvbSAnLi9hcGkvcGluZyc7XG5pbXBvcnQgdXNlciBmcm9tICcuL2FwaS91c2VyJztcbmltcG9ydCBkaXN0VGFncyBmcm9tICcuL2FwaS9kaXN0LXRhZ3MnO1xuaW1wb3J0IHB1Ymxpc2ggZnJvbSAnLi9hcGkvcHVibGlzaCc7XG5pbXBvcnQgc2VhcmNoIGZyb20gJy4vYXBpL3NlYXJjaCc7XG5pbXBvcnQgcGtnIGZyb20gJy4vYXBpL3BhY2thZ2UnO1xuaW1wb3J0IHN0YXJzIGZyb20gJy4vYXBpL3N0YXJzJztcbmltcG9ydCBwcm9maWxlIGZyb20gJy4vYXBpL3YxL3Byb2ZpbGUnO1xuaW1wb3J0IHRva2VuIGZyb20gJy4vYXBpL3YxL3Rva2VuJztcblxuaW1wb3J0IHYxU2VhcmNoIGZyb20gJy4vYXBpL3YxL3NlYXJjaCc7XG5cbmNvbnN0IHtcbiAgbWF0Y2gsXG4gIHZhbGlkYXRlTmFtZSxcbiAgdmFsaWRhdGVQYWNrYWdlLFxuICBlbmNvZGVTY29wZVBhY2thZ2UsXG4gIGFudGlMb29wXG59ID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZScpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnOiBDb25maWcsIGF1dGg6IElBdXRoLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIpIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MuUm91dGVyKCk7XG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuXG4gIC8vIHZhbGlkYXRlIGFsbCBvZiB0aGVzZSBwYXJhbXMgYXMgYSBwYWNrYWdlIG5hbWVcbiAgLy8gdGhpcyBtaWdodCBiZSB0b28gaGFyc2gsIHNvIGFzayBpZiBpdCBjYXVzZXMgdHJvdWJsZVxuICAvLyAkRmxvd0ZpeE1lXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIC8vICRGbG93Rml4TWVcbiAgYXBwLnBhcmFtKCdmaWxlbmFtZScsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndGFnJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCd2ZXJzaW9uJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCdyZXZpc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndG9rZW4nLCB2YWxpZGF0ZU5hbWUpO1xuXG4gIC8vIHRoZXNlIGNhbid0IGJlIHNhZmVseSBwdXQgaW50byBleHByZXNzIHVybCBmb3Igc29tZSByZWFzb25cbiAgLy8gVE9ETzogRm9yIHNvbWUgcmVhc29uPyB3aGF0IHJlYXNvbj9cbiAgYXBwLnBhcmFtKCdfcmV2JywgbWF0Y2goL14tcmV2JC8pKTtcbiAgYXBwLnBhcmFtKCdvcmdfY291Y2hkYl91c2VyJywgbWF0Y2goL15vcmdcXC5jb3VjaGRiXFwudXNlcjovKSk7XG4gIGFwcC5wYXJhbSgnYW55dGhpbmcnLCBtYXRjaCgvLiovKSk7XG5cbiAgYXBwLnVzZShhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICAvLyBmb3IgXCJucG0gd2hvYW1pXCJcbiAgd2hvYW1pKGFwcCk7XG4gIHBrZyhhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHByb2ZpbGUoYXBwLCBhdXRoKTtcbiAgc2VhcmNoKGFwcCwgYXV0aCwgc3RvcmFnZSk7XG4gIHVzZXIoYXBwLCBhdXRoLCBjb25maWcpO1xuICBkaXN0VGFncyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICBwdWJsaXNoKGFwcCwgYXV0aCwgc3RvcmFnZSwgY29uZmlnKTtcbiAgcGluZyhhcHApO1xuICBzdGFycyhhcHAsIHN0b3JhZ2UpO1xuXG4gIGlmIChfLmdldChjb25maWcsICdleHBlcmltZW50cy5zZWFyY2gnKSA9PT0gdHJ1ZSkge1xuICAgIHYxU2VhcmNoKGFwcCwgYXV0aCwgc3RvcmFnZSk7XG4gIH1cblxuICBpZiAoXy5nZXQoY29uZmlnLCAnZXhwZXJpbWVudHMudG9rZW4nKSA9PT0gdHJ1ZSkge1xuICAgIHRva2VuKGFwcCwgYXV0aCwgc3RvcmFnZSwgY29uZmlnKTtcbiAgfVxuICByZXR1cm4gYXBwO1xufVxuIl19
;