@verdaccio/web 9.0.0-next-9.3 → 9.0.0-next-9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/build/_virtual/_rolldown/runtime.js +23 -0
  2. package/build/_virtual/_rolldown/runtime.mjs +7 -0
  3. package/build/api/index.d.ts +1 -1
  4. package/build/api/index.js +26 -37
  5. package/build/api/index.js.map +1 -1
  6. package/build/api/index.mjs +27 -0
  7. package/build/api/index.mjs.map +1 -0
  8. package/build/api/package.d.ts +3 -3
  9. package/build/api/package.js +79 -200
  10. package/build/api/package.js.map +1 -1
  11. package/build/api/package.mjs +80 -0
  12. package/build/api/package.mjs.map +1 -0
  13. package/build/api/readme.d.ts +2 -2
  14. package/build/api/readme.js +64 -122
  15. package/build/api/readme.js.map +1 -1
  16. package/build/api/readme.mjs +67 -0
  17. package/build/api/readme.mjs.map +1 -0
  18. package/build/api/search.d.ts +2 -2
  19. package/build/api/search.js +57 -99
  20. package/build/api/search.js.map +1 -1
  21. package/build/api/search.mjs +59 -0
  22. package/build/api/search.mjs.map +1 -0
  23. package/build/api/sidebar.d.ts +3 -3
  24. package/build/api/sidebar.js +56 -109
  25. package/build/api/sidebar.js.map +1 -1
  26. package/build/api/sidebar.mjs +57 -0
  27. package/build/api/sidebar.mjs.map +1 -0
  28. package/build/api/user.d.ts +2 -2
  29. package/build/api/user.js +97 -212
  30. package/build/api/user.js.map +1 -1
  31. package/build/api/user.mjs +97 -0
  32. package/build/api/user.mjs.map +1 -0
  33. package/build/author-utils.d.ts +1 -1
  34. package/build/author-utils.js +109 -160
  35. package/build/author-utils.js.map +1 -1
  36. package/build/author-utils.mjs +117 -0
  37. package/build/author-utils.mjs.map +1 -0
  38. package/build/index.js +18 -47
  39. package/build/index.mjs +4 -0
  40. package/build/middleware.d.ts +1 -1
  41. package/build/middleware.js +49 -90
  42. package/build/middleware.js.map +1 -1
  43. package/build/middleware.mjs +48 -0
  44. package/build/middleware.mjs.map +1 -0
  45. package/build/web-utils.d.ts +2 -1
  46. package/build/web-utils.js +31 -31
  47. package/build/web-utils.js.map +1 -1
  48. package/build/web-utils.mjs +34 -0
  49. package/build/web-utils.mjs.map +1 -0
  50. package/package.json +30 -19
  51. package/build/index.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
@@ -0,0 +1,7 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
3
+ if (typeof require !== "undefined") return require.apply(this, arguments);
4
+ throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
5
+ });
6
+ //#endregion
7
+ export { __require };
@@ -1,2 +1,2 @@
1
- declare const _default: (auth: any, storage: any, config: any) => import("express-serve-static-core").Router;
1
+ declare const _default: (auth: any, storage: any, config: any) => import('express-serve-static-core').Router;
2
2
  export default _default;
@@ -1,39 +1,28 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- var _express = require("express");
8
- var _middleware = require("@verdaccio/middleware");
9
- var _webUtils = require("../web-utils");
10
- var _package = _interopRequireDefault(require("./package"));
11
- var _readme = _interopRequireDefault(require("./readme"));
12
- var _search = _interopRequireDefault(require("./search"));
13
- var _sidebar = _interopRequireDefault(require("./sidebar"));
14
- var _user = _interopRequireDefault(require("./user"));
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
16
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
20
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
21
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
- var _default = exports["default"] = function _default(auth, storage, config) {
23
- var _config$web;
24
- var route = (0, _express.Router)(); /* eslint new-cap: 0 */
25
- route.use(_middleware.WebUrlsNamespace.data, (0, _middleware.rateLimit)(_objectSpread({
26
- windowMs: 2 * 60 * 1000,
27
- // 2 minutes
28
- max: 5000
29
- }, config === null || config === void 0 || (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.rateLimit)));
30
- route.use(_middleware.WebUrlsNamespace.data, (0, _package["default"])(storage, auth, config));
31
- route.use(_middleware.WebUrlsNamespace.data, (0, _search["default"])(storage, auth));
32
- route.use(_middleware.WebUrlsNamespace.data, (0, _sidebar["default"])(config, storage, auth));
33
- route.use(_middleware.WebUrlsNamespace.data, (0, _readme["default"])(storage, auth));
34
- if ((0, _webUtils.hasLogin)(config)) {
35
- route.use(_middleware.WebUrlsNamespace.sec, (0, _user["default"])(auth, config, storage));
36
- }
37
- return route;
1
+ require("../_virtual/_rolldown/runtime.js");
2
+ const require_web_utils = require("../web-utils.js");
3
+ const require_package = require("./package.js");
4
+ const require_readme = require("./readme.js");
5
+ const require_search = require("./search.js");
6
+ const require_sidebar = require("./sidebar.js");
7
+ const require_user = require("./user.js");
8
+ let express = require("express");
9
+ let _verdaccio_middleware = require("@verdaccio/middleware");
10
+ //#region src/api/index.ts
11
+ var api_default = (auth, storage, config) => {
12
+ const route = (0, express.Router)();
13
+ route.use(_verdaccio_middleware.WebUrlsNamespace.data, (0, _verdaccio_middleware.rateLimit)({
14
+ windowMs: 120 * 1e3,
15
+ max: 5e3,
16
+ ...config?.web?.rateLimit
17
+ }));
18
+ route.use(_verdaccio_middleware.WebUrlsNamespace.data, require_package.default(storage, auth, config));
19
+ route.use(_verdaccio_middleware.WebUrlsNamespace.data, require_search.default(storage, auth));
20
+ route.use(_verdaccio_middleware.WebUrlsNamespace.data, require_sidebar.default(config, storage, auth));
21
+ route.use(_verdaccio_middleware.WebUrlsNamespace.data, require_readme.default(storage, auth));
22
+ if (require_web_utils.hasLogin(config)) route.use(_verdaccio_middleware.WebUrlsNamespace.sec, require_user.default(auth, config, storage));
23
+ return route;
38
24
  };
25
+ //#endregion
26
+ exports.default = api_default;
27
+
39
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_express","require","_middleware","_webUtils","_package","_interopRequireDefault","_readme","_search","_sidebar","_user","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","_default","exports","auth","storage","config","_config$web","route","Router","use","WebUrlsNamespace","data","rateLimit","windowMs","max","web","packageApi","search","sidebar","readme","hasLogin","sec","user"],"sources":["../../src/api/index.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { WebUrlsNamespace, rateLimit } from '@verdaccio/middleware';\n\nimport { hasLogin } from '../web-utils';\nimport packageApi from './package';\nimport readme from './readme';\nimport search from './search';\nimport sidebar from './sidebar';\nimport user from './user';\n\nexport default (auth, storage, config) => {\n const route = Router(); /* eslint new-cap: 0 */\n route.use(\n WebUrlsNamespace.data,\n rateLimit({\n windowMs: 2 * 60 * 1000, // 2 minutes\n max: 5000, // limit each IP to 1000 requests per windowMs\n ...config?.web?.rateLimit,\n })\n );\n route.use(WebUrlsNamespace.data, packageApi(storage, auth, config));\n route.use(WebUrlsNamespace.data, search(storage, auth));\n route.use(WebUrlsNamespace.data, sidebar(config, storage, auth));\n route.use(WebUrlsNamespace.data, readme(storage, auth));\n if (hasLogin(config)) {\n route.use(WebUrlsNamespace.sec, user(auth, config, storage));\n }\n return route;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/api/index.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { WebUrlsNamespace, rateLimit } from '@verdaccio/middleware';\n\nimport { hasLogin } from '../web-utils';\nimport packageApi from './package';\nimport readme from './readme';\nimport search from './search';\nimport sidebar from './sidebar';\nimport user from './user';\n\nexport default (auth, storage, config) => {\n const route = Router(); /* eslint new-cap: 0 */\n route.use(\n WebUrlsNamespace.data,\n rateLimit({\n windowMs: 2 * 60 * 1000, // 2 minutes\n max: 5000, // limit each IP to 1000 requests per windowMs\n ...config?.web?.rateLimit,\n })\n );\n route.use(WebUrlsNamespace.data, packageApi(storage, auth, config));\n route.use(WebUrlsNamespace.data, search(storage, auth));\n route.use(WebUrlsNamespace.data, sidebar(config, storage, auth));\n route.use(WebUrlsNamespace.data, readme(storage, auth));\n if (hasLogin(config)) {\n route.use(WebUrlsNamespace.sec, user(auth, config, storage));\n }\n return route;\n};\n"],"mappings":";;;;;;;;;;AAWA,IAAA,eAAgB,MAAM,SAAS,WAAW;CACxC,MAAM,SAAA,GAAA,QAAA,SAAgB;AACtB,OAAM,IACJ,sBAAA,iBAAiB,OAAA,GAAA,sBAAA,WACP;EACR,UAAU,MAAS;EACnB,KAAK;EACL,GAAG,QAAQ,KAAK;EACjB,CAAC,CACH;AACD,OAAM,IAAI,sBAAA,iBAAiB,MAAM,gBAAA,QAAW,SAAS,MAAM,OAAO,CAAC;AACnE,OAAM,IAAI,sBAAA,iBAAiB,MAAM,eAAA,QAAO,SAAS,KAAK,CAAC;AACvD,OAAM,IAAI,sBAAA,iBAAiB,MAAM,gBAAA,QAAQ,QAAQ,SAAS,KAAK,CAAC;AAChE,OAAM,IAAI,sBAAA,iBAAiB,MAAM,eAAA,QAAO,SAAS,KAAK,CAAC;AACvD,KAAI,kBAAA,SAAS,OAAO,CAClB,OAAM,IAAI,sBAAA,iBAAiB,KAAK,aAAA,QAAK,MAAM,QAAQ,QAAQ,CAAC;AAE9D,QAAO"}
@@ -0,0 +1,27 @@
1
+ import { hasLogin } from "../web-utils.mjs";
2
+ import addPackageWebApi from "./package.mjs";
3
+ import addReadmeWebApi from "./readme.mjs";
4
+ import addSearchWebApi from "./search.mjs";
5
+ import addSidebarWebApi from "./sidebar.mjs";
6
+ import addUserAuthApi from "./user.mjs";
7
+ import { Router } from "express";
8
+ import { WebUrlsNamespace, rateLimit } from "@verdaccio/middleware";
9
+ //#region src/api/index.ts
10
+ var api_default = (auth, storage, config) => {
11
+ const route = Router();
12
+ route.use(WebUrlsNamespace.data, rateLimit({
13
+ windowMs: 120 * 1e3,
14
+ max: 5e3,
15
+ ...config?.web?.rateLimit
16
+ }));
17
+ route.use(WebUrlsNamespace.data, addPackageWebApi(storage, auth, config));
18
+ route.use(WebUrlsNamespace.data, addSearchWebApi(storage, auth));
19
+ route.use(WebUrlsNamespace.data, addSidebarWebApi(config, storage, auth));
20
+ route.use(WebUrlsNamespace.data, addReadmeWebApi(storage, auth));
21
+ if (hasLogin(config)) route.use(WebUrlsNamespace.sec, addUserAuthApi(auth, config, storage));
22
+ return route;
23
+ };
24
+ //#endregion
25
+ export { api_default as default };
26
+
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/api/index.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { WebUrlsNamespace, rateLimit } from '@verdaccio/middleware';\n\nimport { hasLogin } from '../web-utils';\nimport packageApi from './package';\nimport readme from './readme';\nimport search from './search';\nimport sidebar from './sidebar';\nimport user from './user';\n\nexport default (auth, storage, config) => {\n const route = Router(); /* eslint new-cap: 0 */\n route.use(\n WebUrlsNamespace.data,\n rateLimit({\n windowMs: 2 * 60 * 1000, // 2 minutes\n max: 5000, // limit each IP to 1000 requests per windowMs\n ...config?.web?.rateLimit,\n })\n );\n route.use(WebUrlsNamespace.data, packageApi(storage, auth, config));\n route.use(WebUrlsNamespace.data, search(storage, auth));\n route.use(WebUrlsNamespace.data, sidebar(config, storage, auth));\n route.use(WebUrlsNamespace.data, readme(storage, auth));\n if (hasLogin(config)) {\n route.use(WebUrlsNamespace.sec, user(auth, config, storage));\n }\n return route;\n};\n"],"mappings":";;;;;;;;;AAWA,IAAA,eAAgB,MAAM,SAAS,WAAW;CACxC,MAAM,QAAQ,QAAQ;AACtB,OAAM,IACJ,iBAAiB,MACjB,UAAU;EACR,UAAU,MAAS;EACnB,KAAK;EACL,GAAG,QAAQ,KAAK;EACjB,CAAC,CACH;AACD,OAAM,IAAI,iBAAiB,MAAM,iBAAW,SAAS,MAAM,OAAO,CAAC;AACnE,OAAM,IAAI,iBAAiB,MAAM,gBAAO,SAAS,KAAK,CAAC;AACvD,OAAM,IAAI,iBAAiB,MAAM,iBAAQ,QAAQ,SAAS,KAAK,CAAC;AAChE,OAAM,IAAI,iBAAiB,MAAM,gBAAO,SAAS,KAAK,CAAC;AACvD,KAAI,SAAS,OAAO,CAClB,OAAM,IAAI,iBAAiB,KAAK,eAAK,MAAM,QAAQ,QAAQ,CAAC;AAE9D,QAAO"}
@@ -1,8 +1,8 @@
1
1
  import { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
2
+ import { Auth } from '@verdaccio/auth';
3
3
  import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';
4
- import type { Storage } from '@verdaccio/store';
5
- import type { Config } from '@verdaccio/types';
4
+ import { Storage } from '@verdaccio/store';
5
+ import { Config } from '@verdaccio/types';
6
6
  export { $RequestExtend, $ResponseExtend, $NextFunctionVer };
7
7
  declare function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router;
8
8
  export default addPackageWebApi;
@@ -1,204 +1,83 @@
1
- "use strict";
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "$NextFunctionVer", {
8
- enumerable: true,
9
- get: function get() {
10
- return _middleware.$NextFunctionVer;
11
- }
12
- });
13
- Object.defineProperty(exports, "$RequestExtend", {
14
- enumerable: true,
15
- get: function get() {
16
- return _middleware.$RequestExtend;
17
- }
18
- });
19
- Object.defineProperty(exports, "$ResponseExtend", {
20
- enumerable: true,
21
- get: function get() {
22
- return _middleware.$ResponseExtend;
23
- }
24
- });
25
- exports["default"] = void 0;
26
- var _debug = _interopRequireDefault(require("debug"));
27
- var _express = require("express");
28
- var _lodash = _interopRequireDefault(require("lodash"));
29
- var _config = require("@verdaccio/config");
30
- var _logger = require("@verdaccio/logger");
31
- var _middleware = require("@verdaccio/middleware");
32
- var _tarball = require("@verdaccio/tarball");
33
- var _authorUtils = require("../author-utils");
34
- var _webUtils = require("../web-utils");
35
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
36
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
39
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
40
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
41
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
42
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
43
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
44
- function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
45
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
46
- function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
47
- function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
48
- // Was required by other packages
49
-
50
- var getOrder = function getOrder() {
51
- var order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
52
- return order === 'asc';
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.js");
2
+ const require_web_utils = require("../web-utils.js");
3
+ const require_author_utils = require("../author-utils.js");
4
+ let express = require("express");
5
+ let lodash = require("lodash");
6
+ lodash = require_runtime.__toESM(lodash);
7
+ let _verdaccio_logger = require("@verdaccio/logger");
8
+ let _verdaccio_middleware = require("@verdaccio/middleware");
9
+ let debug = require("debug");
10
+ debug = require_runtime.__toESM(debug);
11
+ let _verdaccio_config = require("@verdaccio/config");
12
+ let _verdaccio_tarball = require("@verdaccio/tarball");
13
+ //#region src/api/package.ts
14
+ var getField = (field = "name") => {
15
+ return field === "name" || field === "time" ? field : "name";
53
16
  };
54
- var debug = (0, _debug["default"])('verdaccio:web:api:package');
17
+ var getOrder = (order = "asc") => {
18
+ return order === "asc";
19
+ };
20
+ var debug$1 = (0, debug.default)("verdaccio:web:api:package");
55
21
  function addPackageWebApi(storage, auth, config) {
56
- var isLoginEnabled = (0, _webUtils.hasLogin)(config);
57
- debug('is login enabled: %o', isLoginEnabled);
58
- var pkgRouter = (0, _express.Router)(); /* eslint new-cap: 0 */
59
- var anonymousRemoteUser = (0, _config.createAnonymousRemoteUser)();
60
- debug('initialized package web api');
61
- var checkAllow = function checkAllow(name, remoteUser) {
62
- return new Promise(function (resolve, reject) {
63
- var remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
64
- try {
65
- auth.allow_access({
66
- packageName: name
67
- }, remoteUserAccess, function (err, allowed) {
68
- if (err) {
69
- resolve(false);
70
- }
71
- return resolve(allowed);
72
- });
73
- } catch (err) {
74
- reject(err);
75
- }
76
- });
77
- };
78
- function processPackages() {
79
- return _processPackages.apply(this, arguments);
80
- } // Get list of all visible package
81
- function _processPackages() {
82
- _processPackages = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
83
- var packages,
84
- req,
85
- permissions,
86
- packagesToProcess,
87
- requestOptions,
88
- _iterator,
89
- _step,
90
- pkg,
91
- pkgCopy,
92
- _args2 = arguments,
93
- _t2,
94
- _t3;
95
- return _regenerator().w(function (_context2) {
96
- while (1) switch (_context2.p = _context2.n) {
97
- case 0:
98
- packages = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : [];
99
- req = _args2.length > 1 ? _args2[1] : undefined;
100
- permissions = [];
101
- packagesToProcess = packages.slice();
102
- debug('process packages %o', packagesToProcess);
103
- requestOptions = (0, _middleware.getRequestOptions)(req);
104
- _iterator = _createForOfIteratorHelper(packagesToProcess);
105
- _context2.p = 1;
106
- _iterator.s();
107
- case 2:
108
- if ((_step = _iterator.n()).done) {
109
- _context2.n = 8;
110
- break;
111
- }
112
- pkg = _step.value;
113
- pkgCopy = _objectSpread({}, pkg);
114
- pkgCopy.author = (0, _authorUtils.formatAuthor)(pkg.author);
115
- _context2.p = 3;
116
- _context2.n = 4;
117
- return checkAllow(pkg.name, req.remote_user);
118
- case 4:
119
- if (!_context2.v) {
120
- _context2.n = 5;
121
- break;
122
- }
123
- if (config.web) {
124
- // @ts-ignore
125
- pkgCopy.author.avatar = (0, _authorUtils.generateGravatarUrl)(pkgCopy.author.email, config.web.gravatar);
126
- }
127
- // convert any remote dist to a local reference
128
- // eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz
129
- if (!_lodash["default"].isNil(pkgCopy.dist) && !_lodash["default"].isNull(pkgCopy.dist.tarball)) {
130
- pkgCopy.dist.tarball = (0, _tarball.getLocalRegistryTarballUri)(pkgCopy.dist.tarball, pkg.name, requestOptions, config === null || config === void 0 ? void 0 : config.url_prefix);
131
- }
132
- permissions.push(pkgCopy);
133
- case 5:
134
- _context2.n = 7;
135
- break;
136
- case 6:
137
- _context2.p = 6;
138
- _t2 = _context2.v;
139
- debug('process packages error %o', _t2);
140
- _logger.logger.error({
141
- name: pkg.name,
142
- error: _t2
143
- }, 'permission process for @{name} has failed: @{error}');
144
- throw _t2;
145
- case 7:
146
- _context2.n = 2;
147
- break;
148
- case 8:
149
- _context2.n = 10;
150
- break;
151
- case 9:
152
- _context2.p = 9;
153
- _t3 = _context2.v;
154
- _iterator.e(_t3);
155
- case 10:
156
- _context2.p = 10;
157
- _iterator.f();
158
- return _context2.f(10);
159
- case 11:
160
- debug('allowed %o packages', permissions.length);
161
- return _context2.a(2, permissions);
162
- }
163
- }, _callee2, null, [[3, 6], [1, 9, 10, 11]]);
164
- }));
165
- return _processPackages.apply(this, arguments);
166
- }
167
- pkgRouter.get(_middleware.WebUrls.packages_all, /*#__PURE__*/function () {
168
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, res, next) {
169
- var _config$web, localPackages, order, pkgs, _t;
170
- return _regenerator().w(function (_context) {
171
- while (1) switch (_context.p = _context.n) {
172
- case 0:
173
- debug('hit package web api %o');
174
- _context.p = 1;
175
- _context.n = 2;
176
- return storage.getLocalDatabase();
177
- case 2:
178
- localPackages = _context.v;
179
- order = getOrder(config === null || config === void 0 || (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.sort_packages);
180
- debug('order %o', order);
181
- _context.n = 3;
182
- return processPackages(localPackages, req);
183
- case 3:
184
- pkgs = _context.v;
185
- next((0, _webUtils.sortByName)(pkgs, order));
186
- _context.n = 5;
187
- break;
188
- case 4:
189
- _context.p = 4;
190
- _t = _context.v;
191
- next(_t);
192
- case 5:
193
- return _context.a(2);
194
- }
195
- }, _callee, null, [[1, 4]]);
196
- }));
197
- return function (_x, _x2, _x3) {
198
- return _ref.apply(this, arguments);
199
- };
200
- }());
201
- return pkgRouter;
22
+ const isLoginEnabled = require_web_utils.hasLogin(config);
23
+ debug$1("is login enabled: %o", isLoginEnabled);
24
+ const pkgRouter = (0, express.Router)();
25
+ const anonymousRemoteUser = (0, _verdaccio_config.createAnonymousRemoteUser)();
26
+ debug$1("initialized package web api");
27
+ const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
28
+ const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
29
+ try {
30
+ auth.allow_access({ packageName: name }, remoteUserAccess, (err, allowed) => {
31
+ if (err) resolve(false);
32
+ return resolve(allowed);
33
+ });
34
+ } catch (err) {
35
+ reject(err);
36
+ }
37
+ });
38
+ async function processPackages(packages = [], req) {
39
+ const permissions = [];
40
+ const packagesToProcess = packages.slice();
41
+ debug$1("process packages %o", packagesToProcess);
42
+ const requestOptions = (0, _verdaccio_middleware.getRequestOptions)(req);
43
+ for (const pkg of packagesToProcess) {
44
+ const pkgCopy = { ...pkg };
45
+ pkgCopy.author = require_author_utils.formatAuthor(pkg.author);
46
+ try {
47
+ if (await checkAllow(pkg.name, req.remote_user)) {
48
+ if (config.web) pkgCopy.author.avatar = require_author_utils.generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);
49
+ if (!lodash.default.isNil(pkgCopy.dist) && !lodash.default.isNull(pkgCopy.dist.tarball)) pkgCopy.dist.tarball = (0, _verdaccio_tarball.getLocalRegistryTarballUri)(pkgCopy.dist.tarball, pkg.name, requestOptions, config?.url_prefix);
50
+ permissions.push(pkgCopy);
51
+ }
52
+ } catch (err) {
53
+ debug$1("process packages error %o", err);
54
+ _verdaccio_logger.logger.error({
55
+ name: pkg.name,
56
+ error: err
57
+ }, "permission process for @{name} has failed: @{error}");
58
+ throw err;
59
+ }
60
+ }
61
+ debug$1("allowed %o packages", permissions.length);
62
+ return permissions;
63
+ }
64
+ pkgRouter.get(_verdaccio_middleware.WebUrls.packages_all, async function(req, res, next) {
65
+ debug$1("hit package web api %o");
66
+ try {
67
+ const localPackages = await storage.getLocalDatabase();
68
+ const field = getField(config?.web?.sort_field);
69
+ const order = getOrder(config?.web?.sort_packages);
70
+ debug$1("order by %o %o", field, order);
71
+ const pkgs = await processPackages(localPackages, req);
72
+ if (field === "name") next(require_web_utils.sortByName(pkgs, order));
73
+ else next(require_web_utils.sortByTime(pkgs, order));
74
+ } catch (error) {
75
+ next(error);
76
+ }
77
+ });
78
+ return pkgRouter;
202
79
  }
203
- var _default = exports["default"] = addPackageWebApi;
80
+ //#endregion
81
+ exports.default = addPackageWebApi;
82
+
204
83
  //# sourceMappingURL=package.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_config","_logger","_middleware","_tarball","_authorUtils","_webUtils","e","__esModule","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_createForOfIteratorHelper","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","f","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","_regeneratorDefine","_invoke","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","getOrder","order","undefined","debug","buildDebug","addPackageWebApi","storage","auth","config","isLoginEnabled","hasLogin","pkgRouter","Router","anonymousRemoteUser","createAnonymousRemoteUser","checkAllow","remoteUser","reject","remoteUserAccess","allow_access","packageName","err","allowed","processPackages","_processPackages","_callee2","packages","req","permissions","packagesToProcess","requestOptions","_iterator","_step","pkg","pkgCopy","_args2","_t2","_t3","_context2","getRequestOptions","author","formatAuthor","remote_user","web","avatar","generateGravatarUrl","email","gravatar","_","isNil","dist","isNull","tarball","getLocalRegistryTarballUri","url_prefix","logger","error","get","WebUrls","packages_all","_ref","_callee","res","_config$web","localPackages","pkgs","_t","_context","getLocalDatabase","sort_packages","sortByName","_x","_x2","_x3","_default","exports"],"sources":["../../src/api/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { createAnonymousRemoteUser } from '@verdaccio/config';\nimport { logger } from '@verdaccio/logger';\nimport {\n $NextFunctionVer,\n $RequestExtend,\n $ResponseExtend,\n WebUrls,\n getRequestOptions,\n} from '@verdaccio/middleware';\nimport type { Storage } from '@verdaccio/store';\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport type { Config, RemoteUser, Version } from '@verdaccio/types';\n\nimport { formatAuthor, generateGravatarUrl } from '../author-utils';\nimport { hasLogin, sortByName } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst getOrder = (order = 'asc') => {\n return order === 'asc';\n};\n\nconst debug = buildDebug('verdaccio:web:api:package');\n\nfunction addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router {\n const isLoginEnabled = hasLogin(config);\n debug('is login enabled: %o', isLoginEnabled);\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n const anonymousRemoteUser: RemoteUser = createAnonymousRemoteUser();\n\n debug('initialized package web api');\n const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>\n new Promise((resolve, reject): void => {\n const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;\n try {\n auth.allow_access({ packageName: name }, remoteUserAccess, (err, allowed): void => {\n if (err) {\n resolve(false);\n }\n return resolve(allowed as boolean);\n });\n } catch (err: any) {\n reject(err);\n }\n });\n\n async function processPackages(packages: Version[] = [], req): Promise<Version[]> {\n const permissions: Version[] = [];\n const packagesToProcess = packages.slice();\n debug('process packages %o', packagesToProcess);\n const requestOptions = getRequestOptions(req);\n for (const pkg of packagesToProcess) {\n const pkgCopy = { ...pkg };\n pkgCopy.author = formatAuthor(pkg.author);\n try {\n if (await checkAllow(pkg.name, req.remote_user)) {\n if (config.web) {\n // @ts-ignore\n pkgCopy.author.avatar = generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);\n }\n // convert any remote dist to a local reference\n // eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz\n if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) {\n pkgCopy.dist.tarball = getLocalRegistryTarballUri(\n pkgCopy.dist.tarball,\n pkg.name,\n requestOptions,\n config?.url_prefix\n );\n }\n permissions.push(pkgCopy);\n }\n } catch (err: any) {\n debug('process packages error %o', err);\n logger.error(\n { name: pkg.name, error: err },\n 'permission process for @{name} has failed: @{error}'\n );\n throw err;\n }\n }\n\n debug('allowed %o packages', permissions.length);\n return permissions;\n }\n\n // Get list of all visible package\n pkgRouter.get(\n WebUrls.packages_all,\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('hit package web api %o');\n\n try {\n const localPackages: Version[] = await storage.getLocalDatabase();\n\n const order = getOrder(config?.web?.sort_packages);\n debug('order %o', order);\n const pkgs = await processPackages(localPackages, req);\n next(sortByName(pkgs, order));\n } catch (error: any) {\n next(error);\n }\n }\n );\n\n return pkgRouter;\n}\n\nexport default addPackageWebApi;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"package.js","names":[],"sources":["../../src/api/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { createAnonymousRemoteUser } from '@verdaccio/config';\nimport { logger } from '@verdaccio/logger';\nimport {\n $NextFunctionVer,\n $RequestExtend,\n $ResponseExtend,\n WebUrls,\n getRequestOptions,\n} from '@verdaccio/middleware';\nimport type { Storage } from '@verdaccio/store';\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport type { Config, RemoteUser, Version } from '@verdaccio/types';\n\nimport { formatAuthor, generateGravatarUrl } from '../author-utils';\nimport { hasLogin, sortByName, sortByTime } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst getField = (field = 'name') => {\n return field === 'name' || field === 'time' ? field : 'name';\n};\n\nconst getOrder = (order = 'asc') => {\n return order === 'asc';\n};\n\nconst debug = buildDebug('verdaccio:web:api:package');\n\nfunction addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router {\n const isLoginEnabled = hasLogin(config);\n debug('is login enabled: %o', isLoginEnabled);\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n const anonymousRemoteUser: RemoteUser = createAnonymousRemoteUser();\n\n debug('initialized package web api');\n const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>\n new Promise((resolve, reject): void => {\n const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;\n try {\n auth.allow_access({ packageName: name }, remoteUserAccess, (err, allowed): void => {\n if (err) {\n resolve(false);\n }\n return resolve(allowed as boolean);\n });\n } catch (err: any) {\n reject(err);\n }\n });\n\n async function processPackages(packages: Version[] = [], req): Promise<Version[]> {\n const permissions: Version[] = [];\n const packagesToProcess = packages.slice();\n debug('process packages %o', packagesToProcess);\n const requestOptions = getRequestOptions(req);\n for (const pkg of packagesToProcess) {\n const pkgCopy = { ...pkg };\n pkgCopy.author = formatAuthor(pkg.author);\n try {\n if (await checkAllow(pkg.name, req.remote_user)) {\n if (config.web) {\n // @ts-ignore\n pkgCopy.author.avatar = generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);\n }\n // convert any remote dist to a local reference\n // eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz\n if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) {\n pkgCopy.dist.tarball = getLocalRegistryTarballUri(\n pkgCopy.dist.tarball,\n pkg.name,\n requestOptions,\n config?.url_prefix\n );\n }\n permissions.push(pkgCopy);\n }\n } catch (err: any) {\n debug('process packages error %o', err);\n logger.error(\n { name: pkg.name, error: err },\n 'permission process for @{name} has failed: @{error}'\n );\n throw err;\n }\n }\n\n debug('allowed %o packages', permissions.length);\n return permissions;\n }\n\n // Get list of all visible package\n pkgRouter.get(\n WebUrls.packages_all,\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('hit package web api %o');\n\n try {\n const localPackages: Version[] = await storage.getLocalDatabase();\n\n const field = getField(config?.web?.sort_field);\n const order = getOrder(config?.web?.sort_packages);\n debug('order by %o %o', field, order);\n const pkgs = await processPackages(localPackages, req);\n if (field === 'name') next(sortByName(pkgs, order));\n else next(sortByTime(pkgs, order));\n } catch (error: any) {\n next(error);\n }\n }\n );\n\n return pkgRouter;\n}\n\nexport default addPackageWebApi;\n"],"mappings":";;;;;;;;;;;;;AAuBA,IAAM,YAAY,QAAQ,WAAW;AACnC,QAAO,UAAU,UAAU,UAAU,SAAS,QAAQ;;AAGxD,IAAM,YAAY,QAAQ,UAAU;AAClC,QAAO,UAAU;;AAGnB,IAAM,WAAA,GAAA,MAAA,SAAmB,4BAA4B;AAErD,SAAS,iBAAiB,SAAkB,MAAY,QAAwB;CAC9E,MAAM,iBAAiB,kBAAA,SAAS,OAAO;AACvC,SAAM,wBAAwB,eAAe;CAC7C,MAAM,aAAA,GAAA,QAAA,SAAoB;CAC1B,MAAM,uBAAA,GAAA,kBAAA,4BAA6D;AAEnE,SAAM,8BAA8B;CACpC,MAAM,cAAc,MAAc,eAChC,IAAI,SAAS,SAAS,WAAiB;EACrC,MAAM,mBAAmB,CAAC,iBAAiB,sBAAsB;AACjE,MAAI;AACF,QAAK,aAAa,EAAE,aAAa,MAAM,EAAE,mBAAmB,KAAK,YAAkB;AACjF,QAAI,IACF,SAAQ,MAAM;AAEhB,WAAO,QAAQ,QAAmB;KAClC;WACK,KAAU;AACjB,UAAO,IAAI;;GAEb;CAEJ,eAAe,gBAAgB,WAAsB,EAAE,EAAE,KAAyB;EAChF,MAAM,cAAyB,EAAE;EACjC,MAAM,oBAAoB,SAAS,OAAO;AAC1C,UAAM,uBAAuB,kBAAkB;EAC/C,MAAM,kBAAA,GAAA,sBAAA,mBAAmC,IAAI;AAC7C,OAAK,MAAM,OAAO,mBAAmB;GACnC,MAAM,UAAU,EAAE,GAAG,KAAK;AAC1B,WAAQ,SAAS,qBAAA,aAAa,IAAI,OAAO;AACzC,OAAI;AACF,QAAI,MAAM,WAAW,IAAI,MAAM,IAAI,YAAY,EAAE;AAC/C,SAAI,OAAO,IAET,SAAQ,OAAO,SAAS,qBAAA,oBAAoB,QAAQ,OAAO,OAAO,OAAO,IAAI,SAAS;AAIxF,SAAI,CAAC,OAAA,QAAE,MAAM,QAAQ,KAAK,IAAI,CAAC,OAAA,QAAE,OAAO,QAAQ,KAAK,QAAQ,CAC3D,SAAQ,KAAK,WAAA,GAAA,mBAAA,4BACX,QAAQ,KAAK,SACb,IAAI,MACJ,gBACA,QAAQ,WACT;AAEH,iBAAY,KAAK,QAAQ;;YAEpB,KAAU;AACjB,YAAM,6BAA6B,IAAI;AACvC,sBAAA,OAAO,MACL;KAAE,MAAM,IAAI;KAAM,OAAO;KAAK,EAC9B,sDACD;AACD,UAAM;;;AAIV,UAAM,uBAAuB,YAAY,OAAO;AAChD,SAAO;;AAIT,WAAU,IACR,sBAAA,QAAQ,cACR,eACE,KACA,KACA,MACe;AACf,UAAM,yBAAyB;AAE/B,MAAI;GACF,MAAM,gBAA2B,MAAM,QAAQ,kBAAkB;GAEjE,MAAM,QAAQ,SAAS,QAAQ,KAAK,WAAW;GAC/C,MAAM,QAAQ,SAAS,QAAQ,KAAK,cAAc;AAClD,WAAM,kBAAkB,OAAO,MAAM;GACrC,MAAM,OAAO,MAAM,gBAAgB,eAAe,IAAI;AACtD,OAAI,UAAU,OAAQ,MAAK,kBAAA,WAAW,MAAM,MAAM,CAAC;OAC9C,MAAK,kBAAA,WAAW,MAAM,MAAM,CAAC;WAC3B,OAAY;AACnB,QAAK,MAAM;;GAGhB;AAED,QAAO"}
@@ -0,0 +1,80 @@
1
+ import { hasLogin, sortByName, sortByTime } from "../web-utils.mjs";
2
+ import { formatAuthor, generateGravatarUrl } from "../author-utils.mjs";
3
+ import { Router } from "express";
4
+ import _ from "lodash";
5
+ import { logger } from "@verdaccio/logger";
6
+ import { WebUrls, getRequestOptions } from "@verdaccio/middleware";
7
+ import buildDebug from "debug";
8
+ import { createAnonymousRemoteUser } from "@verdaccio/config";
9
+ import { getLocalRegistryTarballUri } from "@verdaccio/tarball";
10
+ //#region src/api/package.ts
11
+ var getField = (field = "name") => {
12
+ return field === "name" || field === "time" ? field : "name";
13
+ };
14
+ var getOrder = (order = "asc") => {
15
+ return order === "asc";
16
+ };
17
+ var debug = buildDebug("verdaccio:web:api:package");
18
+ function addPackageWebApi(storage, auth, config) {
19
+ const isLoginEnabled = hasLogin(config);
20
+ debug("is login enabled: %o", isLoginEnabled);
21
+ const pkgRouter = Router();
22
+ const anonymousRemoteUser = createAnonymousRemoteUser();
23
+ debug("initialized package web api");
24
+ const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
25
+ const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
26
+ try {
27
+ auth.allow_access({ packageName: name }, remoteUserAccess, (err, allowed) => {
28
+ if (err) resolve(false);
29
+ return resolve(allowed);
30
+ });
31
+ } catch (err) {
32
+ reject(err);
33
+ }
34
+ });
35
+ async function processPackages(packages = [], req) {
36
+ const permissions = [];
37
+ const packagesToProcess = packages.slice();
38
+ debug("process packages %o", packagesToProcess);
39
+ const requestOptions = getRequestOptions(req);
40
+ for (const pkg of packagesToProcess) {
41
+ const pkgCopy = { ...pkg };
42
+ pkgCopy.author = formatAuthor(pkg.author);
43
+ try {
44
+ if (await checkAllow(pkg.name, req.remote_user)) {
45
+ if (config.web) pkgCopy.author.avatar = generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);
46
+ if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) pkgCopy.dist.tarball = getLocalRegistryTarballUri(pkgCopy.dist.tarball, pkg.name, requestOptions, config?.url_prefix);
47
+ permissions.push(pkgCopy);
48
+ }
49
+ } catch (err) {
50
+ debug("process packages error %o", err);
51
+ logger.error({
52
+ name: pkg.name,
53
+ error: err
54
+ }, "permission process for @{name} has failed: @{error}");
55
+ throw err;
56
+ }
57
+ }
58
+ debug("allowed %o packages", permissions.length);
59
+ return permissions;
60
+ }
61
+ pkgRouter.get(WebUrls.packages_all, async function(req, res, next) {
62
+ debug("hit package web api %o");
63
+ try {
64
+ const localPackages = await storage.getLocalDatabase();
65
+ const field = getField(config?.web?.sort_field);
66
+ const order = getOrder(config?.web?.sort_packages);
67
+ debug("order by %o %o", field, order);
68
+ const pkgs = await processPackages(localPackages, req);
69
+ if (field === "name") next(sortByName(pkgs, order));
70
+ else next(sortByTime(pkgs, order));
71
+ } catch (error) {
72
+ next(error);
73
+ }
74
+ });
75
+ return pkgRouter;
76
+ }
77
+ //#endregion
78
+ export { addPackageWebApi as default };
79
+
80
+ //# sourceMappingURL=package.mjs.map