@verdaccio/web 6.0.0-6-next.17 → 6.0.0-6-next.18
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 +11 -0
- package/build/api/package.js +5 -4
- package/build/api/package.js.map +1 -1
- package/package.json +7 -6
- package/src/api/package.ts +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @verdaccio/web
|
|
2
2
|
|
|
3
|
+
## 6.0.0-6-next.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [2c594910]
|
|
8
|
+
- @verdaccio/logger@6.0.0-6-next.5
|
|
9
|
+
- @verdaccio/auth@6.0.0-6-next.12
|
|
10
|
+
- @verdaccio/loaders@6.0.0-6-next.5
|
|
11
|
+
- @verdaccio/middleware@6.0.0-6-next.12
|
|
12
|
+
- @verdaccio/store@6.0.0-6-next.13
|
|
13
|
+
|
|
3
14
|
## 6.0.0-6-next.17
|
|
4
15
|
|
|
5
16
|
### Major Changes
|
package/build/api/package.js
CHANGED
|
@@ -57,7 +57,8 @@ const debug = (0, _debug.default)('verdaccio:web:api:package');
|
|
|
57
57
|
function addPackageWebApi(route, storage, auth, config) {
|
|
58
58
|
var _ref, _config$web;
|
|
59
59
|
|
|
60
|
-
const isLoginEnabled = (_ref = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true) !== null && _ref !== void 0 ? _ref : true;
|
|
60
|
+
const isLoginEnabled = (_ref = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true) !== null && _ref !== void 0 ? _ref : true; // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
61
|
+
|
|
61
62
|
const anonymousRemoteUser = {
|
|
62
63
|
name: undefined,
|
|
63
64
|
real_groups: [],
|
|
@@ -66,13 +67,13 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
66
67
|
debug('initialized package web api');
|
|
67
68
|
|
|
68
69
|
const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
|
|
69
|
-
debug('is login disabled %o', isLoginEnabled);
|
|
70
|
-
const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
|
|
70
|
+
debug('is login disabled %o', isLoginEnabled); // FIXME: this logic does not work, review
|
|
71
|
+
// const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
|
|
71
72
|
|
|
72
73
|
try {
|
|
73
74
|
auth.allow_access({
|
|
74
75
|
packageName: name
|
|
75
|
-
},
|
|
76
|
+
}, remoteUser, (err, allowed) => {
|
|
76
77
|
if (err) {
|
|
77
78
|
resolve(false);
|
|
78
79
|
}
|
package/build/api/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/package.ts"],"names":["getOrder","order","debug","addPackageWebApi","route","storage","auth","config","isLoginEnabled","web","login","anonymousRemoteUser","name","undefined","real_groups","groups","checkAllow","remoteUser","Promise","resolve","reject","
|
|
1
|
+
{"version":3,"sources":["../../src/api/package.ts"],"names":["getOrder","order","debug","addPackageWebApi","route","storage","auth","config","isLoginEnabled","web","login","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","url_prefix","push","logger","error","sort_packages"],"mappings":"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","sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\nimport { formatAuthor } from '@verdaccio/utils';\n\nimport { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '@verdaccio/middleware';\nimport { logger } from '@verdaccio/logger';\nimport { Router } from 'express';\nimport { IAuth } from '@verdaccio/auth';\nimport { Storage } from '@verdaccio/store';\nimport { Config, Package, RemoteUser } from '@verdaccio/types';\n\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport { generateGravatarUrl } from '../utils/user';\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(route: Router, storage: Storage, auth: IAuth, config: Config): void {\n const isLoginEnabled = config?.web?.login === true ?? true;\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 route.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 req,\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}\n\nexport default addPackageWebApi;\n"],"file":"package.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/web",
|
|
3
|
-
"version": "6.0.0-6-next.
|
|
3
|
+
"version": "6.0.0-6-next.18",
|
|
4
4
|
"description": "web ui middleware",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@verdaccio/auth": "6.0.0-6-next.
|
|
28
|
+
"@verdaccio/auth": "6.0.0-6-next.12",
|
|
29
29
|
"@verdaccio/commons-api": "11.0.0-6-next.4",
|
|
30
30
|
"@verdaccio/config": "6.0.0-6-next.8",
|
|
31
|
-
"@verdaccio/loaders": "6.0.0-6-next.
|
|
32
|
-
"@verdaccio/logger": "6.0.0-6-next.
|
|
33
|
-
"@verdaccio/middleware": "6.0.0-6-next.
|
|
31
|
+
"@verdaccio/loaders": "6.0.0-6-next.5",
|
|
32
|
+
"@verdaccio/logger": "6.0.0-6-next.5",
|
|
33
|
+
"@verdaccio/middleware": "6.0.0-6-next.12",
|
|
34
34
|
"@verdaccio/readme": "11.0.0-alpha.3",
|
|
35
|
-
"@verdaccio/store": "6.0.0-6-next.
|
|
35
|
+
"@verdaccio/store": "6.0.0-6-next.13",
|
|
36
36
|
"@verdaccio/tarball": "11.0.0-6-next.7",
|
|
37
37
|
"@verdaccio/url": "11.0.0-6-next.5",
|
|
38
38
|
"@verdaccio/utils": "6.0.0-6-next.6",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"lru-cache": "6.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
+
"@types/node": "16.9.1",
|
|
47
48
|
"@verdaccio/types": "11.0.0-6-next.8",
|
|
48
49
|
"body-parser": "1.19.0",
|
|
49
50
|
"node-html-parser": "4.1.4",
|
package/src/api/package.ts
CHANGED
|
@@ -25,6 +25,7 @@ const debug = buildDebug('verdaccio:web:api:package');
|
|
|
25
25
|
|
|
26
26
|
function addPackageWebApi(route: Router, storage: Storage, auth: IAuth, config: Config): void {
|
|
27
27
|
const isLoginEnabled = config?.web?.login === true ?? true;
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
29
|
const anonymousRemoteUser: RemoteUser = {
|
|
29
30
|
name: undefined,
|
|
30
31
|
real_groups: [],
|
|
@@ -35,9 +36,10 @@ function addPackageWebApi(route: Router, storage: Storage, auth: IAuth, config:
|
|
|
35
36
|
const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>
|
|
36
37
|
new Promise((resolve, reject): void => {
|
|
37
38
|
debug('is login disabled %o', isLoginEnabled);
|
|
38
|
-
|
|
39
|
+
// FIXME: this logic does not work, review
|
|
40
|
+
// const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;
|
|
39
41
|
try {
|
|
40
|
-
auth.allow_access({ packageName: name },
|
|
42
|
+
auth.allow_access({ packageName: name }, remoteUser, (err, allowed): void => {
|
|
41
43
|
if (err) {
|
|
42
44
|
resolve(false);
|
|
43
45
|
}
|