@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.
Files changed (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/bin/verdaccio +3 -0
  4. package/bin/verdaccio-canary +3 -0
  5. package/build/api/debug/index.js +28 -0
  6. package/build/api/endpoint/api/dist-tags.js +77 -0
  7. package/build/api/endpoint/api/package.js +103 -0
  8. package/build/api/endpoint/api/ping.js +13 -0
  9. package/build/api/endpoint/api/publish.js +359 -0
  10. package/build/api/endpoint/api/search.js +107 -0
  11. package/build/api/endpoint/api/star.js +73 -0
  12. package/build/api/endpoint/api/stars.js +42 -0
  13. package/build/api/endpoint/api/user.js +84 -0
  14. package/build/api/endpoint/api/v1/profile.js +69 -0
  15. package/build/api/endpoint/api/v1/search.js +181 -0
  16. package/build/api/endpoint/api/v1/token.js +140 -0
  17. package/build/api/endpoint/api/whoami.js +15 -0
  18. package/build/api/endpoint/index.js +58 -0
  19. package/build/api/index.js +105 -0
  20. package/build/api/middleware.js +56 -0
  21. package/build/api/web/api/index.js +31 -0
  22. package/build/api/web/api/package.js +165 -0
  23. package/build/api/web/api/search.js +53 -0
  24. package/build/api/web/api/user.js +70 -0
  25. package/build/api/web/api/utils.js +14 -0
  26. package/build/api/web/html/favicon.ico +0 -0
  27. package/build/api/web/index.js +96 -0
  28. package/build/index.js +76 -0
  29. package/build/lib/auth-utils.js +16 -0
  30. package/build/lib/bootstrap.js +167 -0
  31. package/build/lib/cli/cli.js +26 -0
  32. package/build/lib/cli/commands/info.js +26 -0
  33. package/build/lib/cli/commands/init.js +78 -0
  34. package/build/lib/cli/commands/version.js +17 -0
  35. package/build/lib/cli/utils.js +14 -0
  36. package/build/lib/cli.js +16 -0
  37. package/build/lib/config.js +22 -0
  38. package/build/lib/constants.js +121 -0
  39. package/build/lib/experiments.js +29 -0
  40. package/build/lib/local-storage.js +760 -0
  41. package/build/lib/logger/index.js +21 -0
  42. package/build/lib/metadata-utils.js +39 -0
  43. package/build/lib/run-server.js +122 -0
  44. package/build/lib/storage-utils.js +282 -0
  45. package/build/lib/storage.js +676 -0
  46. package/build/lib/up-storage.js +605 -0
  47. package/build/lib/uplink-util.js +36 -0
  48. package/build/lib/utils.js +265 -0
  49. package/conf/.gitkeep +0 -0
  50. package/index.js +1 -0
  51. package/package.json +156 -0
  52. package/security.txt +5 -0
  53. package/systemd/verdaccio.service +11 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _debug = _interopRequireDefault(require("debug"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _core = require("@verdaccio/core");
10
+ var _middleware = require("@verdaccio/middleware");
11
+ var _constants = require("../../../lib/constants");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const debug = (0, _debug.default)('verdaccio:api:stars');
14
+ function _default(route, storage) {
15
+ route.get(_middleware.STARS_API_ENDPOINTS.get_user_starred_packages, (req, res, next) => {
16
+ const query = req.query;
17
+ if (typeof query?.key === 'undefined' || typeof query?.key !== 'string') {
18
+ debug('missing query key username');
19
+ return next(_core.errorUtils.getBadRequest('missing query key username'));
20
+ }
21
+ const key = query.key;
22
+ debug(`get user starred packages for user: ${key}`);
23
+ storage.getLocalDatabase((err, localPackages) => {
24
+ if (err) {
25
+ debug(`error getting local database: ${err.message}`);
26
+ return next(err);
27
+ }
28
+ const filteredPackages = localPackages.filter(localPackage => {
29
+ debug(`checking package: ${localPackage?.name}`);
30
+ return _lodash.default.keys(localPackage[_constants.USERS]).includes(key.toString().replace(/['"]+/g, ''));
31
+ });
32
+ debug(`found ${filteredPackages.length} packages for user: ${key}`);
33
+ res.status(_constants.HTTP_STATUS.OK);
34
+ next({
35
+ rows: filteredPackages.map(filteredPackage => ({
36
+ value: filteredPackage.name
37
+ }))
38
+ });
39
+ });
40
+ });
41
+ }
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX2NvbnN0YW50cyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiY3JlYXRlRGVidWciLCJfZGVmYXVsdCIsInJvdXRlIiwic3RvcmFnZSIsImdldCIsIlNUQVJTX0FQSV9FTkRQT0lOVFMiLCJnZXRfdXNlcl9zdGFycmVkX3BhY2thZ2VzIiwicmVxIiwicmVzIiwibmV4dCIsInF1ZXJ5Iiwia2V5IiwiZXJyb3JVdGlscyIsImdldEJhZFJlcXVlc3QiLCJnZXRMb2NhbERhdGFiYXNlIiwiZXJyIiwibG9jYWxQYWNrYWdlcyIsIm1lc3NhZ2UiLCJmaWx0ZXJlZFBhY2thZ2VzIiwiZmlsdGVyIiwibG9jYWxQYWNrYWdlIiwibmFtZSIsIl8iLCJrZXlzIiwiVVNFUlMiLCJpbmNsdWRlcyIsInRvU3RyaW5nIiwicmVwbGFjZSIsImxlbmd0aCIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJyb3dzIiwibWFwIiwiZmlsdGVyZWRQYWNrYWdlIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9zdGFycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBlcnJvclV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IFNUQVJTX0FQSV9FTkRQT0lOVFMgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEhUVFBfU1RBVFVTLCBVU0VSUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgU3RvcmFnZSBmcm9tICcuLi8uLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkZWJ1ZyA9IGNyZWF0ZURlYnVnKCd2ZXJkYWNjaW86YXBpOnN0YXJzJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZTogUm91dGVyLCBzdG9yYWdlOiBTdG9yYWdlKTogdm9pZCB7XG4gIHJvdXRlLmdldChcbiAgICBTVEFSU19BUElfRU5EUE9JTlRTLmdldF91c2VyX3N0YXJyZWRfcGFja2FnZXMsXG4gICAgKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcmVxLnF1ZXJ5IGFzIHsga2V5Pzogc3RyaW5nIH07XG4gICAgICBpZiAodHlwZW9mIHF1ZXJ5Py5rZXkgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBxdWVyeT8ua2V5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICBkZWJ1ZygnbWlzc2luZyBxdWVyeSBrZXkgdXNlcm5hbWUnKTtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyb3JVdGlscy5nZXRCYWRSZXF1ZXN0KCdtaXNzaW5nIHF1ZXJ5IGtleSB1c2VybmFtZScpKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5ID0gcXVlcnkua2V5O1xuICAgICAgZGVidWcoYGdldCB1c2VyIHN0YXJyZWQgcGFja2FnZXMgZm9yIHVzZXI6ICR7a2V5fWApO1xuXG4gICAgICBzdG9yYWdlLmdldExvY2FsRGF0YWJhc2UoKGVyciwgbG9jYWxQYWNrYWdlczogVmVyc2lvbltdKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBkZWJ1ZyhgZXJyb3IgZ2V0dGluZyBsb2NhbCBkYXRhYmFzZTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYWNrYWdlczogVmVyc2lvbltdID0gbG9jYWxQYWNrYWdlcy5maWx0ZXIoKGxvY2FsUGFja2FnZTogVmVyc2lvbikgPT4ge1xuICAgICAgICAgIGRlYnVnKGBjaGVja2luZyBwYWNrYWdlOiAke2xvY2FsUGFja2FnZT8ubmFtZX1gKTtcbiAgICAgICAgICByZXR1cm4gXy5rZXlzKGxvY2FsUGFja2FnZVtVU0VSU10pLmluY2x1ZGVzKGtleS50b1N0cmluZygpLnJlcGxhY2UoL1snXCJdKy9nLCAnJykpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkZWJ1ZyhgZm91bmQgJHtmaWx0ZXJlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZXMgZm9yIHVzZXI6ICR7a2V5fWApO1xuICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgICAgbmV4dCh7XG4gICAgICAgICAgcm93czogZmlsdGVyZWRQYWNrYWdlcy5tYXAoKGZpbHRlcmVkUGFja2FnZTogVmVyc2lvbikgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJlZFBhY2thZ2UubmFtZSxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFBNEQsU0FBQUQsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFJNUQsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGNBQVcsRUFBQyxxQkFBcUIsQ0FBQztBQUVqQyxTQUFBQyxTQUFVQyxLQUFhLEVBQUVDLE9BQWdCLEVBQVE7RUFDOURELEtBQUssQ0FBQ0UsR0FBRyxDQUNQQywrQkFBbUIsQ0FBQ0MseUJBQXlCLEVBQzdDLENBQUNDLEdBQW1CLEVBQUVDLEdBQWEsRUFBRUMsSUFBc0IsS0FBVztJQUNwRSxNQUFNQyxLQUFLLEdBQUdILEdBQUcsQ0FBQ0csS0FBeUI7SUFDM0MsSUFBSSxPQUFPQSxLQUFLLEVBQUVDLEdBQUcsS0FBSyxXQUFXLElBQUksT0FBT0QsS0FBSyxFQUFFQyxHQUFHLEtBQUssUUFBUSxFQUFFO01BQ3ZFWixLQUFLLENBQUMsNEJBQTRCLENBQUM7TUFDbkMsT0FBT1UsSUFBSSxDQUFDRyxnQkFBVSxDQUFDQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNyRTtJQUVBLE1BQU1GLEdBQUcsR0FBR0QsS0FBSyxDQUFDQyxHQUFHO0lBQ3JCWixLQUFLLENBQUMsdUNBQXVDWSxHQUFHLEVBQUUsQ0FBQztJQUVuRFIsT0FBTyxDQUFDVyxnQkFBZ0IsQ0FBQyxDQUFDQyxHQUFHLEVBQUVDLGFBQXdCLEtBQUs7TUFDMUQsSUFBSUQsR0FBRyxFQUFFO1FBQ1BoQixLQUFLLENBQUMsaUNBQWlDZ0IsR0FBRyxDQUFDRSxPQUFPLEVBQUUsQ0FBQztRQUNyRCxPQUFPUixJQUFJLENBQUNNLEdBQUcsQ0FBQztNQUNsQjtNQUVBLE1BQU1HLGdCQUEyQixHQUFHRixhQUFhLENBQUNHLE1BQU0sQ0FBRUMsWUFBcUIsSUFBSztRQUNsRnJCLEtBQUssQ0FBQyxxQkFBcUJxQixZQUFZLEVBQUVDLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU9DLGVBQUMsQ0FBQ0MsSUFBSSxDQUFDSCxZQUFZLENBQUNJLGdCQUFLLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUNkLEdBQUcsQ0FBQ2UsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztNQUNuRixDQUFDLENBQUM7TUFFRjVCLEtBQUssQ0FBQyxTQUFTbUIsZ0JBQWdCLENBQUNVLE1BQU0sdUJBQXVCakIsR0FBRyxFQUFFLENBQUM7TUFDbkVILEdBQUcsQ0FBQ3FCLE1BQU0sQ0FBQ0Msc0JBQVcsQ0FBQ0MsRUFBRSxDQUFDO01BQzFCdEIsSUFBSSxDQUFDO1FBQ0h1QixJQUFJLEVBQUVkLGdCQUFnQixDQUFDZSxHQUFHLENBQUVDLGVBQXdCLEtBQU07VUFDeERDLEtBQUssRUFBRUQsZUFBZSxDQUFDYjtRQUN6QixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _express = _interopRequireDefault(require("express"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _auth = require("@verdaccio/auth");
10
+ var _config = require("@verdaccio/config");
11
+ var _core = require("@verdaccio/core");
12
+ var _middleware = require("@verdaccio/middleware");
13
+ var _utils = require("@verdaccio/utils");
14
+ var _constants = require("../../../lib/constants");
15
+ var _logger = require("../../../lib/logger");
16
+ var _utils2 = require("../../../lib/utils");
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ function _default(route, auth, config) {
19
+ /* eslint new-cap:off */
20
+ const userRouter = _express.default.Router();
21
+ userRouter.get('/-/user/:org_couchdb_user', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
22
+ res.status(_constants.HTTP_STATUS.OK);
23
+ next({
24
+ ok: (0, _utils.getAuthenticatedMessage)(req.remote_user.name)
25
+ });
26
+ });
27
+ userRouter.put('/-/user/:org_couchdb_user/:_rev?/:revision?', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
28
+ const {
29
+ name,
30
+ password
31
+ } = req.body;
32
+ const remoteName = req.remote_user.name;
33
+ if (_lodash.default.isNil(remoteName) === false && _lodash.default.isNil(name) === false && remoteName === name) {
34
+ auth.authenticate(name, password, async function callbackAuthenticate(err, user) {
35
+ if (err) {
36
+ _logger.logger.error({
37
+ name,
38
+ err
39
+ }, 'authenticating for user @{username} failed. Error: @{err.message}');
40
+ return next(_utils2.ErrorCode.getCode(_constants.HTTP_STATUS.UNAUTHORIZED, _constants.API_ERROR.BAD_USERNAME_PASSWORD));
41
+ }
42
+ const restoredRemoteUser = (0, _config.createRemoteUser)(name, user?.groups ?? []);
43
+ const token = await (0, _auth.getApiToken)(auth, config, restoredRemoteUser, password);
44
+ res.status(_constants.HTTP_STATUS.CREATED);
45
+ res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
46
+ return next({
47
+ ok: (0, _utils.getAuthenticatedMessage)(req.remote_user.name),
48
+ token
49
+ });
50
+ });
51
+ } else {
52
+ if (_core.validationUtils.validatePassword(password) === false) {
53
+ return next(_utils2.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_REQUEST, _constants.API_ERROR.PASSWORD_SHORT));
54
+ }
55
+ auth.add_user(name, password, async function (err, user) {
56
+ if (err) {
57
+ if (err.status >= _constants.HTTP_STATUS.BAD_REQUEST && err.status < _constants.HTTP_STATUS.INTERNAL_ERROR) {
58
+ // With npm registering is the same as logging in,
59
+ // and npm accepts only an 409 error.
60
+ // So, changing status code here.
61
+ return next(_utils2.ErrorCode.getCode(err.status, err.message) || _utils2.ErrorCode.getConflict(err.message));
62
+ }
63
+ return next(err);
64
+ }
65
+ const token = name && password ? await (0, _auth.getApiToken)(auth, config, user, password) : undefined;
66
+ req.remote_user = user;
67
+ res.status(_constants.HTTP_STATUS.CREATED);
68
+ res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
69
+ return next({
70
+ ok: `user '${req.body.name}' created`,
71
+ token
72
+ });
73
+ });
74
+ }
75
+ });
76
+ userRouter.delete('/-/user/token/*', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
77
+ res.status(_constants.HTTP_STATUS.OK);
78
+ next({
79
+ ok: _constants.API_MESSAGE.LOGGED_OUT
80
+ });
81
+ });
82
+ route.use(userRouter);
83
+ }
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9hdXRoIiwiX2NvbmZpZyIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlIiwiYXV0aCIsImNvbmZpZyIsInVzZXJSb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwiZ2V0IiwicmF0ZUxpbWl0IiwidXNlclJhdGVMaW1pdCIsInJlcSIsInJlcyIsIm5leHQiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2siLCJnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSIsInJlbW90ZV91c2VyIiwibmFtZSIsInB1dCIsInBhc3N3b3JkIiwiYm9keSIsInJlbW90ZU5hbWUiLCJfIiwiaXNOaWwiLCJhdXRoZW50aWNhdGUiLCJjYWxsYmFja0F1dGhlbnRpY2F0ZSIsImVyciIsInVzZXIiLCJsb2dnZXIiLCJlcnJvciIsIkVycm9yQ29kZSIsImdldENvZGUiLCJVTkFVVEhPUklaRUQiLCJBUElfRVJST1IiLCJCQURfVVNFUk5BTUVfUEFTU1dPUkQiLCJyZXN0b3JlZFJlbW90ZVVzZXIiLCJjcmVhdGVSZW1vdGVVc2VyIiwiZ3JvdXBzIiwidG9rZW4iLCJnZXRBcGlUb2tlbiIsIkNSRUFURUQiLCJzZXQiLCJIRUFERVJTIiwiQ0FDSEVfQ09OVFJPTCIsInZhbGlkYXRpb25VdGlscyIsInZhbGlkYXRlUGFzc3dvcmQiLCJCQURfUkVRVUVTVCIsIlBBU1NXT1JEX1NIT1JUIiwiYWRkX3VzZXIiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRDb25mbGljdCIsInVuZGVmaW5lZCIsImRlbGV0ZSIsIkFQSV9NRVNTQUdFIiwiTE9HR0VEX09VVCIsInVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgeyBjcmVhdGVSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IENvbmZpZywgUmVtb3RlVXNlciB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUElfTUVTU0FHRSwgSEVBREVSUywgSFRUUF9TVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZTogUm91dGVyLCBhdXRoOiBBdXRoLCBjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgY29uc3QgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5cbiAgdXNlclJvdXRlci5nZXQoXG4gICAgJy8tL3VzZXIvOm9yZ19jb3VjaGRiX3VzZXInLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgIG5leHQoe1xuICAgICAgICBvazogZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UocmVxLnJlbW90ZV91c2VyLm5hbWUpLFxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHVzZXJSb3V0ZXIucHV0KFxuICAgICcvLS91c2VyLzpvcmdfY291Y2hkYl91c2VyLzpfcmV2Py86cmV2aXNpb24/JyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgeyBuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG4gICAgICBjb25zdCByZW1vdGVOYW1lID0gcmVxLnJlbW90ZV91c2VyLm5hbWU7XG5cbiAgICAgIGlmIChfLmlzTmlsKHJlbW90ZU5hbWUpID09PSBmYWxzZSAmJiBfLmlzTmlsKG5hbWUpID09PSBmYWxzZSAmJiByZW1vdGVOYW1lID09PSBuYW1lKSB7XG4gICAgICAgIGF1dGguYXV0aGVudGljYXRlKFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2FsbGJhY2tBdXRoZW50aWNhdGUoZXJyLCB1c2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICB7IG5hbWUsIGVyciB9LFxuICAgICAgICAgICAgICAgICdhdXRoZW50aWNhdGluZyBmb3IgdXNlciBAe3VzZXJuYW1lfSBmYWlsZWQuIEVycm9yOiBAe2Vyci5tZXNzYWdlfSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFJlbW90ZVVzZXI6IFJlbW90ZVVzZXIgPSBjcmVhdGVSZW1vdGVVc2VyKG5hbWUsIHVzZXI/Lmdyb3VwcyA/PyBbXSk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGdldEFwaVRva2VuKGF1dGgsIGNvbmZpZywgcmVzdG9yZWRSZW1vdGVVc2VyLCBwYXNzd29yZCk7XG5cbiAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgICBvazogZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UocmVxLnJlbW90ZV91c2VyLm5hbWUpLFxuICAgICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2YWxpZGF0aW9uVXRpbHMudmFsaWRhdGVQYXNzd29yZChwYXNzd29yZCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QsIEFQSV9FUlJPUi5QQVNTV09SRF9TSE9SVCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXV0aC5hZGRfdXNlcihuYW1lLCBwYXNzd29yZCwgYXN5bmMgZnVuY3Rpb24gKGVyciwgdXNlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID49IEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNUICYmIGVyci5zdGF0dXMgPCBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUikge1xuICAgICAgICAgICAgICAvLyBXaXRoIG5wbSByZWdpc3RlcmluZyBpcyB0aGUgc2FtZSBhcyBsb2dnaW5nIGluLFxuICAgICAgICAgICAgICAvLyBhbmQgbnBtIGFjY2VwdHMgb25seSBhbiA0MDkgZXJyb3IuXG4gICAgICAgICAgICAgIC8vIFNvLCBjaGFuZ2luZyBzdGF0dXMgY29kZSBoZXJlLlxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShlcnIuc3RhdHVzLCBlcnIubWVzc2FnZSkgfHwgRXJyb3JDb2RlLmdldENvbmZsaWN0KGVyci5tZXNzYWdlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0b2tlbiA9XG4gICAgICAgICAgICBuYW1lICYmIHBhc3N3b3JkXG4gICAgICAgICAgICAgID8gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyIGFzIFJlbW90ZVVzZXIsIHBhc3N3b3JkKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIG9rOiBgdXNlciAnJHtyZXEuYm9keS5uYW1lfScgY3JlYXRlZGAsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHVzZXJSb3V0ZXIuZGVsZXRlKFxuICAgICcvLS91c2VyL3Rva2VuLyonLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgIG5leHQoe1xuICAgICAgICBvazogQVBJX01FU1NBR0UuTE9HR0VEX09VVCxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZS51c2UodXNlclJvdXRlcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUErQyxTQUFBRCx1QkFBQVcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFB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
@@ -0,0 +1,69 @@
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 _constants = require("../../../../lib/constants");
11
+ var _utils = require("../../../../lib/utils");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _default(router, auth, config) {
14
+ function buildProfile(name) {
15
+ return {
16
+ tfa: false,
17
+ name,
18
+ email: '',
19
+ email_verified: false,
20
+ created: '',
21
+ updated: '',
22
+ cidr_whitelist: null,
23
+ fullname: ''
24
+ };
25
+ }
26
+ router.get('/-/npm/v1/user', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
27
+ if (_lodash.default.isNil(req.remote_user.name) === false) {
28
+ return next(buildProfile(req.remote_user.name));
29
+ }
30
+ res.status(_constants.HTTP_STATUS.UNAUTHORIZED);
31
+ return next({
32
+ message: _constants.API_ERROR.MUST_BE_LOGGED
33
+ });
34
+ });
35
+ router.post('/-/npm/v1/user', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
36
+ if (_lodash.default.isNil(req.remote_user.name)) {
37
+ res.status(_constants.HTTP_STATUS.UNAUTHORIZED);
38
+ return next({
39
+ message: _constants.API_ERROR.MUST_BE_LOGGED
40
+ });
41
+ }
42
+ const {
43
+ password,
44
+ tfa
45
+ } = req.body;
46
+ const {
47
+ name
48
+ } = req.remote_user;
49
+ if (_lodash.default.isNil(password) === false) {
50
+ if (_core.validationUtils.validatePassword(password.new) === false) {
51
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.UNAUTHORIZED, _constants.API_ERROR.PASSWORD_SHORT));
52
+ }
53
+ auth.changePassword(name, password.old, password.new, (err, isUpdated) => {
54
+ if (_lodash.default.isNull(err) === false) {
55
+ return next(_utils.ErrorCode.getCode(err.status, err.message) || _utils.ErrorCode.getConflict(err.message));
56
+ }
57
+ if (isUpdated) {
58
+ return next(buildProfile(req.remote_user.name));
59
+ }
60
+ return next(_utils.ErrorCode.getInternalError(_constants.API_ERROR.INTERNAL_SERVER_ERROR));
61
+ });
62
+ } else if (_lodash.default.isNil(tfa) === false) {
63
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.SERVICE_UNAVAILABLE, _constants.SUPPORT_ERRORS.TFA_DISABLED));
64
+ } else {
65
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.INTERNAL_ERROR, _constants.APP_ERROR.PROFILE_ERROR));
66
+ }
67
+ });
68
+ }
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX2NvbnN0YW50cyIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZhdWx0Iiwicm91dGVyIiwiYXV0aCIsImNvbmZpZyIsImJ1aWxkUHJvZmlsZSIsIm5hbWUiLCJ0ZmEiLCJlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIiwiY3JlYXRlZCIsInVwZGF0ZWQiLCJjaWRyX3doaXRlbGlzdCIsImZ1bGxuYW1lIiwiZ2V0IiwicmF0ZUxpbWl0IiwidXNlclJhdGVMaW1pdCIsInJlcSIsInJlcyIsIm5leHQiLCJfIiwiaXNOaWwiLCJyZW1vdGVfdXNlciIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiVU5BVVRIT1JJWkVEIiwibWVzc2FnZSIsIkFQSV9FUlJPUiIsIk1VU1RfQkVfTE9HR0VEIiwicG9zdCIsInBhc3N3b3JkIiwiYm9keSIsInZhbGlkYXRpb25VdGlscyIsInZhbGlkYXRlUGFzc3dvcmQiLCJuZXciLCJFcnJvckNvZGUiLCJnZXRDb2RlIiwiUEFTU1dPUkRfU0hPUlQiLCJjaGFuZ2VQYXNzd29yZCIsIm9sZCIsImVyciIsImlzVXBkYXRlZCIsImlzTnVsbCIsImdldENvbmZsaWN0IiwiZ2V0SW50ZXJuYWxFcnJvciIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIlNFUlZJQ0VfVU5BVkFJTEFCTEUiLCJTVVBQT1JUX0VSUk9SUyIsIlRGQV9ESVNBQkxFRCIsIklOVEVSTkFMX0VSUk9SIiwiQVBQX0VSUk9SIiwiUFJPRklMRV9FUlJPUiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3YxL3Byb2ZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgdHlwZSB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IENvbmZpZ1lhbWwgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhUVFBfU1RBVFVTLCBTVVBQT1JUX0VSUk9SUyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZSB7XG4gIHRmYTogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZDogYm9vbGVhbjtcbiAgY3JlYXRlZDogc3RyaW5nO1xuICB1cGRhdGVkOiBzdHJpbmc7XG4gIGNpZHJfd2hpdGVsaXN0OiBzdHJpbmdbXSB8IG51bGw7XG4gIGZ1bGxuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZXI6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWdZYW1sKSB7XG4gIGZ1bmN0aW9uIGJ1aWxkUHJvZmlsZShuYW1lOiBzdHJpbmcpOiBQcm9maWxlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGZhOiBmYWxzZSxcbiAgICAgIG5hbWUsXG4gICAgICBlbWFpbDogJycsXG4gICAgICBlbWFpbF92ZXJpZmllZDogZmFsc2UsXG4gICAgICBjcmVhdGVkOiAnJyxcbiAgICAgIHVwZGF0ZWQ6ICcnLFxuICAgICAgY2lkcl93aGl0ZWxpc3Q6IG51bGwsXG4gICAgICBmdWxsbmFtZTogJycsXG4gICAgfTtcbiAgfVxuXG4gIHJvdXRlci5nZXQoXG4gICAgJy8tL25wbS92MS91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgaWYgKF8uaXNOaWwocmVxLnJlbW90ZV91c2VyLm5hbWUpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gbmV4dChidWlsZFByb2ZpbGUocmVxLnJlbW90ZV91c2VyLm5hbWUpKTtcbiAgICAgIH1cblxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICBtZXNzYWdlOiBBUElfRVJST1IuTVVTVF9CRV9MT0dHRUQsXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGVyLnBvc3QoXG4gICAgJy8tL25wbS92MS91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgaWYgKF8uaXNOaWwocmVxLnJlbW90ZV91c2VyLm5hbWUpKSB7XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEKTtcbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgcGFzc3dvcmQsIHRmYSB9ID0gcmVxLmJvZHk7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwocGFzc3dvcmQpID09PSBmYWxzZSkge1xuICAgICAgICBpZiAodmFsaWRhdGlvblV0aWxzLnZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQubmV3KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQsIEFQSV9FUlJPUi5QQVNTV09SRF9TSE9SVCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXV0aC5jaGFuZ2VQYXNzd29yZChcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHBhc3N3b3JkLm9sZCxcbiAgICAgICAgICBwYXNzd29yZC5uZXcsXG4gICAgICAgICAgKGVyciwgaXNVcGRhdGVkKTogJE5leHRGdW5jdGlvblZlciA9PiB7XG4gICAgICAgICAgICBpZiAoXy5pc051bGwoZXJyKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoZXJyLnN0YXR1cywgZXJyLm1lc3NhZ2UpIHx8IEVycm9yQ29kZS5nZXRDb25mbGljdChlcnIubWVzc2FnZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzVXBkYXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChidWlsZFByb2ZpbGUocmVxLnJlbW90ZV91c2VyLm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNOaWwodGZhKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuU0VSVklDRV9VTkFWQUlMQUJMRSwgU1VQUE9SVF9FUlJPUlMuVEZBX0RJU0FCTEVEKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIEFQUF9FUlJPUi5QUk9GSUxFX0VSUk9SKSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFHQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBa0QsU0FBQUQsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFjbkMsU0FBQUcsU0FBVUMsTUFBYyxFQUFFQyxJQUFVLEVBQUVDLE1BQWtCLEVBQUU7RUFDdkUsU0FBU0MsWUFBWUEsQ0FBQ0MsSUFBWSxFQUFXO0lBQzNDLE9BQU87TUFDTEMsR0FBRyxFQUFFLEtBQUs7TUFDVkQsSUFBSTtNQUNKRSxLQUFLLEVBQUUsRUFBRTtNQUNUQyxjQUFjLEVBQUUsS0FBSztNQUNyQkMsT0FBTyxFQUFFLEVBQUU7TUFDWEMsT0FBTyxFQUFFLEVBQUU7TUFDWEMsY0FBYyxFQUFFLElBQUk7TUFDcEJDLFFBQVEsRUFBRTtJQUNaLENBQUM7RUFDSDtFQUVBWCxNQUFNLENBQUNZLEdBQUcsQ0FDUixnQkFBZ0IsRUFDaEIsSUFBQUMscUJBQVMsRUFBQ1gsTUFBTSxFQUFFWSxhQUFhLENBQUMsRUFDaEMsVUFBVUMsR0FBbUIsRUFBRUMsR0FBYSxFQUFFQyxJQUFzQixFQUFRO0lBQzFFLElBQUlDLGVBQUMsQ0FBQ0MsS0FBSyxD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
@@ -0,0 +1,181 @@
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 _semver = _interopRequireDefault(require("semver"));
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
+ const personMatch = (person, search) => {
14
+ if (typeof person === 'string') {
15
+ return person.includes(search);
16
+ }
17
+ if (typeof person === 'object') {
18
+ for (const field of Object.values(person)) {
19
+ if (typeof field === 'string' && field.includes(search)) {
20
+ return true;
21
+ }
22
+ }
23
+ }
24
+ return false;
25
+ };
26
+ const matcher = function (query) {
27
+ const match = query.match(/author:(.*)/);
28
+ if (match !== null) {
29
+ return function (pkg) {
30
+ return personMatch(pkg.author, match[1]);
31
+ };
32
+ }
33
+
34
+ // TODO: maintainer, keywords, boost-exact
35
+ // TODO implement some scoring system for freetext
36
+ return pkg => {
37
+ return ['name', 'displayName', 'description'].map(k => {
38
+ return pkg[k];
39
+ }).filter(x => {
40
+ return x !== undefined;
41
+ }).some(txt => {
42
+ return txt.includes(query);
43
+ });
44
+ };
45
+ };
46
+ function compileTextSearch(textSearch) {
47
+ const textMatchers = (textSearch || '').split(' ').map(matcher);
48
+ return pkg => textMatchers.every(m => m(pkg));
49
+ }
50
+ function removeDuplicates(results) {
51
+ const pkgNames = [];
52
+ return results.filter(pkg => {
53
+ if (pkgNames.includes(pkg?.package?.name)) {
54
+ return false;
55
+ }
56
+ pkgNames.push(pkg?.package?.name);
57
+ return true;
58
+ });
59
+ }
60
+ function checkAccess(pkg, auth, remoteUser) {
61
+ return new Promise((resolve, reject) => {
62
+ auth.allow_access({
63
+ packageName: pkg?.package?.name
64
+ }, remoteUser, function (err, allowed) {
65
+ if (err) {
66
+ if (err.status && String(err.status).match(/^4\d\d$/)) {
67
+ // auth plugin returns 4xx user error,
68
+ // that's equivalent of !allowed basically
69
+ allowed = false;
70
+ return resolve(null);
71
+ } else {
72
+ reject(err);
73
+ }
74
+ } else {
75
+ return resolve(allowed ? pkg : null);
76
+ }
77
+ });
78
+ });
79
+ }
80
+ async function sendResponse(resultBuf, resultStream, auth, req, from, size) {
81
+ resultStream.destroy();
82
+ const resultsCollection = resultBuf.map(pkg => {
83
+ if (pkg?.name) {
84
+ return {
85
+ package: pkg,
86
+ // not sure if flags is need it
87
+ flags: {
88
+ unstable: Object.keys(pkg.versions).some(v => _semver.default.satisfies(v, '^1.0.0')) ? undefined : true
89
+ },
90
+ local: true,
91
+ score: {
92
+ final: 1,
93
+ detail: {
94
+ quality: 1,
95
+ popularity: 1,
96
+ maintenance: 0
97
+ }
98
+ },
99
+ searchScore: 100000
100
+ };
101
+ } else {
102
+ return pkg;
103
+ }
104
+ });
105
+ const checkAccessPromises = await Promise.all(removeDuplicates(resultsCollection).map(pkgItem => {
106
+ return checkAccess(pkgItem, auth, req.remote_user);
107
+ }));
108
+ const final = checkAccessPromises.filter(i => !_lodash.default.isNull(i)).slice(from, size);
109
+ _logger.logger.debug(`search results ${final?.length}`);
110
+ const response = {
111
+ objects: final,
112
+ total: final.length,
113
+ time: new Date().toUTCString()
114
+ };
115
+ _logger.logger.debug(`total response ${final.length}`);
116
+ return response;
117
+ }
118
+
119
+ /**
120
+ * Endpoint for npm search v1
121
+ * req: 'GET /-/v1/search?text=react&size=20&from=0&quality=0.65&popularity=0.98&maintenance=0.5'
122
+ */
123
+ function _default(route, auth, storage) {
124
+ route.get(_middleware.SEARCH_API_ENDPOINTS.search, async (req, res, next) => {
125
+ // TODO: implement proper result scoring weighted by quality, popularity and maintenance query parameters
126
+ // eslint-disable-next-line prefer-const
127
+ let [text, size, from /* , quality, popularity, maintenance */] = ['text', 'size', 'from' /* , 'quality', 'popularity', 'maintenance' */].map(k => req.query[k]);
128
+ size = parseInt(size) || 20;
129
+ from = parseInt(from) || 0;
130
+ const isInteresting = compileTextSearch(text);
131
+ const resultStream = storage.search(0, {
132
+ req
133
+ });
134
+ let resultBuf = [];
135
+ let completed = false;
136
+ resultStream.on('data', pkg => {
137
+ // packages from the upstreams
138
+ if (_lodash.default.isArray(pkg)) {
139
+ resultBuf = resultBuf.concat(pkg.filter(pkgItem => {
140
+ if (!isInteresting(pkgItem?.package)) {
141
+ return;
142
+ }
143
+ _logger.logger.debug(`[remote] pkg name ${pkgItem?.package?.name}`);
144
+ return true;
145
+ }));
146
+ } else {
147
+ // packages from local
148
+ // due compability with `/-/all` we cannot refactor storage.search();
149
+ if (!isInteresting(pkg)) {
150
+ return;
151
+ }
152
+ _logger.logger.debug(`[local] pkg name ${pkg?.name}`);
153
+ resultBuf.push(pkg);
154
+ }
155
+ });
156
+ resultStream.on('error', function () {
157
+ _logger.logger.error('search endpoint has failed');
158
+ res.socket.destroy();
159
+ });
160
+ resultStream.on('end', async () => {
161
+ if (!completed) {
162
+ completed = true;
163
+ try {
164
+ const response = await sendResponse(resultBuf, resultStream, auth, req, from, size);
165
+ // @ts-expect-error
166
+ _logger.logger.info('search endpoint ok results @{total}', {
167
+ total: response.total
168
+ });
169
+ res.status(_constants.HTTP_STATUS.OK).json(response);
170
+ } catch (err) {
171
+ // @ts-expect-error
172
+ _logger.logger.error('search endpoint has failed @{err}', {
173
+ err
174
+ });
175
+ next(err);
176
+ }
177
+ }
178
+ });
179
+ });
180
+ }
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc2VtdmVyIiwiX21pZGRsZXdhcmUiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInBlcnNvbk1hdGNoIiwicGVyc29uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJmaWVsZCIsIk9iamVjdCIsInZhbHVlcyIsIm1hdGNoZXIiLCJxdWVyeSIsIm1hdGNoIiwicGtnIiwiYXV0aG9yIiwibWFwIiwiayIsImZpbHRlciIsIngiLCJ1bmRlZmluZWQiLCJzb21lIiwidHh0IiwiY29tcGlsZVRleHRTZWFyY2giLCJ0ZXh0U2VhcmNoIiwidGV4dE1hdGNoZXJzIiwic3BsaXQiLCJldmVyeSIsIm0iLCJyZW1vdmVEdXBsaWNhdGVzIiwicmVzdWx0cyIsInBrZ05hbWVzIiwicGFja2FnZSIsIm5hbWUiLCJwdXNoIiwiY2hlY2tBY2Nlc3MiLCJhdXRoIiwicmVtb3RlVXNlciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWxsb3dfYWNjZXNzIiwicGFja2FnZU5hbWUiLCJlcnIiLCJhbGxvd2VkIiwic3RhdHVzIiwiU3RyaW5nIiwic2VuZFJlc3BvbnNlIiwicmVzdWx0QnVmIiwicmVzdWx0U3RyZWFtIiwicmVxIiwiZnJvbSIsInNpemUiLCJkZXN0cm95IiwicmVzdWx0c0NvbGxlY3Rpb24iLCJmbGFncyIsInVuc3RhYmxlIiwia2V5cyIsInZlcnNpb25zIiwidiIsInNlbXZlciIsInNhdGlzZmllcyIsImxvY2FsIiwic2NvcmUiLCJmaW5hbCIsImRldGFpbCIsInF1YWxpdHkiLCJwb3B1bGFyaXR5IiwibWFpbnRlbmFuY2UiLCJzZWFyY2hTY29yZSIsImNoZWNrQWNjZXNzUHJvbWlzZXMiLCJhbGwiLCJwa2dJdGVtIiwicmVtb3RlX3VzZXIiLCJpIiwiXyIsImlzTnVsbCIsInNsaWNlIiwibG9nZ2VyIiwiZGVidWciLCJsZW5ndGgiLCJyZXNwb25zZSIsIm9iamVjdHMiLCJ0b3RhbCIsInRpbWUiLCJEYXRlIiwidG9VVENTdHJpbmciLCJfZGVmYXVsdCIsInJvdXRlIiwic3RvcmFnZSIsImdldCIsIlNFQVJDSF9BUElfRU5EUE9JTlRTIiwicmVzIiwibmV4dCIsInRleHQiLCJwYXJzZUludCIsImlzSW50ZXJlc3RpbmciLCJjb21wbGV0ZWQiLCJvbiIsImlzQXJyYXkiLCJjb25jYXQiLCJlcnJvciIsInNvY2tldCIsImluZm8iLCJIVFRQX1NUQVRVUyIsIk9LIiwianNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3YxL3NlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgeyBTRUFSQ0hfQVBJX0VORFBPSU5UUyB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IE1hbmlmZXN0IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvbG9nZ2VyJztcblxudHlwZSBQdWJsaXNoZXJNYWludGFpbmVyID0ge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xufTtcblxudHlwZSBQYWNrYWdlUmVzdWx0cyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgbGlua3M6IHtcbiAgICBucG06IHN0cmluZztcbiAgICBob21lcGFnZT86IHN0cmluZztcbiAgICByZXBvc2l0b3J5Pzogc3RyaW5nO1xuICAgIGJ1Z3M/OiBzdHJpbmc7XG4gIH07XG4gIGF1dGhvcjogeyBuYW1lOiBzdHJpbmcgfTtcbiAgcHVibGlzaGVyOiBQdWJsaXNoZXJNYWludGFpbmVyO1xuICBtYWludGFpbmVyOiBQdWJsaXNoZXJNYWludGFpbmVyO1xufTtcblxudHlwZSBTZWFyY2hSZXN1bHQgPSB7XG4gIHBhY2thZ2U6IFBhY2thZ2VSZXN1bHRzO1xuICBmbGFncz86IHsgdW5zdGFibGU6IGJvb2xlYW4gfCB2b2lkIH07XG4gIGxvY2FsPzogYm9vbGVhbjtcbiAgc2NvcmU6IHtcbiAgICBmaW5hbDogbnVtYmVyO1xuICAgIGRldGFpbDoge1xuICAgICAgcXVhbGl0eTogbnVtYmVyO1xuICAgICAgcG9wdWxhcml0eTogbnVtYmVyO1xuICAgICAgbWFpbnRlbmFuY2U6IG51bWJlcjtcbiAgICB9O1xuICB9O1xuICBzZWFyY2hTY29yZTogbnVtYmVyO1xufTtcblxudHlwZSBTZWFyY2hSZXN1bHRzID0ge1xuICBvYmplY3RzOiBTZWFyY2hSZXN1bHRbXTtcbiAgdG90YWw6IG51bWJlcjtcbiAgdGltZTogc3RyaW5nO1xufTtcblxuY29uc3QgcGVyc29uTWF0Y2ggPSAocGVyc29uLCBzZWFyY2gpID0+IHtcbiAgaWYgKHR5cGVvZiBwZXJzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBlcnNvbi5pbmNsdWRlcyhzZWFyY2gpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwZXJzb24gPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBPYmplY3QudmFsdWVzKHBlcnNvbikpIHtcbiAgICAgIGlmICh0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnICYmIGZpZWxkLmluY2x1ZGVzKHNlYXJjaCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgbWF0Y2hlciA9IGZ1bmN0aW9uIChxdWVyeSkge1xuICBjb25zdCBtYXRjaCA9IHF1ZXJ5Lm1hdGNoKC9hdXRob3I6KC4qKS8pO1xuICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHBrZykge1xuICAgICAgcmV0dXJuIHBlcnNvbk1hdGNoKHBrZy5hdXRob3IsIG1hdGNoWzFdKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gVE9ETzogbWFpbnRhaW5lciwga2V5d29yZHMsIGJvb3N0LWV4YWN0XG4gIC8vIFRPRE8gaW1wbGVtZW50IHNvbWUgc2NvcmluZyBzeXN0ZW0gZm9yIGZyZWV0ZXh0XG4gIHJldHVybiAocGtnKSA9PiB7XG4gICAgcmV0dXJuIFsnbmFtZScsICdkaXNwbGF5TmFtZScsICdkZXNjcmlwdGlvbiddXG4gICAgICAubWFwKChrKSA9PiB7XG4gICAgICAgIHJldHVybiBwa2dba107XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoeCkgPT4ge1xuICAgICAgICByZXR1cm4geCAhPT0gdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICAgIC5zb21lKCh0eHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHR4dC5pbmNsdWRlcyhxdWVyeSk7XG4gICAgICB9KTtcbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGNvbXBpbGVUZXh0U2VhcmNoKHRleHRTZWFyY2g6IHN0cmluZyk6IChwa2c6IFBhY2thZ2VSZXN1bHRzKSA9PiBib29sZWFuIHtcbiAgY29uc3QgdGV4dE1hdGNoZXJzID0gKHRleHRTZWFyY2ggfHwgJycpLnNwbGl0KCcgJykubWFwKG1hdGNoZXIpO1xuICByZXR1cm4gKHBrZykgPT4gdGV4dE1hdGNoZXJzLmV2ZXJ5KChtKSA9PiBtKHBrZykpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVzKHJlc3VsdHMpIHtcbiAgY29uc3QgcGtnTmFtZXM6IGFueVtdID0gW107XG4gIHJldHVybiByZXN1bHRzLmZpbHRlcigocGtnKSA9PiB7XG4gICAgaWYgKHBrZ05hbWVzLmluY2x1ZGVzKHBrZz8ucGFja2FnZT8ubmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcGtnTmFtZXMucHVzaChwa2c/LnBhY2thZ2U/Lm5hbWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY2hlY2tBY2Nlc3MocGtnOiBhbnksIGF1dGg6IGFueSwgcmVtb3RlVXNlcik6IFByb21pc2U8TWFuaWZlc3QgfCBudWxsPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXV0aC5hbGxvd19hY2Nlc3MoeyBwYWNrYWdlTmFtZTogcGtnPy5wYWNrYWdlPy5uYW1lIH0sIHJlbW90ZVVzZXIsIGZ1bmN0aW9uIChlcnIsIGFsbG93ZWQpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgaWYgKGVyci5zdGF0dXMgJiYgU3RyaW5nKGVyci5zdGF0dXMpLm1hdGNoKC9eNFxcZFxcZCQvKSkge1xuICAgICAgICAgIC8vIGF1dGggcGx1Z2luIHJldHVybnMgNHh4IHVzZXIgZXJyb3IsXG4gICAgICAgICAgLy8gdGhhdCdzIGVxdWl2YWxlbnQgb2YgIWFsbG93ZWQgYmFzaWNhbGx5XG4gICAgICAgICAgYWxsb3dlZCA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShhbGxvd2VkID8gcGtnIDogbnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kUmVzcG9uc2UoXG4gIHJlc3VsdEJ1ZixcbiAgcmVzdWx0U3RyZWFtLFxuICBhdXRoLFxuICByZXEsXG4gIGZyb206IG51bWJlcixcbiAgc2l6ZTogbnVtYmVyXG4pOiBQcm9taXNlPFNlYXJjaFJlc3VsdHM+IHtcbiAgcmVzdWx0U3RyZWFtLmRlc3Ryb3koKTtcbiAgY29uc3QgcmVzdWx0c0NvbGxlY3Rpb24gPSByZXN1bHRCdWYubWFwKChwa2cpOiBTZWFyY2hSZXN1bHQgPT4ge1xuICAgIGlmIChwa2c/Lm5hbWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhY2thZ2U6IHBrZyxcbiAgICAgICAgLy8gbm90IHN1cmUgaWYgZmxhZ3MgaXMgbmVlZCBpdFxuICAgICAgICBmbGFnczoge1xuICAgICAgICAgIHVuc3RhYmxlOiBPYmplY3Qua2V5cyhwa2cudmVyc2lvbnMpLnNvbWUoKHYpID0+IHNlbXZlci5zYXRpc2ZpZXModiwgJ14xLjAuMCcpKVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYWw6IHRydWUsXG4gICAgICAgIHNjb3JlOiB7XG4gICAgICAgICAgZmluYWw6IDEsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBxdWFsaXR5OiAxLFxuICAgICAgICAgICAgcG9wdWxhcml0eTogMSxcbiAgICAgICAgICAgIG1haW50ZW5hbmNlOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaFNjb3JlOiAxMDAwMDAsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGtnO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGNoZWNrQWNjZXNzUHJvbWlzZXM6IFNlYXJjaFJlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcmVtb3ZlRHVwbGljYXRlcyhyZXN1bHRzQ29sbGVjdGlvbikubWFwKChwa2dJdGVtKSA9PiB7XG4gICAgICByZXR1cm4gY2hlY2tBY2Nlc3MocGtnSXRlbSwgYXV0aCwgcmVxLnJlbW90ZV91c2VyKTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0IGZpbmFsOiBTZWFyY2hSZXN1bHRbXSA9IGNoZWNrQWNjZXNzUHJvbWlzZXMuZmlsdGVyKChpKSA9PiAhXy5pc051bGwoaSkpLnNsaWNlKGZyb20sIHNpemUpO1xuICBsb2dnZXIuZGVidWcoYHNlYXJjaCByZXN1bHRzICR7ZmluYWw/Lmxlbmd0aH1gKTtcblxuICBjb25zdCByZXNwb25zZTogU2VhcmNoUmVzdWx0cyA9IHtcbiAgICBvYmplY3RzOiBmaW5hbCxcbiAgICB0b3RhbDogZmluYWwubGVuZ3RoLFxuICAgIHRpbWU6IG5ldyBEYXRlKCkudG9VVENTdHJpbmcoKSxcbiAgfTtcblxuICBsb2dnZXIuZGVidWcoYHRvdGFsIHJlc3BvbnNlICR7ZmluYWwubGVuZ3RofWApO1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbi8qKlxuICogRW5kcG9pbnQgZm9yIG5wbSBzZWFyY2ggdjFcbiAqIHJlcTogJ0dFVCAvLS92MS9zZWFyY2g/dGV4dD1yZWFjdCZzaXplPTIwJmZyb209MCZxdWFsaXR5PTAuNjUmcG9wdWxhcml0eT0wLjk4Jm1haW50ZW5hbmNlPTAuNSdcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHJvdXRlLCBhdXRoLCBzdG9yYWdlKTogdm9pZCB7XG4gIHJvdXRlLmdldChTRUFSQ0hfQVBJX0VORFBPSU5UUy5zZWFyY2gsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIC8vIFRPRE86IGltcGxlbWVudCBwcm9wZXIgcmVzdWx0IHNjb3Jpbmcgd2VpZ2h0ZWQgYnkgcXVhbGl0eSwgcG9wdWxhcml0eSBhbmQgbWFpbnRlbmFuY2UgcXVlcnkgcGFyYW1ldGVyc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgW3RleHQsIHNpemUsIGZyb20gLyogLCBxdWFsaXR5LCBwb3B1bGFyaXR5LCBtYWludGVuYW5jZSAqL10gPSBbXG4gICAgICAndGV4dCcsXG4gICAgICAnc2l6ZScsXG4gICAgICAnZnJvbScgLyogLCAncXVhbGl0eScsICdwb3B1bGFyaXR5JywgJ21haW50ZW5hbmNlJyAqLyxcbiAgICBdLm1hcCgoaykgPT4gcmVxLnF1ZXJ5W2tdKTtcblxuICAgIHNpemUgPSBwYXJzZUludChzaXplKSB8fCAyMDtcbiAgICBmcm9tID0gcGFyc2VJbnQoZnJvbSkgfHwgMDtcblxuICAgIGNvbnN0IGlzSW50ZXJlc3RpbmcgPSBjb21waWxlVGV4dFNlYXJjaCh0ZXh0KTtcblxuICAgIGNvbnN0IHJlc3VsdFN0cmVhbSA9IHN0b3JhZ2Uuc2VhcmNoKDAsIHsgcmVxIH0pO1xuICAgIGxldCByZXN1bHRCdWYgPSBbXSBhcyBhbnk7XG4gICAgbGV0IGNvbXBsZXRlZCA9IGZhbHNlO1xuXG4gICAgcmVzdWx0U3RyZWFtLm9uKCdkYXRhJywgKHBrZzogU2VhcmNoUmVzdWx0W10gfCBQYWNrYWdlUmVzdWx0cykgPT4ge1xuICAgICAgLy8gcGFja2FnZXMgZnJvbSB0aGUgdXBzdHJlYW1zXG4gICAgICBpZiAoXy5pc0FycmF5KHBrZykpIHtcbiAgICAgICAgcmVzdWx0QnVmID0gcmVzdWx0QnVmLmNvbmNhdChcbiAgICAgICAgICAocGtnIGFzIFNlYXJjaFJlc3VsdFtdKS5maWx0ZXIoKHBrZ0l0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXNJbnRlcmVzdGluZyhwa2dJdGVtPy5wYWNrYWdlKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoYFtyZW1vdGVdIHBrZyBuYW1lICR7cGtnSXRlbT8ucGFja2FnZT8ubmFtZX1gKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwYWNrYWdlcyBmcm9tIGxvY2FsXG4gICAgICAgIC8vIGR1ZSBjb21wYWJpbGl0eSB3aXRoIGAvLS9hbGxgIHdlIGNhbm5vdCByZWZhY3RvciBzdG9yYWdlLnNlYXJjaCgpO1xuICAgICAgICBpZiAoIWlzSW50ZXJlc3RpbmcocGtnKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIuZGVidWcoYFtsb2NhbF0gcGtnIG5hbWUgJHsocGtnIGFzIFBhY2thZ2VSZXN1bHRzKT8ubmFtZX1gKTtcbiAgICAgICAgcmVzdWx0QnVmLnB1c2gocGtnKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlc3VsdFN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoJ3NlYXJjaCBlbmRwb2ludCBoYXMgZmFpbGVkJyk7XG4gICAgICByZXMuc29ja2V0LmRlc3Ryb3koKTtcbiAgICB9KTtcblxuICAgIHJlc3VsdFN0cmVhbS5vbignZW5kJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFjb21wbGV0ZWQpIHtcbiAgICAgICAgY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlbmRSZXNwb25zZShyZXN1bHRCdWYsIHJlc3VsdFN0cmVhbSwgYXV0aCwgcmVxLCBmcm9tLCBzaXplKTtcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgbG9nZ2VyLmluZm8oJ3NlYXJjaCBlbmRwb2ludCBvayByZXN1bHRzIEB7dG90YWx9JywgeyB0b3RhbDogcmVzcG9uc2UudG90YWwgfSk7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSykuanNvbihyZXNwb25zZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ3NlYXJjaCBlbmRwb2ludCBoYXMgZmFpbGVkIEB7ZXJyfScsIHsgZXJyIH0pO1xuICAgICAgICAgIG5leHQoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsV0FBQSxHQUFB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
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _debug = _interopRequireDefault(require("debug"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _auth = require("@verdaccio/auth");
10
+ var _core = require("@verdaccio/core");
11
+ var _middleware = require("@verdaccio/middleware");
12
+ var _constants = require("../../../../lib/constants");
13
+ var _logger = require("../../../../lib/logger");
14
+ var _utils = require("../../../../lib/utils");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ const debug = (0, _debug.default)('verdaccio:token');
17
+ function normalizeToken(token) {
18
+ return {
19
+ ...token,
20
+ created: new Date(token.created).toISOString()
21
+ };
22
+ }
23
+
24
+ // https://github.com/npm/npm-profile/blob/latest/lib/index.js
25
+ function _default(router, auth, storage, config) {
26
+ router.get('/-/npm/v1/tokens', (0, _middleware.rateLimit)(config?.userRateLimit), async function (req, res, next) {
27
+ const {
28
+ name
29
+ } = req.remote_user;
30
+ if (_lodash.default.isNil(name) === false) {
31
+ try {
32
+ const tokens = await storage.readTokens({
33
+ user: name
34
+ });
35
+ const totalTokens = tokens.length;
36
+ debug('token list retrieved: %o', totalTokens);
37
+ res.status(_constants.HTTP_STATUS.OK);
38
+ return next({
39
+ objects: tokens.map(normalizeToken),
40
+ urls: {
41
+ next: '' // TODO: pagination?
42
+ }
43
+ });
44
+ } catch (error) {
45
+ _logger.logger.error({
46
+ error: error.msg
47
+ }, 'token list has failed: @{error}');
48
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.INTERNAL_ERROR, error.message));
49
+ }
50
+ }
51
+ return next(_utils.ErrorCode.getUnauthorized());
52
+ });
53
+ router.post('/-/npm/v1/tokens', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
54
+ const {
55
+ password,
56
+ readonly,
57
+ cidr_whitelist
58
+ } = req.body;
59
+ const {
60
+ name
61
+ } = req.remote_user;
62
+ if (!_lodash.default.isBoolean(readonly) || !_lodash.default.isArray(cidr_whitelist)) {
63
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_DATA, _constants.SUPPORT_ERRORS.PARAMETERS_NOT_VALID));
64
+ }
65
+ auth.authenticate(name, password, async (err, user) => {
66
+ if (err) {
67
+ const errorCode = err.message ? _constants.HTTP_STATUS.UNAUTHORIZED : _constants.HTTP_STATUS.INTERNAL_ERROR;
68
+ return next(_utils.ErrorCode.getCode(errorCode, err.message));
69
+ }
70
+ req.remote_user = user;
71
+ if (!_lodash.default.isFunction(storage.saveToken)) {
72
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.NOT_IMPLEMENTED, _constants.SUPPORT_ERRORS.STORAGE_NOT_IMPLEMENT));
73
+ }
74
+ try {
75
+ const token = await (0, _auth.getApiToken)(auth, config, user, password);
76
+ const key = _core.cryptoUtils.stringToMD5(token);
77
+ // TODO: use a utility here
78
+ const maskedToken = _core.cryptoUtils.mask(token, 5);
79
+ const created = new Date().getTime();
80
+
81
+ /**
82
+ * cidr_whitelist: is not being used, we pass it through
83
+ * token: we do not store the real token (it is generated once and retrieved to the user), just a mask of it.
84
+ */
85
+ const saveToken = {
86
+ user: name,
87
+ token: maskedToken,
88
+ key,
89
+ cidr: cidr_whitelist,
90
+ readonly,
91
+ created
92
+ };
93
+ await storage.saveToken(saveToken);
94
+ debug('token %o was created for user %o', key, name);
95
+ res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
96
+ return next(normalizeToken({
97
+ token,
98
+ user: name,
99
+ key: saveToken.key,
100
+ cidr: cidr_whitelist,
101
+ readonly,
102
+ created: saveToken.created
103
+ }));
104
+ } catch (error) {
105
+ _logger.logger.error({
106
+ error: error.msg
107
+ }, 'token creation has failed: @{error}');
108
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.INTERNAL_ERROR, error.message));
109
+ }
110
+ });
111
+ });
112
+ router.delete('/-/npm/v1/tokens/token/:tokenKey', (0, _middleware.rateLimit)(config?.userRateLimit), async (req, res, next) => {
113
+ const {
114
+ params: {
115
+ tokenKey
116
+ }
117
+ } = req;
118
+ const {
119
+ name
120
+ } = req.remote_user;
121
+ if (_lodash.default.isNil(name) === false) {
122
+ debug('%o has requested remove a token', name);
123
+ try {
124
+ await storage.deleteToken(name, tokenKey);
125
+ _logger.logger.info({
126
+ tokenKey,
127
+ name
128
+ }, 'token id @{tokenKey} was revoked for user @{name}');
129
+ return next({});
130
+ } catch (error) {
131
+ _logger.logger.error({
132
+ error: error.msg
133
+ }, 'token creation has failed: @{error}');
134
+ return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.INTERNAL_ERROR, error.message));
135
+ }
136
+ }
137
+ return next(_utils.ErrorCode.getUnauthorized());
138
+ });
139
+ }
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfYXV0aCIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsIm5vcm1hbGl6ZVRva2VuIiwidG9rZW4iLCJjcmVhdGVkIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiX2RlZmF1bHQiLCJyb3V0ZXIiLCJhdXRoIiwic3RvcmFnZSIsImNvbmZpZyIsImdldCIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwibmFtZSIsInJlbW90ZV91c2VyIiwiXyIsImlzTmlsIiwidG9rZW5zIiwicmVhZFRva2VucyIsInVzZXIiLCJ0b3RhbFRva2VucyIsImxlbmd0aCIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJvYmplY3RzIiwibWFwIiwidXJscyIsImVycm9yIiwibG9nZ2VyIiwibXNnIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIklOVEVSTkFMX0VSUk9SIiwibWVzc2FnZSIsImdldFVuYXV0aG9yaXplZCIsInBvc3QiLCJwYXNzd29yZCIsInJlYWRvbmx5IiwiY2lkcl93aGl0ZWxpc3QiLCJib2R5IiwiaXNCb29sZWFuIiwiaXNBcnJheSIsIkJBRF9EQVRBIiwiU1VQUE9SVF9FUlJPUlMiLCJQQVJBTUVURVJTX05PVF9WQUxJRCIsImF1dGhlbnRpY2F0ZSIsImVyciIsImVycm9yQ29kZSIsIlVOQVVUSE9SSVpFRCIsImlzRnVuY3Rpb24iLCJzYXZlVG9rZW4iLCJOT1RfSU1QTEVNRU5URUQiLCJTVE9SQUdFX05PVF9JTVBMRU1FTlQiLCJnZXRBcGlUb2tlbiIsImtleSIsImNyeXB0b1V0aWxzIiwic3RyaW5nVG9NRDUiLCJtYXNrZWRUb2tlbiIsIm1hc2siLCJnZXRUaW1lIiwiY2lkciIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwiZGVsZXRlIiwicGFyYW1zIiwidG9rZW5LZXkiLCJkZWxldGVUb2tlbiIsImluZm8iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS92MS90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB0eXBlIHsgQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgeyBjcnlwdG9VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyByYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcsIFJlbW90ZVVzZXIsIFRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEhFQURFUlMsIEhUVFBfU1RBVFVTLCBTVVBQT1JUX0VSUk9SUyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2Npbzp0b2tlbicpO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplVG9rZW4gPSBUb2tlbiAmIHtcbiAgY3JlYXRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplVG9rZW4odG9rZW46IFRva2VuKTogTm9ybWFsaXplVG9rZW4ge1xuICByZXR1cm4ge1xuICAgIC4uLnRva2VuLFxuICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKHRva2VuLmNyZWF0ZWQpLnRvSVNPU3RyaW5nKCksXG4gIH07XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXByb2ZpbGUvYmxvYi9sYXRlc3QvbGliL2luZGV4LmpzXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGVyOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnKSB7XG4gIHJvdXRlci5nZXQoXG4gICAgJy8tL25wbS92MS90b2tlbnMnLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGFzeW5jIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwobmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgc3RvcmFnZS5yZWFkVG9rZW5zKHsgdXNlcjogbmFtZSB9KTtcbiAgICAgICAgICBjb25zdCB0b3RhbFRva2VucyA9IHRva2Vucy5sZW5ndGg7XG4gICAgICAgICAgZGVidWcoJ3Rva2VuIGxpc3QgcmV0cmlldmVkOiAlbycsIHRvdGFsVG9rZW5zKTtcbiAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICBvYmplY3RzOiB0b2tlbnMubWFwKG5vcm1hbGl6ZVRva2VuKSxcbiAgICAgICAgICAgIHVybHM6IHtcbiAgICAgICAgICAgICAgbmV4dDogJycsIC8vIFRPRE86IHBhZ2luYXRpb24/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gbGlzdCBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoKSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5wb3N0KFxuICAgICcvLS9ucG0vdjEvdG9rZW5zJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgY29uc3QgeyBwYXNzd29yZCwgcmVhZG9ubHksIGNpZHJfd2hpdGVsaXN0IH0gPSByZXEuYm9keTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoIV8uaXNCb29sZWFuKHJlYWRvbmx5KSB8fCAhXy5pc0FycmF5KGNpZHJfd2hpdGVsaXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5CQURfREFUQSwgU1VQUE9SVF9FUlJPUlMuUEFSQU1FVEVSU19OT1RfVkFMSUQpKTtcbiAgICAgIH1cblxuICAgICAgYXV0aC5hdXRoZW50aWNhdGUobmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI/OiBSZW1vdGVVc2VyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubWVzc2FnZSA/IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCA6IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG5cbiAgICAgICAgaWYgKCFfLmlzRnVuY3Rpb24oc3RvcmFnZS5zYXZlVG9rZW4pKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5OT1RfSU1QTEVNRU5URUQsIFNVUFBPUlRfRVJST1JTLlNUT1JBR0VfTk9UX0lNUExFTUVOVClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBnZXRBcGlUb2tlbihhdXRoLCBjb25maWcsIHVzZXIgYXMgUmVtb3RlVXNlciwgcGFzc3dvcmQpKSBhcyBzdHJpbmc7XG4gICAgICAgICAgY29uc3Qga2V5ID0gY3J5cHRvVXRpbHMuc3RyaW5nVG9NRDUodG9rZW4gYXMgc3RyaW5nKTtcbiAgICAgICAgICAvLyBUT0RPOiB1c2UgYSB1dGlsaXR5IGhlcmVcbiAgICAgICAgICBjb25zdCBtYXNrZWRUb2tlbiA9IGNyeXB0b1V0aWxzLm1hc2sodG9rZW4gYXMgc3RyaW5nLCA1KTtcbiAgICAgICAgICBjb25zdCBjcmVhdGVkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBjaWRyX3doaXRlbGlzdDogaXMgbm90IGJlaW5nIHVzZWQsIHdlIHBhc3MgaXQgdGhyb3VnaFxuICAgICAgICAgICAqIHRva2VuOiB3ZSBkbyBub3Qgc3RvcmUgdGhlIHJlYWwgdG9rZW4gKGl0IGlzIGdlbmVyYXRlZCBvbmNlIGFuZCByZXRyaWV2ZWQgdG8gdGhlIHVzZXIpLCBqdXN0IGEgbWFzayBvZiBpdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjb25zdCBzYXZlVG9rZW46IFRva2VuID0ge1xuICAgICAgICAgICAgdXNlcjogbmFtZSxcbiAgICAgICAgICAgIHRva2VuOiBtYXNrZWRUb2tlbixcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGNpZHI6IGNpZHJfd2hpdGVsaXN0LFxuICAgICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgICBjcmVhdGVkLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhd2FpdCBzdG9yYWdlLnNhdmVUb2tlbihzYXZlVG9rZW4pO1xuICAgICAgICAgIGRlYnVnKCd0b2tlbiAlbyB3YXMgY3JlYXRlZCBmb3IgdXNlciAlbycsIGtleSwgbmFtZSk7XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgIG5vcm1hbGl6ZVRva2VuKHtcbiAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgICAgIGtleTogc2F2ZVRva2VuLmtleSxcbiAgICAgICAgICAgICAgY2lkcjogY2lkcl93aGl0ZWxpc3QsXG4gICAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgICBjcmVhdGVkOiBzYXZlVG9rZW4uY3JlYXRlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGNyZWF0aW9uIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5kZWxldGUoXG4gICAgJy8tL25wbS92MS90b2tlbnMvdG9rZW4vOnRva2VuS2V5JyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBhc3luYyAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwYXJhbXM6IHsgdG9rZW5LZXkgfSxcbiAgICAgIH0gPSByZXE7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwobmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGRlYnVnKCclbyBoYXMgcmVxdWVzdGVkIHJlbW92ZSBhIHRva2VuJywgbmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc3RvcmFnZS5kZWxldGVUb2tlbihuYW1lLCB0b2tlbktleSk7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oeyB0b2tlbktleSwgbmFtZSB9LCAndG9rZW4gaWQgQHt0b2tlbktleX0gd2FzIHJldm9rZWQgZm9yIHVzZXIgQHtuYW1lfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KHt9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGNyZWF0aW9uIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZCgpKTtcbiAgICB9XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUdBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLE1BQUEsR0FBQVAsT0FBQTtBQUFrRCxTQUFBRCx1QkFBQVMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUdsRCxNQUFNRyxLQUFLLEdBQUcsSUFBQUMsY0FBVSxFQUFDLGlCQUFpQixDQUFDO0FBSzNDLFNBQVNDLGNBQWNBLENBQUNDLEtBQVksRUFBa0I7RUFDcEQsT0FBTztJQUNMLEdBQUdBLEtBQUs7SUFDUkMsT0FBTyxFQUFFLElBQUlDLElBQUksQ0FBQ0YsS0FBSyxDQUFDQyxPQUFPLENBQUMsQ0FBQ0UsV0FBVyxDQUFDO0VBQy9DLENBQUM7QUFDSDs7QUFFQTtBQUNlLFNBQUFDLFNBQVVDLE1BQWMsRUFBRUMsSUFBVSxFQUFFQyxPQUFnQixFQUFFQyxNQUFjLEVBQUU7RUFDckZILE1BQU0sQ0FBQ0ksR0FBRyxDQUNSLGtCQUFrQixFQUNsQixJQUFBQyxxQkFBUyxFQUFDRixNQUFNLEVBQUVHLGFBQWEsQ0FBQyxFQUNoQyxnQkFBZ0JDLEdBQW1CLEVBQUVDLEdBQWEsRUFBRUMsSUFBc0IsRUFBRTtJQUMxRSxNQUFNO01BQUVDO0lBQUssQ0FBQyxHQUFHSCxHQUFHLENBQUNJLFdBQVc7SUFFaEMsSUFBSUMsZUFBQyxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTtNQUMzQixJQUFJO1FBQ0YsTUFBTUksTUFBTSxHQUFHLE1BQU1aLE9BQU8sQ0FBQ2EsVUFBVSxDQUFDO1VBQUVDLElBQUksRUFBRU47UUFBSyxDQUFDLENBQUM7UUFDdkQsTUFBTU8sV0FBVyxHQUFHSCxNQUFNLENBQUNJLE1BQU07UUFDakMxQixLQUFLLENBQUMsMEJBQTBCLEVBQUV5QixXQUFXLENBQUM7UUFDOUNULEdBQUcsQ0FBQ1csTUFBTSxDQUFDQyxzQkFBVyxDQUFDQyxFQUFFLENBQUM7UUFDMUIsT0FBT1osSUFBSSxDQUFDO1VBQ1ZhLE9BQU8sRUFBRVIsTUFBTSxDQUFDUyxHQUFHLENBQUM3QixjQUFjLENBQUM7VUFDbkM4QixJQUFJLEVBQUU7WUFDSmYsSUFBSSxFQUFFLEVBQUUsQ0FBRTtVQUNaO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FBQyxDQUFDLE9BQU9nQixLQUFVLEVBQUU7UUFDbkJDLGNBQU0sQ0FBQ0QsS0FBSyxDQUFDO1VBQUVBLEtBQUssRUFBRUEsS0FBSyxDQUFDRTtRQUFJLENBQUMsRUFBRSxpQ0FBaUMsQ0FBQztRQUNyRSxPQUFPbEIsSUFBSSxDQUFDbUIsZ0JBQVMsQ0FBQ0MsT0FBTyxDQUFDVCxzQkFBVyxDQUFDVSxjQUFjLEVBQUVMLEtBQUssQ0FBQ00sT0FBTyxDQUFDLENBQUM7TUFDM0U7SUFDRjtJQUNBLE9BQU90QixJQUFJLENBQUNtQixnQkFBUyxDQUFDSSxlQUFlLENBQUMsQ0FBQyxDQUFDO0VBQzFDLENBQ0YsQ0FBQztFQUVEaEMsTUFBTSxDQUFDaUMsSUFBSSxDQUNULGtCQUFrQixFQUNsQixJQUFBNUIscUJBQVMsRUFBQ0YsTUFBTSxFQUFFRyxhQUFhLENBQUMsRUFDaEMsVUFBVUMsR0FBbUIsRUFBRUMsR0FBYSxFQUFFQyxJQUFzQixFQUFFO0lBQ3BFLE1BQU07TUFBRXlCLFFBQVE7TUFBRUMsUUFBUTtNQUFFQztJQUFlLENBQUMsR0FBRzdCLEdBQUcsQ0FBQzhCLElBQUk7SUFDdkQsTUFBTTtNQUFFM0I7SUFBSyxDQUFDLEdBQUdILEdBQUcsQ0FBQ0ksV0FBVztJQUVoQyxJQUFJLENBQUNDLGVBQUMsQ0FBQzBCLFNBQVMsQ0FBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQ3ZCLGVBQUMsQ0FBQzJCLE9BQU8sQ0FBQ0gsY0FBYyxDQUFDLEVBQUU7TUFDeEQsT0FBTzNCLElBQUksQ0FBQ21CLGdCQUFTLENBQUNDLE9BQU8sQ0FBQ1Qsc0JBQVcsQ0FBQ29CLFFBQVEsRUFBRUMseUJBQWMsQ0FBQ0Msb0JBQW9CLENBQUMsQ0FBQztJQUMzRjtJQUVBekMsSUFBSSxDQUFDMEMsWUFBWSxDQUFDakMsSUFBSSxFQUFFd0IsUUFBUSxFQUFFLE9BQU9VLEdBQUcsRUFBRTVCLElBQWlCLEtBQUs7TUFDbEUsSUFBSTRCLEdBQUcsRUFBRTtRQUNQLE1BQU1DLFNBQVMsR0FBR0QsR0FBRyxDQUFDYixPQUFPLEdBQUdYLHNCQUFXLENBQUMwQixZQUFZLEdBQUcxQixzQkFBVyxDQUFDVSxjQUFjO1FBQ3JGLE9BQU9yQixJQUFJLENBQUNtQixnQkFBUyxDQUFDQyxPQUFPLENBQUNnQixTQUFTLEVBQUVELEdBQUcsQ0FBQ2IsT0FBTyxDQUFDLENBQUM7TUFDeEQ7TUFFQXhCLEdBQUcsQ0FBQ0ksV0FBVyxHQUFHSyxJQUFJO01BRXRCLElBQUksQ0FBQ0osZUFBQyxDQUFDbUMsVUFBVSxDQUFDN0MsT0FBTyxDQUFDOEMsU0FBUyxDQUFDLEVBQUU7UUFDcEMsT0FBT3ZDLElBQUksQ0FDVG1CLGdCQUFTLENBQUNDLE9BQU8sQ0FBQ1Qsc0JBQVcsQ0FBQzZCLGVBQWUsRUFBRVIseUJBQWMsQ0FBQ1MscUJBQXFCLENBQ3JGLENBQUM7TUFDSDtNQUVBLElBQUk7UUFDRixNQUFNdkQsS0FBSyxHQUFJLE1BQU0sSUFBQXdELGlCQUFXLEVBQUNsRCxJQUFJLEVBQUVFLE1BQU0sRUFBRWEsSUFBSSxFQUFnQmtCLFFBQVEsQ0FBWTtRQUN2RixNQUFNa0IsR0FBRyxHQUFHQyxpQkFBVyxDQUFDQyxXQUFXLENBQUMzRCxLQUFlLENBQUM7UUFDcEQ7UUFDQSxNQUFNNEQsV0FBVyxHQUFHRixpQkFBVyxDQUFDRyxJQUFJLENBQUM3RCxLQUFLLEVBQVksQ0FBQyxDQUFDO1FBQ3hELE1BQU1DLE9BQU8sR0FBRyxJQUFJQyxJQUFJLENBQUMsQ0FBQyxDQUFDNEQsT0FBTyxDQUFDLENBQUM7O1FBRXBDO0FBQ1Y7QUFDQTtBQUNBO1FBQ1UsTUFBTVQsU0FBZ0IsR0FBRztVQUN2QmhDLElBQUksRUFBRU4sSUFBSTtVQUNWZixLQUFLLEVBQUU0RCxXQUFXO1VBQ2xCSCxHQUFHO1VBQ0hNLElBQUksRUFBRXRCLGNBQWM7VUFDcEJELFFBQVE7VUFDUnZDO1FBQ0YsQ0FBQztRQUVELE1BQU1NLE9BQU8sQ0FBQzhDLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDO1FBQ2xDeEQsS0FBSyxDQUFDLGtDQUFrQyxFQUFFNEQsR0FBRyxFQUFFMUMsSUFBSSxDQUFDO1FBQ3BERixHQUFHLENBQUNtRCxHQUFHLENBQUNDLGtCQUFPLENBQUNDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztRQUNwRCxPQUFPcEQsSUFBSSxDQUNUZixjQUFjLENBQUM7VUFDYkMsS0FBSztVQUNMcUIsSUFBSSxFQUFFTixJQUFJO1VBQ1YwQyxHQUFHLEVBQUVKLFNBQVMsQ0FBQ0ksR0FBRztVQUNsQk0sSUFBSSxFQUFFdEIsY0FBYztVQUNwQkQsUUFBUTtVQUNSdkMsT0FBTyxFQUFFb0QsU0FBUyxDQUFDcEQ7UUFDckIsQ0FBQyxDQUNILENBQUM7TUFDSCxDQUFDLENBQUMsT0FBTzZCLEtBQVUsRUFBRTtRQUNuQkMsY0FBTSxDQUFDRCxLQUFLLENBQUM7VUFBRUEsS0FBSyxFQUFFQSxLQUFLLENBQUNFO1FBQUksQ0FBQyxFQUFFLHFDQUFxQyxDQUFDO1FBQ3pFLE9BQU9sQixJQUFJLENBQUNtQixnQkFBUyxDQUFDQyxPQUFPLENBQUNULHNCQUFXLENBQUNVLGNBQWMsRUFBRUwsS0FBSyxDQUFDTSxPQUFPLENBQUMsQ0FBQztNQUMzRTtJQUNGLENBQUMsQ0FBQztFQUNKLENBQ0YsQ0FBQztFQUVEL0IsTUFBTSxDQUFDOEQsTUFBTSxDQUNYLGtDQUFrQyxFQUNsQyxJQUFBekQscUJBQVMsRUFBQ0YsTUFBTSxFQUFFRyxhQUFhLENBQUMsRUFDaEMsT0FBT0MsR0FBbUIsRUFBRUMsR0FBYSxFQUFFQyxJQUFzQixLQUFLO0lBQ3BFLE1BQU07TUFDSnNELE1BQU0sRUFBRTtRQUFFQztNQUFTO0lBQ3JCLENBQUMsR0FBR3pELEdBQUc7SUFDUCxNQUFNO01BQUVHO0lBQUssQ0FBQyxHQUFHSCxHQUFHLENBQUNJLFdBQVc7SUFFaEMsSUFBSUMsZUFBQyxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTtNQUMzQmxCLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRWtCLElBQUksQ0FBQztNQUM5QyxJQUFJO1FBQ0YsTUFBTVIsT0FBTyxDQUFDK0QsV0FBVyxDQUFDdkQsSUFBSSxFQUFFc0QsUUFBUSxDQUFDO1FBQ3pDdEMsY0FBTSxDQUFDd0MsSUFBSSxDQUFDO1VBQUVGLFFBQVE7VUFBRXREO1FBQUssQ0FBQyxFQUFFLG1EQUFtRCxDQUFDO1FBQ3BGLE9BQU9ELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNqQixDQUFDLENBQUMsT0FBT2dCLEtBQVUsRUFBRTtRQUNuQkMsY0FBTSxDQUFDRCxLQUFLLENBQUM7VUFBRUEsS0FBSyxFQUFFQSxLQUFLLENBQUNFO1FBQUksQ0FBQyxFQUFFLHFDQUFxQyxDQUFDO1FBQ3pFLE9BQU9sQixJQUFJLENBQUNtQixnQkFBUyxDQUFDQyxPQUFPLENBQUNULHNCQUFXLENBQUNVLGNBQWMsRUFBRUwsS0FBSyxDQUFDTSxPQUFPLENBQUMsQ0FBQztNQUMzRTtJQUNGO0lBQ0EsT0FBT3RCLElBQUksQ0FBQ21CLGdCQUFTLENBQUNJLGVBQWUsQ0FBQyxDQUFDLENBQUM7RUFDMUMsQ0FDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,15 @@
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.USER_API_ENDPOINTS.whoami, (req, res, next) => {
10
+ next({
11
+ username: req.remote_user.name
12
+ });
13
+ });
14
+ }
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWlkZGxld2FyZSIsInJlcXVpcmUiLCJfZGVmYXVsdCIsInJvdXRlIiwiZ2V0IiwiVVNFUl9BUElfRU5EUE9JTlRTIiwid2hvYW1pIiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicmVtb3RlX3VzZXIiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvd2hvYW1pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgeyBVU0VSX0FQSV9FTkRQT0lOVFMgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuXG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlcik6IHZvaWQge1xuICByb3V0ZS5nZXQoXG4gICAgVVNFUl9BUElfRU5EUE9JTlRTLndob2FtaSxcbiAgICAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IGFueSA9PiB7XG4gICAgICBuZXh0KHsgdXNlcm5hbWU6IHJlcS5yZW1vdGVfdXNlci5uYW1lIH0pO1xuICAgIH1cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FBSWUsU0FBQUMsU0FBVUMsS0FBYSxFQUFRO0VBQzVDQSxLQUFLLENBQUNDLEdBQUcsQ0FDUEMsOEJBQWtCLENBQUNDLE1BQU0sRUFDekIsQ0FBQ0MsR0FBbUIsRUFBRUMsR0FBYSxFQUFFQyxJQUFzQixLQUFVO0lBQ25FQSxJQUFJLENBQUM7TUFBRUMsUUFBUSxFQUFFSCxHQUFHLENBQUNJLFdBQVcsQ0FBQ0M7SUFBSyxDQUFDLENBQUM7RUFDMUMsQ0FDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=