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

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 +73 -200
  10. package/build/api/package.js.map +1 -1
  11. package/build/api/package.mjs +74 -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 +17 -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 +1 -1
  46. package/build/web-utils.js +24 -31
  47. package/build/web-utils.js.map +1 -1
  48. package/build/web-utils.mjs +28 -0
  49. package/build/web-utils.mjs.map +1 -0
  50. package/package.json +28 -17
  51. package/build/index.js.map +0 -1
@@ -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 addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router;
8
8
  export default addSidebarWebApi;
@@ -1,112 +1,59 @@
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 _core = require("@verdaccio/core");
29
- var _logger = require("@verdaccio/logger");
30
- var _middleware = require("@verdaccio/middleware");
31
- var _tarball = require("@verdaccio/tarball");
32
- var _authorUtils = require("../author-utils");
33
- var _webUtils = require("../web-utils");
34
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
35
- 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 }; })(); }
36
- 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); }
37
- 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; }
38
- 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; }
39
- 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; }
40
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
41
- 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); }
42
- 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); }
43
- 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); }); }; }
44
- // Was required by other packages
45
-
46
- var debug = (0, _debug["default"])('verdaccio:web:api:sidebar');
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 _verdaccio_core = require("@verdaccio/core");
6
+ let _verdaccio_logger = require("@verdaccio/logger");
7
+ let _verdaccio_middleware = require("@verdaccio/middleware");
8
+ let debug = require("debug");
9
+ debug = require_runtime.__toESM(debug);
10
+ let _verdaccio_tarball = require("@verdaccio/tarball");
11
+ //#region src/api/sidebar.ts
12
+ var debug$1 = (0, debug.default)("verdaccio:web:api:sidebar");
47
13
  function addSidebarWebApi(config, storage, auth) {
48
- debug('initialized sidebar web api');
49
- var router = (0, _express.Router)(); /* eslint new-cap: 0 */
50
- var can = (0, _middleware.allow)(auth, {
51
- beforeAll: function beforeAll(a, b) {
52
- return _logger.logger.trace(a, b);
53
- },
54
- afterAll: function afterAll(a, b) {
55
- return _logger.logger.trace(a, b);
56
- }
57
- });
58
- // Get package sidebar
59
- router.get([_middleware.WebUrls.sidebar_scopped_package, _middleware.WebUrls.sidebar_package], can('access'), /*#__PURE__*/function () {
60
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, res, next) {
61
- var rawScope, scope, name, requestOptions, info, v, sideBarInfo, authorAvatar, _t;
62
- return _regenerator().w(function (_context) {
63
- while (1) switch (_context.p = _context.n) {
64
- case 0:
65
- rawScope = req.params.scope; // May include '@'
66
- scope = rawScope ? rawScope.slice(1) : null; // Remove '@' if present
67
- name = scope ? (0, _webUtils.addScope)(scope, req.params["package"]) : req.params["package"];
68
- requestOptions = (0, _middleware.getRequestOptions)(req);
69
- _context.p = 1;
70
- _context.n = 2;
71
- return storage.getPackageByOptions({
72
- name: name,
73
- uplinksLook: true,
74
- keepUpLinkData: true,
75
- requestOptions: requestOptions
76
- });
77
- case 2:
78
- info = _context.v;
79
- // TODO: sanitize query
80
- v = req.query.v;
81
- sideBarInfo = _objectSpread({}, info);
82
- sideBarInfo.versions = (0, _tarball.convertDistRemoteToLocalTarballUrls)(info, requestOptions, config.url_prefix).versions;
83
- if (typeof v === 'string' && (0, _webUtils.isVersionValid)(info, v)) {
84
- sideBarInfo.latest = sideBarInfo.versions[v];
85
- sideBarInfo.latest.author = (0, _authorUtils.formatAuthor)(sideBarInfo.latest.author);
86
- } else {
87
- sideBarInfo.latest = sideBarInfo.versions[info[_core.DIST_TAGS].latest];
88
- sideBarInfo.latest.author = (0, _authorUtils.formatAuthor)(sideBarInfo.latest.author);
89
- }
90
- sideBarInfo = (0, _webUtils.deleteProperties)(['readme', '_attachments', '_rev', 'name'], sideBarInfo);
91
- authorAvatar = config.web ? (0, _authorUtils.addGravatarSupport)(sideBarInfo, config.web.gravatar) : (0, _authorUtils.addGravatarSupport)(sideBarInfo);
92
- next(authorAvatar);
93
- _context.n = 4;
94
- break;
95
- case 3:
96
- _context.p = 3;
97
- _t = _context.v;
98
- res.status(_core.HTTP_STATUS.NOT_FOUND);
99
- res.end();
100
- case 4:
101
- return _context.a(2);
102
- }
103
- }, _callee, null, [[1, 3]]);
104
- }));
105
- return function (_x, _x2, _x3) {
106
- return _ref.apply(this, arguments);
107
- };
108
- }());
109
- return router;
14
+ debug$1("initialized sidebar web api");
15
+ const router = (0, express.Router)();
16
+ const can = (0, _verdaccio_middleware.allow)(auth, {
17
+ beforeAll: (a, b) => _verdaccio_logger.logger.trace(a, b),
18
+ afterAll: (a, b) => _verdaccio_logger.logger.trace(a, b)
19
+ });
20
+ router.get([_verdaccio_middleware.WebUrls.sidebar_scopped_package, _verdaccio_middleware.WebUrls.sidebar_package], can("access"), async function(req, res, next) {
21
+ const rawScope = req.params.scope;
22
+ const scope = rawScope ? rawScope.slice(1) : null;
23
+ const name = scope ? require_web_utils.addScope(scope, req.params.package) : req.params.package;
24
+ const requestOptions = (0, _verdaccio_middleware.getRequestOptions)(req);
25
+ try {
26
+ const info = await storage.getPackageByOptions({
27
+ name,
28
+ uplinksLook: true,
29
+ keepUpLinkData: true,
30
+ requestOptions
31
+ });
32
+ const { v } = req.query;
33
+ let sideBarInfo = { ...info };
34
+ sideBarInfo.versions = (0, _verdaccio_tarball.convertDistRemoteToLocalTarballUrls)(info, requestOptions, config.url_prefix).versions;
35
+ if (typeof v === "string" && require_web_utils.isVersionValid(info, v)) {
36
+ sideBarInfo.latest = sideBarInfo.versions[v];
37
+ sideBarInfo.latest.author = require_author_utils.formatAuthor(sideBarInfo.latest.author);
38
+ } else {
39
+ sideBarInfo.latest = sideBarInfo.versions[info[_verdaccio_core.DIST_TAGS].latest];
40
+ sideBarInfo.latest.author = require_author_utils.formatAuthor(sideBarInfo.latest.author);
41
+ }
42
+ sideBarInfo = require_web_utils.deleteProperties([
43
+ "readme",
44
+ "_attachments",
45
+ "_rev",
46
+ "name"
47
+ ], sideBarInfo);
48
+ next(config.web ? require_author_utils.addGravatarSupport(sideBarInfo, config.web.gravatar) : require_author_utils.addGravatarSupport(sideBarInfo));
49
+ } catch {
50
+ res.status(_verdaccio_core.HTTP_STATUS.NOT_FOUND);
51
+ res.end();
52
+ }
53
+ });
54
+ return router;
110
55
  }
111
- var _default = exports["default"] = addSidebarWebApi;
56
+ //#endregion
57
+ exports.default = addSidebarWebApi;
58
+
112
59
  //# sourceMappingURL=sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":["_debug","_interopRequireDefault","require","_express","_core","_logger","_middleware","_tarball","_authorUtils","_webUtils","e","__esModule","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","_typeof","toPrimitive","String","Number","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","debug","buildDebug","addSidebarWebApi","config","storage","auth","router","Router","can","allow","beforeAll","b","logger","trace","afterAll","get","WebUrls","sidebar_scopped_package","sidebar_package","_ref","_callee","req","res","next","rawScope","scope","name","requestOptions","info","sideBarInfo","authorAvatar","_t","_context","params","slice","addScope","getRequestOptions","getPackageByOptions","uplinksLook","keepUpLinkData","query","versions","convertDistRemoteToLocalTarballUrls","url_prefix","isVersionValid","latest","author","formatAuthor","DIST_TAGS","deleteProperties","web","addGravatarSupport","gravatar","status","HTTP_STATUS","NOT_FOUND","end","_x","_x2","_x3","_default","exports"],"sources":["../../src/api/sidebar.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { DIST_TAGS, HTTP_STATUS } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport {\n $NextFunctionVer,\n $RequestExtend,\n $ResponseExtend,\n WebUrls,\n allow,\n getRequestOptions,\n} from '@verdaccio/middleware';\nimport type { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport type { Config, Manifest, WebManifest } from '@verdaccio/types';\n\nimport { addGravatarSupport, formatAuthor } from '../author-utils';\nimport { addScope, deleteProperties, isVersionValid } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst debug = buildDebug('verdaccio:web:api:sidebar');\n\nfunction addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router {\n debug('initialized sidebar web api');\n const router = Router(); /* eslint new-cap: 0 */\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n // Get package sidebar\n router.get(\n [WebUrls.sidebar_scopped_package, WebUrls.sidebar_package],\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const rawScope = req.params.scope; // May include '@'\n const scope = rawScope ? rawScope.slice(1) : null; // Remove '@' if present\n const name: string = scope ? addScope(scope, req.params.package) : req.params.package;\n const requestOptions = getRequestOptions(req);\n try {\n const info = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n keepUpLinkData: true,\n requestOptions,\n })) as Manifest;\n // TODO: sanitize query\n const { v } = req.query;\n let sideBarInfo = { ...info } as WebManifest;\n sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(\n info,\n requestOptions,\n config.url_prefix\n ).versions;\n if (typeof v === 'string' && isVersionValid(info, v)) {\n sideBarInfo.latest = sideBarInfo.versions[v];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n } else {\n sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n }\n sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo);\n const authorAvatar = config.web\n ? addGravatarSupport(sideBarInfo, config.web.gravatar)\n : addGravatarSupport(sideBarInfo);\n next(authorAvatar);\n } catch {\n res.status(HTTP_STATUS.NOT_FOUND);\n res.end();\n }\n }\n );\n\n return router;\n}\n\nexport default addSidebarWebApi;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sidebar.js","names":[],"sources":["../../src/api/sidebar.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { DIST_TAGS, HTTP_STATUS } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport {\n $NextFunctionVer,\n $RequestExtend,\n $ResponseExtend,\n WebUrls,\n allow,\n getRequestOptions,\n} from '@verdaccio/middleware';\nimport type { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport type { Config, Manifest, WebManifest } from '@verdaccio/types';\n\nimport { addGravatarSupport, formatAuthor } from '../author-utils';\nimport { addScope, deleteProperties, isVersionValid } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst debug = buildDebug('verdaccio:web:api:sidebar');\n\nfunction addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router {\n debug('initialized sidebar web api');\n const router = Router(); /* eslint new-cap: 0 */\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n // Get package sidebar\n router.get(\n [WebUrls.sidebar_scopped_package, WebUrls.sidebar_package],\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const rawScope = req.params.scope; // May include '@'\n const scope = rawScope ? rawScope.slice(1) : null; // Remove '@' if present\n const name: string = scope ? addScope(scope, req.params.package) : req.params.package;\n const requestOptions = getRequestOptions(req);\n try {\n const info = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n keepUpLinkData: true,\n requestOptions,\n })) as Manifest;\n // TODO: sanitize query\n const { v } = req.query;\n let sideBarInfo = { ...info } as WebManifest;\n sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(\n info,\n requestOptions,\n config.url_prefix\n ).versions;\n if (typeof v === 'string' && isVersionValid(info, v)) {\n sideBarInfo.latest = sideBarInfo.versions[v];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n } else {\n sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n }\n sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo);\n const authorAvatar = config.web\n ? addGravatarSupport(sideBarInfo, config.web.gravatar)\n : addGravatarSupport(sideBarInfo);\n next(authorAvatar);\n } catch {\n res.status(HTTP_STATUS.NOT_FOUND);\n res.end();\n }\n }\n );\n\n return router;\n}\n\nexport default addSidebarWebApi;\n"],"mappings":";;;;;;;;;;;AAuBA,IAAM,WAAA,GAAA,MAAA,SAAmB,4BAA4B;AAErD,SAAS,iBAAiB,QAAgB,SAAkB,MAAoB;AAC9E,SAAM,8BAA8B;CACpC,MAAM,UAAA,GAAA,QAAA,SAAiB;CACvB,MAAM,OAAA,GAAA,sBAAA,OAAY,MAAM;EACtB,YAAY,GAAG,MAAM,kBAAA,OAAO,MAAM,GAAG,EAAE;EACvC,WAAW,GAAG,MAAM,kBAAA,OAAO,MAAM,GAAG,EAAE;EACvC,CAAC;AAEF,QAAO,IACL,CAAC,sBAAA,QAAQ,yBAAyB,sBAAA,QAAQ,gBAAgB,EAC1D,IAAI,SAAS,EACb,eACE,KACA,KACA,MACe;EACf,MAAM,WAAW,IAAI,OAAO;EAC5B,MAAM,QAAQ,WAAW,SAAS,MAAM,EAAE,GAAG;EAC7C,MAAM,OAAe,QAAQ,kBAAA,SAAS,OAAO,IAAI,OAAO,QAAQ,GAAG,IAAI,OAAO;EAC9E,MAAM,kBAAA,GAAA,sBAAA,mBAAmC,IAAI;AAC7C,MAAI;GACF,MAAM,OAAQ,MAAM,QAAQ,oBAAoB;IAC9C;IACA,aAAa;IACb,gBAAgB;IAChB;IACD,CAAC;GAEF,MAAM,EAAE,MAAM,IAAI;GAClB,IAAI,cAAc,EAAE,GAAG,MAAM;AAC7B,eAAY,YAAA,GAAA,mBAAA,qCACV,MACA,gBACA,OAAO,WACR,CAAC;AACF,OAAI,OAAO,MAAM,YAAY,kBAAA,eAAe,MAAM,EAAE,EAAE;AACpD,gBAAY,SAAS,YAAY,SAAS;AAC1C,gBAAY,OAAO,SAAS,qBAAA,aAAa,YAAY,OAAO,OAAO;UAC9D;AACL,gBAAY,SAAS,YAAY,SAAS,KAAK,gBAAA,WAAW;AAC1D,gBAAY,OAAO,SAAS,qBAAA,aAAa,YAAY,OAAO,OAAO;;AAErE,iBAAc,kBAAA,iBAAiB;IAAC;IAAU;IAAgB;IAAQ;IAAO,EAAE,YAAY;AAIvF,QAHqB,OAAO,MACxB,qBAAA,mBAAmB,aAAa,OAAO,IAAI,SAAS,GACpD,qBAAA,mBAAmB,YAAY,CACjB;UACZ;AACN,OAAI,OAAO,gBAAA,YAAY,UAAU;AACjC,OAAI,KAAK;;GAGd;AAED,QAAO"}
@@ -0,0 +1,57 @@
1
+ import { addScope, deleteProperties, isVersionValid } from "../web-utils.mjs";
2
+ import { addGravatarSupport, formatAuthor } from "../author-utils.mjs";
3
+ import { Router } from "express";
4
+ import { DIST_TAGS, HTTP_STATUS } from "@verdaccio/core";
5
+ import { logger } from "@verdaccio/logger";
6
+ import { WebUrls, allow, getRequestOptions } from "@verdaccio/middleware";
7
+ import buildDebug from "debug";
8
+ import { convertDistRemoteToLocalTarballUrls } from "@verdaccio/tarball";
9
+ //#region src/api/sidebar.ts
10
+ var debug = buildDebug("verdaccio:web:api:sidebar");
11
+ function addSidebarWebApi(config, storage, auth) {
12
+ debug("initialized sidebar web api");
13
+ const router = Router();
14
+ const can = allow(auth, {
15
+ beforeAll: (a, b) => logger.trace(a, b),
16
+ afterAll: (a, b) => logger.trace(a, b)
17
+ });
18
+ router.get([WebUrls.sidebar_scopped_package, WebUrls.sidebar_package], can("access"), async function(req, res, next) {
19
+ const rawScope = req.params.scope;
20
+ const scope = rawScope ? rawScope.slice(1) : null;
21
+ const name = scope ? addScope(scope, req.params.package) : req.params.package;
22
+ const requestOptions = getRequestOptions(req);
23
+ try {
24
+ const info = await storage.getPackageByOptions({
25
+ name,
26
+ uplinksLook: true,
27
+ keepUpLinkData: true,
28
+ requestOptions
29
+ });
30
+ const { v } = req.query;
31
+ let sideBarInfo = { ...info };
32
+ sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(info, requestOptions, config.url_prefix).versions;
33
+ if (typeof v === "string" && isVersionValid(info, v)) {
34
+ sideBarInfo.latest = sideBarInfo.versions[v];
35
+ sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);
36
+ } else {
37
+ sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];
38
+ sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);
39
+ }
40
+ sideBarInfo = deleteProperties([
41
+ "readme",
42
+ "_attachments",
43
+ "_rev",
44
+ "name"
45
+ ], sideBarInfo);
46
+ next(config.web ? addGravatarSupport(sideBarInfo, config.web.gravatar) : addGravatarSupport(sideBarInfo));
47
+ } catch {
48
+ res.status(HTTP_STATUS.NOT_FOUND);
49
+ res.end();
50
+ }
51
+ });
52
+ return router;
53
+ }
54
+ //#endregion
55
+ export { addSidebarWebApi as default };
56
+
57
+ //# sourceMappingURL=sidebar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.mjs","names":[],"sources":["../../src/api/sidebar.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { DIST_TAGS, HTTP_STATUS } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport {\n $NextFunctionVer,\n $RequestExtend,\n $ResponseExtend,\n WebUrls,\n allow,\n getRequestOptions,\n} from '@verdaccio/middleware';\nimport type { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport type { Config, Manifest, WebManifest } from '@verdaccio/types';\n\nimport { addGravatarSupport, formatAuthor } from '../author-utils';\nimport { addScope, deleteProperties, isVersionValid } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst debug = buildDebug('verdaccio:web:api:sidebar');\n\nfunction addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router {\n debug('initialized sidebar web api');\n const router = Router(); /* eslint new-cap: 0 */\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n // Get package sidebar\n router.get(\n [WebUrls.sidebar_scopped_package, WebUrls.sidebar_package],\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const rawScope = req.params.scope; // May include '@'\n const scope = rawScope ? rawScope.slice(1) : null; // Remove '@' if present\n const name: string = scope ? addScope(scope, req.params.package) : req.params.package;\n const requestOptions = getRequestOptions(req);\n try {\n const info = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n keepUpLinkData: true,\n requestOptions,\n })) as Manifest;\n // TODO: sanitize query\n const { v } = req.query;\n let sideBarInfo = { ...info } as WebManifest;\n sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(\n info,\n requestOptions,\n config.url_prefix\n ).versions;\n if (typeof v === 'string' && isVersionValid(info, v)) {\n sideBarInfo.latest = sideBarInfo.versions[v];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n } else {\n sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n }\n sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo);\n const authorAvatar = config.web\n ? addGravatarSupport(sideBarInfo, config.web.gravatar)\n : addGravatarSupport(sideBarInfo);\n next(authorAvatar);\n } catch {\n res.status(HTTP_STATUS.NOT_FOUND);\n res.end();\n }\n }\n );\n\n return router;\n}\n\nexport default addSidebarWebApi;\n"],"mappings":";;;;;;;;;AAuBA,IAAM,QAAQ,WAAW,4BAA4B;AAErD,SAAS,iBAAiB,QAAgB,SAAkB,MAAoB;AAC9E,OAAM,8BAA8B;CACpC,MAAM,SAAS,QAAQ;CACvB,MAAM,MAAM,MAAM,MAAM;EACtB,YAAY,GAAG,MAAM,OAAO,MAAM,GAAG,EAAE;EACvC,WAAW,GAAG,MAAM,OAAO,MAAM,GAAG,EAAE;EACvC,CAAC;AAEF,QAAO,IACL,CAAC,QAAQ,yBAAyB,QAAQ,gBAAgB,EAC1D,IAAI,SAAS,EACb,eACE,KACA,KACA,MACe;EACf,MAAM,WAAW,IAAI,OAAO;EAC5B,MAAM,QAAQ,WAAW,SAAS,MAAM,EAAE,GAAG;EAC7C,MAAM,OAAe,QAAQ,SAAS,OAAO,IAAI,OAAO,QAAQ,GAAG,IAAI,OAAO;EAC9E,MAAM,iBAAiB,kBAAkB,IAAI;AAC7C,MAAI;GACF,MAAM,OAAQ,MAAM,QAAQ,oBAAoB;IAC9C;IACA,aAAa;IACb,gBAAgB;IAChB;IACD,CAAC;GAEF,MAAM,EAAE,MAAM,IAAI;GAClB,IAAI,cAAc,EAAE,GAAG,MAAM;AAC7B,eAAY,WAAW,oCACrB,MACA,gBACA,OAAO,WACR,CAAC;AACF,OAAI,OAAO,MAAM,YAAY,eAAe,MAAM,EAAE,EAAE;AACpD,gBAAY,SAAS,YAAY,SAAS;AAC1C,gBAAY,OAAO,SAAS,aAAa,YAAY,OAAO,OAAO;UAC9D;AACL,gBAAY,SAAS,YAAY,SAAS,KAAK,WAAW;AAC1D,gBAAY,OAAO,SAAS,aAAa,YAAY,OAAO,OAAO;;AAErE,iBAAc,iBAAiB;IAAC;IAAU;IAAgB;IAAQ;IAAO,EAAE,YAAY;AAIvF,QAHqB,OAAO,MACxB,mBAAmB,aAAa,OAAO,IAAI,SAAS,GACpD,mBAAmB,YAAY,CACjB;UACZ;AACN,OAAI,OAAO,YAAY,UAAU;AACjC,OAAI,KAAK;;GAGd;AAED,QAAO"}
@@ -1,5 +1,5 @@
1
1
  import { Router } from 'express';
2
- import { type Auth } from '@verdaccio/auth';
3
- import type { Config } from '@verdaccio/types';
2
+ import { Auth } from '@verdaccio/auth';
3
+ import { Config } from '@verdaccio/types';
4
4
  declare function addUserAuthApi(auth: Auth, config: Config, storage: Storage): Router;
5
5
  export default addUserAuthApi;