verdaccio
Version:
A lightweight private npm proxy registry
87 lines (86 loc) • 4.07 kB
JavaScript
Object.defineProperties(exports, {
__esModule: { value: true },
[Symbol.toStringTag]: { value: "Module" }
});
const require_runtime = require("../_virtual/_rolldown/runtime.js");
const require_api_debug_index = require("./debug/index.js");
require("../lib/constants.js");
const require_lib_logger_index = require("../lib/logger/index.js");
const require_lib_utils = require("../lib/utils.js");
const require_api_endpoint_index = require("./endpoint/index.js");
const require_lib_config = require("../lib/config.js");
const require_lib_storage = require("../lib/storage.js");
const require_api_middleware = require("./middleware.js");
const require_api_web_index = require("./web/index.js");
let lodash = require("lodash");
lodash = require_runtime.__toESM(lodash);
let _verdaccio_middleware = require("@verdaccio/middleware");
let _verdaccio_core = require("@verdaccio/core");
let _verdaccio_config = require("@verdaccio/config");
let _verdaccio_search_indexer = require("@verdaccio/search-indexer");
let express = require("express");
express = require_runtime.__toESM(express);
let _verdaccio_auth = require("@verdaccio/auth");
let compression = require("compression");
compression = require_runtime.__toESM(compression);
let cors = require("cors");
cors = require_runtime.__toESM(cors);
let _verdaccio_loaders = require("@verdaccio/loaders");
//#region src/api/index.ts
var version = "6.9.0";
var defineAPI = async function(config, storage) {
const auth = new _verdaccio_auth.Auth(config, require_lib_logger_index.logger, { legacyMergeConfigs: true });
await auth.init();
const app = (0, express.default)();
_verdaccio_search_indexer.SearchMemoryIndexer.configureStorage(storage);
await _verdaccio_search_indexer.SearchMemoryIndexer.init(require_lib_logger_index.logger);
app.set("env", process.env.NODE_ENV || "production");
if (config.server?.trustProxy) app.set("trust proxy", config.server.trustProxy);
app.use((0, cors.default)());
app.use((0, _verdaccio_middleware.log)(require_lib_logger_index.logger));
app.use((0, _verdaccio_middleware.errorReportingMiddleware)(require_lib_logger_index.logger));
if (config.user_agent) app.use(function(_req, res, next) {
res.setHeader("X-Powered-By", (0, _verdaccio_config.getUserAgent)(config.user_agent));
next();
});
else app.disable("x-powered-by");
app.use((0, compression.default)());
app.get("/-/static/favicon.ico", require_api_middleware.serveFavicon(config));
if (config._debug) require_api_debug_index.default(app, config.configPath);
const plugins = await (0, _verdaccio_loaders.asyncLoadPlugin)(config.middlewares, {
config,
logger: require_lib_logger_index.logger
}, function(plugin) {
return typeof plugin.register_middlewares !== "undefined";
}, true, config?.serverSettings?.pluginPrefix ?? "verdaccio", _verdaccio_core.PLUGIN_CATEGORY.MIDDLEWARE);
app.use(auth.apiJWTmiddleware());
plugins.forEach((plugin) => {
plugin.register_middlewares(app, auth, storage);
});
app.use(require_api_endpoint_index.default(config, auth, storage));
if (lodash.default.get(config, "web.enable", true)) {
app.use((_req, res, next) => {
res.locals.app_version = version;
next();
});
const middleware = await require_api_web_index.default(config, auth, storage, require_lib_logger_index.logger);
app.use(middleware);
} else app.get("/", function(_, __, next) {
next(require_lib_utils.ErrorCode.getNotFound(_verdaccio_core.API_ERROR.WEB_DISABLED));
});
app.get("/*", function(_, __, next) {
next(require_lib_utils.ErrorCode.getNotFound(_verdaccio_core.API_ERROR.FILE_NOT_FOUND));
});
app.use((0, _verdaccio_middleware.handleError)(require_lib_logger_index.logger));
app.use(_verdaccio_middleware.final);
return app;
};
var api_default = (async function(configHash) {
const config = new require_lib_config.default(lodash.default.cloneDeep(configHash));
const storage = new require_lib_storage.default(config);
await storage.init(config);
return await defineAPI(config, storage);
});
//#endregion
exports.default = api_default;
//# sourceMappingURL=index.js.map