@verdaccio/web 6.0.0-6-next.19 → 6.0.0-6-next.23
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/CHANGELOG.md +81 -0
- package/build/api/index.d.ts +2 -0
- package/build/api/index.js +41 -0
- package/build/api/index.js.map +1 -0
- package/build/api/package.d.ts +2 -2
- package/build/api/package.js +26 -24
- package/build/api/package.js.map +1 -1
- package/build/api/readme.d.ts +2 -2
- package/build/api/readme.js +16 -10
- package/build/api/readme.js.map +1 -1
- package/build/api/search.d.ts +1 -1
- package/build/api/search.js +9 -3
- package/build/api/search.js.map +1 -1
- package/build/api/sidebar.d.ts +2 -2
- package/build/api/sidebar.js +22 -12
- package/build/api/sidebar.js.map +1 -1
- package/build/api/user.d.ts +2 -2
- package/build/api/user.js +10 -3
- package/build/api/user.js.map +1 -1
- package/build/middleware/render-web.js +7 -7
- package/build/middleware/render-web.js.map +1 -1
- package/build/middleware/web-api.d.ts +1 -1
- package/build/middleware/web-api.js +4 -26
- package/build/middleware/web-api.js.map +1 -1
- package/build/renderHTML.js +14 -14
- package/build/renderHTML.js.map +1 -1
- package/build/template.js +2 -2
- package/build/template.js.map +1 -1
- package/build/utils/web-utils.d.ts +1 -2
- package/build/utils/web-utils.js +5 -71
- package/build/utils/web-utils.js.map +1 -1
- package/build/web-middleware.js.map +1 -1
- package/package.json +20 -22
- package/src/api/index.ts +20 -0
- package/src/api/package.ts +10 -9
- package/src/api/readme.ts +9 -7
- package/src/api/search.ts +10 -6
- package/src/api/sidebar.ts +12 -9
- package/src/api/user.ts +9 -6
- package/src/middleware/render-web.ts +4 -3
- package/src/middleware/web-api.ts +7 -24
- package/src/renderHTML.ts +4 -3
- package/src/template.ts +3 -1
- package/src/utils/web-utils.ts +3 -55
- package/src/web-middleware.ts +1 -0
- package/test/api.packages.test.ts +4 -2
- package/test/api.readme.test.ts +4 -3
- package/test/api.search.test.ts +6 -5
- package/test/api.sidebar.test.ts +3 -2
- package/test/api.user.test.ts +6 -4
- package/test/helper.ts +7 -5
- package/test/render.test.ts +3 -1
- package/test/template.test.ts +1 -0
- package/test/utils.spec.ts +1 -209
- package/build/utils/user.d.ts +0 -5
- package/build/utils/user.js +0 -34
- package/build/utils/user.js.map +0 -1
- package/src/utils/user.ts +0 -37
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,86 @@
|
|
|
1
1
|
# @verdaccio/web
|
|
2
2
|
|
|
3
|
+
## 6.0.0-6-next.23
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 048ac95e: feat: align with v5 ui endpoints and ui small bugfix
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [730b5d8c]
|
|
12
|
+
- @verdaccio/logger@6.0.0-6-next.9
|
|
13
|
+
- @verdaccio/auth@6.0.0-6-next.17
|
|
14
|
+
- @verdaccio/loaders@6.0.0-6-next.9
|
|
15
|
+
- @verdaccio/middleware@6.0.0-6-next.17
|
|
16
|
+
- @verdaccio/store@6.0.0-6-next.18
|
|
17
|
+
|
|
18
|
+
## 6.0.0-6-next.22
|
|
19
|
+
|
|
20
|
+
### Major Changes
|
|
21
|
+
|
|
22
|
+
- 000d4374: feat: upgrade to material ui 5
|
|
23
|
+
|
|
24
|
+
### Minor Changes
|
|
25
|
+
|
|
26
|
+
- 24b9be02: refactor: improve docker image build with strict dependencies and prod build
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [a828271d]
|
|
31
|
+
- Updated dependencies [24b9be02]
|
|
32
|
+
- Updated dependencies [e75c0a3b]
|
|
33
|
+
- Updated dependencies [b13a3fef]
|
|
34
|
+
- @verdaccio/tarball@11.0.0-6-next.11
|
|
35
|
+
- @verdaccio/store@6.0.0-6-next.17
|
|
36
|
+
- @verdaccio/utils@6.0.0-6-next.10
|
|
37
|
+
- @verdaccio/core@6.0.0-6-next.4
|
|
38
|
+
- @verdaccio/middleware@6.0.0-6-next.16
|
|
39
|
+
- @verdaccio/logger@6.0.0-6-next.8
|
|
40
|
+
- @verdaccio/auth@6.0.0-6-next.16
|
|
41
|
+
- @verdaccio/config@6.0.0-6-next.12
|
|
42
|
+
- @verdaccio/url@11.0.0-6-next.8
|
|
43
|
+
- @verdaccio/loaders@6.0.0-6-next.8
|
|
44
|
+
- @verdaccio/readme@11.0.0-6-next.4
|
|
45
|
+
|
|
46
|
+
## 6.0.0-6-next.21
|
|
47
|
+
|
|
48
|
+
### Minor Changes
|
|
49
|
+
|
|
50
|
+
- f86c31ed: feat: migrate web sidebar endpoint to fastify
|
|
51
|
+
|
|
52
|
+
reuse utils methods between packages
|
|
53
|
+
|
|
54
|
+
- 20c9e43e: dist tags Implementation on Fastify
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- Updated dependencies [f86c31ed]
|
|
59
|
+
- Updated dependencies [20c9e43e]
|
|
60
|
+
- @verdaccio/store@6.0.0-6-next.16
|
|
61
|
+
- @verdaccio/utils@6.0.0-6-next.9
|
|
62
|
+
- @verdaccio/auth@6.0.0-6-next.15
|
|
63
|
+
- @verdaccio/config@6.0.0-6-next.11
|
|
64
|
+
- @verdaccio/tarball@11.0.0-6-next.10
|
|
65
|
+
- @verdaccio/middleware@6.0.0-6-next.15
|
|
66
|
+
- @verdaccio/loaders@6.0.0-6-next.7
|
|
67
|
+
|
|
68
|
+
## 6.0.0-6-next.20
|
|
69
|
+
|
|
70
|
+
### Patch Changes
|
|
71
|
+
|
|
72
|
+
- Updated dependencies [6c1eb021]
|
|
73
|
+
- @verdaccio/core@6.0.0-6-next.3
|
|
74
|
+
- @verdaccio/logger@6.0.0-6-next.7
|
|
75
|
+
- @verdaccio/auth@6.0.0-6-next.14
|
|
76
|
+
- @verdaccio/config@6.0.0-6-next.10
|
|
77
|
+
- @verdaccio/tarball@11.0.0-6-next.9
|
|
78
|
+
- @verdaccio/url@11.0.0-6-next.7
|
|
79
|
+
- @verdaccio/loaders@6.0.0-6-next.7
|
|
80
|
+
- @verdaccio/middleware@6.0.0-6-next.14
|
|
81
|
+
- @verdaccio/store@6.0.0-6-next.15
|
|
82
|
+
- @verdaccio/utils@6.0.0-6-next.8
|
|
83
|
+
|
|
3
84
|
## 6.0.0-6-next.19
|
|
4
85
|
|
|
5
86
|
### Major Changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _express = require("express");
|
|
9
|
+
|
|
10
|
+
var _webUtils = require("../utils/web-utils");
|
|
11
|
+
|
|
12
|
+
var _package = _interopRequireDefault(require("./package"));
|
|
13
|
+
|
|
14
|
+
var _readme = _interopRequireDefault(require("./readme"));
|
|
15
|
+
|
|
16
|
+
var _search = _interopRequireDefault(require("./search"));
|
|
17
|
+
|
|
18
|
+
var _sidebar = _interopRequireDefault(require("./sidebar"));
|
|
19
|
+
|
|
20
|
+
var _user = _interopRequireDefault(require("./user"));
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
var _default = (auth, storage, config) => {
|
|
25
|
+
const route = (0, _express.Router)();
|
|
26
|
+
/* eslint new-cap: 0 */
|
|
27
|
+
|
|
28
|
+
route.use('/data/', (0, _package.default)(storage, auth, config));
|
|
29
|
+
route.use('/data/', (0, _search.default)(storage, auth));
|
|
30
|
+
route.use('/data/', (0, _sidebar.default)(config, storage, auth));
|
|
31
|
+
route.use('/data/', (0, _readme.default)(storage, auth));
|
|
32
|
+
|
|
33
|
+
if ((0, _webUtils.hasLogin)(config)) {
|
|
34
|
+
route.use('/sec/', (0, _user.default)(auth, config));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return route;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.default = _default;
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/api/index.ts"],"names":["auth","storage","config","route","use"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;eAEe,CAACA,IAAD,EAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AACxC,QAAMC,KAAK,GAAG,sBAAd;AAAwB;;AACxBA,EAAAA,KAAK,CAACC,GAAN,CAAU,QAAV,EAAoB,sBAAWH,OAAX,EAAoBD,IAApB,EAA0BE,MAA1B,CAApB;AACAC,EAAAA,KAAK,CAACC,GAAN,CAAU,QAAV,EAAoB,qBAAOH,OAAP,EAAgBD,IAAhB,CAApB;AACAG,EAAAA,KAAK,CAACC,GAAN,CAAU,QAAV,EAAoB,sBAAQF,MAAR,EAAgBD,OAAhB,EAAyBD,IAAzB,CAApB;AACAG,EAAAA,KAAK,CAACC,GAAN,CAAU,QAAV,EAAoB,qBAAOH,OAAP,EAAgBD,IAAhB,CAApB;;AACA,MAAI,wBAASE,MAAT,CAAJ,EAAsB;AACpBC,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,mBAAKJ,IAAL,EAAWE,MAAX,CAAnB;AACD;;AACD,SAAOC,KAAP;AACD,C","sourcesContent":["import { Router } from 'express';\n\nimport { hasLogin } from '../utils/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('/data/', packageApi(storage, auth, config));\n route.use('/data/', search(storage, auth));\n route.use('/data/', sidebar(config, storage, auth));\n route.use('/data/', readme(storage, auth));\n if (hasLogin(config)) {\n route.use('/sec/', user(auth, config));\n }\n return route;\n};\n"],"file":"index.js"}
|
package/build/api/package.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '@verdaccio/middleware';
|
|
2
1
|
import { Router } from 'express';
|
|
3
2
|
import { IAuth } from '@verdaccio/auth';
|
|
3
|
+
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';
|
|
4
4
|
import { Storage } from '@verdaccio/store';
|
|
5
5
|
import { Config, Package } from '@verdaccio/types';
|
|
6
6
|
import { AuthorAvatar } from '../utils/web-utils';
|
|
@@ -11,5 +11,5 @@ export declare type PackageExt = Package & {
|
|
|
11
11
|
tarball: string;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
declare function addPackageWebApi(
|
|
14
|
+
declare function addPackageWebApi(storage: Storage, auth: IAuth, config: Config): Router;
|
|
15
15
|
export default addPackageWebApi;
|
package/build/api/package.js
CHANGED
|
@@ -3,50 +3,44 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "$
|
|
6
|
+
Object.defineProperty(exports, "$NextFunctionVer", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return _middleware.$
|
|
9
|
+
return _middleware.$NextFunctionVer;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "$
|
|
12
|
+
Object.defineProperty(exports, "$RequestExtend", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return _middleware.$
|
|
15
|
+
return _middleware.$RequestExtend;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "$
|
|
18
|
+
Object.defineProperty(exports, "$ResponseExtend", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return _middleware.$
|
|
21
|
+
return _middleware.$ResponseExtend;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
exports.default = void 0;
|
|
25
25
|
|
|
26
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
27
27
|
|
|
28
|
+
var _express = require("express");
|
|
29
|
+
|
|
28
30
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
29
31
|
|
|
30
|
-
var
|
|
32
|
+
var _logger = require("@verdaccio/logger");
|
|
31
33
|
|
|
32
34
|
var _middleware = require("@verdaccio/middleware");
|
|
33
35
|
|
|
34
|
-
var _logger = require("@verdaccio/logger");
|
|
35
|
-
|
|
36
36
|
var _tarball = require("@verdaccio/tarball");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _utils = require("@verdaccio/utils");
|
|
39
39
|
|
|
40
40
|
var _webUtils = require("../utils/web-utils");
|
|
41
41
|
|
|
42
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
43
43
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
45
|
-
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
47
|
-
|
|
48
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
49
|
-
|
|
50
44
|
// Was required by other packages
|
|
51
45
|
const getOrder = (order = 'asc') => {
|
|
52
46
|
return order === 'asc';
|
|
@@ -54,10 +48,13 @@ const getOrder = (order = 'asc') => {
|
|
|
54
48
|
|
|
55
49
|
const debug = (0, _debug.default)('verdaccio:web:api:package');
|
|
56
50
|
|
|
57
|
-
function addPackageWebApi(
|
|
58
|
-
var
|
|
51
|
+
function addPackageWebApi(storage, auth, config) {
|
|
52
|
+
var _config$web;
|
|
59
53
|
|
|
60
|
-
const isLoginEnabled = (
|
|
54
|
+
const isLoginEnabled = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true ?? true;
|
|
55
|
+
const pkgRouter = (0, _express.Router)();
|
|
56
|
+
/* eslint new-cap: 0 */
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
61
58
|
|
|
62
59
|
const anonymousRemoteUser = {
|
|
63
60
|
name: undefined,
|
|
@@ -86,7 +83,7 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
86
83
|
}); // Get list of all visible package
|
|
87
84
|
|
|
88
85
|
|
|
89
|
-
|
|
86
|
+
pkgRouter.get('/packages', function (req, res, next) {
|
|
90
87
|
debug('hit package web api %o');
|
|
91
88
|
storage.getLocalDatabase(async function (err, packages) {
|
|
92
89
|
var _config$web2;
|
|
@@ -101,20 +98,24 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
101
98
|
debug('process packages %o', packagesToProcess);
|
|
102
99
|
|
|
103
100
|
for (const pkg of packagesToProcess) {
|
|
104
|
-
const pkgCopy =
|
|
105
|
-
|
|
101
|
+
const pkgCopy = { ...pkg
|
|
102
|
+
};
|
|
106
103
|
pkgCopy.author = (0, _utils.formatAuthor)(pkg.author);
|
|
107
104
|
|
|
108
105
|
try {
|
|
109
106
|
if (await checkAllow(pkg.name, req.remote_user)) {
|
|
110
107
|
if (config.web) {
|
|
111
|
-
pkgCopy.author.avatar = (0,
|
|
108
|
+
pkgCopy.author.avatar = (0, _utils.generateGravatarUrl)(pkgCopy.author.email, config.web.gravatar);
|
|
112
109
|
} // convert any remote dist to a local reference
|
|
113
110
|
// eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz
|
|
114
111
|
|
|
115
112
|
|
|
116
113
|
if (!_lodash.default.isNil(pkgCopy.dist) && !_lodash.default.isNull(pkgCopy.dist.tarball)) {
|
|
117
|
-
pkgCopy.dist.tarball = (0, _tarball.getLocalRegistryTarballUri)(pkgCopy.dist.tarball, pkg.name,
|
|
114
|
+
pkgCopy.dist.tarball = (0, _tarball.getLocalRegistryTarballUri)(pkgCopy.dist.tarball, pkg.name, {
|
|
115
|
+
protocol: req.protocol,
|
|
116
|
+
headers: req.headers,
|
|
117
|
+
host: req.hostname
|
|
118
|
+
}, config === null || config === void 0 ? void 0 : config.url_prefix);
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
permissions.push(pkgCopy);
|
|
@@ -144,6 +145,7 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
144
145
|
}
|
|
145
146
|
});
|
|
146
147
|
});
|
|
148
|
+
return pkgRouter;
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
var _default = addPackageWebApi;
|
package/build/api/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/package.ts"],"names":["getOrder","order","debug","addPackageWebApi","
|
|
1
|
+
{"version":3,"sources":["../../src/api/package.ts"],"names":["getOrder","order","debug","addPackageWebApi","storage","auth","config","isLoginEnabled","web","login","pkgRouter","anonymousRemoteUser","name","undefined","real_groups","groups","checkAllow","remoteUser","Promise","resolve","reject","allow_access","packageName","err","allowed","get","req","res","next","getLocalDatabase","packages","processPackages","permissions","packagesToProcess","slice","pkg","pkgCopy","author","remote_user","avatar","email","gravatar","_","isNil","dist","isNull","tarball","protocol","headers","host","hostname","url_prefix","push","logger","error","sort_packages"],"mappings":"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","sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\n\nimport { IAuth } from '@verdaccio/auth';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport { Config, Package, RemoteUser } from '@verdaccio/types';\nimport { formatAuthor, generateGravatarUrl } from '@verdaccio/utils';\n\nimport { AuthorAvatar, sortByName } from '../utils/web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst getOrder = (order = 'asc') => {\n return order === 'asc';\n};\n\nexport type PackageExt = Package & { author: AuthorAvatar; dist?: { tarball: string } };\n\nconst debug = buildDebug('verdaccio:web:api:package');\n\nfunction addPackageWebApi(storage: Storage, auth: IAuth, config: Config): Router {\n const isLoginEnabled = config?.web?.login === true ?? true;\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const anonymousRemoteUser: RemoteUser = {\n name: undefined,\n real_groups: [],\n groups: [],\n };\n\n debug('initialized package web api');\n const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>\n new Promise((resolve, reject): void => {\n debug('is login disabled %o', isLoginEnabled);\n // FIXME: this logic does not work, review\n // const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;\n try {\n auth.allow_access({ packageName: name }, remoteUser, (err, allowed): void => {\n if (err) {\n resolve(false);\n }\n resolve(allowed);\n });\n } catch (err: any) {\n reject(err);\n }\n });\n\n // Get list of all visible package\n pkgRouter.get(\n '/packages',\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n debug('hit package web api %o');\n storage.getLocalDatabase(async function (err, packages): Promise<void> {\n if (err) {\n throw err;\n }\n async function processPackages(packages: PackageExt[] = []): Promise<PackageExt[]> {\n const permissions: PackageExt[] = [];\n const packagesToProcess = packages.slice();\n debug('process packages %o', packagesToProcess);\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 pkgCopy.author.avatar = generateGravatarUrl(\n pkgCopy.author.email,\n config.web.gravatar\n );\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 { protocol: req.protocol, headers: req.headers as any, host: req.hostname },\n config?.url_prefix\n );\n }\n permissions.push(pkgCopy);\n }\n } catch (err: any) {\n debug('process packages error %o', err);\n logger.logger.error(\n { name: pkg.name, error: err },\n 'permission process for @{name} has failed: @{error}'\n );\n throw err;\n }\n }\n\n return permissions;\n }\n\n const order = getOrder(config?.web?.sort_packages);\n debug('order %o', order);\n\n try {\n next(sortByName(await processPackages(packages), order));\n } catch (error: any) {\n next(error);\n }\n });\n }\n );\n return pkgRouter;\n}\n\nexport default addPackageWebApi;\n"],"file":"package.js"}
|
package/build/api/readme.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '@verdaccio/middleware';
|
|
2
1
|
import { Router } from 'express';
|
|
3
2
|
import { IAuth } from '@verdaccio/auth';
|
|
3
|
+
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';
|
|
4
4
|
import { Storage } from '@verdaccio/store';
|
|
5
5
|
import { Package } from '@verdaccio/types';
|
|
6
6
|
import { AuthorAvatar } from '../utils/web-utils';
|
|
@@ -12,5 +12,5 @@ export declare type PackageExt = Package & {
|
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
export declare const NOT_README_FOUND = "ERROR: No README data found!";
|
|
15
|
-
declare function addReadmeWebApi(
|
|
15
|
+
declare function addReadmeWebApi(storage: Storage, auth: IAuth): Router;
|
|
16
16
|
export default addReadmeWebApi;
|
package/build/api/readme.js
CHANGED
|
@@ -3,33 +3,35 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "$
|
|
6
|
+
Object.defineProperty(exports, "$NextFunctionVer", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return _middleware.$
|
|
9
|
+
return _middleware.$NextFunctionVer;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "$
|
|
12
|
+
Object.defineProperty(exports, "$RequestExtend", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return _middleware.$
|
|
15
|
+
return _middleware.$RequestExtend;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "$
|
|
18
|
+
Object.defineProperty(exports, "$ResponseExtend", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return _middleware.$
|
|
21
|
+
return _middleware.$ResponseExtend;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
exports.default = exports.NOT_README_FOUND = void 0;
|
|
25
25
|
|
|
26
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _express = require("express");
|
|
29
|
+
|
|
30
|
+
var _core = require("@verdaccio/core");
|
|
29
31
|
|
|
30
32
|
var _middleware = require("@verdaccio/middleware");
|
|
31
33
|
|
|
32
|
-
var
|
|
34
|
+
var _readme = _interopRequireDefault(require("@verdaccio/readme"));
|
|
33
35
|
|
|
34
36
|
var _webUtils = require("../utils/web-utils");
|
|
35
37
|
|
|
@@ -39,10 +41,13 @@ const debug = (0, _debug.default)('verdaccio:web:api:readme');
|
|
|
39
41
|
const NOT_README_FOUND = 'ERROR: No README data found!';
|
|
40
42
|
exports.NOT_README_FOUND = NOT_README_FOUND;
|
|
41
43
|
|
|
42
|
-
function addReadmeWebApi(
|
|
44
|
+
function addReadmeWebApi(storage, auth) {
|
|
43
45
|
debug('initialized readme web api');
|
|
44
46
|
const can = (0, _middleware.allow)(auth);
|
|
45
|
-
|
|
47
|
+
const pkgRouter = (0, _express.Router)();
|
|
48
|
+
/* eslint new-cap: 0 */
|
|
49
|
+
|
|
50
|
+
pkgRouter.get('/package/readme/(@:scope/)?:package/:version?', can('access'), function (req, res, next) {
|
|
46
51
|
debug('readme hit');
|
|
47
52
|
const packageName = req.params.scope ? (0, _webUtils.addScope)(req.params.scope, req.params.package) : req.params.package;
|
|
48
53
|
debug('readme name %o', packageName); // @ts-ignore
|
|
@@ -68,6 +73,7 @@ function addReadmeWebApi(route, storage, auth) {
|
|
|
68
73
|
}
|
|
69
74
|
});
|
|
70
75
|
});
|
|
76
|
+
return pkgRouter;
|
|
71
77
|
}
|
|
72
78
|
|
|
73
79
|
var _default = addReadmeWebApi;
|
package/build/api/readme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/readme.ts"],"names":["debug","NOT_README_FOUND","addReadmeWebApi","
|
|
1
|
+
{"version":3,"sources":["../../src/api/readme.ts"],"names":["debug","NOT_README_FOUND","addReadmeWebApi","storage","auth","can","pkgRouter","get","req","res","next","packageName","params","scope","package","getPackage","name","uplinksLook","callback","err","info","set","HEADER_TYPE","CONTENT_TYPE","HEADERS","TEXT_PLAIN_UTF8","readme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AACA;;AAIA;;;;AAMA,MAAMA,KAAK,GAAG,oBAAW,0BAAX,CAAd;AAEO,MAAMC,gBAAgB,GAAG,8BAAzB;;;AAEP,SAASC,eAAT,CAAyBC,OAAzB,EAA2CC,IAA3C,EAAgE;AAC9DJ,EAAAA,KAAK,CAAC,4BAAD,CAAL;AACA,QAAMK,GAAG,GAAG,uBAAMD,IAAN,CAAZ;AACA,QAAME,SAAS,GAAG,sBAAlB;AAA4B;;AAE5BA,EAAAA,SAAS,CAACC,GAAV,CACE,+CADF,EAEEF,GAAG,CAAC,QAAD,CAFL,EAGE,UAAUG,GAAV,EAA+BC,GAA/B,EAAqDC,IAArD,EAAmF;AACjFV,IAAAA,KAAK,CAAC,YAAD,CAAL;AACA,UAAMW,WAAW,GAAGH,GAAG,CAACI,MAAJ,CAAWC,KAAX,GAChB,wBAASL,GAAG,CAACI,MAAJ,CAAWC,KAApB,EAA2BL,GAAG,CAACI,MAAJ,CAAWE,OAAtC,CADgB,GAEhBN,GAAG,CAACI,MAAJ,CAAWE,OAFf;AAGAd,IAAAA,KAAK,CAAC,gBAAD,EAAmBW,WAAnB,CAAL,CALiF,CAOjF;;AACAR,IAAAA,OAAO,CAACY,UAAR,CAAmB;AACjBC,MAAAA,IAAI,EAAEL,WADW;AAEjBM,MAAAA,WAAW,EAAE,IAFI;AAGjBT,MAAAA,GAHiB;AAIjBU,MAAAA,QAAQ,EAAE,UAAUC,GAAV,EAAeC,IAAf,EAA2B;AACnCpB,QAAAA,KAAK,CAAC,eAAD,EAAkBoB,IAAlB,aAAkBA,IAAlB,uBAAkBA,IAAI,CAAEJ,IAAxB,CAAL;;AACA,YAAIG,GAAJ,EAAS;AACP,iBAAOT,IAAI,CAACS,GAAD,CAAX;AACD;;AAEDV,QAAAA,GAAG,CAACY,GAAJ,CAAQC,kBAAYC,YAApB,EAAkCC,cAAQC,eAA1C;;AACA,YAAI;AACFf,UAAAA,IAAI,CAAC,2BAAYU,IAAI,CAACJ,IAAjB,EAAuBI,IAAI,CAACM,MAA5B,CAAD,CAAJ;AACD,SAFD,CAEE,MAAM;AACNhB,UAAAA,IAAI,CAAC,qBAAeT,gBAAf,CAAD,CAAJ;AACD;AACF;AAhBgB,KAAnB;AAkBD,GA7BH;AA+BA,SAAOK,SAAP;AACD;;eAEcJ,e","sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { IAuth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE } from '@verdaccio/core';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend, allow } from '@verdaccio/middleware';\nimport sanitizyReadme from '@verdaccio/readme';\nimport { Storage } from '@verdaccio/store';\nimport { Package } from '@verdaccio/types';\n\nimport { AuthorAvatar, addScope, parseReadme } from '../utils/web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nexport type PackageExt = Package & { author: AuthorAvatar; dist?: { tarball: string } };\n\nconst debug = buildDebug('verdaccio:web:api:readme');\n\nexport const NOT_README_FOUND = 'ERROR: No README data found!';\n\nfunction addReadmeWebApi(storage: Storage, auth: IAuth): Router {\n debug('initialized readme web api');\n const can = allow(auth);\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n\n pkgRouter.get(\n '/package/readme/(@:scope/)?:package/:version?',\n can('access'),\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n debug('readme hit');\n const packageName = req.params.scope\n ? addScope(req.params.scope, req.params.package)\n : req.params.package;\n debug('readme name %o', packageName);\n\n // @ts-ignore\n storage.getPackage({\n name: packageName,\n uplinksLook: true,\n req,\n callback: function (err, info): void {\n debug('readme plg %o', info?.name);\n if (err) {\n return next(err);\n }\n\n res.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8);\n try {\n next(parseReadme(info.name, info.readme));\n } catch {\n next(sanitizyReadme(NOT_README_FOUND));\n }\n },\n });\n }\n );\n return pkgRouter;\n}\n\nexport default addReadmeWebApi;\n"],"file":"readme.js"}
|
package/build/api/search.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { IAuth } from '@verdaccio/auth';
|
|
3
3
|
import { Storage } from '@verdaccio/store';
|
|
4
|
-
declare function addSearchWebApi(
|
|
4
|
+
declare function addSearchWebApi(storage: Storage, auth: IAuth): Router;
|
|
5
5
|
export default addSearchWebApi;
|
package/build/api/search.js
CHANGED
|
@@ -7,15 +7,20 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _debug = _interopRequireDefault(require("debug"));
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _express = require("express");
|
|
11
11
|
|
|
12
12
|
var _core = require("@verdaccio/core");
|
|
13
13
|
|
|
14
|
+
var _store = require("@verdaccio/store");
|
|
15
|
+
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
18
|
const debug = (0, _debug.default)('verdaccio:web:api:search');
|
|
17
19
|
|
|
18
|
-
function addSearchWebApi(
|
|
20
|
+
function addSearchWebApi(storage, auth) {
|
|
21
|
+
const router = (0, _express.Router)();
|
|
22
|
+
/* eslint new-cap: 0 */
|
|
23
|
+
|
|
19
24
|
const getPackageInfo = async function (name, remoteUser) {
|
|
20
25
|
return new Promise((resolve, reject) => {
|
|
21
26
|
debug('searching for %o', name);
|
|
@@ -55,7 +60,7 @@ function addSearchWebApi(route, storage, auth) {
|
|
|
55
60
|
});
|
|
56
61
|
};
|
|
57
62
|
|
|
58
|
-
|
|
63
|
+
router.get('/search/:anything', async function (req, res, next) {
|
|
59
64
|
const results = _store.SearchInstance.query(req.params.anything);
|
|
60
65
|
|
|
61
66
|
debug('search results %o', results);
|
|
@@ -78,6 +83,7 @@ function addSearchWebApi(route, storage, auth) {
|
|
|
78
83
|
next([]);
|
|
79
84
|
}
|
|
80
85
|
});
|
|
86
|
+
return router;
|
|
81
87
|
}
|
|
82
88
|
|
|
83
89
|
var _default = addSearchWebApi;
|
package/build/api/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/search.ts"],"names":["debug","addSearchWebApi","
|
|
1
|
+
{"version":3,"sources":["../../src/api/search.ts"],"names":["debug","addSearchWebApi","storage","auth","router","getPackageInfo","name","remoteUser","Promise","resolve","reject","getPackage","uplinksLook","callback","err","pkg","message","allow_access","packageName","allowed","versions","DIST_TAGS","latest","get","req","res","next","results","SearchInstance","query","params","anything","length","packages","result","ref","remote_user","push"],"mappings":"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","sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { IAuth } from '@verdaccio/auth';\nimport { DIST_TAGS } from '@verdaccio/core';\nimport { SearchInstance } from '@verdaccio/store';\nimport { Storage } from '@verdaccio/store';\nimport { Package } from '@verdaccio/types';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:search');\n\nfunction addSearchWebApi(storage: Storage, auth: IAuth): Router {\n const router = Router(); /* eslint new-cap: 0 */\n const getPackageInfo = async function (name, remoteUser): Promise<any> {\n return new Promise((resolve, reject) => {\n debug('searching for %o', name);\n try {\n // @ts-ignore\n storage.getPackage({\n name,\n uplinksLook: false,\n callback: (err, pkg: Package): void => {\n debug('callback get package err %o', err?.message);\n if (!err && pkg) {\n debug('valid package %o', pkg?.name);\n auth.allow_access(\n { packageName: pkg.name },\n remoteUser,\n function (err, allowed): void {\n debug('is allowed %o', allowed);\n if (err || !allowed) {\n debug('deny access');\n reject(err);\n return;\n }\n debug('access succeed');\n resolve(pkg.versions[pkg[DIST_TAGS].latest]);\n }\n );\n } else {\n reject(err);\n }\n },\n });\n } catch (err: any) {\n reject(err);\n }\n });\n };\n\n router.get(\n '/search/:anything',\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const results = SearchInstance.query(req.params.anything);\n debug('search results %o', results);\n if (results.length > 0) {\n let packages: Package[] = [];\n for (let result of results) {\n try {\n const pkg = await getPackageInfo(result.ref, req.remote_user);\n debug('package found %o', result.ref);\n packages.push(pkg);\n } catch (err: any) {\n debug('search for %o failed err %o', result.ref, err?.message);\n }\n }\n next(packages);\n } else {\n next([]);\n }\n }\n );\n return router;\n}\n\nexport default addSearchWebApi;\n"],"file":"search.js"}
|
package/build/api/sidebar.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '@verdaccio/middleware';
|
|
2
1
|
import { Router } from 'express';
|
|
3
2
|
import { IAuth } from '@verdaccio/auth';
|
|
3
|
+
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';
|
|
4
4
|
import { Storage } from '@verdaccio/store';
|
|
5
5
|
import { Config, Package, Version } from '@verdaccio/types';
|
|
6
6
|
import { AuthorAvatar } from '../utils/web-utils';
|
|
@@ -14,5 +14,5 @@ export declare type PackageExt = Package & {
|
|
|
14
14
|
export declare type $SidebarPackage = Package & {
|
|
15
15
|
latest: Version;
|
|
16
16
|
};
|
|
17
|
-
declare function addSidebarWebApi(
|
|
17
|
+
declare function addSidebarWebApi(config: Config, storage: Storage, auth: IAuth): Router;
|
|
18
18
|
export default addSidebarWebApi;
|
package/build/api/sidebar.js
CHANGED
|
@@ -3,31 +3,31 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "$
|
|
6
|
+
Object.defineProperty(exports, "$NextFunctionVer", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return _middleware.$
|
|
9
|
+
return _middleware.$NextFunctionVer;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "$
|
|
12
|
+
Object.defineProperty(exports, "$RequestExtend", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return _middleware.$
|
|
15
|
+
return _middleware.$RequestExtend;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "$
|
|
18
|
+
Object.defineProperty(exports, "$ResponseExtend", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return _middleware.$
|
|
21
|
+
return _middleware.$ResponseExtend;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
exports.default = void 0;
|
|
25
25
|
|
|
26
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _express = require("express");
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
31
31
|
|
|
32
32
|
var _core = require("@verdaccio/core");
|
|
33
33
|
|
|
@@ -35,17 +35,22 @@ var _middleware = require("@verdaccio/middleware");
|
|
|
35
35
|
|
|
36
36
|
var _tarball = require("@verdaccio/tarball");
|
|
37
37
|
|
|
38
|
+
var _utils = require("@verdaccio/utils");
|
|
39
|
+
|
|
38
40
|
var _webUtils = require("../utils/web-utils");
|
|
39
41
|
|
|
40
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
43
|
|
|
42
44
|
const debug = (0, _debug.default)('verdaccio:web:api:sidebar');
|
|
43
45
|
|
|
44
|
-
function addSidebarWebApi(
|
|
46
|
+
function addSidebarWebApi(config, storage, auth) {
|
|
45
47
|
debug('initialized sidebar web api');
|
|
48
|
+
const router = (0, _express.Router)();
|
|
49
|
+
/* eslint new-cap: 0 */
|
|
50
|
+
|
|
46
51
|
const can = (0, _middleware.allow)(auth); // Get package readme
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
router.get('/sidebar/(@:scope/)?:package', can('access'), function (req, res, next) {
|
|
49
54
|
const packageName = req.params.scope ? (0, _webUtils.addScope)(req.params.scope, req.params.package) : req.params.package;
|
|
50
55
|
storage.getPackage({
|
|
51
56
|
name: packageName,
|
|
@@ -60,7 +65,11 @@ function addSidebarWebApi(route, config, storage, auth) {
|
|
|
60
65
|
|
|
61
66
|
let sideBarInfo = _lodash.default.clone(info);
|
|
62
67
|
|
|
63
|
-
sideBarInfo.versions = (0, _tarball.convertDistRemoteToLocalTarballUrls)(info,
|
|
68
|
+
sideBarInfo.versions = (0, _tarball.convertDistRemoteToLocalTarballUrls)(info, {
|
|
69
|
+
protocol: req.protocol,
|
|
70
|
+
headers: req.headers,
|
|
71
|
+
host: req.hostname
|
|
72
|
+
}, config.url_prefix).versions;
|
|
64
73
|
|
|
65
74
|
if (typeof v === 'string' && (0, _utils.isVersionValid)(info, v)) {
|
|
66
75
|
sideBarInfo.latest = sideBarInfo.versions[v];
|
|
@@ -71,7 +80,7 @@ function addSidebarWebApi(route, config, storage, auth) {
|
|
|
71
80
|
}
|
|
72
81
|
|
|
73
82
|
sideBarInfo = (0, _webUtils.deleteProperties)(['readme', '_attachments', '_rev', 'name'], sideBarInfo);
|
|
74
|
-
const authorAvatar = config.web ? (0,
|
|
83
|
+
const authorAvatar = config.web ? (0, _utils.addGravatarSupport)(sideBarInfo, config.web.gravatar) : (0, _utils.addGravatarSupport)(sideBarInfo);
|
|
75
84
|
next(authorAvatar);
|
|
76
85
|
} else {
|
|
77
86
|
res.status(_core.HTTP_STATUS.NOT_FOUND);
|
|
@@ -80,6 +89,7 @@ function addSidebarWebApi(route, config, storage, auth) {
|
|
|
80
89
|
}
|
|
81
90
|
});
|
|
82
91
|
});
|
|
92
|
+
return router;
|
|
83
93
|
}
|
|
84
94
|
|
|
85
95
|
var _default = addSidebarWebApi;
|