verdaccio 7.0.0-beta.2 → 7.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/bin/verdaccio +1 -1
- package/build/cjs/api/debug/index.js +28 -0
- package/build/cjs/api/endpoint/api/dist-tags.js +77 -0
- package/build/cjs/api/endpoint/api/package.js +103 -0
- package/build/cjs/api/endpoint/api/ping.js +13 -0
- package/build/cjs/api/endpoint/api/publish.js +359 -0
- package/build/cjs/api/endpoint/api/search.js +107 -0
- package/build/cjs/api/endpoint/api/star.js +73 -0
- package/build/cjs/api/endpoint/api/stars.js +42 -0
- package/build/cjs/api/endpoint/api/user.js +84 -0
- package/build/cjs/api/endpoint/api/v1/profile.js +69 -0
- package/build/cjs/api/endpoint/api/v1/search.js +181 -0
- package/build/cjs/api/endpoint/api/v1/token.js +140 -0
- package/build/cjs/api/endpoint/api/whoami.js +15 -0
- package/build/cjs/api/endpoint/index.js +58 -0
- package/build/cjs/api/index.js +105 -0
- package/build/cjs/api/middleware.js +56 -0
- package/build/cjs/api/web/api/index.js +31 -0
- package/build/cjs/api/web/api/package.js +165 -0
- package/build/cjs/api/web/api/search.js +53 -0
- package/build/cjs/api/web/api/user.js +70 -0
- package/build/cjs/api/web/api/utils.js +14 -0
- package/build/cjs/api/web/index.js +96 -0
- package/build/{index.js → cjs/index.js} +1 -1
- package/build/cjs/lib/auth-utils.js +16 -0
- package/build/{lib → cjs/lib}/auth.js +1 -1
- package/build/cjs/lib/bootstrap.js +167 -0
- package/build/cjs/lib/cli/cli.js +26 -0
- package/build/cjs/lib/cli/commands/info.js +26 -0
- package/build/cjs/lib/cli/commands/init.js +78 -0
- package/build/cjs/lib/cli/commands/version.js +17 -0
- package/build/{lib → cjs/lib}/cli/utils.js +1 -1
- package/build/cjs/lib/cli.js +16 -0
- package/build/cjs/lib/config.js +22 -0
- package/build/{lib → cjs/lib}/constants.js +1 -1
- package/build/cjs/lib/experiments.js +29 -0
- package/build/cjs/lib/local-storage.js +740 -0
- package/build/cjs/lib/logger/index.js +21 -0
- package/build/cjs/lib/metadata-utils.js +39 -0
- package/build/cjs/lib/run-server.js +122 -0
- package/build/cjs/lib/storage-utils.js +282 -0
- package/build/cjs/lib/storage.js +615 -0
- package/build/cjs/lib/up-storage.js +605 -0
- package/build/cjs/lib/uplink-util.js +36 -0
- package/build/cjs/lib/utils.js +265 -0
- package/build/cjs/package.json +1 -0
- package/build/esm/api/debug/index.js +20 -0
- package/build/esm/api/endpoint/api/dist-tags.js +70 -0
- package/build/esm/api/endpoint/api/package.js +96 -0
- package/build/esm/api/endpoint/api/ping.js +7 -0
- package/build/esm/api/endpoint/api/publish.js +347 -0
- package/build/esm/api/endpoint/api/search.js +101 -0
- package/build/esm/api/endpoint/api/star.js +66 -0
- package/build/esm/api/endpoint/api/stars.js +35 -0
- package/build/esm/api/endpoint/api/user.js +77 -0
- package/build/esm/api/endpoint/api/v1/profile.js +62 -0
- package/build/esm/api/endpoint/api/v1/search.js +174 -0
- package/build/esm/api/endpoint/api/v1/token.js +133 -0
- package/build/esm/api/endpoint/api/whoami.js +9 -0
- package/build/esm/api/endpoint/index.js +51 -0
- package/build/esm/api/index.js +98 -0
- package/build/esm/api/middleware.js +49 -0
- package/build/esm/api/web/api/index.js +23 -0
- package/build/esm/api/web/api/package.js +158 -0
- package/build/esm/api/web/api/search.js +47 -0
- package/build/esm/api/web/api/user.js +63 -0
- package/build/esm/api/web/api/utils.js +7 -0
- package/build/esm/api/web/html/favicon.ico +0 -0
- package/build/esm/api/web/index.js +84 -0
- package/build/esm/index.js +5 -0
- package/build/esm/lib/auth-utils.js +9 -0
- package/build/esm/lib/auth.js +3 -0
- package/build/esm/lib/bootstrap.js +160 -0
- package/build/esm/lib/cli/cli.js +24 -0
- package/build/esm/lib/cli/commands/info.js +18 -0
- package/build/esm/lib/cli/commands/init.js +70 -0
- package/build/esm/lib/cli/commands/version.js +10 -0
- package/build/esm/lib/cli/utils.js +6 -0
- package/build/esm/lib/cli.js +13 -0
- package/build/esm/lib/config.js +16 -0
- package/build/esm/lib/constants.js +26 -0
- package/build/esm/lib/experiments.js +23 -0
- package/build/esm/lib/local-storage.js +734 -0
- package/build/esm/lib/logger/index.js +14 -0
- package/build/esm/lib/metadata-utils.js +32 -0
- package/build/esm/lib/run-server.js +114 -0
- package/build/esm/lib/storage-utils.js +261 -0
- package/build/esm/lib/storage.js +607 -0
- package/build/esm/lib/up-storage.js +598 -0
- package/build/esm/lib/uplink-util.js +28 -0
- package/build/esm/lib/utils.js +228 -0
- package/build/esm/package.json +1 -0
- package/index.js +1 -1
- package/package.json +42 -29
- package/build/api/debug/index.js +0 -28
- package/build/api/endpoint/api/dist-tags.js +0 -77
- package/build/api/endpoint/api/package.js +0 -103
- package/build/api/endpoint/api/ping.js +0 -13
- package/build/api/endpoint/api/publish.js +0 -359
- package/build/api/endpoint/api/search.js +0 -107
- package/build/api/endpoint/api/star.js +0 -73
- package/build/api/endpoint/api/stars.js +0 -42
- package/build/api/endpoint/api/user.js +0 -84
- package/build/api/endpoint/api/v1/profile.js +0 -69
- package/build/api/endpoint/api/v1/search.js +0 -181
- package/build/api/endpoint/api/v1/token.js +0 -140
- package/build/api/endpoint/api/whoami.js +0 -15
- package/build/api/endpoint/index.js +0 -58
- package/build/api/index.js +0 -105
- package/build/api/middleware.js +0 -56
- package/build/api/web/api/index.js +0 -31
- package/build/api/web/api/package.js +0 -165
- package/build/api/web/api/search.js +0 -53
- package/build/api/web/api/user.js +0 -70
- package/build/api/web/api/utils.js +0 -14
- package/build/api/web/index.js +0 -96
- package/build/lib/auth-utils.js +0 -16
- package/build/lib/bootstrap.js +0 -167
- package/build/lib/cli/cli.js +0 -26
- package/build/lib/cli/commands/info.js +0 -26
- package/build/lib/cli/commands/init.js +0 -78
- package/build/lib/cli/commands/version.js +0 -17
- package/build/lib/cli.js +0 -16
- package/build/lib/config.js +0 -22
- package/build/lib/experiments.js +0 -29
- package/build/lib/local-storage.js +0 -740
- package/build/lib/logger/index.js +0 -21
- package/build/lib/metadata-utils.js +0 -39
- package/build/lib/run-server.js +0 -122
- package/build/lib/storage-utils.js +0 -282
- package/build/lib/storage.js +0 -613
- package/build/lib/up-storage.js +0 -605
- package/build/lib/uplink-util.js +0 -36
- package/build/lib/utils.js +0 -265
- /package/build/{api → cjs/api}/web/html/favicon.ico +0 -0
package/README.md
CHANGED
|
@@ -28,9 +28,7 @@ Install with npm:
|
|
|
28
28
|
npm install --global verdaccio
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
**Node.js
|
|
32
|
-
|
|
33
|
-
> Node.js 20 (or the latest LTS version) is recommended.
|
|
31
|
+
**Node.js v24 or higher is required.**
|
|
34
32
|
|
|
35
33
|
or pull [Docker official image](https://verdaccio.org/docs/docker)
|
|
36
34
|
|
package/bin/verdaccio
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var _default = (app, selfPath) => {
|
|
10
|
+
// Hook for tests only
|
|
11
|
+
app.get('/-/_debug', function (req, res, next) {
|
|
12
|
+
const doGarbabeCollector = _lodash.default.isNil(global.gc) === false;
|
|
13
|
+
if (doGarbabeCollector) {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
global.gc();
|
|
16
|
+
}
|
|
17
|
+
next({
|
|
18
|
+
pid: process.pid,
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
main: process.mainModule.filename,
|
|
21
|
+
conf: selfPath,
|
|
22
|
+
mem: process.memoryUsage(),
|
|
23
|
+
gc: doGarbabeCollector
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.default = _default;
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImFwcCIsInNlbGZQYXRoIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsImRvR2FyYmFiZUNvbGxlY3RvciIsIl8iLCJpc05pbCIsImdsb2JhbCIsImdjIiwicGlkIiwicHJvY2VzcyIsIm1haW4iLCJtYWluTW9kdWxlIiwiZmlsZW5hbWUiLCJjb25mIiwibWVtIiwibWVtb3J5VXNhZ2UiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9kZWJ1Zy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQsICRSZXNwb25zZUV4dGVuZCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgKGFwcDogQXBwbGljYXRpb24sIHNlbGZQYXRoOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgLy8gSG9vayBmb3IgdGVzdHMgb25seVxuICBhcHAuZ2V0KFxuICAgICcvLS9fZGVidWcnLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgZG9HYXJiYWJlQ29sbGVjdG9yID0gXy5pc05pbChnbG9iYWwuZ2MpID09PSBmYWxzZTtcblxuICAgICAgaWYgKGRvR2FyYmFiZUNvbGxlY3Rvcikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGdsb2JhbC5nYygpO1xuICAgICAgfVxuXG4gICAgICBuZXh0KHtcbiAgICAgICAgcGlkOiBwcm9jZXNzLnBpZCxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtYWluOiBwcm9jZXNzLm1haW5Nb2R1bGUuZmlsZW5hbWUsXG4gICAgICAgIGNvbmY6IHNlbGZQYXRoLFxuICAgICAgICBtZW06IHByb2Nlc3MubWVtb3J5VXNhZ2UoKSxcbiAgICAgICAgZ2M6IGRvR2FyYmFiZUNvbGxlY3RvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUF1QixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLElBQUFHLFFBQUEsR0FJUkEsQ0FBQ0MsR0FBZ0IsRUFBRUMsUUFBZ0IsS0FBVztFQUMzRDtFQUNBRCxHQUFHLENBQUNFLEdBQUcsQ0FDTCxXQUFXLEVBQ1gsVUFBVUMsR0FBbUIsRUFBRUMsR0FBb0IsRUFBRUMsSUFBc0IsRUFBUTtJQUNqRixNQUFNQyxrQkFBa0IsR0FBR0MsZUFBQyxDQUFDQyxLQUFLLENBQUNDLE1BQU0sQ0FBQ0MsRUFBRSxDQUFDLEtBQUssS0FBSztJQUV2RCxJQUFJSixrQkFBa0IsRUFBRTtNQUN0QjtNQUNBRyxNQUFNLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ2I7SUFFQUwsSUFBSSxDQUFDO01BQ0hNLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFHO01BQ2hCO01BQ0FFLElBQUksRUFBRUQsT0FBTyxDQUFDRSxVQUFVLENBQUNDLFFBQVE7TUFDakNDLElBQUksRUFBRWYsUUFBUTtNQUNkZ0IsR0FBRyxFQUFFTCxPQUFPLENBQUNNLFdBQVcsQ0FBQyxDQUFDO01BQzFCUixFQUFFLEVBQUVKO0lBQ04sQ0FBQyxDQUFDO0VBQ0osQ0FDRixDQUFDO0FBQ0gsQ0FBQztBQUFBYSxPQUFBLENBQUFyQixPQUFBLEdBQUFDLFFBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = _default;
|
|
7
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
+
var _mime = _interopRequireDefault(require("mime"));
|
|
9
|
+
var _middleware = require("@verdaccio/middleware");
|
|
10
|
+
var _constants = require("../../../lib/constants");
|
|
11
|
+
var _logger = require("../../../lib/logger");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _default(route, auth, storage) {
|
|
14
|
+
const can = (0, _middleware.allow)(auth, {
|
|
15
|
+
beforeAll: (params, message) => _logger.logger.trace(params, message),
|
|
16
|
+
afterAll: (params, message) => _logger.logger.trace(params, message)
|
|
17
|
+
});
|
|
18
|
+
const tag_package_version = function (req, res, next) {
|
|
19
|
+
if (_lodash.default.isString(req.body) === false) {
|
|
20
|
+
return next('route');
|
|
21
|
+
}
|
|
22
|
+
const tags = {};
|
|
23
|
+
tags[req.params.tag] = req.body;
|
|
24
|
+
storage.mergeTags(req.params.package, tags, function (err) {
|
|
25
|
+
if (err) {
|
|
26
|
+
return next(err);
|
|
27
|
+
}
|
|
28
|
+
res.status(_constants.HTTP_STATUS.CREATED);
|
|
29
|
+
return next({
|
|
30
|
+
ok: _constants.API_MESSAGE.TAG_ADDED
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// tagging a package
|
|
36
|
+
route.put(_middleware.DIST_TAGS_API_ENDPOINTS.tagging, can('publish'), (0, _middleware.media)(_mime.default.getType('json')), tag_package_version);
|
|
37
|
+
route.post(_middleware.DIST_TAGS_API_ENDPOINTS.tagging_package, can('publish'), (0, _middleware.media)(_mime.default.getType('json')), tag_package_version);
|
|
38
|
+
route.put(_middleware.DIST_TAGS_API_ENDPOINTS.tagging_package, can('publish'), (0, _middleware.media)(_mime.default.getType('json')), tag_package_version);
|
|
39
|
+
route.delete(_middleware.DIST_TAGS_API_ENDPOINTS.tagging_package, can('publish'), function (req, res, next) {
|
|
40
|
+
const tags = {};
|
|
41
|
+
tags[req.params.tag] = null;
|
|
42
|
+
storage.mergeTags(req.params.package, tags, function (err) {
|
|
43
|
+
if (err) {
|
|
44
|
+
return next(err);
|
|
45
|
+
}
|
|
46
|
+
res.status(_constants.HTTP_STATUS.CREATED);
|
|
47
|
+
return next({
|
|
48
|
+
ok: _constants.API_MESSAGE.TAG_REMOVED
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
route.get(_middleware.DIST_TAGS_API_ENDPOINTS.get_dist_tags, can('access'), function (req, res, next) {
|
|
53
|
+
storage.getPackage({
|
|
54
|
+
name: req.params.package,
|
|
55
|
+
uplinksLook: true,
|
|
56
|
+
req,
|
|
57
|
+
callback: function (err, info) {
|
|
58
|
+
if (err) {
|
|
59
|
+
return next(err);
|
|
60
|
+
}
|
|
61
|
+
next(info[_constants.DIST_TAGS]);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
route.post(_middleware.DIST_TAGS_API_ENDPOINTS.get_dist_tags, can('publish'), function (req, res, next) {
|
|
66
|
+
storage.mergeTags(req.params.package, req.body, function (err) {
|
|
67
|
+
if (err) {
|
|
68
|
+
return next(err);
|
|
69
|
+
}
|
|
70
|
+
res.status(_constants.HTTP_STATUS.CREATED);
|
|
71
|
+
return next({
|
|
72
|
+
ok: _constants.API_MESSAGE.TAG_UPDATED
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWltZSIsIl9taWRkbGV3YXJlIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlIiwiYXV0aCIsInN0b3JhZ2UiLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwidGFnX3BhY2thZ2VfdmVyc2lvbiIsInJlcSIsInJlcyIsIm5leHQiLCJfIiwiaXNTdHJpbmciLCJib2R5IiwidGFncyIsInRhZyIsIm1lcmdlVGFncyIsInBhY2thZ2UiLCJlcnIiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIkNSRUFURUQiLCJvayIsIkFQSV9NRVNTQUdFIiwiVEFHX0FEREVEIiwicHV0IiwiRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMiLCJ0YWdnaW5nIiwibWVkaWEiLCJtaW1lIiwiZ2V0VHlwZSIsInBvc3QiLCJ0YWdnaW5nX3BhY2thZ2UiLCJkZWxldGUiLCJUQUdfUkVNT1ZFRCIsImdldCIsImdldF9kaXN0X3RhZ3MiLCJnZXRQYWNrYWdlIiwibmFtZSIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJpbmZvIiwiRElTVF9UQUdTIiwiVEFHX1VQREFURUQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9kaXN0LXRhZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbWltZSBmcm9tICdtaW1lJztcblxuaW1wb3J0IHsgRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMsIGFsbG93LCBtZWRpYSB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHR5cGUgQXV0aCBmcm9tICcuLi8uLi8uLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBBUElfTUVTU0FHRSwgRElTVF9UQUdTLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB0eXBlIHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQsICRSZXNwb25zZUV4dGVuZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHJvdXRlOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIHN0b3JhZ2U6IFN0b3JhZ2UpOiB2b2lkIHtcbiAgY29uc3QgY2FuID0gYWxsb3coYXV0aCwge1xuICAgIGJlZm9yZUFsbDogKHBhcmFtcywgbWVzc2FnZSkgPT4gbG9nZ2VyLnRyYWNlKHBhcmFtcywgbWVzc2FnZSksXG4gICAgYWZ0ZXJBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICB9KTtcbiAgY29uc3QgdGFnX3BhY2thZ2VfdmVyc2lvbiA9IGZ1bmN0aW9uIChcbiAgICByZXE6ICRSZXF1ZXN0RXh0ZW5kLFxuICAgIHJlczogJFJlc3BvbnNlRXh0ZW5kLFxuICAgIG5leHQ6ICROZXh0RnVuY3Rpb25WZXJcbiAgKTogJE5leHRGdW5jdGlvblZlciB7XG4gICAgaWYgKF8uaXNTdHJpbmcocmVxLmJvZHkpID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIG5leHQoJ3JvdXRlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFncyA9IHt9O1xuICAgIHRhZ3NbcmVxLnBhcmFtcy50YWddID0gcmVxLmJvZHk7XG4gICAgc3RvcmFnZS5tZXJnZVRhZ3MocmVxLnBhcmFtcy5wYWNrYWdlLCB0YWdzLCBmdW5jdGlvbiAoZXJyOiBFcnJvcik6ICROZXh0RnVuY3Rpb25WZXIge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgfVxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIHJldHVybiBuZXh0KHsgb2s6IEFQSV9NRVNTQUdFLlRBR19BRERFRCB9KTtcbiAgICB9KTtcbiAgfTtcblxuICAvLyB0YWdnaW5nIGEgcGFja2FnZVxuICByb3V0ZS5wdXQoXG4gICAgRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMudGFnZ2luZyxcbiAgICBjYW4oJ3B1Ymxpc2gnKSxcbiAgICBtZWRpYShtaW1lLmdldFR5cGUoJ2pzb24nKSksXG4gICAgdGFnX3BhY2thZ2VfdmVyc2lvblxuICApO1xuXG4gIHJvdXRlLnBvc3QoXG4gICAgRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMudGFnZ2luZ19wYWNrYWdlLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKG1pbWUuZ2V0VHlwZSgnanNvbicpKSxcbiAgICB0YWdfcGFja2FnZV92ZXJzaW9uXG4gICk7XG5cbiAgcm91dGUucHV0KFxuICAgIERJU1RfVEFHU19BUElfRU5EUE9JTlRTLnRhZ2dpbmdfcGFja2FnZSxcbiAgICBjYW4oJ3B1Ymxpc2gnKSxcbiAgICBtZWRpYShtaW1lLmdldFR5cGUoJ2pzb24nKSksXG4gICAgdGFnX3BhY2thZ2VfdmVyc2lvblxuICApO1xuXG4gIHJvdXRlLmRlbGV0ZShcbiAgICBESVNUX1RBR1NfQVBJX0VORFBPSU5UUy50YWdnaW5nX3BhY2thZ2UsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBjb25zdCB0YWdzID0ge307XG4gICAgICB0YWdzW3JlcS5wYXJhbXMudGFnXSA9IG51bGw7XG4gICAgICBzdG9yYWdlLm1lcmdlVGFncyhyZXEucGFyYW1zLnBhY2thZ2UsIHRhZ3MsIGZ1bmN0aW9uIChlcnI6IGFueSk6ICROZXh0RnVuY3Rpb25WZXIge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgb2s6IEFQSV9NRVNTQUdFLlRBR19SRU1PVkVELFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZS5nZXQoXG4gICAgRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMuZ2V0X2Rpc3RfdGFncyxcbiAgICBjYW4oJ2FjY2VzcycpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgbmFtZTogcmVxLnBhcmFtcy5wYWNrYWdlLFxuICAgICAgICB1cGxpbmtzTG9vazogdHJ1ZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVycjogYW55LCBpbmZvOiBQYWNrYWdlKTogJE5leHRGdW5jdGlvblZlciB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0KGluZm9bRElTVF9UQUdTXSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUucG9zdChcbiAgICBESVNUX1RBR1NfQVBJX0VORFBPSU5UUy5nZXRfZGlzdF90YWdzLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgc3RvcmFnZS5tZXJnZVRhZ3MocmVxLnBhcmFtcy5wYWNrYWdlLCByZXEuYm9keSwgZnVuY3Rpb24gKGVycjogYW55KTogJE5leHRGdW5jdGlvblZlciB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvazogQVBJX01FU1NBR0UuVEFHX1VQREFURUQsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFJQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFBNkMsU0FBQUQsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFJOUIsU0FBQUcsU0FBVUMsS0FBYSxFQUFFQyxJQUFVLEVBQUVDLE9BQWdCLEVBQVE7RUFDMUUsTUFBTUMsR0FBRyxHQUFHLElBQUFDLGlCQUFLLEVBQUNILElBQUksRUFBRTtJQUN0QkksU0FBUyxFQUFFQSxDQUFDQyxNQUFNLEVBQUVDLE9BQU8sS0FBS0MsY0FBTSxDQUFDQyxLQUFLLENBQUNILE1BQU0sRUFBRUMsT0FBTyxDQUFDO0lBQzdERyxRQUFRLEVBQUVBLENBQUNKLE1BQU0sRUFBRUMsT0FBTyxLQUFLQyxjQUFN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
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = _default;
|
|
7
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
+
var _core = require("@verdaccio/core");
|
|
9
|
+
var _middleware = require("@verdaccio/middleware");
|
|
10
|
+
var _tarball = require("@verdaccio/tarball");
|
|
11
|
+
var _constants = require("../../../lib/constants");
|
|
12
|
+
var _logger = require("../../../lib/logger");
|
|
13
|
+
var _utils = require("../../../lib/utils");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const downloadStream = (packageName, filename, storage, req, res) => {
|
|
16
|
+
const stream = storage.getTarball(packageName, filename);
|
|
17
|
+
stream.on('content-length', function (content) {
|
|
18
|
+
res.header('Content-Length', content);
|
|
19
|
+
});
|
|
20
|
+
stream.on('error', function (err) {
|
|
21
|
+
return res.locals.report_error(err);
|
|
22
|
+
});
|
|
23
|
+
res.header(_constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.OCTET_STREAM);
|
|
24
|
+
stream.pipe(res);
|
|
25
|
+
};
|
|
26
|
+
const redirectOrDownloadStream = (packageName, filename, storage, req, res, config) => {
|
|
27
|
+
const tarballUrlRedirect = _lodash.default.get(config, 'experiments.tarball_url_redirect');
|
|
28
|
+
storage.hasLocalTarball(packageName, filename).then(hasLocalTarball => {
|
|
29
|
+
if (hasLocalTarball) {
|
|
30
|
+
const context = {
|
|
31
|
+
packageName,
|
|
32
|
+
filename
|
|
33
|
+
};
|
|
34
|
+
const tarballUrl = typeof tarballUrlRedirect === 'function' ? tarballUrlRedirect(context) : _lodash.default.template(tarballUrlRedirect)(context);
|
|
35
|
+
res.redirect(tarballUrl);
|
|
36
|
+
} else {
|
|
37
|
+
downloadStream(packageName, filename, storage, req, res);
|
|
38
|
+
}
|
|
39
|
+
}).catch(err => {
|
|
40
|
+
res.locals.report_error(err);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
function _default(route, auth, storage, config) {
|
|
44
|
+
const can = (0, _middleware.allow)(auth, {
|
|
45
|
+
beforeAll: (params, message) => _logger.logger.trace(params, message),
|
|
46
|
+
afterAll: (params, message) => _logger.logger.trace(params, message)
|
|
47
|
+
});
|
|
48
|
+
// TODO: anonymous user?
|
|
49
|
+
route.get(_middleware.PACKAGE_API_ENDPOINTS.get_package_by_version, can('access'), function (req, res, next) {
|
|
50
|
+
const abbreviated = _core.stringUtils.getByQualityPriorityValue(req.get('Accept')) === 'application/vnd.npm.install-v1+json';
|
|
51
|
+
const getPackageMetaCallback = function (err, metadata) {
|
|
52
|
+
if (err) {
|
|
53
|
+
return next(err);
|
|
54
|
+
}
|
|
55
|
+
metadata = (0, _tarball.convertDistRemoteToLocalTarballUrls)(metadata, {
|
|
56
|
+
protocol: req.protocol,
|
|
57
|
+
headers: req.headers,
|
|
58
|
+
host: req.hostname,
|
|
59
|
+
remoteAddress: req.socket.remoteAddress
|
|
60
|
+
}, config.url_prefix);
|
|
61
|
+
let queryVersion = req.params.version;
|
|
62
|
+
if (_lodash.default.isNil(queryVersion)) {
|
|
63
|
+
if (abbreviated) {
|
|
64
|
+
res.setHeader(_constants.HEADERS.CONTENT_TYPE, 'application/vnd.npm.install-v1+json');
|
|
65
|
+
} else {
|
|
66
|
+
res.setHeader(_constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.JSON);
|
|
67
|
+
}
|
|
68
|
+
return next(metadata);
|
|
69
|
+
}
|
|
70
|
+
let version = (0, _utils.getVersion)(metadata, queryVersion);
|
|
71
|
+
if (_lodash.default.isNil(version) === false) {
|
|
72
|
+
res.setHeader(_constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.JSON);
|
|
73
|
+
return next(version);
|
|
74
|
+
}
|
|
75
|
+
if (_lodash.default.isNil(metadata[_constants.DIST_TAGS]) === false) {
|
|
76
|
+
if (_lodash.default.isNil(metadata[_constants.DIST_TAGS][queryVersion]) === false) {
|
|
77
|
+
queryVersion = metadata[_constants.DIST_TAGS][queryVersion];
|
|
78
|
+
version = (0, _utils.getVersion)(metadata, queryVersion);
|
|
79
|
+
if (_lodash.default.isNil(version) === false) {
|
|
80
|
+
res.setHeader(_constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.JSON);
|
|
81
|
+
return next(version);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return next(_utils.ErrorCode.getNotFound(`${_constants.API_ERROR.VERSION_NOT_EXIST}: ${req.params.version}`));
|
|
86
|
+
};
|
|
87
|
+
storage.getPackage({
|
|
88
|
+
name: req.params.package,
|
|
89
|
+
uplinksLook: true,
|
|
90
|
+
req,
|
|
91
|
+
abbreviated,
|
|
92
|
+
callback: getPackageMetaCallback
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
route.get(_middleware.PACKAGE_API_ENDPOINTS.get_package_tarball, can('access'), function (req, res) {
|
|
96
|
+
if (_lodash.default.get(config, 'experiments.tarball_url_redirect') === undefined) {
|
|
97
|
+
downloadStream(req.params.package, req.params.filename, storage, req, res);
|
|
98
|
+
} else {
|
|
99
|
+
redirectOrDownloadStream(req.params.package, req.params.filename, storage, req, res, config);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX3RhcmJhbGwiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRvd25sb2FkU3RyZWFtIiwicGFja2FnZU5hbWUiLCJmaWxlbmFtZSIsInN0b3JhZ2UiLCJyZXEiLCJyZXMiLCJzdHJlYW0iLCJnZXRUYXJiYWxsIiwib24iLCJjb250ZW50IiwiaGVhZGVyIiwiZXJyIiwibG9jYWxzIiwicmVwb3J0X2Vycm9yIiwiSEVBREVSUyIsIkNPTlRFTlRfVFlQRSIsIk9DVEVUX1NUUkVBTSIsInBpcGUiLCJyZWRpcmVjdE9yRG93bmxvYWRTdHJlYW0iLCJjb25maWciLCJ0YXJiYWxsVXJsUmVkaXJlY3QiLCJfIiwiZ2V0IiwiaGFzTG9jYWxUYXJiYWxsIiwidGhlbiIsImNvbnRleHQiLCJ0YXJiYWxsVXJsIiwidGVtcGxhdGUiLCJyZWRpcmVjdCIsImNhdGNoIiwiX2RlZmF1bHQiLCJyb3V0ZSIsImF1dGgiLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwiUEFDS0FHRV9BUElfRU5EUE9JTlRTIiwiZ2V0X3BhY2thZ2VfYnlfdmVyc2lvbiIsIm5leHQiLCJhYmJyZXZpYXRlZCIsInN0cmluZ1V0aWxzIiwiZ2V0QnlRdWFsaXR5UHJpb3JpdHlWYWx1ZSIsImdldFBhY2thZ2VNZXRhQ2FsbGJhY2siLCJtZXRhZGF0YSIsImNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzIiwicHJvdG9jb2wiLCJoZWFkZXJzIiwiaG9zdCIsImhvc3RuYW1lIiwicmVtb3RlQWRkcmVzcyIsInNvY2tldCIsInVybF9wcmVmaXgiLCJxdWVyeVZlcnNpb24iLCJ2ZXJzaW9uIiwiaXNOaWwiLCJzZXRIZWFkZXIiLCJKU09OIiwiZ2V0VmVyc2lvbiIsIkRJU1RfVEFHUyIsIkVycm9yQ29kZSIsImdldE5vdEZvdW5kIiwiQVBJX0VSUk9SIiwiVkVSU0lPTl9OT1RfRVhJU1QiLCJnZXRQYWNrYWdlIiwibmFtZSIsInBhY2thZ2UiLCJ1cGxpbmtzTG9vayIsImNhbGxiYWNrIiwiZ2V0X3BhY2thZ2VfdGFyYmFsbCIsInVuZGVmaW5lZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IHN0cmluZ1V0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IFBBQ0tBR0VfQVBJX0VORFBPSU5UUywgYWxsb3cgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMgfSBmcm9tICdAdmVyZGFjY2lvL3RhcmJhbGwnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcsIE1hbmlmZXN0IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB0eXBlIEF1dGggZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBESVNUX1RBR1MsIEhFQURFUlMgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHR5cGUgU3RvcmFnZSBmcm9tICcuLi8uLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgeyBFcnJvckNvZGUsIGdldFZlcnNpb24gfSBmcm9tICcuLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkb3dubG9hZFN0cmVhbSA9IChcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgc3RvcmFnZTogYW55LFxuICByZXE6ICRSZXF1ZXN0RXh0ZW5kLFxuICByZXM6ICRSZXNwb25zZUV4dGVuZFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHN0cmVhbSA9IHN0b3JhZ2UuZ2V0VGFyYmFsbChwYWNrYWdlTmFtZSwgZmlsZW5hbWUpO1xuXG4gIHN0cmVhbS5vbignY29udGVudC1sZW5ndGgnLCBmdW5jdGlvbiAoY29udGVudCk6IHZvaWQge1xuICAgIHJlcy5oZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgY29udGVudCk7XG4gIH0pO1xuXG4gIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKTogdm9pZCB7XG4gICAgcmV0dXJuIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKGVycik7XG4gIH0pO1xuXG4gIHJlcy5oZWFkZXIoSEVBREVSUy5DT05URU5UX1RZUEUsIEhFQURFUlMuT0NURVRfU1RSRUFNKTtcbiAgc3RyZWFtLnBpcGUocmVzKTtcbn07XG5cbmNvbnN0IHJlZGlyZWN0T3JEb3dubG9hZFN0cmVhbSA9IChcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgc3RvcmFnZTogYW55LFxuICByZXE6ICRSZXF1ZXN0RXh0ZW5kLFxuICByZXM6ICRSZXNwb25zZUV4dGVuZCxcbiAgY29uZmlnOiBDb25maWdcbik6IHZvaWQgPT4ge1xuICBjb25zdCB0YXJiYWxsVXJsUmVkaXJlY3QgPSBfLmdldChjb25maWcsICdleHBlcmltZW50cy50YXJiYWxsX3VybF9yZWRpcmVjdCcpO1xuICBzdG9yYWdlXG4gICAgLmhhc0xvY2FsVGFyYmFsbChwYWNrYWdlTmFtZSwgZmlsZW5hbWUpXG4gICAgLnRoZW4oKGhhc0xvY2FsVGFyYmFsbCkgPT4ge1xuICAgICAgaWYgKGhhc0xvY2FsVGFyYmFsbCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0geyBwYWNrYWdlTmFtZSwgZmlsZW5hbWUgfTtcbiAgICAgICAgY29uc3QgdGFyYmFsbFVybCA9XG4gICAgICAgICAgdHlwZW9mIHRhcmJhbGxVcmxSZWRpcmVjdCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyB0YXJiYWxsVXJsUmVkaXJlY3QoY29udGV4dClcbiAgICAgICAgICAgIDogXy50ZW1wbGF0ZSh0YXJiYWxsVXJsUmVkaXJlY3QpKGNvbnRleHQpO1xuICAgICAgICByZXMucmVkaXJlY3QodGFyYmFsbFVybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb3dubG9hZFN0cmVhbShwYWNrYWdlTmFtZSwgZmlsZW5hbWUsIHN0b3JhZ2UsIHJlcSwgcmVzKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICByZXMubG9jYWxzLnJlcG9ydF9lcnJvcihlcnIpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHJvdXRlOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IGNhbiA9IGFsbG93KGF1dGgsIHtcbiAgICBiZWZvcmVBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG4gIC8vIFRPRE86IGFub255bW91cyB1c2VyP1xuICByb3V0ZS5nZXQoXG4gICAgUEFDS0FHRV9BUElfRU5EUE9JTlRTLmdldF9wYWNrYWdlX2J5X3ZlcnNpb24sXG4gICAgY2FuKCdhY2Nlc3MnKSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IGFiYnJldmlhdGVkID1cbiAgICAgICAgc3RyaW5nVXRpbHMuZ2V0QnlRdWFsaXR5UHJpb3JpdHlWYWx1ZShyZXEuZ2V0KCdBY2NlcHQnKSkgPT09XG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubnBtLmluc3RhbGwtdjEranNvbic7XG4gICAgICBjb25zdCBnZXRQYWNrYWdlTWV0YUNhbGxiYWNrID0gZnVuY3Rpb24gKGVyciwgbWV0YWRhdGE6IE1hbmlmZXN0KTogdm9pZCB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIG1ldGFkYXRhID0gY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMoXG4gICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdG9jb2w6IHJlcS5wcm90b2NvbCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzIGFzIGFueSxcbiAgICAgICAgICAgIGhvc3Q6IHJlcS5ob3N0bmFtZSxcbiAgICAgICAgICAgIHJlbW90ZUFkZHJlc3M6IHJlcS5zb2NrZXQucmVtb3RlQWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZy51cmxfcHJlZml4XG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IHF1ZXJ5VmVyc2lvbiA9IHJlcS5wYXJhbXMudmVyc2lvbjtcbiAgICAgICAgaWYgKF8uaXNOaWwocXVlcnlWZXJzaW9uKSkge1xuICAgICAgICAgIGlmIChhYmJyZXZpYXRlZCkge1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSwgJ2FwcGxpY2F0aW9uL3ZuZC5ucG0uaW5zdGFsbC12MStqc29uJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoSEVBREVSUy5DT05URU5UX1RZUEUsIEhFQURFUlMuSlNPTik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5leHQobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZlcnNpb24gPSBnZXRWZXJzaW9uKG1ldGFkYXRhLCBxdWVyeVZlcnNpb24pO1xuICAgICAgICBpZiAoXy5pc05pbCh2ZXJzaW9uKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKEhFQURFUlMuQ09OVEVOVF9UWVBFLCBIRUFERVJTLkpTT04pO1xuICAgICAgICAgIHJldHVybiBuZXh0KHZlcnNpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF8uaXNOaWwobWV0YWRhdGFbRElTVF9UQUdTXSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgaWYgKF8uaXNOaWwobWV0YWRhdGFbRElTVF9UQUdTXVtxdWVyeVZlcnNpb25dKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHF1ZXJ5VmVyc2lvbiA9IG1ldGFkYXRhW0RJU1RfVEFHU11bcXVlcnlWZXJzaW9uXTtcbiAgICAgICAgICAgIHZlcnNpb24gPSBnZXRWZXJzaW9uKG1ldGFkYXRhLCBxdWVyeVZlcnNpb24pO1xuICAgICAgICAgICAgaWYgKF8uaXNOaWwodmVyc2lvbikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoSEVBREVSUy5DT05URU5UX1RZUEUsIEhFQURFUlMuSlNPTik7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KHZlcnNpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Tm90Rm91bmQoYCR7QVBJX0VSUk9SLlZFUlNJT05fTk9UX0VYSVNUfTogJHtyZXEucGFyYW1zLnZlcnNpb259YCkpO1xuICAgICAgfTtcblxuICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgbmFtZTogcmVxLnBhcmFtcy5wYWNrYWdlLFxuICAgICAgICB1cGxpbmtzTG9vazogdHJ1ZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBhYmJyZXZpYXRlZCxcbiAgICAgICAgY2FsbGJhY2s6IGdldFBhY2thZ2VNZXRhQ2FsbGJhY2ssXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUuZ2V0KFxuICAgIFBBQ0tBR0VfQVBJX0VORFBPSU5UUy5nZXRfcGFja2FnZV90YXJiYWxsLFxuICAgIGNhbignYWNjZXNzJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kKTogdm9pZCB7XG4gICAgICBpZiAoXy5nZXQoY29uZmlnLCAnZXhwZXJpbWVudHMudGFyYmFsbF91cmxfcmVkaXJlY3QnKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRvd25sb2FkU3RyZWFtKHJlcS5wYXJhbXMucGFja2FnZSwgcmVxLnBhcmFtcy5maWxlbmFtZSwgc3RvcmFnZSwgcmVxLCByZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVkaXJlY3RPckRvd25sb2FkU3RyZWFtKFxuICAgICAgICAgIHJlcS5wYXJhbXMucGFja2FnZSxcbiAgICAgICAgICByZXEucGFyYW1zLmZpbGVuYW1lLFxuICAgICAgICAgIHN0b3JhZ2UsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHJlcyxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLE1BQUEsR0FBQU4s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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = _default;
|
|
7
|
+
var _middleware = require("@verdaccio/middleware");
|
|
8
|
+
function _default(route) {
|
|
9
|
+
route.get(_middleware.PING_API_ENDPOINTS.ping, function (req, res, next) {
|
|
10
|
+
next({});
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWlkZGxld2FyZSIsInJlcXVpcmUiLCJfZGVmYXVsdCIsInJvdXRlIiwiZ2V0IiwiUElOR19BUElfRU5EUE9JTlRTIiwicGluZyIsInJlcSIsInJlcyIsIm5leHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9waW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IFBJTkdfQVBJX0VORFBPSU5UUyB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5cbmltcG9ydCB0eXBlIHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQsICRSZXNwb25zZUV4dGVuZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHJvdXRlOiBSb3V0ZXIpOiB2b2lkIHtcbiAgcm91dGUuZ2V0KFxuICAgIFBJTkdfQVBJX0VORFBPSU5UUy5waW5nLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgbmV4dCh7fSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFJZSxTQUFBQyxTQUFVQyxLQUFhLEVBQVE7RUFDNUNBLEtBQUssQ0FBQ0MsR0FBRyxDQUNQQyw4QkFBa0IsQ0FBQ0MsSUFBSSxFQUN2QixVQUFVQyxHQUFtQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFFO0lBQzNFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDVixDQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|