verdaccio
Version:
Private npm repository server
84 lines (58 loc) • 2.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (config, auth, storage) {
/* eslint new-cap:off */
const app = _express2.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(_bodyParser2.default.json({ strict: false, limit: config.max_body_size || '10mb' }));
app.use(anti_loop(config));
// encode / in a scoped package name to be matched as a single parameter in routes
app.use(encodeScopePackage);
// for "npm whoami"
(0, _whoami2.default)(app);
(0, _package2.default)(app, auth, storage, config);
(0, _search2.default)(app, auth, storage);
(0, _user2.default)(app, auth);
(0, _distTags2.default)(app, auth, storage);
(0, _publish2.default)(app, auth, storage, config);
(0, _ping2.default)(app);
return app;
};
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
var _bodyParser = require('body-parser');
var _bodyParser2 = _interopRequireDefault(_bodyParser);
var _whoami = require('./api/whoami');
var _whoami2 = _interopRequireDefault(_whoami);
var _ping = require('./api/ping');
var _ping2 = _interopRequireDefault(_ping);
var _user = require('./api/user');
var _user2 = _interopRequireDefault(_user);
var _distTags = require('./api/dist-tags');
var _distTags2 = _interopRequireDefault(_distTags);
var _publish = require('./api/publish');
var _publish2 = _interopRequireDefault(_publish);
var _search = require('./api/search');
var _search2 = _interopRequireDefault(_search);
var _package = require('./api/package');
var _package2 = _interopRequireDefault(_package);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const { match, validateName, validatePackage, encodeScopePackage, anti_loop } = require('../middleware');
;