@verdaccio/canary 6.3.2-canary.404363f
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/LICENSE +21 -0
- package/README.md +38 -0
- package/bin/verdaccio +3 -0
- package/bin/verdaccio-canary +3 -0
- package/build/api/debug/index.js +28 -0
- package/build/api/endpoint/api/dist-tags.js +77 -0
- package/build/api/endpoint/api/package.js +103 -0
- package/build/api/endpoint/api/ping.js +13 -0
- package/build/api/endpoint/api/publish.js +359 -0
- package/build/api/endpoint/api/search.js +107 -0
- package/build/api/endpoint/api/star.js +73 -0
- package/build/api/endpoint/api/stars.js +42 -0
- package/build/api/endpoint/api/user.js +84 -0
- package/build/api/endpoint/api/v1/profile.js +69 -0
- package/build/api/endpoint/api/v1/search.js +181 -0
- package/build/api/endpoint/api/v1/token.js +140 -0
- package/build/api/endpoint/api/whoami.js +15 -0
- package/build/api/endpoint/index.js +58 -0
- package/build/api/index.js +105 -0
- package/build/api/middleware.js +56 -0
- package/build/api/web/api/index.js +31 -0
- package/build/api/web/api/package.js +165 -0
- package/build/api/web/api/search.js +53 -0
- package/build/api/web/api/user.js +70 -0
- package/build/api/web/api/utils.js +14 -0
- package/build/api/web/html/favicon.ico +0 -0
- package/build/api/web/index.js +96 -0
- package/build/index.js +76 -0
- package/build/lib/auth-utils.js +16 -0
- package/build/lib/bootstrap.js +167 -0
- package/build/lib/cli/cli.js +26 -0
- package/build/lib/cli/commands/info.js +26 -0
- package/build/lib/cli/commands/init.js +78 -0
- package/build/lib/cli/commands/version.js +17 -0
- package/build/lib/cli/utils.js +14 -0
- package/build/lib/cli.js +16 -0
- package/build/lib/config.js +22 -0
- package/build/lib/constants.js +121 -0
- package/build/lib/experiments.js +29 -0
- package/build/lib/local-storage.js +760 -0
- package/build/lib/logger/index.js +21 -0
- package/build/lib/metadata-utils.js +39 -0
- package/build/lib/run-server.js +122 -0
- package/build/lib/storage-utils.js +282 -0
- package/build/lib/storage.js +676 -0
- package/build/lib/up-storage.js +605 -0
- package/build/lib/uplink-util.js +36 -0
- package/build/lib/utils.js +265 -0
- package/conf/.gitkeep +0 -0
- package/index.js +1 -0
- package/package.json +156 -0
- package/security.txt +5 -0
- package/systemd/verdaccio.service +11 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Verdaccio contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# !!! CANARY BUILD — DO NOT USE IN PRODUCTION !!!
|
|
2
|
+
|
|
3
|
+
> **WARNING: This is an unstable canary release of [Verdaccio](https://github.com/verdaccio/verdaccio).**
|
|
4
|
+
> It is automatically published from the `6.x` branch for early testing only.
|
|
5
|
+
> It may contain breaking changes, incomplete features, or bugs.
|
|
6
|
+
> **Do not use this in production environments.**
|
|
7
|
+
|
|
8
|
+
## Stable Version
|
|
9
|
+
|
|
10
|
+
For production use, install the stable release:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install --global verdaccio
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
- **Stable releases**: [verdaccio on npm](https://www.npmjs.com/package/verdaccio)
|
|
17
|
+
- **Repository**: [github.com/verdaccio/verdaccio](https://github.com/verdaccio/verdaccio)
|
|
18
|
+
- **Documentation**: [verdaccio.org](https://verdaccio.org/)
|
|
19
|
+
|
|
20
|
+
## About this canary build
|
|
21
|
+
|
|
22
|
+
This package (`@verdaccio/canary`) is a pre-release snapshot published under a separate scope to avoid conflicts with the stable `verdaccio` package.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @verdaccio/canary@6.x
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Links
|
|
29
|
+
|
|
30
|
+
- [Main repository](https://github.com/verdaccio/verdaccio)
|
|
31
|
+
- [6.x branch](https://github.com/verdaccio/verdaccio/tree/6.x)
|
|
32
|
+
- [Documentation](https://verdaccio.org/)
|
|
33
|
+
- [Discord](https://discord.gg/7qWJxBf)
|
|
34
|
+
- [Report an issue](https://github.com/verdaccio/verdaccio/issues/new/choose)
|
|
35
|
+
|
|
36
|
+
## License
|
|
37
|
+
|
|
38
|
+
MIT
|
package/bin/verdaccio
ADDED
|
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImFwcCIsInNlbGZQYXRoIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsImRvR2FyYmFiZUNvbGxlY3RvciIsIl8iLCJpc05pbCIsImdsb2JhbCIsImdjIiwicGlkIiwicHJvY2VzcyIsIm1haW4iLCJtYWluTW9kdWxlIiwiZmlsZW5hbWUiLCJjb25mIiwibWVtIiwibWVtb3J5VXNhZ2UiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9kZWJ1Zy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQsICRSZXNwb25zZUV4dGVuZCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgKGFwcDogQXBwbGljYXRpb24sIHNlbGZQYXRoOiBzdHJpbmcpOiB2b2lkID0+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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWltZSIsIl9taWRkbGV3YXJlIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlIiwiYXV0aCIsInN0b3JhZ2UiLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwidGFnX3BhY2thZ2VfdmVyc2lvbiIsInJlcSIsInJlcyIsIm5leHQiLCJfIiwiaXNTdHJpbmciLCJib2R5IiwidGFncyIsInRhZyIsIm1lcmdlVGFncyIsInBhY2thZ2UiLCJlcnIiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIkNSRUFURUQiLCJvayIsIkFQSV9NRVNTQUdFIiwiVEFHX0FEREVEIiwicHV0IiwiRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMiLCJ0YWdnaW5nIiwibWVkaWEiLCJtaW1lIiwiZ2V0VHlwZSIsInBvc3QiLCJ0YWdnaW5nX3BhY2thZ2UiLCJkZWxldGUiLCJUQUdfUkVNT1ZFRCIsImdldCIsImdldF9kaXN0X3RhZ3MiLCJnZXRQYWNrYWdlIiwibmFtZSIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJpbmZvIiwiRElTVF9UQUdTIiwiVEFHX1VQREFURUQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9kaXN0LXRhZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbWltZSBmcm9tICdtaW1lJztcblxuaW1wb3J0IHR5cGUgeyBBdXRoIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB7IERJU1RfVEFHU19BUElfRU5EUE9JTlRTLCBhbGxvdywgbWVkaWEgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEFQSV9NRVNTQUdFLCBESVNUX1RBR1MsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB0eXBlIFN0b3JhZ2UgZnJvbSAnLi4vLi4vLi4vbGliL3N0b3JhZ2UnO1xuaW1wb3J0IHR5cGUgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgc3RvcmFnZTogU3RvcmFnZSk6IHZvaWQge1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoLCB7XG4gICAgYmVmb3JlQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgICBhZnRlckFsbDogKHBhcmFtcywgbWVzc2FnZSkgPT4gbG9nZ2VyLnRyYWNlKHBhcmFtcywgbWVzc2FnZSksXG4gIH0pO1xuICBjb25zdCB0YWdfcGFja2FnZV92ZXJzaW9uID0gZnVuY3Rpb24gKFxuICAgIHJlcTogJFJlcXVlc3RFeHRlbmQsXG4gICAgcmVzOiAkUmVzcG9uc2VFeHRlbmQsXG4gICAgbmV4dDogJE5leHRGdW5jdGlvblZlclxuICApOiAkTmV4dEZ1bmN0aW9uVmVyIHtcbiAgICBpZiAoXy5pc1N0cmluZyhyZXEuYm9keSkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbmV4dCgncm91dGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWdzID0ge307XG4gICAgdGFnc1tyZXEucGFyYW1zLnRhZ10gPSByZXEuYm9keTtcbiAgICBzdG9yYWdlLm1lcmdlVGFncyhyZXEucGFyYW1zLnBhY2thZ2UsIHRhZ3MsIGZ1bmN0aW9uIChlcnI6IEVycm9yKTogJE5leHRGdW5jdGlvblZlciB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICB9XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgcmV0dXJuIG5leHQoeyBvazogQVBJX01FU1NBR0UuVEFHX0FEREVEIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIC8vIHRhZ2dpbmcgYSBwYWNrYWdlXG4gIHJvdXRlLnB1dChcbiAgICBESVNUX1RBR1NfQVBJX0VORFBPSU5UUy50YWdnaW5nLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKG1pbWUuZ2V0VHlwZSgnanNvbicpKSxcbiAgICB0YWdfcGFja2FnZV92ZXJzaW9uXG4gICk7XG5cbiAgcm91dGUucG9zdChcbiAgICBESVNUX1RBR1NfQVBJX0VORFBPSU5UUy50YWdnaW5nX3BhY2thZ2UsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgIHRhZ19wYWNrYWdlX3ZlcnNpb25cbiAgKTtcblxuICByb3V0ZS5wdXQoXG4gICAgRElTVF9UQUdTX0FQSV9FTkRQT0lOVFMudGFnZ2luZ19wYWNrYWdlLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKG1pbWUuZ2V0VHlwZSgnanNvbicpKSxcbiAgICB0YWdfcGFja2FnZV92ZXJzaW9uXG4gICk7XG5cbiAgcm91dGUuZGVsZXRlKFxuICAgIERJU1RfVEFHU19BUElfRU5EUE9JTlRTLnRhZ2dpbmdfcGFja2FnZSxcbiAgICBjYW4oJ3B1Ymxpc2gnKSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHRhZ3MgPSB7fTtcbiAgICAgIHRhZ3NbcmVxLnBhcmFtcy50YWddID0gbnVsbDtcbiAgICAgIHN0b3JhZ2UubWVyZ2VUYWdzKHJlcS5wYXJhbXMucGFja2FnZSwgdGFncywgZnVuY3Rpb24gKGVycjogYW55KTogJE5leHRGdW5jdGlvblZlciB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvazogQVBJX01FU1NBR0UuVEFHX1JFTU9WRUQsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlLmdldChcbiAgICBESVNUX1RBR1NfQVBJX0VORFBPSU5UUy5nZXRfZGlzdF90YWdzLFxuICAgIGNhbignYWNjZXNzJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBzdG9yYWdlLmdldFBhY2thZ2Uoe1xuICAgICAgICBuYW1lOiByZXEucGFyYW1zLnBhY2thZ2UsXG4gICAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAgICByZXEsXG4gICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoZXJyOiBhbnksIGluZm86IFBhY2thZ2UpOiAkTmV4dEZ1bmN0aW9uVmVyIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQoaW5mb1tESVNUX1RBR1NdKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZS5wb3N0KFxuICAgIERJU1RfVEFHU19BUElfRU5EUE9JTlRTLmdldF9kaXN0X3RhZ3MsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBzdG9yYWdlLm1lcmdlVGFncyhyZXEucGFyYW1zLnBhY2thZ2UsIHJlcS5ib2R5LCBmdW5jdGlvbiAoZXJyOiBhbnkpOiAkTmV4dEZ1bmN0aW9uVmVyIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgIG9rOiBBUElfTUVTU0FHRS5UQUdfVVBEQVRFRCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUdBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUE2QyxTQUFBRCx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUk5QixTQUFBRyxTQUFVQyxLQUFhLEVBQUVDLElBQVUsRUFBRUMsT0FBZ0IsRUFBUTtFQUMxRSxNQUFNQyxHQUFHLEdBQUcsSUFBQUMsaUJBQUssRUFBQ0gsSUFBSSxFQUFFO0lBQ3RCSSxTQUFTLEVBQUVBLENBQUNDLE1BQU0sRUFBRUMsT0FBTyxLQUFLQyxjQUFNLENBQUNDLEtBQUssQ0FBQ0gsTUFBTSxFQUFFQyxPQUFPLENBQUM7SUFDN0RHLFFBQVEsRUFBRUEsQ0FBQ0osTUFBTSxFQUFFQyxPQUFPLEtBQUtDLGNBQU0s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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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX3RhcmJhbGwiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRvd25sb2FkU3RyZWFtIiwicGFja2FnZU5hbWUiLCJmaWxlbmFtZSIsInN0b3JhZ2UiLCJyZXEiLCJyZXMiLCJzdHJlYW0iLCJnZXRUYXJiYWxsIiwib24iLCJjb250ZW50IiwiaGVhZGVyIiwiZXJyIiwibG9jYWxzIiwicmVwb3J0X2Vycm9yIiwiSEVBREVSUyIsIkNPTlRFTlRfVFlQRSIsIk9DVEVUX1NUUkVBTSIsInBpcGUiLCJyZWRpcmVjdE9yRG93bmxvYWRTdHJlYW0iLCJjb25maWciLCJ0YXJiYWxsVXJsUmVkaXJlY3QiLCJfIiwiZ2V0IiwiaGFzTG9jYWxUYXJiYWxsIiwidGhlbiIsImNvbnRleHQiLCJ0YXJiYWxsVXJsIiwidGVtcGxhdGUiLCJyZWRpcmVjdCIsImNhdGNoIiwiX2RlZmF1bHQiLCJyb3V0ZSIsImF1dGgiLCJjYW4iLCJhbGxvdyIsImJlZm9yZUFsbCIsInBhcmFtcyIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ0cmFjZSIsImFmdGVyQWxsIiwiUEFDS0FHRV9BUElfRU5EUE9JTlRTIiwiZ2V0X3BhY2thZ2VfYnlfdmVyc2lvbiIsIm5leHQiLCJhYmJyZXZpYXRlZCIsInN0cmluZ1V0aWxzIiwiZ2V0QnlRdWFsaXR5UHJpb3JpdHlWYWx1ZSIsImdldFBhY2thZ2VNZXRhQ2FsbGJhY2siLCJtZXRhZGF0YSIsImNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzIiwicHJvdG9jb2wiLCJoZWFkZXJzIiwiaG9zdCIsImhvc3RuYW1lIiwicmVtb3RlQWRkcmVzcyIsInNvY2tldCIsInVybF9wcmVmaXgiLCJxdWVyeVZlcnNpb24iLCJ2ZXJzaW9uIiwiaXNOaWwiLCJzZXRIZWFkZXIiLCJKU09OIiwiZ2V0VmVyc2lvbiIsIkRJU1RfVEFHUyIsIkVycm9yQ29kZSIsImdldE5vdEZvdW5kIiwiQVBJX0VSUk9SIiwiVkVSU0lPTl9OT1RfRVhJU1QiLCJnZXRQYWNrYWdlIiwibmFtZSIsInBhY2thZ2UiLCJ1cGxpbmtzTG9vayIsImNhbGxiYWNrIiwiZ2V0X3BhY2thZ2VfdGFyYmFsbCIsInVuZGVmaW5lZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgeyBzdHJpbmdVdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyBQQUNLQUdFX0FQSV9FTkRQT0lOVFMsIGFsbG93IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IGNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzIH0gZnJvbSAnQHZlcmRhY2Npby90YXJiYWxsJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnLCBNYW5pZmVzdCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBBUElfRVJST1IsIERJU1RfVEFHUywgSEVBREVSUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSwgZ2V0VmVyc2lvbiB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmNvbnN0IGRvd25sb2FkU3RyZWFtID0gKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBzdG9yYWdlOiBhbnksXG4gIHJlcTogJFJlcXVlc3RFeHRlbmQsXG4gIHJlczogJFJlc3BvbnNlRXh0ZW5kXG4pOiB2b2lkID0+IHtcbiAgY29uc3Qgc3RyZWFtID0gc3RvcmFnZS5nZXRUYXJiYWxsKHBhY2thZ2VOYW1lLCBmaWxlbmFtZSk7XG5cbiAgc3RyZWFtLm9uKCdjb250ZW50LWxlbmd0aCcsIGZ1bmN0aW9uIChjb250ZW50KTogdm9pZCB7XG4gICAgcmVzLmhlYWRlcignQ29udGVudC1MZW5ndGgnLCBjb250ZW50KTtcbiAgfSk7XG5cbiAgc3RyZWFtLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpOiB2b2lkIHtcbiAgICByZXR1cm4gcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IoZXJyKTtcbiAgfSk7XG5cbiAgcmVzLmhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSwgSEVBREVSUy5PQ1RFVF9TVFJFQU0pO1xuICBzdHJlYW0ucGlwZShyZXMpO1xufTtcblxuY29uc3QgcmVkaXJlY3RPckRvd25sb2FkU3RyZWFtID0gKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBzdG9yYWdlOiBhbnksXG4gIHJlcTogJFJlcXVlc3RFeHRlbmQsXG4gIHJlczogJFJlc3BvbnNlRXh0ZW5kLFxuICBjb25maWc6IENvbmZpZ1xuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHRhcmJhbGxVcmxSZWRpcmVjdCA9IF8uZ2V0KGNvbmZpZywgJ2V4cGVyaW1lbnRzLnRhcmJhbGxfdXJsX3JlZGlyZWN0Jyk7XG4gIHN0b3JhZ2VcbiAgICAuaGFzTG9jYWxUYXJiYWxsKHBhY2thZ2VOYW1lLCBmaWxlbmFtZSlcbiAgICAudGhlbigoaGFzTG9jYWxUYXJiYWxsKSA9PiB7XG4gICAgICBpZiAoaGFzTG9jYWxUYXJiYWxsKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB7IHBhY2thZ2VOYW1lLCBmaWxlbmFtZSB9O1xuICAgICAgICBjb25zdCB0YXJiYWxsVXJsID1cbiAgICAgICAgICB0eXBlb2YgdGFyYmFsbFVybFJlZGlyZWN0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHRhcmJhbGxVcmxSZWRpcmVjdChjb250ZXh0KVxuICAgICAgICAgICAgOiBfLnRlbXBsYXRlKHRhcmJhbGxVcmxSZWRpcmVjdCkoY29udGV4dCk7XG4gICAgICAgIHJlcy5yZWRpcmVjdCh0YXJiYWxsVXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvd25sb2FkU3RyZWFtKHBhY2thZ2VOYW1lLCBmaWxlbmFtZSwgc3RvcmFnZSwgcmVxLCByZXMpO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKGVycik7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgc3RvcmFnZTogU3RvcmFnZSwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgY29uc3QgY2FuID0gYWxsb3coYXV0aCwge1xuICAgIGJlZm9yZUFsbDogKHBhcmFtcywgbWVzc2FnZSkgPT4gbG9nZ2VyLnRyYWNlKHBhcmFtcywgbWVzc2FnZSksXG4gICAgYWZ0ZXJBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICB9KTtcbiAgLy8gVE9ETzogYW5vbnltb3VzIHVzZXI/XG4gIHJvdXRlLmdldChcbiAgICBQQUNLQUdFX0FQSV9FTkRQT0lOVFMuZ2V0X3BhY2thZ2VfYnlfdmVyc2lvbixcbiAgICBjYW4oJ2FjY2VzcycpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgYWJicmV2aWF0ZWQgPVxuICAgICAgICBzdHJpbmdVdGlscy5nZXRCeVF1YWxpdHlQcmlvcml0eVZhbHVlKHJlcS5nZXQoJ0FjY2VwdCcpKSA9PT1cbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5ucG0uaW5zdGFsbC12MStqc29uJztcbiAgICAgIGNvbnN0IGdldFBhY2thZ2VNZXRhQ2FsbGJhY2sgPSBmdW5jdGlvbiAoZXJyLCBtZXRhZGF0YTogTWFuaWZlc3QpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGEgPSBjb252ZXJ0RGlzdFJlbW90ZVRvTG9jYWxUYXJiYWxsVXJscyhcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm90b2NvbDogcmVxLnByb3RvY29sLFxuICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMgYXMgYW55LFxuICAgICAgICAgICAgaG9zdDogcmVxLmhvc3RuYW1lLFxuICAgICAgICAgICAgcmVtb3RlQWRkcmVzczogcmVxLnNvY2tldC5yZW1vdGVBZGRyZXNzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29uZmlnLnVybF9wcmVmaXhcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgcXVlcnlWZXJzaW9uID0gcmVxLnBhcmFtcy52ZXJzaW9uO1xuICAgICAgICBpZiAoXy5pc05pbChxdWVyeVZlcnNpb24pKSB7XG4gICAgICAgICAgaWYgKGFiYnJldmlhdGVkKSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKEhFQURFUlMuQ09OVEVOVF9UWVBFLCAnYXBwbGljYXRpb24vdm5kLm5wbS5pbnN0YWxsLXYxK2pzb24nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSwgSEVBREVSUy5KU09OKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dChtZXRhZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmVyc2lvbiA9IGdldFZlcnNpb24obWV0YWRhdGEsIHF1ZXJ5VmVyc2lvbik7XG4gICAgICAgIGlmIChfLmlzTmlsKHZlcnNpb24pID09PSBmYWxzZSkge1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoSEVBREVSUy5DT05URU5UX1RZUEUsIEhFQURFUlMuSlNPTik7XG4gICAgICAgICAgcmV0dXJuIG5leHQodmVyc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pc05pbChtZXRhZGF0YVtESVNUX1RBR1NdKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBpZiAoXy5pc05pbChtZXRhZGF0YVtESVNUX1RBR1NdW3F1ZXJ5VmVyc2lvbl0pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcXVlcnlWZXJzaW9uID0gbWV0YWRhdGFbRElTVF9UQUdTXVtxdWVyeVZlcnNpb25dO1xuICAgICAgICAgICAgdmVyc2lvbiA9IGdldFZlcnNpb24obWV0YWRhdGEsIHF1ZXJ5VmVyc2lvbik7XG4gICAgICAgICAgICBpZiAoXy5pc05pbCh2ZXJzaW9uKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSwgSEVBREVSUy5KU09OKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQodmVyc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXROb3RGb3VuZChgJHtBUElfRVJST1IuVkVSU0lPTl9OT1RfRVhJU1R9OiAke3JlcS5wYXJhbXMudmVyc2lvbn1gKSk7XG4gICAgICB9O1xuXG4gICAgICBzdG9yYWdlLmdldFBhY2thZ2Uoe1xuICAgICAgICBuYW1lOiByZXEucGFyYW1zLnBhY2thZ2UsXG4gICAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAgICByZXEsXG4gICAgICAgIGFiYnJldmlhdGVkLFxuICAgICAgICBjYWxsYmFjazogZ2V0UGFja2FnZU1ldGFDYWxsYmFjayxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZS5nZXQoXG4gICAgUEFDS0FHRV9BUElfRU5EUE9JTlRTLmdldF9wYWNrYWdlX3RhcmJhbGwsXG4gICAgY2FuKCdhY2Nlc3MnKSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQpOiB2b2lkIHtcbiAgICAgIGlmIChfLmdldChjb25maWcsICdleHBlcmltZW50cy50YXJiYWxsX3VybF9yZWRpcmVjdCcpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZG93bmxvYWRTdHJlYW0ocmVxLnBhcmFtcy5wYWNrYWdlLCByZXEucGFyYW1zLmZpbGVuYW1lLCBzdG9yYWdlLCByZXEsIHJlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWRpcmVjdE9yRG93bmxvYWRTdHJlYW0oXG4gICAgICAgICAgcmVxLnBhcmFtcy5wYWNrYWdlLFxuICAgICAgICAgIHJlcS5wYXJhbXMuZmlsZW5hbWUsXG4gICAgICAgICAgc3RvcmFnZSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgcmVzLFxuICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sTUFBQSxHQUFBTixP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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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWlkZGxld2FyZSIsInJlcXVpcmUiLCJfZGVmYXVsdCIsInJvdXRlIiwiZ2V0IiwiUElOR19BUElfRU5EUE9JTlRTIiwicGluZyIsInJlcSIsInJlcyIsIm5leHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9waW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IFBJTkdfQVBJX0VORFBPSU5UUyB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5cbmltcG9ydCB0eXBlIHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQsICRSZXNwb25zZUV4dGVuZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHJvdXRlOiBSb3V0ZXIpOiB2b2lkIHtcbiAgcm91dGUuZ2V0KFxuICAgIFBJTkdfQVBJX0VORFBPSU5UUy5waW5nLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgbmV4dCh7fSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFJZSxTQUFBQyxTQUFVQyxLQUFhLEVBQVE7RUFDNUNBLEtBQUssQ0FBQ0MsR0FBRyxDQUNQQyw4QkFBa0IsQ0FBQ0MsSUFBSSxFQUN2QixVQUFVQyxHQUFtQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFFO0lBQzNFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDVixDQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|