UNPKG

verdaccio

Version:

A lightweight private npm proxy registry

96 lines (69 loc) 8.84 kB
"use strict"; 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