@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.
Files changed (55) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/build/dist-tags.d.ts +2 -2
  3. package/build/dist-tags.js +8 -8
  4. package/build/dist-tags.js.map +1 -1
  5. package/build/index.d.ts +2 -2
  6. package/build/index.js +12 -13
  7. package/build/index.js.map +1 -1
  8. package/build/package.d.ts +2 -2
  9. package/build/package.js +6 -6
  10. package/build/package.js.map +1 -1
  11. package/build/publish.d.ts +7 -7
  12. package/build/publish.js +24 -22
  13. package/build/publish.js.map +1 -1
  14. package/build/search.d.ts +1 -1
  15. package/build/search.js +9 -102
  16. package/build/search.js.map +1 -1
  17. package/build/star.d.ts +2 -2
  18. package/build/star.js +6 -5
  19. package/build/star.js.map +1 -1
  20. package/build/stars.d.ts +2 -2
  21. package/build/stars.js +3 -3
  22. package/build/stars.js.map +1 -1
  23. package/build/user.js +12 -12
  24. package/build/user.js.map +1 -1
  25. package/build/v1/profile.js +10 -10
  26. package/build/v1/profile.js.map +1 -1
  27. package/build/v1/search.d.ts +9 -1
  28. package/build/v1/search.js +71 -88
  29. package/build/v1/search.js.map +1 -1
  30. package/build/v1/token.d.ts +2 -2
  31. package/build/v1/token.js +12 -12
  32. package/build/v1/token.js.map +1 -1
  33. package/build/whoami.js +0 -1
  34. package/build/whoami.js.map +1 -1
  35. package/package.json +16 -13
  36. package/src/dist-tags.ts +10 -10
  37. package/src/index.ts +12 -11
  38. package/src/package.ts +5 -10
  39. package/src/publish.ts +28 -19
  40. package/src/search.ts +9 -100
  41. package/src/star.ts +4 -3
  42. package/src/stars.ts +3 -3
  43. package/src/user.ts +7 -7
  44. package/src/v1/profile.ts +7 -7
  45. package/src/v1/search.ts +64 -89
  46. package/src/v1/token.ts +13 -18
  47. package/src/whoami.ts +0 -1
  48. package/test/integration/_helper.ts +3 -2
  49. package/test/integration/package.spec.ts +3 -3
  50. package/test/integration/ping.spec.ts +1 -1
  51. package/test/integration/publish.spec.ts +3 -8
  52. package/test/integration/user.spec.ts +6 -8
  53. package/test/integration/whoami.spec.ts +1 -1
  54. package/test/unit/publish.spec.ts +11 -15
  55. 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
@@ -1,4 +1,4 @@
1
1
  import { Router } from 'express';
2
- import { IStorageHandler } from '@verdaccio/store';
2
+ import { Storage } from '@verdaccio/store';
3
3
  import { IAuth } from '@verdaccio/auth';
4
- export default function (route: Router, auth: IAuth, storage: IStorageHandler): void;
4
+ export default function (route: Router, auth: IAuth, storage: Storage): void;
@@ -11,7 +11,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
11
11
 
12
12
  var _middleware = require("@verdaccio/middleware");
13
13
 
14
- var _commonsApi = require("@verdaccio/commons-api");
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(_commonsApi.HTTP_STATUS.CREATED);
33
+ res.status(_core.constants.HTTP_STATUS.CREATED);
34
34
  return next({
35
- ok: _commonsApi.API_MESSAGE.TAG_ADDED
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(_commonsApi.HTTP_STATUS.CREATED);
52
+ res.status(_core.constants.HTTP_STATUS.CREATED);
53
53
  return next({
54
- ok: _commonsApi.API_MESSAGE.TAG_REMOVED
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[_commonsApi.DIST_TAGS]);
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(_commonsApi.HTTP_STATUS.CREATED);
78
+ res.status(_core.constants.HTTP_STATUS.CREATED);
79
79
  return next({
80
- ok: _commonsApi.API_MESSAGE.TAG_UPDATED
80
+ ok: _core.constants.API_MESSAGE.TAG_UPDATED
81
81
  });
82
82
  });
83
83
  });
@@ -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":"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","sourcesContent":["import mime from 'mime';\nimport _ from 'lodash';\nimport { Router } from 'express';\n\nimport { media, allow } from '@verdaccio/middleware';\nimport { API_MESSAGE, HTTP_STATUS, DIST_TAGS, VerdaccioError } from '@verdaccio/commons-api';\nimport { Package } from '@verdaccio/types';\nimport { IStorageHandler } from '@verdaccio/store';\nimport { IAuth } from '@verdaccio/auth';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router, auth: IAuth, storage: IStorageHandler): 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(HTTP_STATUS.CREATED);\n return next({ ok: 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(HTTP_STATUS.CREATED);\n return next({\n ok: 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[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(HTTP_STATUS.CREATED);\n return next({\n ok: API_MESSAGE.TAG_UPDATED,\n });\n }\n );\n }\n );\n}\n"],"file":"dist-tags.js"}
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 { IStorageHandler } from '@verdaccio/store';
3
+ import { Storage } from '@verdaccio/store';
4
4
  import { Config } from '@verdaccio/types';
5
- export default function (config: Config, auth: IAuth, storage: IStorageHandler): Router;
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
- function _default(config, auth, storage) {
39
- var _config$flags, _config$flags2;
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
- (0, _search.default)(app, auth, storage);
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
@@ -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","flags","search","token"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEe,kBAAUA,MAAV,EAA0BC,IAA1B,EAAuCC,OAAvC,EAAyE;AAAA;;AACtF;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,EAZsF,CActF;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,EApBsF,CAqBtF;;AACAZ,EAAAA,GAAG,CAACM,GAAJ,CAAQ,0BAAST,MAAT,CAAR,EAtBsF,CAuBtF;;AACAG,EAAAA,GAAG,CAACM,GAAJ,CAAQO,8BAAR,EAxBsF,CAyBtF;;AACA,uBAAOb,GAAP;AACA,wBAAIA,GAAJ,EAASF,IAAT,EAAeC,OAAf,EAAwBF,MAAxB;AACA,wBAAQG,GAAR,EAAaF,IAAb;AACA,uBAAOE,GAAP,EAAYF,IAAZ,EAAkBC,OAAlB;AACA,qBAAKC,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;;AAEA,MAAI,CAAAF,MAAM,SAAN,IAAAA,MAAM,WAAN,6BAAAA,MAAM,CAAEiB,KAAR,gEAAeC,MAAf,MAA0B,IAA9B,EAAoC;AAClC,0BAASf,GAAT,EAAcF,IAAd,EAAoBC,OAApB;AACD;;AAED,MAAI,CAAAF,MAAM,SAAN,IAAAA,MAAM,WAAN,8BAAAA,MAAM,CAAEiB,KAAR,kEAAeE,KAAf,MAAyB,IAA7B,EAAmC;AACjC,wBAAMhB,GAAN,EAAWF,IAAX,EAAiBC,OAAjB,EAA0BF,MAA1B;AACD;;AACD,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 { IStorageHandler } from '@verdaccio/store';\nimport { Config } from '@verdaccio/types';\nimport bodyParser from 'body-parser';\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\nexport default function (config: Config, auth: IAuth, storage: IStorageHandler): 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 search(app, auth, storage);\n user(app, auth, config);\n distTags(app, auth, storage);\n publish(app, auth, storage, config);\n ping(app);\n stars(app, storage);\n\n if (config?.flags?.search === true) {\n v1Search(app, auth, storage);\n }\n\n if (config?.flags?.token === true) {\n token(app, auth, storage, config);\n }\n return app;\n}\n"],"file":"index.js"}
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"}
@@ -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 { IStorageHandler } from '@verdaccio/store';
5
- export default function (route: Router, auth: IAuth, storage: IStorageHandler, config: Config): void;
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 _commonsApi = require("@verdaccio/commons-api");
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(_commonsApi.HEADERS.CONTENT_TYPE, _commonsApi.HEADERS.OCTET_STREAM);
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[_commonsApi.DIST_TAGS]) === false) {
68
- if (_lodash.default.isNil(metadata[_commonsApi.DIST_TAGS][queryVersion]) === false) {
69
- queryVersion = metadata[_commonsApi.DIST_TAGS][queryVersion];
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(_utils.ErrorCode.getNotFound(`${_commonsApi.API_ERROR.VERSION_NOT_EXIST}: ${queryVersion}`));
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);
@@ -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","ErrorCode","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, ErrorCode } from '@verdaccio/utils';\nimport { HEADERS, DIST_TAGS, API_ERROR } from '@verdaccio/commons-api';\nimport { Config, Package } from '@verdaccio/types';\nimport { IAuth } from '@verdaccio/auth';\nimport { IStorageHandler } 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 (\n route: Router,\n auth: IAuth,\n storage: IStorageHandler,\n config: Config\n): 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(ErrorCode.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"}
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"}
@@ -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 { IStorageHandler } from '@verdaccio/store';
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: IStorageHandler, config: Config): void;
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: IStorageHandler, config: Config, auth: IAuth): any;
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: IStorageHandler): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
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: IStorageHandler): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
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: IStorageHandler): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
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: IStorageHandler): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
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 _commonsApi = require("@verdaccio/commons-api");
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)(_commonsApi.HEADERS.OCTET_STREAM), uploadPackageTarball(storage)); // adding a version
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(_commonsApi.HTTP_STATUS.CREATED);
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(_utils.ErrorCode.getBadRequest(_commonsApi.API_ERROR.UNSUPORTED_REGISTRY_CALL));
220
+ return next(_core.errorUtils.getBadRequest(_core.API_ERROR.UNSUPORTED_REGISTRY_CALL));
221
221
  }
222
222
 
223
- if (error && error.status !== _commonsApi.HTTP_STATUS.CONFLICT) {
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[_commonsApi.DIST_TAGS], async function (error) {
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(_commonsApi.HTTP_STATUS.CREATED);
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, _commonsApi.API_MESSAGE.PKG_CHANGED, metadata);
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, _commonsApi.API_MESSAGE.PKG_CREATED, metadata);
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(_utils.ErrorCode.getBadData(_commonsApi.API_ERROR.BAD_PACKAGE_DATA));
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
- storage.removePackage(packageName, function (err) {
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
- res.status(_commonsApi.HTTP_STATUS.CREATED);
339
- return next({
340
- ok: _commonsApi.API_MESSAGE.PKG_REMOVED
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(_commonsApi.HTTP_STATUS.CREATED);
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: _commonsApi.API_MESSAGE.TARBALL_REMOVED
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(_commonsApi.HTTP_STATUS.CREATED);
405
+ res.status(_core.HTTP_STATUS.CREATED);
404
406
  return next({
405
- ok: _commonsApi.API_MESSAGE.PKG_PUBLISHED
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(_commonsApi.HTTP_STATUS.CREATED);
437
+ res.status(_core.HTTP_STATUS.CREATED);
436
438
  return next({
437
- ok: _commonsApi.API_MESSAGE.TARBALL_UPLOADED
439
+ ok: _core.API_MESSAGE.TARBALL_UPLOADED
438
440
  });
439
441
  });
440
442
  };