UNPKG

verdaccio

Version:

A lightweight private npm proxy registry

84 lines (83 loc) 3.85 kB
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_runtime = require("../../_virtual/_rolldown/runtime.js"); const require_lib_logger_index = require("../../lib/logger/index.js"); const require_api_web_api_index = require("./api/index.js"); let lodash = require("lodash"); lodash = require_runtime.__toESM(lodash); let _verdaccio_middleware = require("@verdaccio/middleware"); let _verdaccio_core = require("@verdaccio/core"); let debug = require("debug"); debug = require_runtime.__toESM(debug); let express = require("express"); express = require_runtime.__toESM(express); let _verdaccio_loaders = require("@verdaccio/loaders"); let _verdaccio_ui_theme = require("@verdaccio/ui-theme"); _verdaccio_ui_theme = require_runtime.__toESM(_verdaccio_ui_theme); //#region src/api/web/index.ts var debug$1 = (0, debug.default)("verdaccio:web"); var PLUGIN_UI_PREFIX = "verdaccio-theme"; var DEFAULT_PLUGIN_UI_THEME = "@verdaccio/ui-theme"; async function loadTheme(config) { if (lodash.default.isNil(config.theme) === false) { const plugin = await (0, _verdaccio_loaders.asyncLoadPlugin)(config.theme, { config, logger: require_lib_logger_index.logger }, function(plugin) { /** * - `staticPath`: is the same data returned in Verdaccio 5. - `manifest`: A webpack manifest object. - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically. */ return plugin.staticPath && plugin.manifest && plugin.manifestFiles; }, true, config?.serverSettings?.pluginPrefix ?? "verdaccio-theme", _verdaccio_core.PLUGIN_CATEGORY.THEME); if (plugin.length > 1) require_lib_logger_index.logger.warn("multiple ui themes are not supported; only the first plugin is used"); return lodash.default.head(plugin); } } function webAPIMiddleware(tokenMiddleware, webEndpointsApi) { const route = (0, express.Router)(); route.param("package", _verdaccio_middleware.validatePackage); route.param("filename", _verdaccio_middleware.validateName); route.param("version", _verdaccio_middleware.validateName); route.use(express.default.urlencoded({ extended: false })); route.use(_verdaccio_middleware.setSecurityWebHeaders); if (typeof tokenMiddleware === "function") route.use(tokenMiddleware); if (typeof webEndpointsApi === "function") route.use(webEndpointsApi); return route; } function webMiddleware(config, middlewares, pluginOptions) { const router = express.default.Router(); const { tokenMiddleware, webEndpointsApi } = middlewares; router.use(_verdaccio_middleware.WebUrlsNamespace.root, (0, _verdaccio_middleware.renderWebMiddleware)(config, tokenMiddleware, pluginOptions)); router.use(_verdaccio_middleware.WebUrlsNamespace.endpoints, webAPIMiddleware(tokenMiddleware, webEndpointsApi)); return router; } var web_default = async (config, auth, storage, logger) => { let pluginOptions = await loadTheme(config); if (!pluginOptions) { debug$1("no theme plugin found, using default theme"); pluginOptions = (0, _verdaccio_ui_theme.default)(config.web); logger.info({ name: DEFAULT_PLUGIN_UI_THEME, pluginCategory: _verdaccio_core.PLUGIN_CATEGORY.THEME }, "plugin @{name} successfully loaded (@{pluginCategory})"); } const router = (0, express.Router)(); router.use(webMiddleware(config, { tokenMiddleware: auth.webUIJWTmiddleware(), webEndpointsApi: require_api_web_api_index.default(auth, storage, config) }, pluginOptions)); return router; }; //#endregion exports.DEFAULT_PLUGIN_UI_THEME = DEFAULT_PLUGIN_UI_THEME; exports.PLUGIN_UI_PREFIX = PLUGIN_UI_PREFIX; exports.default = web_default; exports.loadTheme = loadTheme; exports.webAPIMiddleware = webAPIMiddleware; exports.webMiddleware = webMiddleware; //# sourceMappingURL=index.js.map