@verdaccio/api 6.0.0-6-next.12 → 6.0.0-6-next.16
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 +100 -0
- package/build/dist-tags.d.ts +2 -2
- package/build/dist-tags.js +8 -8
- package/build/dist-tags.js.map +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +12 -13
- package/build/index.js.map +1 -1
- package/build/package.d.ts +2 -2
- package/build/package.js +6 -6
- package/build/package.js.map +1 -1
- package/build/publish.d.ts +7 -7
- package/build/publish.js +24 -22
- package/build/publish.js.map +1 -1
- package/build/search.d.ts +1 -1
- package/build/search.js +9 -102
- package/build/search.js.map +1 -1
- package/build/star.d.ts +2 -2
- package/build/star.js +6 -5
- package/build/star.js.map +1 -1
- package/build/stars.d.ts +2 -2
- package/build/stars.js +3 -3
- package/build/stars.js.map +1 -1
- package/build/user.js +12 -12
- package/build/user.js.map +1 -1
- package/build/v1/profile.js +10 -10
- package/build/v1/profile.js.map +1 -1
- package/build/v1/search.d.ts +9 -1
- package/build/v1/search.js +71 -88
- package/build/v1/search.js.map +1 -1
- package/build/v1/token.d.ts +2 -2
- package/build/v1/token.js +12 -12
- package/build/v1/token.js.map +1 -1
- package/build/whoami.js +0 -1
- package/build/whoami.js.map +1 -1
- package/package.json +16 -13
- package/src/dist-tags.ts +10 -10
- package/src/index.ts +12 -11
- package/src/package.ts +5 -10
- package/src/publish.ts +28 -19
- package/src/search.ts +9 -100
- package/src/star.ts +4 -3
- package/src/stars.ts +3 -3
- package/src/user.ts +7 -7
- package/src/v1/profile.ts +7 -7
- package/src/v1/search.ts +64 -89
- package/src/v1/token.ts +13 -18
- package/src/whoami.ts +0 -1
- package/test/integration/_helper.ts +3 -2
- package/test/integration/package.spec.ts +3 -3
- package/test/integration/ping.spec.ts +1 -1
- package/test/integration/publish.spec.ts +3 -8
- package/test/integration/user.spec.ts +6 -8
- package/test/integration/whoami.spec.ts +1 -1
- package/test/unit/publish.spec.ts +11 -15
- package/tsconfig.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,105 @@
|
|
|
1
1
|
# @verdaccio/api
|
|
2
2
|
|
|
3
|
+
## 6.0.0-6-next.16
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 794af76c: Remove Node 12 support
|
|
8
|
+
|
|
9
|
+
- We need move to the new `undici` and does not support Node.js 12
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- b702ea36: abort search request support for proxy
|
|
14
|
+
- 154b2ecd: refactor: remove @verdaccio/commons-api in favor @verdaccio/core and remove duplications
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [794af76c]
|
|
19
|
+
- Updated dependencies [b702ea36]
|
|
20
|
+
- Updated dependencies [154b2ecd]
|
|
21
|
+
- @verdaccio/auth@6.0.0-6-next.13
|
|
22
|
+
- @verdaccio/config@6.0.0-6-next.9
|
|
23
|
+
- @verdaccio/core@6.0.0-6-next.2
|
|
24
|
+
- @verdaccio/tarball@11.0.0-6-next.8
|
|
25
|
+
- @verdaccio/hooks@6.0.0-6-next.8
|
|
26
|
+
- @verdaccio/logger@6.0.0-6-next.6
|
|
27
|
+
- @verdaccio/middleware@6.0.0-6-next.13
|
|
28
|
+
- @verdaccio/store@6.0.0-6-next.14
|
|
29
|
+
- @verdaccio/utils@6.0.0-6-next.7
|
|
30
|
+
|
|
31
|
+
## 6.0.0-6-next.15
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Updated dependencies [2c594910]
|
|
36
|
+
- @verdaccio/logger@6.0.0-6-next.5
|
|
37
|
+
- @verdaccio/auth@6.0.0-6-next.12
|
|
38
|
+
- @verdaccio/hooks@6.0.0-6-next.7
|
|
39
|
+
- @verdaccio/middleware@6.0.0-6-next.12
|
|
40
|
+
- @verdaccio/store@6.0.0-6-next.13
|
|
41
|
+
|
|
42
|
+
## 6.0.0-6-next.14
|
|
43
|
+
|
|
44
|
+
### Major Changes
|
|
45
|
+
|
|
46
|
+
- 459b6fa7: refactor: search v1 endpoint and local-database
|
|
47
|
+
|
|
48
|
+
- refactor search `api v1` endpoint, improve performance
|
|
49
|
+
- remove usage of `async` dependency https://github.com/verdaccio/verdaccio/issues/1225
|
|
50
|
+
- refactor method storage class
|
|
51
|
+
- create new module `core` to reduce the ammount of modules with utilities
|
|
52
|
+
- use `undici` instead `node-fetch`
|
|
53
|
+
- use `fastify` instead `express` for functional test
|
|
54
|
+
|
|
55
|
+
### Breaking changes
|
|
56
|
+
|
|
57
|
+
- plugin storage API changes
|
|
58
|
+
- remove old search endpoint (return 404)
|
|
59
|
+
- filter local private packages at plugin level
|
|
60
|
+
|
|
61
|
+
The storage api changes for methods `get`, `add`, `remove` as promise base. The `search` methods also changes and recieves a `query` object that contains all query params from the client.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
export interface IPluginStorage<T> extends IPlugin {
|
|
65
|
+
add(name: string): Promise<void>;
|
|
66
|
+
remove(name: string): Promise<void>;
|
|
67
|
+
get(): Promise<any>;
|
|
68
|
+
init(): Promise<void>;
|
|
69
|
+
getSecret(): Promise<string>;
|
|
70
|
+
setSecret(secret: string): Promise<any>;
|
|
71
|
+
getPackageStorage(packageInfo: string): IPackageStorage;
|
|
72
|
+
search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]>;
|
|
73
|
+
saveToken(token: Token): Promise<any>;
|
|
74
|
+
deleteToken(user: string, tokenKey: string): Promise<any>;
|
|
75
|
+
readTokens(filter: TokenFilter): Promise<Token[]>;
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Patch Changes
|
|
80
|
+
|
|
81
|
+
- Updated dependencies [459b6fa7]
|
|
82
|
+
- @verdaccio/auth@6.0.0-6-next.11
|
|
83
|
+
- @verdaccio/config@6.0.0-6-next.8
|
|
84
|
+
- @verdaccio/commons-api@11.0.0-6-next.4
|
|
85
|
+
- @verdaccio/core@6.0.0-6-next.1
|
|
86
|
+
- @verdaccio/hooks@6.0.0-6-next.6
|
|
87
|
+
- @verdaccio/store@6.0.0-6-next.12
|
|
88
|
+
- @verdaccio/utils@6.0.0-6-next.6
|
|
89
|
+
- @verdaccio/middleware@6.0.0-6-next.11
|
|
90
|
+
- @verdaccio/tarball@11.0.0-6-next.7
|
|
91
|
+
- @verdaccio/logger@6.0.0-6-next.4
|
|
92
|
+
|
|
93
|
+
## 6.0.0-6-next.13
|
|
94
|
+
|
|
95
|
+
### Patch Changes
|
|
96
|
+
|
|
97
|
+
- Updated dependencies [df0da3d6]
|
|
98
|
+
- @verdaccio/hooks@6.0.0-6-next.5
|
|
99
|
+
- @verdaccio/auth@6.0.0-6-next.10
|
|
100
|
+
- @verdaccio/store@6.0.0-6-next.11
|
|
101
|
+
- @verdaccio/middleware@6.0.0-6-next.10
|
|
102
|
+
|
|
3
103
|
## 6.0.0-6-next.12
|
|
4
104
|
|
|
5
105
|
### Patch Changes
|
package/build/dist-tags.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import {
|
|
2
|
+
import { Storage } from '@verdaccio/store';
|
|
3
3
|
import { IAuth } from '@verdaccio/auth';
|
|
4
|
-
export default function (route: Router, auth: IAuth, storage:
|
|
4
|
+
export default function (route: Router, auth: IAuth, storage: Storage): void;
|
package/build/dist-tags.js
CHANGED
|
@@ -11,7 +11,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
11
11
|
|
|
12
12
|
var _middleware = require("@verdaccio/middleware");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _core = require("@verdaccio/core");
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
@@ -30,9 +30,9 @@ function _default(route, auth, storage) {
|
|
|
30
30
|
return next(err);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
res.status(
|
|
33
|
+
res.status(_core.constants.HTTP_STATUS.CREATED);
|
|
34
34
|
return next({
|
|
35
|
-
ok:
|
|
35
|
+
ok: _core.constants.API_MESSAGE.TAG_ADDED
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
}; // tagging a package.
|
|
@@ -49,9 +49,9 @@ function _default(route, auth, storage) {
|
|
|
49
49
|
return next(err);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
res.status(
|
|
52
|
+
res.status(_core.constants.HTTP_STATUS.CREATED);
|
|
53
53
|
return next({
|
|
54
|
-
ok:
|
|
54
|
+
ok: _core.constants.API_MESSAGE.TAG_REMOVED
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
57
|
});
|
|
@@ -65,7 +65,7 @@ function _default(route, auth, storage) {
|
|
|
65
65
|
return next(err);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
next(info[
|
|
68
|
+
next(info[_core.constants.DIST_TAGS]);
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
});
|
|
@@ -75,9 +75,9 @@ function _default(route, auth, storage) {
|
|
|
75
75
|
return next(err);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
res.status(
|
|
78
|
+
res.status(_core.constants.HTTP_STATUS.CREATED);
|
|
79
79
|
return next({
|
|
80
|
-
ok:
|
|
80
|
+
ok: _core.constants.API_MESSAGE.TAG_UPDATED
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
83
|
});
|
package/build/dist-tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dist-tags.ts"],"names":["route","auth","storage","can","tag_package_version","req","res","next","_","isString","body","tags","params","tag","mergeTags","package","err","status","HTTP_STATUS","CREATED","ok","API_MESSAGE","TAG_ADDED","put","mime","getType","post","delete","TAG_REMOVED","get","getPackage","name","uplinksLook","callback","info","DIST_TAGS","TAG_UPDATED"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;AACA;;;;AAMe,kBAAUA,KAAV,EAAyBC,IAAzB,EAAsCC,OAAtC,
|
|
1
|
+
{"version":3,"sources":["../src/dist-tags.ts"],"names":["route","auth","storage","can","tag_package_version","req","res","next","_","isString","body","tags","params","tag","mergeTags","package","err","status","constants","HTTP_STATUS","CREATED","ok","API_MESSAGE","TAG_ADDED","put","mime","getType","post","delete","TAG_REMOVED","get","getPackage","name","uplinksLook","callback","info","DIST_TAGS","TAG_UPDATED"],"mappings":"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","sourcesContent":["import mime from 'mime';\nimport _ from 'lodash';\nimport { Router } from 'express';\n\nimport { media, allow } from '@verdaccio/middleware';\nimport { constants, VerdaccioError } from '@verdaccio/core';\nimport { Package } from '@verdaccio/types';\nimport { Storage } from '@verdaccio/store';\nimport { IAuth } from '@verdaccio/auth';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router, auth: IAuth, storage: Storage): void {\n const can = allow(auth);\n const tag_package_version = function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): $NextFunctionVer {\n if (_.isString(req.body) === false) {\n return next('route');\n }\n\n const tags = {};\n tags[req.params.tag] = req.body;\n storage.mergeTags(req.params.package, tags, function (err: Error): $NextFunctionVer {\n if (err) {\n return next(err);\n }\n res.status(constants.HTTP_STATUS.CREATED);\n return next({ ok: constants.API_MESSAGE.TAG_ADDED });\n });\n };\n\n // tagging a package.\n route.put('/:package/:tag', can('publish'), media(mime.getType('json')), tag_package_version);\n\n route.post(\n '/-/package/:package/dist-tags/:tag',\n can('publish'),\n media(mime.getType('json')),\n tag_package_version\n );\n\n route.put(\n '/-/package/:package/dist-tags/:tag',\n can('publish'),\n media(mime.getType('json')),\n tag_package_version\n );\n\n route.delete(\n '/-/package/:package/dist-tags/:tag',\n can('publish'),\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n const tags = {};\n tags[req.params.tag] = null;\n storage.mergeTags(req.params.package, tags, function (err: VerdaccioError): $NextFunctionVer {\n if (err) {\n return next(err);\n }\n res.status(constants.HTTP_STATUS.CREATED);\n return next({\n ok: constants.API_MESSAGE.TAG_REMOVED,\n });\n });\n }\n );\n\n route.get(\n '/-/package/:package/dist-tags',\n can('access'),\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n storage.getPackage({\n name: req.params.package,\n uplinksLook: true,\n req,\n callback: function (err: VerdaccioError, info: Package): $NextFunctionVer {\n if (err) {\n return next(err);\n }\n\n next(info[constants.DIST_TAGS]);\n },\n });\n }\n );\n\n route.post(\n '/-/package/:package/dist-tags',\n can('publish'),\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n storage.mergeTags(\n req.params.package,\n req.body,\n function (err: VerdaccioError): $NextFunctionVer {\n if (err) {\n return next(err);\n }\n res.status(constants.HTTP_STATUS.CREATED);\n return next({\n ok: constants.API_MESSAGE.TAG_UPDATED,\n });\n }\n );\n }\n );\n}\n"],"file":"dist-tags.js"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { IAuth } from '@verdaccio/auth';
|
|
3
|
-
import {
|
|
3
|
+
import { Storage } from '@verdaccio/store';
|
|
4
4
|
import { Config } from '@verdaccio/types';
|
|
5
|
-
export default function (config: Config, auth: IAuth, storage:
|
|
5
|
+
export default function (config: Config, auth: IAuth, storage: Storage): Router;
|
package/build/index.js
CHANGED
|
@@ -11,6 +11,8 @@ var _middleware = require("@verdaccio/middleware");
|
|
|
11
11
|
|
|
12
12
|
var _bodyParser = _interopRequireDefault(require("body-parser"));
|
|
13
13
|
|
|
14
|
+
var _semver = _interopRequireDefault(require("semver"));
|
|
15
|
+
|
|
14
16
|
var _whoami = _interopRequireDefault(require("./whoami"));
|
|
15
17
|
|
|
16
18
|
var _ping = _interopRequireDefault(require("./ping"));
|
|
@@ -35,9 +37,11 @@ var _search2 = _interopRequireDefault(require("./v1/search"));
|
|
|
35
37
|
|
|
36
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
if (_semver.default.lte(process.version, 'v15.0.0')) {
|
|
41
|
+
global.AbortController = require('abortcontroller-polyfill/dist/cjs-ponyfill').AbortController;
|
|
42
|
+
}
|
|
40
43
|
|
|
44
|
+
function _default(config, auth, storage) {
|
|
41
45
|
/* eslint new-cap:off */
|
|
42
46
|
const app = _express.default.Router();
|
|
43
47
|
/* eslint new-cap:off */
|
|
@@ -68,22 +72,17 @@ function _default(config, auth, storage) {
|
|
|
68
72
|
|
|
69
73
|
(0, _whoami.default)(app);
|
|
70
74
|
(0, _package.default)(app, auth, storage, config);
|
|
71
|
-
(0, _profile.default)(app, auth);
|
|
72
|
-
|
|
75
|
+
(0, _profile.default)(app, auth); // @deprecated endpoint, 404 by default
|
|
76
|
+
|
|
77
|
+
(0, _search.default)(app);
|
|
73
78
|
(0, _user.default)(app, auth, config);
|
|
74
79
|
(0, _distTags.default)(app, auth, storage);
|
|
75
80
|
(0, _publish.default)(app, auth, storage, config);
|
|
76
81
|
(0, _ping.default)(app);
|
|
77
|
-
(0, _stars.default)(app, storage);
|
|
78
|
-
|
|
79
|
-
if ((config === null || config === void 0 ? void 0 : (_config$flags = config.flags) === null || _config$flags === void 0 ? void 0 : _config$flags.search) === true) {
|
|
80
|
-
(0, _search2.default)(app, auth, storage);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if ((config === null || config === void 0 ? void 0 : (_config$flags2 = config.flags) === null || _config$flags2 === void 0 ? void 0 : _config$flags2.token) === true) {
|
|
84
|
-
(0, _token.default)(app, auth, storage, config);
|
|
85
|
-
}
|
|
82
|
+
(0, _stars.default)(app, storage); // @ts-ignore
|
|
86
83
|
|
|
84
|
+
(0, _search2.default)(app, auth, storage);
|
|
85
|
+
(0, _token.default)(app, auth, storage, config);
|
|
87
86
|
return app;
|
|
88
87
|
}
|
|
89
88
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["config","auth","storage","app","express","Router","param","validatePackage","validateName","use","apiJWTmiddleware","bodyParser","json","strict","limit","max_body_size","encodeScopePackage"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["semver","lte","process","version","global","AbortController","require","config","auth","storage","app","express","Router","param","validatePackage","validateName","use","apiJWTmiddleware","bodyParser","json","strict","limit","max_body_size","encodeScopePackage"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAIA,gBAAOC,GAAP,CAAWC,OAAO,CAACC,OAAnB,EAA4B,SAA5B,CAAJ,EAA4C;AAC1CC,EAAAA,MAAM,CAACC,eAAP,GAAyBC,OAAO,CAAC,4CAAD,CAAP,CAAsDD,eAA/E;AACD;;AAEc,kBAAUE,MAAV,EAA0BC,IAA1B,EAAuCC,OAAvC,EAAiE;AAC9E;AACA,QAAMC,GAAG,GAAGC,iBAAQC,MAAR,EAAZ;AACA;AAEA;AACA;;;AACAF,EAAAA,GAAG,CAACG,KAAJ,CAAU,SAAV,EAAqBC,2BAArB;AACAJ,EAAAA,GAAG,CAACG,KAAJ,CAAU,UAAV,EAAsBE,wBAAtB;AACAL,EAAAA,GAAG,CAACG,KAAJ,CAAU,KAAV,EAAiBE,wBAAjB;AACAL,EAAAA,GAAG,CAACG,KAAJ,CAAU,SAAV,EAAqBE,wBAArB;AACAL,EAAAA,GAAG,CAACG,KAAJ,CAAU,UAAV,EAAsBE,wBAAtB;AACAL,EAAAA,GAAG,CAACG,KAAJ,CAAU,OAAV,EAAmBE,wBAAnB,EAZ8E,CAc9E;AACA;;AACAL,EAAAA,GAAG,CAACG,KAAJ,CAAU,MAAV,EAAkB,uBAAM,QAAN,CAAlB;AACAH,EAAAA,GAAG,CAACG,KAAJ,CAAU,kBAAV,EAA8B,uBAAM,sBAAN,CAA9B;AACAH,EAAAA,GAAG,CAACG,KAAJ,CAAU,UAAV,EAAsB,uBAAM,IAAN,CAAtB;AACAH,EAAAA,GAAG,CAACM,GAAJ,CAAQR,IAAI,CAACS,gBAAL,EAAR;AACAP,EAAAA,GAAG,CAACM,GAAJ,CAAQE,oBAAWC,IAAX,CAAgB;AAAEC,IAAAA,MAAM,EAAE,KAAV;AAAiBC,IAAAA,KAAK,EAAEd,MAAM,CAACe,aAAP,IAAwB;AAAhD,GAAhB,CAAR,EApB8E,CAqB9E;;AACAZ,EAAAA,GAAG,CAACM,GAAJ,CAAQ,0BAAST,MAAT,CAAR,EAtB8E,CAuB9E;;AACAG,EAAAA,GAAG,CAACM,GAAJ,CAAQO,8BAAR,EAxB8E,CAyB9E;;AACA,uBAAOb,GAAP;AACA,wBAAIA,GAAJ,EAASF,IAAT,EAAeC,OAAf,EAAwBF,MAAxB;AACA,wBAAQG,GAAR,EAAaF,IAAb,EA5B8E,CA6B9E;;AACA,uBAAOE,GAAP;AACA,qBAAKA,GAAL,EAAUF,IAAV,EAAgBD,MAAhB;AACA,yBAASG,GAAT,EAAcF,IAAd,EAAoBC,OAApB;AACA,wBAAQC,GAAR,EAAaF,IAAb,EAAmBC,OAAnB,EAA4BF,MAA5B;AACA,qBAAKG,GAAL;AACA,sBAAMA,GAAN,EAAWD,OAAX,EAnC8E,CAoC9E;;AACA,wBAASC,GAAT,EAAcF,IAAd,EAAoBC,OAApB;AACA,sBAAMC,GAAN,EAAWF,IAAX,EAAiBC,OAAjB,EAA0BF,MAA1B;AACA,SAAOG,GAAP;AACD","sourcesContent":["import express, { Router } from 'express';\nimport {\n match,\n validateName,\n validatePackage,\n encodeScopePackage,\n antiLoop,\n} from '@verdaccio/middleware';\nimport { IAuth } from '@verdaccio/auth';\nimport { Storage } from '@verdaccio/store';\nimport { Config } from '@verdaccio/types';\nimport bodyParser from 'body-parser';\nimport semver from 'semver';\n\nimport whoami from './whoami';\nimport ping from './ping';\nimport user from './user';\nimport distTags from './dist-tags';\nimport publish from './publish';\nimport search from './search';\nimport pkg from './package';\nimport stars from './stars';\nimport profile from './v1/profile';\nimport token from './v1/token';\nimport v1Search from './v1/search';\n\nif (semver.lte(process.version, 'v15.0.0')) {\n global.AbortController = require('abortcontroller-polyfill/dist/cjs-ponyfill').AbortController;\n}\n\nexport default function (config: Config, auth: IAuth, storage: Storage): Router {\n /* eslint new-cap:off */\n const app = express.Router();\n /* eslint new-cap:off */\n\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble\n app.param('package', validatePackage);\n app.param('filename', validateName);\n app.param('tag', validateName);\n app.param('version', validateName);\n app.param('revision', validateName);\n app.param('token', validateName);\n\n // these can't be safely put into express url for some reason\n // TODO: For some reason? what reason?\n app.param('_rev', match(/^-rev$/));\n app.param('org_couchdb_user', match(/^org\\.couchdb\\.user:/));\n app.param('anything', match(/.*/));\n app.use(auth.apiJWTmiddleware());\n app.use(bodyParser.json({ strict: false, limit: config.max_body_size || '10mb' }));\n // @ts-ignore\n app.use(antiLoop(config));\n // encode / in a scoped package name to be matched as a single parameter in routes\n app.use(encodeScopePackage);\n // for \"npm whoami\"\n whoami(app);\n pkg(app, auth, storage, config);\n profile(app, auth);\n // @deprecated endpoint, 404 by default\n search(app);\n user(app, auth, config);\n distTags(app, auth, storage);\n publish(app, auth, storage, config);\n ping(app);\n stars(app, storage);\n // @ts-ignore\n v1Search(app, auth, storage);\n token(app, auth, storage, config);\n return app;\n}\n"],"file":"index.js"}
|
package/build/package.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { Config } from '@verdaccio/types';
|
|
3
3
|
import { IAuth } from '@verdaccio/auth';
|
|
4
|
-
import {
|
|
5
|
-
export default function (route: Router, auth: IAuth, storage:
|
|
4
|
+
import { Storage } from '@verdaccio/store';
|
|
5
|
+
export default function (route: Router, auth: IAuth, storage: Storage, config: Config): void;
|
package/build/package.js
CHANGED
|
@@ -13,7 +13,7 @@ var _middleware = require("@verdaccio/middleware");
|
|
|
13
13
|
|
|
14
14
|
var _utils = require("@verdaccio/utils");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _core = require("@verdaccio/core");
|
|
17
17
|
|
|
18
18
|
var _tarball = require("@verdaccio/tarball");
|
|
19
19
|
|
|
@@ -29,7 +29,7 @@ const downloadStream = (packageName, filename, storage, req, res) => {
|
|
|
29
29
|
stream.on('error', function (err) {
|
|
30
30
|
return res.locals.report_error(err);
|
|
31
31
|
});
|
|
32
|
-
res.header(
|
|
32
|
+
res.header(_core.HEADERS.CONTENT_TYPE, _core.HEADERS.OCTET_STREAM);
|
|
33
33
|
stream.pipe(res);
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -64,9 +64,9 @@ function _default(route, auth, storage, config) {
|
|
|
64
64
|
return next(version);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
if (_lodash.default.isNil(metadata[
|
|
68
|
-
if (_lodash.default.isNil(metadata[
|
|
69
|
-
queryVersion = metadata[
|
|
67
|
+
if (_lodash.default.isNil(metadata[_core.DIST_TAGS]) === false) {
|
|
68
|
+
if (_lodash.default.isNil(metadata[_core.DIST_TAGS][queryVersion]) === false) {
|
|
69
|
+
queryVersion = metadata[_core.DIST_TAGS][queryVersion];
|
|
70
70
|
debug('dist-tag version found %o', queryVersion);
|
|
71
71
|
version = (0, _utils.getVersion)(metadata, queryVersion);
|
|
72
72
|
|
|
@@ -80,7 +80,7 @@ function _default(route, auth, storage, config) {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
debug('package version not found %o', queryVersion);
|
|
83
|
-
return next(
|
|
83
|
+
return next(_core.errorUtils.getNotFound(`${_core.API_ERROR.VERSION_NOT_EXIST}: ${queryVersion}`));
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
debug('get package name %o', name);
|
package/build/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/package.ts"],"names":["debug","downloadStream","packageName","filename","storage","req","res","stream","getTarball","on","content","header","err","locals","report_error","HEADERS","CONTENT_TYPE","OCTET_STREAM","pipe","route","auth","config","can","get","next","name","params","package","getPackageMetaCallback","metadata","message","url_prefix","queryVersion","version","_","isNil","DIST_TAGS","
|
|
1
|
+
{"version":3,"sources":["../src/package.ts"],"names":["debug","downloadStream","packageName","filename","storage","req","res","stream","getTarball","on","content","header","err","locals","report_error","HEADERS","CONTENT_TYPE","OCTET_STREAM","pipe","route","auth","config","can","get","next","name","params","package","getPackageMetaCallback","metadata","message","url_prefix","queryVersion","version","_","isNil","DIST_TAGS","errorUtils","getNotFound","API_ERROR","VERSION_NOT_EXIST","getPackage","uplinksLook","callback","scopedPackage"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport { Router } from 'express';\nimport buildDebug from 'debug';\n\nimport { allow } from '@verdaccio/middleware';\nimport { getVersion } from '@verdaccio/utils';\nimport { HEADERS, DIST_TAGS, API_ERROR, errorUtils } from '@verdaccio/core';\nimport { Config, Package } from '@verdaccio/types';\nimport { IAuth } from '@verdaccio/auth';\nimport { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:package');\n\nconst downloadStream = (\n packageName: string,\n filename: string,\n storage: any,\n req: $RequestExtend,\n res: $ResponseExtend\n): void => {\n const stream = storage.getTarball(packageName, filename);\n\n stream.on('content-length', function (content): void {\n res.header('Content-Length', content);\n });\n\n stream.on('error', function (err): void {\n return res.locals.report_error(err);\n });\n\n res.header(HEADERS.CONTENT_TYPE, HEADERS.OCTET_STREAM);\n stream.pipe(res);\n};\n\nexport default function (route: Router, auth: IAuth, storage: Storage, config: Config): void {\n const can = allow(auth);\n // TODO: anonymous user?\n route.get(\n '/:package/:version?',\n can('access'),\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n debug('init package by version');\n const name = req.params.package;\n const getPackageMetaCallback = function (err, metadata: Package): void {\n if (err) {\n debug('error on fetch metadata for %o with error %o', name, err.message);\n return next(err);\n }\n debug('convert dist remote to local with prefix %o', config?.url_prefix);\n metadata = convertDistRemoteToLocalTarballUrls(metadata, req, config?.url_prefix);\n\n let queryVersion = req.params.version;\n debug('query by param version: %o', queryVersion);\n if (_.isNil(queryVersion)) {\n debug('param %o version found', queryVersion);\n return next(metadata);\n }\n\n let version = getVersion(metadata, queryVersion);\n debug('query by latest version %o and result %o', queryVersion, version);\n if (_.isNil(version) === false) {\n debug('latest version found %o', version);\n return next(version);\n }\n\n if (_.isNil(metadata[DIST_TAGS]) === false) {\n if (_.isNil(metadata[DIST_TAGS][queryVersion]) === false) {\n queryVersion = metadata[DIST_TAGS][queryVersion];\n debug('dist-tag version found %o', queryVersion);\n version = getVersion(metadata, queryVersion);\n if (_.isNil(version) === false) {\n debug('dist-tag found %o', version);\n return next(version);\n }\n }\n } else {\n debug('dist tag not detected');\n }\n\n debug('package version not found %o', queryVersion);\n return next(errorUtils.getNotFound(`${API_ERROR.VERSION_NOT_EXIST}: ${queryVersion}`));\n };\n\n debug('get package name %o', name);\n debug('uplinks look up enabled');\n storage.getPackage({\n name,\n uplinksLook: true,\n req,\n callback: getPackageMetaCallback,\n });\n }\n );\n\n route.get(\n '/:scopedPackage/-/:scope/:filename',\n can('access'),\n function (req: $RequestExtend, res: $ResponseExtend): void {\n const { scopedPackage, filename } = req.params;\n\n downloadStream(scopedPackage, filename, storage, req, res);\n }\n );\n\n route.get(\n '/:package/-/:filename',\n can('access'),\n function (req: $RequestExtend, res: $ResponseExtend): void {\n downloadStream(req.params.package, req.params.filename, storage, req, res);\n }\n );\n}\n"],"file":"package.js"}
|
package/build/publish.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { Config } from '@verdaccio/types';
|
|
3
3
|
import { IAuth } from '@verdaccio/auth';
|
|
4
|
-
import {
|
|
4
|
+
import { Storage } from '@verdaccio/store';
|
|
5
5
|
import { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '../types/custom';
|
|
6
|
-
export default function publish(router: Router, auth: IAuth, storage:
|
|
6
|
+
export default function publish(router: Router, auth: IAuth, storage: Storage, config: Config): void;
|
|
7
7
|
/**
|
|
8
8
|
* Publish a package
|
|
9
9
|
*/
|
|
10
|
-
export declare function publishPackage(storage:
|
|
10
|
+
export declare function publishPackage(storage: Storage, config: Config, auth: IAuth): any;
|
|
11
11
|
/**
|
|
12
12
|
* un-publish a package
|
|
13
13
|
*/
|
|
14
|
-
export declare function unPublishPackage(storage:
|
|
14
|
+
export declare function unPublishPackage(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => Promise<any>;
|
|
15
15
|
/**
|
|
16
16
|
* Delete tarball
|
|
17
17
|
*/
|
|
18
|
-
export declare function removeTarball(storage:
|
|
18
|
+
export declare function removeTarball(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
|
|
19
19
|
/**
|
|
20
20
|
* Adds a new version
|
|
21
21
|
*/
|
|
22
|
-
export declare function addVersion(storage:
|
|
22
|
+
export declare function addVersion(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
|
|
23
23
|
/**
|
|
24
24
|
* uploadPackageTarball
|
|
25
25
|
*/
|
|
26
|
-
export declare function uploadPackageTarball(storage:
|
|
26
|
+
export declare function uploadPackageTarball(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
|
package/build/publish.js
CHANGED
|
@@ -18,7 +18,7 @@ var _mime = _interopRequireDefault(require("mime"));
|
|
|
18
18
|
|
|
19
19
|
var _debug = _interopRequireDefault(require("debug"));
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _core = require("@verdaccio/core");
|
|
22
22
|
|
|
23
23
|
var _utils = require("@verdaccio/utils");
|
|
24
24
|
|
|
@@ -123,7 +123,7 @@ function publish(router, auth, storage, config) {
|
|
|
123
123
|
|
|
124
124
|
router.delete('/:package/-/:filename/-rev/:revision', can('unpublish'), can('publish'), removeTarball(storage)); // uploading package tarball
|
|
125
125
|
|
|
126
|
-
router.put('/:package/-/:filename/*', can('publish'), (0, _middleware.media)(
|
|
126
|
+
router.put('/:package/-/:filename/*', can('publish'), (0, _middleware.media)(_core.HEADERS.OCTET_STREAM), uploadPackageTarball(storage)); // adding a version
|
|
127
127
|
|
|
128
128
|
router.put('/:package/:version/-tag/:tag', can('publish'), (0, _middleware.media)(_mime.default.getType('json')), _middleware.expectJson, addVersion(storage));
|
|
129
129
|
}
|
|
@@ -194,7 +194,7 @@ function publishPackage(storage, config, auth) {
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
debug('no_attachments: after change success');
|
|
197
|
-
res.status(
|
|
197
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
198
198
|
return next({
|
|
199
199
|
ok: okMessage,
|
|
200
200
|
success: true
|
|
@@ -217,10 +217,10 @@ function publishPackage(storage, config, auth) {
|
|
|
217
217
|
packageName
|
|
218
218
|
}, `wrong package format on publish a package @{packageName}`);
|
|
219
219
|
|
|
220
|
-
return next(
|
|
220
|
+
return next(_core.errorUtils.getBadRequest(_core.API_ERROR.UNSUPORTED_REGISTRY_CALL));
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
if (error && error.status !==
|
|
223
|
+
if (error && error.status !== _core.HTTP_STATUS.CONFLICT) {
|
|
224
224
|
debug('error on change or update a package with %o', error.message);
|
|
225
225
|
return next(error);
|
|
226
226
|
} // at this point document is either created or existed before
|
|
@@ -243,7 +243,7 @@ function publishPackage(storage, config, auth) {
|
|
|
243
243
|
return next(error);
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
-
addTags(metadataCopy[
|
|
246
|
+
addTags(metadataCopy[_core.DIST_TAGS], async function (error) {
|
|
247
247
|
if (error) {
|
|
248
248
|
debug('error on create a tag for %o with error %o', packageName, error.message);
|
|
249
249
|
return next(error);
|
|
@@ -260,7 +260,7 @@ function publishPackage(storage, config, auth) {
|
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
debug('add a tag succesfully for %o', `${metadataCopy.name}@${versionToPublish}`);
|
|
263
|
-
res.status(
|
|
263
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
264
264
|
return next({
|
|
265
265
|
ok: okMessage,
|
|
266
266
|
success: true
|
|
@@ -296,14 +296,14 @@ function publishPackage(storage, config, auth) {
|
|
|
296
296
|
|
|
297
297
|
debug('update a package');
|
|
298
298
|
storage.changePackage(packageName, metadata, req.params.revision, function (error) {
|
|
299
|
-
afterChange(error,
|
|
299
|
+
afterChange(error, _core.API_MESSAGE.PKG_CHANGED, metadata);
|
|
300
300
|
});
|
|
301
301
|
});
|
|
302
302
|
} else {
|
|
303
303
|
debug('adding a new version for the package %o', packageName);
|
|
304
304
|
storage.addPackage(packageName, metadata, function (error) {
|
|
305
305
|
debug('package metadata updated %o', metadata);
|
|
306
|
-
afterChange(error,
|
|
306
|
+
afterChange(error, _core.API_MESSAGE.PKG_CREATED, metadata);
|
|
307
307
|
});
|
|
308
308
|
}
|
|
309
309
|
} catch (error) {
|
|
@@ -313,7 +313,7 @@ function publishPackage(storage, config, auth) {
|
|
|
313
313
|
packageName
|
|
314
314
|
}, 'error on publish, bad package data for @{packageName}');
|
|
315
315
|
|
|
316
|
-
return next(
|
|
316
|
+
return next(_core.errorUtils.getBadData(_core.API_ERROR.BAD_PACKAGE_DATA));
|
|
317
317
|
}
|
|
318
318
|
};
|
|
319
319
|
}
|
|
@@ -323,22 +323,24 @@ function publishPackage(storage, config, auth) {
|
|
|
323
323
|
|
|
324
324
|
|
|
325
325
|
function unPublishPackage(storage) {
|
|
326
|
-
return function (req, res, next) {
|
|
326
|
+
return async function (req, res, next) {
|
|
327
327
|
const packageName = req.params.package;
|
|
328
328
|
|
|
329
329
|
_logger.logger.debug({
|
|
330
330
|
packageName
|
|
331
331
|
}, `unpublishing @{packageName}`);
|
|
332
332
|
|
|
333
|
-
|
|
333
|
+
try {
|
|
334
|
+
await storage.removePackage(packageName);
|
|
335
|
+
} catch (err) {
|
|
334
336
|
if (err) {
|
|
335
337
|
return next(err);
|
|
336
338
|
}
|
|
339
|
+
}
|
|
337
340
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
});
|
|
341
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
342
|
+
return next({
|
|
343
|
+
ok: _core.API_MESSAGE.PKG_REMOVED
|
|
342
344
|
});
|
|
343
345
|
};
|
|
344
346
|
}
|
|
@@ -366,7 +368,7 @@ function removeTarball(storage) {
|
|
|
366
368
|
return next(err);
|
|
367
369
|
}
|
|
368
370
|
|
|
369
|
-
res.status(
|
|
371
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
370
372
|
|
|
371
373
|
_logger.logger.debug({
|
|
372
374
|
packageName,
|
|
@@ -375,7 +377,7 @@ function removeTarball(storage) {
|
|
|
375
377
|
}, `success remove tarball for @{packageName}-@{tarballName}-@{revision}`);
|
|
376
378
|
|
|
377
379
|
return next({
|
|
378
|
-
ok:
|
|
380
|
+
ok: _core.API_MESSAGE.TARBALL_REMOVED
|
|
379
381
|
});
|
|
380
382
|
});
|
|
381
383
|
};
|
|
@@ -400,9 +402,9 @@ function addVersion(storage) {
|
|
|
400
402
|
}
|
|
401
403
|
|
|
402
404
|
debug('success on add new version');
|
|
403
|
-
res.status(
|
|
405
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
404
406
|
return next({
|
|
405
|
-
ok:
|
|
407
|
+
ok: _core.API_MESSAGE.PKG_PUBLISHED
|
|
406
408
|
});
|
|
407
409
|
});
|
|
408
410
|
};
|
|
@@ -432,9 +434,9 @@ function uploadPackageTarball(storage) {
|
|
|
432
434
|
return res.locals.report_error(err);
|
|
433
435
|
});
|
|
434
436
|
stream.on('success', function () {
|
|
435
|
-
res.status(
|
|
437
|
+
res.status(_core.HTTP_STATUS.CREATED);
|
|
436
438
|
return next({
|
|
437
|
-
ok:
|
|
439
|
+
ok: _core.API_MESSAGE.TARBALL_UPLOADED
|
|
438
440
|
});
|
|
439
441
|
});
|
|
440
442
|
};
|