verdaccio
Version:
A lightweight private npm proxy registry
54 lines (53 loc) • 2.08 kB
JavaScript
import { logger } from "../../lib/logger/index.mjs";
import dist_tags_default from "./api/dist-tags.mjs";
import package_default from "./api/package.mjs";
import ping_default from "./api/ping.mjs";
import publish from "./api/publish.mjs";
import search_default from "./api/search.mjs";
import stars_default from "./api/stars.mjs";
import user_default from "./api/user.mjs";
import profile_default from "./api/v1/profile.mjs";
import search_default$1 from "./api/v1/search.mjs";
import token_default from "./api/v1/token.mjs";
import whoami_default from "./api/whoami.mjs";
import { antiLoop, encodeScopePackage, enforceGeneratedTokenMetadata, match, validateName, validatePackage } from "@verdaccio/middleware";
import express from "express";
//#region src/api/endpoint/index.ts
function endpoint_default(config, auth, storage) {
const app = express.Router();
app.param("package", validatePackage);
app.param("filename", validateName);
app.param("tag", validateName);
app.param("version", validateName);
app.param("revision", validateName);
app.param("token", validateName);
app.param("_rev", match(/^-rev$/));
app.param("org_couchdb_user", match(/^org\.couchdb\.user:/));
const apiJwtMiddleware = auth.apiJWTmiddleware();
app.use((req, res, next) => {
if (req.remote_user ?? res.locals.remote_user) return next();
return apiJwtMiddleware(req, res, next);
});
app.use(enforceGeneratedTokenMetadata(storage, logger));
app.use(express.json({
strict: false,
limit: config.max_body_size || "10mb"
}));
app.use(antiLoop(config));
app.use(encodeScopePackage);
whoami_default(app);
profile_default(app, auth, config);
search_default(app, auth, storage);
user_default(app, auth, config);
dist_tags_default(app, auth, storage);
publish(app, auth, storage, config);
ping_default(app);
stars_default(app, storage);
search_default$1(app, auth, storage, config);
token_default(app, auth, storage, config);
package_default(app, auth, storage, config);
return app;
}
//#endregion
export { endpoint_default as default };
//# sourceMappingURL=index.mjs.map