@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.
- package/build/_virtual/_rolldown/runtime.js +23 -0
- package/build/_virtual/_rolldown/runtime.mjs +7 -0
- package/build/api/index.d.ts +1 -1
- package/build/api/index.js +26 -37
- package/build/api/index.js.map +1 -1
- package/build/api/index.mjs +27 -0
- package/build/api/index.mjs.map +1 -0
- package/build/api/package.d.ts +3 -3
- package/build/api/package.js +73 -200
- package/build/api/package.js.map +1 -1
- package/build/api/package.mjs +74 -0
- package/build/api/package.mjs.map +1 -0
- package/build/api/readme.d.ts +2 -2
- package/build/api/readme.js +64 -122
- package/build/api/readme.js.map +1 -1
- package/build/api/readme.mjs +67 -0
- package/build/api/readme.mjs.map +1 -0
- package/build/api/search.d.ts +2 -2
- package/build/api/search.js +57 -99
- package/build/api/search.js.map +1 -1
- package/build/api/search.mjs +59 -0
- package/build/api/search.mjs.map +1 -0
- package/build/api/sidebar.d.ts +3 -3
- package/build/api/sidebar.js +56 -109
- package/build/api/sidebar.js.map +1 -1
- package/build/api/sidebar.mjs +57 -0
- package/build/api/sidebar.mjs.map +1 -0
- package/build/api/user.d.ts +2 -2
- package/build/api/user.js +97 -212
- package/build/api/user.js.map +1 -1
- package/build/api/user.mjs +97 -0
- package/build/api/user.mjs.map +1 -0
- package/build/author-utils.d.ts +1 -1
- package/build/author-utils.js +109 -160
- package/build/author-utils.js.map +1 -1
- package/build/author-utils.mjs +117 -0
- package/build/author-utils.mjs.map +1 -0
- package/build/index.js +17 -47
- package/build/index.mjs +4 -0
- package/build/middleware.d.ts +1 -1
- package/build/middleware.js +49 -90
- package/build/middleware.js.map +1 -1
- package/build/middleware.mjs +48 -0
- package/build/middleware.mjs.map +1 -0
- package/build/web-utils.d.ts +1 -1
- package/build/web-utils.js +24 -31
- package/build/web-utils.js.map +1 -1
- package/build/web-utils.mjs +28 -0
- package/build/web-utils.mjs.map +1 -0
- package/package.json +28 -17
- package/build/index.js.map +0 -1
package/build/api/sidebar.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import
|
|
2
|
+
import { Auth } from '@verdaccio/auth';
|
|
3
3
|
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
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;
|
package/build/api/sidebar.js
CHANGED
|
@@ -1,112 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
56
|
+
//#endregion
|
|
57
|
+
exports.default = addSidebarWebApi;
|
|
58
|
+
|
|
112
59
|
//# sourceMappingURL=sidebar.js.map
|
package/build/api/sidebar.js.map
CHANGED
|
@@ -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"}
|
package/build/api/user.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
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;
|