verdaccio 5.30.2 → 5.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,7 +33,9 @@ Install with npm:
33
33
  npm install --location=global verdaccio
34
34
  ```
35
35
 
36
- > Node.js v12 or higher is required for Verdaccio 5
36
+ **Node.js v14 or higher is required for Verdaccio 5**
37
+
38
+ > It's recommended using Node.js 20 (or latest LTS)
37
39
 
38
40
  or pull [Docker official image](https://verdaccio.org/docs/docker)
39
41
 
@@ -55,8 +57,6 @@ helm repo update
55
57
  helm install verdaccio/verdaccio
56
58
  ```
57
59
 
58
- Are you still using **Verdaccio 4**?. Check the [migration guide from 4.x to 5.x](https://verdaccio.org/blog/2021/04/14/verdaccio-5-migration-guide).
59
-
60
60
  ## Programmatic API
61
61
 
62
62
  Verdaccio can be used as a module for launch a server programmatically, [you can find more info at the website](https://verdaccio.org/docs/verdaccio-programmatically#using-the-module-api).
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = _default;
7
7
  var _express = _interopRequireDefault(require("express"));
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _auth = require("@verdaccio/auth");
9
10
  var _config = require("@verdaccio/config");
11
+ var _core = require("@verdaccio/core");
10
12
  var _middleware = require("@verdaccio/middleware");
11
13
  var _utils = require("@verdaccio/utils");
12
- var _authUtils = require("../../../lib/auth-utils");
13
14
  var _constants = require("../../../lib/constants");
14
15
  var _logger = require("../../../lib/logger");
15
16
  var _utils2 = require("../../../lib/utils");
@@ -39,7 +40,7 @@ function _default(route, auth, config) {
39
40
  return next(_utils2.ErrorCode.getCode(_constants.HTTP_STATUS.UNAUTHORIZED, _constants.API_ERROR.BAD_USERNAME_PASSWORD));
40
41
  }
41
42
  const restoredRemoteUser = (0, _config.createRemoteUser)(name, user.groups || []);
42
- const token = await (0, _authUtils.getApiToken)(auth, config, restoredRemoteUser, password);
43
+ const token = await (0, _auth.getApiToken)(auth, config, restoredRemoteUser, password);
43
44
  res.status(_constants.HTTP_STATUS.CREATED);
44
45
  res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
45
46
  return next({
@@ -48,7 +49,7 @@ function _default(route, auth, config) {
48
49
  });
49
50
  });
50
51
  } else {
51
- if ((0, _authUtils.validatePassword)(password) === false) {
52
+ if (_core.validationUtils.validatePassword(password) === false) {
52
53
  // eslint-disable-next-line new-cap
53
54
  return next(_utils2.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_REQUEST, _constants.API_ERROR.PASSWORD_SHORT));
54
55
  }
@@ -62,7 +63,7 @@ function _default(route, auth, config) {
62
63
  }
63
64
  return next(err);
64
65
  }
65
- const token = name && password ? await (0, _authUtils.getApiToken)(auth, config, user, password) : undefined;
66
+ const token = name && password ? await (0, _auth.getApiToken)(auth, config, user, password) : undefined;
66
67
  req.remote_user = user;
67
68
  res.status(_constants.HTTP_STATUS.CREATED);
68
69
  res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
@@ -81,4 +82,4 @@ function _default(route, auth, config) {
81
82
  });
82
83
  route.use(userRouter);
83
84
  }
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9jb25maWciLCJfbWlkZGxld2FyZSIsIl91dGlscyIsIl9hdXRoVXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZhdWx0Iiwicm91dGUiLCJhdXRoIiwiY29uZmlnIiwidXNlclJvdXRlciIsImV4cHJlc3MiLCJSb3V0ZXIiLCJnZXQiLCJyYXRlTGltaXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJvayIsImdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlIiwicmVtb3RlX3VzZXIiLCJuYW1lIiwicHV0IiwicGFzc3dvcmQiLCJib2R5IiwicmVtb3RlTmFtZSIsIl8iLCJpc05pbCIsImF1dGhlbnRpY2F0ZSIsImNhbGxiYWNrQXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImxvZ2dlciIsImVycm9yIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIlVOQVVUSE9SSVpFRCIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsInJlc3RvcmVkUmVtb3RlVXNlciIsImNyZWF0ZVJlbW90ZVVzZXIiLCJncm91cHMiLCJ0b2tlbiIsImdldEFwaVRva2VuIiwiQ1JFQVRFRCIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwidmFsaWRhdGVQYXNzd29yZCIsIkJBRF9SRVFVRVNUIiwiUEFTU1dPUkRfU0hPUlQiLCJhZGRfdXNlciIsIklOVEVSTkFMX0VSUk9SIiwibWVzc2FnZSIsImdldENvbmZsaWN0IiwidW5kZWZpbmVkIiwiZGVsZXRlIiwiQVBJX01FU1NBR0UiLCJMT0dHRURfT1VUIiwidXNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29va2llcyBmcm9tICdjb29raWVzJztcbmltcG9ydCBleHByZXNzLCB7IFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGNyZWF0ZVJlbW90ZVVzZXIgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG5pbXBvcnQgeyByYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVTZXNzaW9uVG9rZW4sIGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlIH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IGdldEFwaVRva2VuLCB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgtdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUElfTUVTU0FHRSwgSEVBREVSUywgSFRUUF9TVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZTogUm91dGVyLCBhdXRoOiBBdXRoLCBjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgY29uc3QgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5cbiAgdXNlclJvdXRlci5nZXQoXG4gICAgJy8tL3VzZXIvOm9yZ19jb3VjaGRiX3VzZXInLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgIG5leHQoe1xuICAgICAgICBvazogZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UocmVxLnJlbW90ZV91c2VyLm5hbWUpLFxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHVzZXJSb3V0ZXIucHV0KFxuICAgICcvLS91c2VyLzpvcmdfY291Y2hkYl91c2VyLzpfcmV2Py86cmV2aXNpb24/JyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgeyBuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG4gICAgICBjb25zdCByZW1vdGVOYW1lID0gcmVxLnJlbW90ZV91c2VyLm5hbWU7XG5cbiAgICAgIGlmIChfLmlzTmlsKHJlbW90ZU5hbWUpID09PSBmYWxzZSAmJiBfLmlzTmlsKG5hbWUpID09PSBmYWxzZSAmJiByZW1vdGVOYW1lID09PSBuYW1lKSB7XG4gICAgICAgIGF1dGguYXV0aGVudGljYXRlKFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2FsbGJhY2tBdXRoZW50aWNhdGUoZXJyLCB1c2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICB7IG5hbWUsIGVyciB9LFxuICAgICAgICAgICAgICAgICdhdXRoZW50aWNhdGluZyBmb3IgdXNlciBAe3VzZXJuYW1lfSBmYWlsZWQuIEVycm9yOiBAe2Vyci5tZXNzYWdlfSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFJlbW90ZVVzZXI6IFJlbW90ZVVzZXIgPSBjcmVhdGVSZW1vdGVVc2VyKG5hbWUsIHVzZXIuZ3JvdXBzIHx8IFtdKTtcbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCByZXN0b3JlZFJlbW90ZVVzZXIsIHBhc3N3b3JkKTtcblxuICAgICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICAgIG9rOiBnZXRBdXRoZW50aWNhdGVkTWVzc2FnZShyZXEucmVtb3RlX3VzZXIubmFtZSksXG4gICAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQpID09PSBmYWxzZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QsIEFQSV9FUlJPUi5QQVNTV09SRF9TSE9SVCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXV0aC5hZGRfdXNlcihuYW1lLCBwYXNzd29yZCwgYXN5bmMgZnVuY3Rpb24gKGVyciwgdXNlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID49IEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNUICYmIGVyci5zdGF0dXMgPCBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUikge1xuICAgICAgICAgICAgICAvLyBXaXRoIG5wbSByZWdpc3RlcmluZyBpcyB0aGUgc2FtZSBhcyBsb2dnaW5nIGluLFxuICAgICAgICAgICAgICAvLyBhbmQgbnBtIGFjY2VwdHMgb25seSBhbiA0MDkgZXJyb3IuXG4gICAgICAgICAgICAgIC8vIFNvLCBjaGFuZ2luZyBzdGF0dXMgY29kZSBoZXJlLlxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShlcnIuc3RhdHVzLCBlcnIubWVzc2FnZSkgfHwgRXJyb3JDb2RlLmdldENvbmZsaWN0KGVyci5tZXNzYWdlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0b2tlbiA9XG4gICAgICAgICAgICBuYW1lICYmIHBhc3N3b3JkID8gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyLCBwYXNzd29yZCkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICBvazogYHVzZXIgJyR7cmVxLmJvZHkubmFtZX0nIGNyZWF0ZWRgLFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICB1c2VyUm91dGVyLmRlbGV0ZShcbiAgICAnLy0vdXNlci90b2tlbi8qJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICBuZXh0KHtcbiAgICAgICAgb2s6IEFQSV9NRVNTQUdFLkxPR0dFRF9PVVQsXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUudXNlKHVzZXJSb3V0ZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFHQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFVLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFHaEMsU0FBQUcsU0FBVUMsS0FBYSxFQUFFQyxJQUFVLEVBQUVDLE1BQWMsRUFBUTtFQUN4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
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9hdXRoIiwiX2NvbmZpZyIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZhdWx0Iiwicm91dGUiLCJhdXRoIiwiY29uZmlnIiwidXNlclJvdXRlciIsImV4cHJlc3MiLCJSb3V0ZXIiLCJnZXQiLCJyYXRlTGltaXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJvayIsImdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlIiwicmVtb3RlX3VzZXIiLCJuYW1lIiwicHV0IiwicGFzc3dvcmQiLCJib2R5IiwicmVtb3RlTmFtZSIsIl8iLCJpc05pbCIsImF1dGhlbnRpY2F0ZSIsImNhbGxiYWNrQXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImxvZ2dlciIsImVycm9yIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIlVOQVVUSE9SSVpFRCIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsInJlc3RvcmVkUmVtb3RlVXNlciIsImNyZWF0ZVJlbW90ZVVzZXIiLCJncm91cHMiLCJ0b2tlbiIsImdldEFwaVRva2VuIiwiQ1JFQVRFRCIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwidmFsaWRhdGlvblV0aWxzIiwidmFsaWRhdGVQYXNzd29yZCIsIkJBRF9SRVFVRVNUIiwiUEFTU1dPUkRfU0hPUlQiLCJhZGRfdXNlciIsIklOVEVSTkFMX0VSUk9SIiwibWVzc2FnZSIsImdldENvbmZsaWN0IiwidW5kZWZpbmVkIiwiZGVsZXRlIiwiQVBJX01FU1NBR0UiLCJMT0dHRURfT1VUIiwidXNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhwcmVzcywgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBnZXRBcGlUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vYXV0aCc7XG5pbXBvcnQgeyBjcmVhdGVSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBDb25maWcsIFJlbW90ZVVzZXIgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlIH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgQVBJX01FU1NBR0UsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHVzZXJSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG4gIHVzZXJSb3V0ZXIuZ2V0KFxuICAgICcvLS91c2VyLzpvcmdfY291Y2hkYl91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICBuZXh0KHtcbiAgICAgICAgb2s6IGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICB1c2VyUm91dGVyLnB1dChcbiAgICAnLy0vdXNlci86b3JnX2NvdWNoZGJfdXNlci86X3Jldj8vOnJldmlzaW9uPycsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgcmVtb3RlTmFtZSA9IHJlcS5yZW1vdGVfdXNlci5uYW1lO1xuXG4gICAgICBpZiAoXy5pc05pbChyZW1vdGVOYW1lKSA9PT0gZmFsc2UgJiYgXy5pc05pbChuYW1lKSA9PT0gZmFsc2UgJiYgcmVtb3RlTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICBhdXRoLmF1dGhlbnRpY2F0ZShcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNhbGxiYWNrQXV0aGVudGljYXRlKGVyciwgdXNlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgeyBuYW1lLCBlcnIgfSxcbiAgICAgICAgICAgICAgICAnYXV0aGVudGljYXRpbmcgZm9yIHVzZXIgQHt1c2VybmFtZX0gZmFpbGVkLiBFcnJvcjogQHtlcnIubWVzc2FnZX0nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCwgQVBJX0VSUk9SLkJBRF9VU0VSTkFNRV9QQVNTV09SRClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZWRSZW1vdGVVc2VyOiBSZW1vdGVVc2VyID0gY3JlYXRlUmVtb3RlVXNlcihuYW1lLCB1c2VyLmdyb3VwcyB8fCBbXSk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGdldEFwaVRva2VuKGF1dGgsIGNvbmZpZywgcmVzdG9yZWRSZW1vdGVVc2VyLCBwYXNzd29yZCk7XG5cbiAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgICBvazogZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UocmVxLnJlbW90ZV91c2VyLm5hbWUpLFxuICAgICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2YWxpZGF0aW9uVXRpbHMudmFsaWRhdGVQYXNzd29yZChwYXNzd29yZCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5CQURfUkVRVUVTVCwgQVBJX0VSUk9SLlBBU1NXT1JEX1NIT1JUKSk7XG4gICAgICAgIH1cblxuICAgICAgICBhdXRoLmFkZF91c2VyKG5hbWUsIHBhc3N3b3JkLCBhc3luYyBmdW5jdGlvbiAoZXJyLCB1c2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPj0gSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QgJiYgZXJyLnN0YXR1cyA8IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SKSB7XG4gICAgICAgICAgICAgIC8vIFdpdGggbnBtIHJlZ2lzdGVyaW5nIGlzIHRoZSBzYW1lIGFzIGxvZ2dpbmcgaW4sXG4gICAgICAgICAgICAgIC8vIGFuZCBucG0gYWNjZXB0cyBvbmx5IGFuIDQwOSBlcnJvci5cbiAgICAgICAgICAgICAgLy8gU28sIGNoYW5naW5nIHN0YXR1cyBjb2RlIGhlcmUuXG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKGVyci5zdGF0dXMsIGVyci5tZXNzYWdlKSB8fCBFcnJvckNvZGUuZ2V0Q29uZmxpY3QoZXJyLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRva2VuID1cbiAgICAgICAgICAgIG5hbWUgJiYgcGFzc3dvcmQgPyBhd2FpdCBnZXRBcGlUb2tlbihhdXRoLCBjb25maWcsIHVzZXIsIHBhc3N3b3JkKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIG9rOiBgdXNlciAnJHtyZXEuYm9keS5uYW1lfScgY3JlYXRlZGAsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHVzZXJSb3V0ZXIuZGVsZXRlKFxuICAgICcvLS91c2VyL3Rva2VuLyonLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgIG5leHQoe1xuICAgICAgICBvazogQVBJX01FU1NBR0UuTE9HR0VEX09VVCxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZS51c2UodXNlclJvdXRlcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUdBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUErQyxTQUFBRCx1QkFBQVcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUdoQyxTQUFBRyxTQUFV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QUFJQSxHQUFHLENBQUNmLE1BQU0sSUFBSUMsc0JBQVcsQ0FBQ2tDLFdBQVcsSUFBSXBCLEdBQUcsQ0FBQ2YsTUFBTSxHQUFHQyxzQkFBVyxDQUFDcUMsY0FBYyxFQUFFO1lBQ3BGO1lBQ0E7WUFDQTtZQUNBLE9BQU92QyxJQUFJLENBQ1RvQixpQkFBUyxDQUFDQyxPQUFPLENBQUNMLEdBQUcsQ0FBQ2YsTUFBTSxFQUFFZSxHQUFHLENBQUN3QixPQUFPLENBQUMsSUFBSXBCLGlCQUFTLENBQUNxQixXQUFXLENBQUN6QixHQUFHLENBQUN3QixPQUFPLENBQ2pGLENBQUM7VUFDSDtVQUNBLE9BQU94QyxJQUFJLENBQUNnQixHQUFHLENBQUM7UUFDbEI7UUFFQSxNQUFNWSxLQUFLLEdBQ1RyQixJQUFJLElBQUlFLFFBQVEsR0FBRyxNQUFNLElBQUFvQixpQkFBVyxFQUFDdkMsSUFBSSxFQUFFQyxNQUFNLEVBQUUwQixJQUFJLEVBQUVSLFFBQVEsQ0FBQyxHQUFHaUMsU0FBUztRQUVoRjVDLEdBQUcsQ0FBQ1EsV0FBVyxHQUFHVyxJQUFJO1FBQ3RCbEIsR0FBRyxDQUFDRSxNQUFNLENBQUNDLHNCQUFXLENBQUM0QixPQUFPLENBQUM7UUFDL0IvQixHQUFHLENBQUNnQyxHQUFHLENBQUNDLGtCQUFPLENBQUNDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztRQUNwRCxPQUFPakMsSUFBSSxDQUFDO1VBQ1ZJLEVBQUUsRUFBRyxTQUFRTixHQUFHLENBQUNZLElBQUksQ0FBQ0gsSUFBSyxXQUFVO1VBQ3JDcUI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSjtFQUNGLENBQ0YsQ0FBQztFQUVEcEMsVUFBVSxDQUFDbUQsTUFBTSxDQUNmLGlCQUFpQixFQUNqQixJQUFBL0MscUJBQVMsRUFBQ0wsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVNLGFBQWEsQ0FBQyxFQUNoQyxVQUFVQyxHQUFtQixFQUFFQyxHQUFhLEVBQUVDLElBQXNCLEVBQVE7SUFDMUVELEdBQUcsQ0FBQ0UsTUFBTSxDQUFDQyxzQkFBVyxDQUFDQyxFQUFFLENBQUM7SUFDMUJILElBQUksQ0FBQztNQUNISSxFQUFFLEVBQUV3QyxzQkFBVyxDQUFDQztJQUNsQixDQUFDLENBQUM7RUFDSixDQUNGLENBQUM7RUFFRHhELEtBQUssQ0FBQ3lELEdBQUcsQ0FBQ3RELFVBQVUsQ0FBQztBQUN2QiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
  var _lodash = _interopRequireDefault(require("lodash"));
8
+ var _core = require("@verdaccio/core");
8
9
  var _middleware = require("@verdaccio/middleware");
9
- var _authUtils = require("../../../../lib/auth-utils");
10
10
  var _constants = require("../../../../lib/constants");
11
11
  var _utils = require("../../../../lib/utils");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -47,7 +47,7 @@ function _default(router, auth, config) {
47
47
  name
48
48
  } = req.remote_user;
49
49
  if (_lodash.default.isNil(password) === false) {
50
- if ((0, _authUtils.validatePassword)(password.new) === false) {
50
+ if (_core.validationUtils.validatePassword(password.new) === false) {
51
51
  /* eslint new-cap:off */
52
52
  return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.UNAUTHORIZED, _constants.API_ERROR.PASSWORD_SHORT));
53
53
  /* eslint new-cap:off */
@@ -68,4 +68,4 @@ function _default(router, auth, config) {
68
68
  }
69
69
  });
70
70
  }
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWlkZGxld2FyZSIsIl9hdXRoVXRpbHMiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlciIsImF1dGgiLCJjb25maWciLCJidWlsZFByb2ZpbGUiLCJuYW1lIiwidGZhIiwiZW1haWwiLCJlbWFpbF92ZXJpZmllZCIsImNyZWF0ZWQiLCJ1cGRhdGVkIiwiY2lkcl93aGl0ZWxpc3QiLCJmdWxsbmFtZSIsImdldCIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwiXyIsImlzTmlsIiwicmVtb3RlX3VzZXIiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIm1lc3NhZ2UiLCJBUElfRVJST1IiLCJNVVNUX0JFX0xPR0dFRCIsInBvc3QiLCJwYXNzd29yZCIsImJvZHkiLCJ2YWxpZGF0ZVBhc3N3b3JkIiwibmV3IiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIlBBU1NXT1JEX1NIT1JUIiwiY2hhbmdlUGFzc3dvcmQiLCJvbGQiLCJlcnIiLCJpc1VwZGF0ZWQiLCJpc051bGwiLCJnZXRDb25mbGljdCIsImdldEludGVybmFsRXJyb3IiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJTRVJWSUNFX1VOQVZBSUxBQkxFIiwiU1VQUE9SVF9FUlJPUlMiLCJURkFfRElTQUJMRUQiLCJJTlRFUk5BTF9FUlJPUiIsIkFQUF9FUlJPUiIsIlBST0ZJTEVfRVJST1IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS92MS9wcm9maWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBDb25maWdZYW1sIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IHZhbGlkYXRlUGFzc3dvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvYXV0aC11dGlscyc7XG5pbXBvcnQgeyBBUElfRVJST1IsIEFQUF9FUlJPUiwgSFRUUF9TVEFUVVMsIFNVUFBPUlRfRVJST1JTIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZSB7XG4gIHRmYTogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZDogYm9vbGVhbjtcbiAgY3JlYXRlZDogc3RyaW5nO1xuICB1cGRhdGVkOiBzdHJpbmc7XG4gIGNpZHJfd2hpdGVsaXN0OiBzdHJpbmdbXSB8IG51bGw7XG4gIGZ1bGxuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZXI6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWdZYW1sKSB7XG4gIGZ1bmN0aW9uIGJ1aWxkUHJvZmlsZShuYW1lOiBzdHJpbmcpOiBQcm9maWxlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGZhOiBmYWxzZSxcbiAgICAgIG5hbWUsXG4gICAgICBlbWFpbDogJycsXG4gICAgICBlbWFpbF92ZXJpZmllZDogZmFsc2UsXG4gICAgICBjcmVhdGVkOiAnJyxcbiAgICAgIHVwZGF0ZWQ6ICcnLFxuICAgICAgY2lkcl93aGl0ZWxpc3Q6IG51bGwsXG4gICAgICBmdWxsbmFtZTogJycsXG4gICAgfTtcbiAgfVxuXG4gIHJvdXRlci5nZXQoXG4gICAgJy8tL25wbS92MS91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgaWYgKF8uaXNOaWwocmVxLnJlbW90ZV91c2VyLm5hbWUpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gbmV4dChidWlsZFByb2ZpbGUocmVxLnJlbW90ZV91c2VyLm5hbWUpKTtcbiAgICAgIH1cblxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICBtZXNzYWdlOiBBUElfRVJST1IuTVVTVF9CRV9MT0dHRUQsXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGVyLnBvc3QoXG4gICAgJy8tL25wbS92MS91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgaWYgKF8uaXNOaWwocmVxLnJlbW90ZV91c2VyLm5hbWUpKSB7XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEKTtcbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgcGFzc3dvcmQsIHRmYSB9ID0gcmVxLmJvZHk7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwocGFzc3dvcmQpID09PSBmYWxzZSkge1xuICAgICAgICBpZiAodmFsaWRhdGVQYXNzd29yZChwYXNzd29yZC5uZXcpID09PSBmYWxzZSkge1xuICAgICAgICAgIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCwgQVBJX0VSUk9SLlBBU1NXT1JEX1NIT1JUKSk7XG4gICAgICAgICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gICAgICAgIH1cblxuICAgICAgICBhdXRoLmNoYW5nZVBhc3N3b3JkKFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgcGFzc3dvcmQub2xkLFxuICAgICAgICAgIHBhc3N3b3JkLm5ldyxcbiAgICAgICAgICAoZXJyLCBpc1VwZGF0ZWQpOiAkTmV4dEZ1bmN0aW9uVmVyID0+IHtcbiAgICAgICAgICAgIGlmIChfLmlzTnVsbChlcnIpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShlcnIuc3RhdHVzLCBlcnIubWVzc2FnZSkgfHwgRXJyb3JDb2RlLmdldENvbmZsaWN0KGVyci5tZXNzYWdlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNVcGRhdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KGJ1aWxkUHJvZmlsZShyZXEucmVtb3RlX3VzZXIubmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldEludGVybmFsRXJyb3IoQVBJX0VSUk9SLklOVEVSTkFMX1NFUlZFUl9FUlJPUikpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc05pbCh0ZmEpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5TRVJWSUNFX1VOQVZBSUxBQkxFLCBTVVBQT1JUX0VSUk9SUy5URkFfRElTQUJMRUQpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgQVBQX0VSUk9SLlBST0ZJTEVfRVJST1IpKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUlBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFrRCxTQUFBRCx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQWNuQyxTQUFBRyxTQUFVQyxNQUFjLEVBQUVDLElBQVUsRUFBRUMsTUFBa0IsRUFBRTtFQUN2RSxTQUFTQyxZQUFZQSxDQUFDQyxJQUFZLEVBQVc7SUFDM0MsT0FBTztNQUNMQyxHQUFHLEVBQUUsS0FBSztNQUNWRCxJQUFJO01BQ0pFLEtBQUssRUFBRSxFQUFFO01BQ1RDLGNBQWMsRUFBRSxLQUFLO01BQ3JCQyxPQUFPLEVBQUUsRUFBRTtNQUNYQyxPQUFPLEVBQUUsRUFBRTtNQUNYQyxjQUFjLEVBQUUsSUFBSTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1osQ0FBQztFQUNIO0VBRUFYLE1BQU0sQ0FBQ1ksR0FBRyxDQUNSLGdCQUFnQixFQUNoQixJQUFBQyxxQkFBUyxFQUFDWCxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRVksYUFBYSxDQUFDLEVBQ2hDLFVBQVVDLEdB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
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2RlZmF1bHQiLCJyb3V0ZXIiLCJhdXRoIiwiY29uZmlnIiwiYnVpbGRQcm9maWxlIiwibmFtZSIsInRmYSIsImVtYWlsIiwiZW1haWxfdmVyaWZpZWQiLCJjcmVhdGVkIiwidXBkYXRlZCIsImNpZHJfd2hpdGVsaXN0IiwiZnVsbG5hbWUiLCJnZXQiLCJyYXRlTGltaXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsIl8iLCJpc05pbCIsInJlbW90ZV91c2VyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJVTkFVVEhPUklaRUQiLCJtZXNzYWdlIiwiQVBJX0VSUk9SIiwiTVVTVF9CRV9MT0dHRUQiLCJwb3N0IiwicGFzc3dvcmQiLCJib2R5IiwidmFsaWRhdGlvblV0aWxzIiwidmFsaWRhdGVQYXNzd29yZCIsIm5ldyIsIkVycm9yQ29kZSIsImdldENvZGUiLCJQQVNTV09SRF9TSE9SVCIsImNoYW5nZVBhc3N3b3JkIiwib2xkIiwiZXJyIiwiaXNVcGRhdGVkIiwiaXNOdWxsIiwiZ2V0Q29uZmxpY3QiLCJnZXRJbnRlcm5hbEVycm9yIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwiU0VSVklDRV9VTkFWQUlMQUJMRSIsIlNVUFBPUlRfRVJST1JTIiwiVEZBX0RJU0FCTEVEIiwiSU5URVJOQUxfRVJST1IiLCJBUFBfRVJST1IiLCJQUk9GSUxFX0VSUk9SIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvdjEvcHJvZmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyB2YWxpZGF0aW9uVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgcmF0ZUxpbWl0IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IENvbmZpZ1lhbWwgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IEF1dGggZnJvbSAnLi4vLi4vLi4vLi4vbGliL2F1dGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhUVFBfU1RBVFVTLCBTVVBQT1JUX0VSUk9SUyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xuICB0ZmE6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgZW1haWxfdmVyaWZpZWQ6IGJvb2xlYW47XG4gIGNyZWF0ZWQ6IHN0cmluZztcbiAgdXBkYXRlZDogc3RyaW5nO1xuICBjaWRyX3doaXRlbGlzdDogc3RyaW5nW10gfCBudWxsO1xuICBmdWxsbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGVyOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIGNvbmZpZzogQ29uZmlnWWFtbCkge1xuICBmdW5jdGlvbiBidWlsZFByb2ZpbGUobmFtZTogc3RyaW5nKTogUHJvZmlsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRmYTogZmFsc2UsXG4gICAgICBuYW1lLFxuICAgICAgZW1haWw6ICcnLFxuICAgICAgZW1haWxfdmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgY3JlYXRlZDogJycsXG4gICAgICB1cGRhdGVkOiAnJyxcbiAgICAgIGNpZHJfd2hpdGVsaXN0OiBudWxsLFxuICAgICAgZnVsbG5hbWU6ICcnLFxuICAgIH07XG4gIH1cblxuICByb3V0ZXIuZ2V0KFxuICAgICcvLS9ucG0vdjEvdXNlcicsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYnVpbGRQcm9maWxlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSk7XG4gICAgICB9XG5cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEKTtcbiAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgbWVzc2FnZTogQVBJX0VSUk9SLk1VU1RfQkVfTE9HR0VELFxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5wb3N0KFxuICAgICcvLS9ucG0vdjEvdXNlcicsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSkge1xuICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBtZXNzYWdlOiBBUElfRVJST1IuTVVTVF9CRV9MT0dHRUQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHBhc3N3b3JkLCB0ZmEgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmIChfLmlzTmlsKHBhc3N3b3JkKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25VdGlscy52YWxpZGF0ZVBhc3N3b3JkKHBhc3N3b3JkLm5ldykgPT09IGZhbHNlKSB7XG4gICAgICAgICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBBUElfRVJST1IuUEFTU1dPUkRfU0hPUlQpKTtcbiAgICAgICAgICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGF1dGguY2hhbmdlUGFzc3dvcmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBwYXNzd29yZC5vbGQsXG4gICAgICAgICAgcGFzc3dvcmQubmV3LFxuICAgICAgICAgIChlcnIsIGlzVXBkYXRlZCk6ICROZXh0RnVuY3Rpb25WZXIgPT4ge1xuICAgICAgICAgICAgaWYgKF8uaXNOdWxsKGVycikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKGVyci5zdGF0dXMsIGVyci5tZXNzYWdlKSB8fCBFcnJvckNvZGUuZ2V0Q29uZmxpY3QoZXJyLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc1VwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoYnVpbGRQcm9maWxlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0SW50ZXJuYWxFcnJvcihBUElfRVJST1IuSU5URVJOQUxfU0VSVkVSX0VSUk9SKSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChfLmlzTmlsKHRmYSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlNFUlZJQ0VfVU5BVkFJTEFCTEUsIFNVUFBPUlRfRVJST1JTLlRGQV9ESVNBQkxFRClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBBUFBfRVJST1IuUFJPRklMRV9FUlJPUikpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBSUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQWtELFNBQUFELHVCQUFBTSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBY25DLFNBQUFHLFNBQVVDLE1BQWMsRUFBRUMsSUFBVSxFQUFFQyxNQUFrQixFQUFFO0VBQ3ZFLFNBQVNDLFlBQVlBLENBQUNDLElBQVksRUFBVztJQUMzQyxPQUFPO01BQ0xDLEdBQUcsRUFBRSxLQUFLO01BQ1ZELElBQUk7TUFDSkUsS0FBSyxFQUFFLEVBQUU7TUFDVEMsY0FBYyxFQUFFLEtBQUs7TUFDckJDLE9BQU8sRUFBRSxFQUFFO01BQ1hDLE9BQU8sRUFBRSxFQUFFO01BQ1hDLGNBQWMsRUFBRSxJQUFJO01BQ3BCQyxRQUFRLEVBQUU7SUFDWixDQUFDO0VBQ0g7RUFFQVgsTUFBTSxDQUFDWSxHQUFHLENBQ1IsZ0JBQWdCLEVBQ2hCLElBQUFDLHFCQUFTLEVBQUNYLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFWSxhQUFhLENB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
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = _default;
7
7
  var _debug = _interopRequireDefault(require("debug"));
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _auth = require("@verdaccio/auth");
9
10
  var _middleware = require("@verdaccio/middleware");
10
11
  var _utils = require("@verdaccio/utils");
11
- var _authUtils = require("../../../../lib/auth-utils");
12
12
  var _constants = require("../../../../lib/constants");
13
13
  var _logger = require("../../../../lib/logger");
14
14
  var _utils2 = require("../../../../lib/utils");
@@ -76,7 +76,7 @@ function _default(router, auth, storage, config) {
76
76
  return next(_utils2.ErrorCode.getCode(_constants.HTTP_STATUS.NOT_IMPLEMENTED, _constants.SUPPORT_ERRORS.STORAGE_NOT_IMPLEMENT));
77
77
  }
78
78
  try {
79
- const token = await (0, _authUtils.getApiToken)(auth, config, user, password);
79
+ const token = await (0, _auth.getApiToken)(auth, config, user, password);
80
80
  const key = (0, _utils.stringToMD5)(token);
81
81
  // TODO: use a utility here
82
82
  const maskedToken = (0, _utils2.mask)(token, 5);
@@ -141,4 +141,4 @@ function _default(router, auth, storage, config) {
141
141
  return next(_utils2.ErrorCode.getUnauthorized());
142
142
  });
143
143
  }
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbWlkZGxld2FyZSIsIl91dGlscyIsIl9hdXRoVXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVidWciLCJidWlsZERlYnVnIiwibm9ybWFsaXplVG9rZW4iLCJ0b2tlbiIsImNyZWF0ZWQiLCJEYXRlIiwidG9JU09TdHJpbmciLCJfZGVmYXVsdCIsInJvdXRlciIsImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwiZ2V0IiwicmF0ZUxpbWl0IiwidXNlclJhdGVMaW1pdCIsInJlcSIsInJlcyIsIm5leHQiLCJuYW1lIiwicmVtb3RlX3VzZXIiLCJfIiwiaXNOaWwiLCJ0b2tlbnMiLCJyZWFkVG9rZW5zIiwidXNlciIsInRvdGFsVG9rZW5zIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJPSyIsIm9iamVjdHMiLCJtYXAiLCJ1cmxzIiwiZXJyb3IiLCJsb2dnZXIiLCJtc2ciLCJFcnJvckNvZGUiLCJnZXRDb2RlIiwiSU5URVJOQUxfRVJST1IiLCJtZXNzYWdlIiwiZ2V0VW5hdXRob3JpemVkIiwicG9zdCIsInBhc3N3b3JkIiwicmVhZG9ubHkiLCJjaWRyX3doaXRlbGlzdCIsImJvZHkiLCJpc0Jvb2xlYW4iLCJpc0FycmF5IiwiQkFEX0RBVEEiLCJTVVBQT1JUX0VSUk9SUyIsIlBBUkFNRVRFUlNfTk9UX1ZBTElEIiwiYXV0aGVudGljYXRlIiwiZXJyIiwiZXJyb3JDb2RlIiwiVU5BVVRIT1JJWkVEIiwiaXNGdW5jdGlvbiIsInNhdmVUb2tlbiIsIk5PVF9JTVBMRU1FTlRFRCIsIlNUT1JBR0VfTk9UX0lNUExFTUVOVCIsImdldEFwaVRva2VuIiwic3RyaW5nVG9NRDUiLCJtYXNrZWRUb2tlbiIsIm1hc2siLCJnZXRUaW1lIiwiY2lkciIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwiZGVsZXRlIiwicGFyYW1zIiwidG9rZW5LZXkiLCJkZWxldGVUb2tlbiIsImluZm8iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS92MS90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyByYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgc3RyaW5nVG9NRDUgfSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IEF1dGggZnJvbSAnLi4vLi4vLi4vLi4vbGliL2F1dGgnO1xuaW1wb3J0IHsgZ2V0QXBpVG9rZW4gfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvYXV0aC11dGlscyc7XG5pbXBvcnQgeyBIRUFERVJTLCBIVFRQX1NUQVRVUywgU1VQUE9SVF9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IFN0b3JhZ2UgZnJvbSAnLi4vLi4vLi4vLi4vbGliL3N0b3JhZ2UnO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBtYXNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2Npbzp0b2tlbicpO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplVG9rZW4gPSBUb2tlbiAmIHtcbiAgY3JlYXRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplVG9rZW4odG9rZW46IFRva2VuKTogTm9ybWFsaXplVG9rZW4ge1xuICByZXR1cm4ge1xuICAgIC4uLnRva2VuLFxuICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKHRva2VuLmNyZWF0ZWQpLnRvSVNPU3RyaW5nKCksXG4gIH07XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXByb2ZpbGUvYmxvYi9sYXRlc3QvbGliL2luZGV4LmpzXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGVyOiBSb3V0ZXIsIGF1dGg6IEF1dGgsIHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnKSB7XG4gIHJvdXRlci5nZXQoXG4gICAgJy8tL25wbS92MS90b2tlbnMnLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGFzeW5jIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgICAgaWYgKF8uaXNOaWwobmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgc3RvcmFnZS5yZWFkVG9rZW5zKHsgdXNlcjogbmFtZSB9KTtcbiAgICAgICAgICBjb25zdCB0b3RhbFRva2VucyA9IHRva2Vucy5sZW5ndGg7XG4gICAgICAgICAgZGVidWcoJ3Rva2VuIGxpc3QgcmV0cmlldmVkOiAlbycsIHRvdGFsVG9rZW5zKTtcbiAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICBvYmplY3RzOiB0b2tlbnMubWFwKG5vcm1hbGl6ZVRva2VuKSxcbiAgICAgICAgICAgIHVybHM6IHtcbiAgICAgICAgICAgICAgbmV4dDogJycsIC8vIFRPRE86IHBhZ2luYXRpb24/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gbGlzdCBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoKSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlci5wb3N0KFxuICAgICcvLS9ucG0vdjEvdG9rZW5zJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgICAgY29uc3QgeyBwYXNzd29yZCwgcmVhZG9ubHksIGNpZHJfd2hpdGVsaXN0IH0gPSByZXEuYm9keTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoIV8uaXNCb29sZWFuKHJlYWRvbmx5KSB8fCAhXy5pc0FycmF5KGNpZHJfd2hpdGVsaXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5CQURfREFUQSwgU1VQUE9SVF9FUlJPUlMuUEFSQU1FVEVSU19OT1RfVkFMSUQpKTtcbiAgICAgIH1cblxuICAgICAgYXV0aC5hdXRoZW50aWNhdGUobmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI6IFJlbW90ZVVzZXIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IGVyci5tZXNzYWdlID8gSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEIDogSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1I7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoZXJyb3JDb2RlLCBlcnIubWVzc2FnZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxLnJlbW90ZV91c2VyID0gdXNlcjtcblxuICAgICAgICBpZiAoIV8uaXNGdW5jdGlvbihzdG9yYWdlLnNhdmVUb2tlbikpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLk5PVF9JTVBMRU1FTlRFRCwgU1VQUE9SVF9FUlJPUlMuU1RPUkFHRV9OT1RfSU1QTEVNRU5UKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyLCBwYXNzd29yZCk7XG4gICAgICAgICAgY29uc3Qga2V5ID0gc3RyaW5nVG9NRDUodG9rZW4pO1xuICAgICAgICAgIC8vIFRPRE86IHVzZSBhIHV0aWxpdHkgaGVyZVxuICAgICAgICAgIGNvbnN0IG1hc2tlZFRva2VuID0gbWFzayh0b2tlbiwgNSk7XG4gICAgICAgICAgY29uc3QgY3JlYXRlZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogY2lkcl93aGl0ZWxpc3Q6IGlzIG5vdCBiZWluZyB1c2VkLCB3ZSBwYXNzIGl0IHRocm91Z2hcbiAgICAgICAgICAgKiB0b2tlbjogd2UgZG8gbm90IHN0b3JlIHRoZSByZWFsIHRva2VuIChpdCBpcyBnZW5lcmF0ZWQgb25jZSBhbmQgcmV0cmlldmVkIHRvIHRoZSB1c2VyKSwganVzdCBhIG1hc2sgb2YgaXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgY29uc3Qgc2F2ZVRva2VuOiBUb2tlbiA9IHtcbiAgICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgICB0b2tlbjogbWFza2VkVG9rZW4sXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBjaWRyOiBjaWRyX3doaXRlbGlzdCxcbiAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYXdhaXQgc3RvcmFnZS5zYXZlVG9rZW4oc2F2ZVRva2VuKTtcbiAgICAgICAgICBkZWJ1ZygndG9rZW4gJW8gd2FzIGNyZWF0ZWQgZm9yIHVzZXIgJW8nLCBrZXksIG5hbWUpO1xuICAgICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICBub3JtYWxpemVUb2tlbih7XG4gICAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgICB1c2VyOiBuYW1lLFxuICAgICAgICAgICAgICBrZXk6IHNhdmVUb2tlbi5rZXksXG4gICAgICAgICAgICAgIGNpZHI6IGNpZHJfd2hpdGVsaXN0LFxuICAgICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgICAgY3JlYXRlZDogc2F2ZVRva2VuLmNyZWF0ZWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICByb3V0ZXIuZGVsZXRlKFxuICAgICcvLS9ucG0vdjEvdG9rZW5zL3Rva2VuLzp0b2tlbktleScsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgYXN5bmMgKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFyYW1zOiB7IHRva2VuS2V5IH0sXG4gICAgICB9ID0gcmVxO1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmIChfLmlzTmlsKG5hbWUpID09PSBmYWxzZSkge1xuICAgICAgICBkZWJ1ZygnJW8gaGFzIHJlcXVlc3RlZCByZW1vdmUgYSB0b2tlbicsIG5hbWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHN0b3JhZ2UuZGVsZXRlVG9rZW4obmFtZSwgdG9rZW5LZXkpO1xuICAgICAgICAgIGxvZ2dlci5pbmZvKHsgdG9rZW5LZXksIG5hbWUgfSwgJ3Rva2VuIGlkIEB7dG9rZW5LZXl9IHdhcyByZXZva2VkIGZvciB1c2VyIEB7bmFtZX0nKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7fSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoKSk7XG4gICAgfVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFBd0QsU0FBQUQsdUJBQUFTLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFBQSxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4s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
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfYXV0aCIsIl9taWRkbGV3YXJlIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJfdXRpbHMyIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsIm5vcm1hbGl6ZVRva2VuIiwidG9rZW4iLCJjcmVhdGVkIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiX2RlZmF1bHQiLCJyb3V0ZXIiLCJhdXRoIiwic3RvcmFnZSIsImNvbmZpZyIsImdldCIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwibmFtZSIsInJlbW90ZV91c2VyIiwiXyIsImlzTmlsIiwidG9rZW5zIiwicmVhZFRva2VucyIsInVzZXIiLCJ0b3RhbFRva2VucyIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiT0siLCJvYmplY3RzIiwibWFwIiwidXJscyIsImVycm9yIiwibG9nZ2VyIiwibXNnIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsIklOVEVSTkFMX0VSUk9SIiwibWVzc2FnZSIsImdldFVuYXV0aG9yaXplZCIsInBvc3QiLCJwYXNzd29yZCIsInJlYWRvbmx5IiwiY2lkcl93aGl0ZWxpc3QiLCJib2R5IiwiaXNCb29sZWFuIiwiaXNBcnJheSIsIkJBRF9EQVRBIiwiU1VQUE9SVF9FUlJPUlMiLCJQQVJBTUVURVJTX05PVF9WQUxJRCIsImF1dGhlbnRpY2F0ZSIsImVyciIsImVycm9yQ29kZSIsIlVOQVVUSE9SSVpFRCIsImlzRnVuY3Rpb24iLCJzYXZlVG9rZW4iLCJOT1RfSU1QTEVNRU5URUQiLCJTVE9SQUdFX05PVF9JTVBMRU1FTlQiLCJnZXRBcGlUb2tlbiIsInN0cmluZ1RvTUQ1IiwibWFza2VkVG9rZW4iLCJtYXNrIiwiZ2V0VGltZSIsImNpZHIiLCJzZXQiLCJIRUFERVJTIiwiQ0FDSEVfQ09OVFJPTCIsImRlbGV0ZSIsInBhcmFtcyIsInRva2VuS2V5IiwiZGVsZXRlVG9rZW4iLCJpbmZvIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9lbmRwb2ludC9hcGkvdjEvdG9rZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgZ2V0QXBpVG9rZW4gfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgcmF0ZUxpbWl0IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB7IENvbmZpZywgUmVtb3RlVXNlciwgVG9rZW4gfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IHN0cmluZ1RvTUQ1IH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IEhFQURFUlMsIEhUVFBfU1RBVFVTLCBTVVBQT1JUX0VSUk9SUyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgU3RvcmFnZSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgeyBFcnJvckNvZGUsIG1hc2sgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvOnRva2VuJyk7XG5leHBvcnQgdHlwZSBOb3JtYWxpemVUb2tlbiA9IFRva2VuICYge1xuICBjcmVhdGVkOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBub3JtYWxpemVUb2tlbih0b2tlbjogVG9rZW4pOiBOb3JtYWxpemVUb2tlbiB7XG4gIHJldHVybiB7XG4gICAgLi4udG9rZW4sXG4gICAgY3JlYXRlZDogbmV3IERhdGUodG9rZW4uY3JlYXRlZCkudG9JU09TdHJpbmcoKSxcbiAgfTtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL25wbS9ucG0tcHJvZmlsZS9ibG9iL2xhdGVzdC9saWIvaW5kZXguanNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZXI6IFJvdXRlciwgYXV0aDogQXV0aCwgc3RvcmFnZTogU3RvcmFnZSwgY29uZmlnOiBDb25maWcpIHtcbiAgcm91dGVyLmdldChcbiAgICAnLy0vbnBtL3YxL3Rva2VucycsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgYXN5bmMgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzdG9yYWdlLnJlYWRUb2tlbnMoeyB1c2VyOiBuYW1lIH0pO1xuICAgICAgICAgIGNvbnN0IHRvdGFsVG9rZW5zID0gdG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICBkZWJ1ZygndG9rZW4gbGlzdCByZXRyaWV2ZWQ6ICVvJywgdG90YWxUb2tlbnMpO1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuT0spO1xuICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIG9iamVjdHM6IHRva2Vucy5tYXAobm9ybWFsaXplVG9rZW4pLFxuICAgICAgICAgICAgdXJsczoge1xuICAgICAgICAgICAgICBuZXh0OiAnJywgLy8gVE9ETzogcGFnaW5hdGlvbj9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBsaXN0IGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZCgpKTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGVyLnBvc3QoXG4gICAgJy8tL25wbS92MS90b2tlbnMnLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBjb25zdCB7IHBhc3N3b3JkLCByZWFkb25seSwgY2lkcl93aGl0ZWxpc3QgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmICghXy5pc0Jvb2xlYW4ocmVhZG9ubHkpIHx8ICFfLmlzQXJyYXkoY2lkcl93aGl0ZWxpc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9EQVRBLCBTVVBQT1JUX0VSUk9SUy5QQVJBTUVURVJTX05PVF9WQUxJRCkpO1xuICAgICAgfVxuXG4gICAgICBhdXRoLmF1dGhlbnRpY2F0ZShuYW1lLCBwYXNzd29yZCwgYXN5bmMgKGVyciwgdXNlcjogUmVtb3RlVXNlcikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gZXJyLm1lc3NhZ2UgPyBIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQgOiBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUjtcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShlcnJvckNvZGUsIGVyci5tZXNzYWdlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuXG4gICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHN0b3JhZ2Uuc2F2ZVRva2VuKSkge1xuICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuTk9UX0lNUExFTUVOVEVELCBTVVBQT1JUX0VSUk9SUy5TVE9SQUdFX05PVF9JTVBMRU1FTlQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyLCBwYXNzd29yZCkpIGFzIHN0cmluZztcbiAgICAgICAgICBjb25zdCBrZXkgPSBzdHJpbmdUb01ENSh0b2tlbiBhcyBzdHJpbmcpO1xuICAgICAgICAgIC8vIFRPRE86IHVzZSBhIHV0aWxpdHkgaGVyZVxuICAgICAgICAgIGNvbnN0IG1hc2tlZFRva2VuID0gbWFzayh0b2tlbiBhcyBzdHJpbmcsIDUpO1xuICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIGNpZHJfd2hpdGVsaXN0OiBpcyBub3QgYmVpbmcgdXNlZCwgd2UgcGFzcyBpdCB0aHJvdWdoXG4gICAgICAgICAgICogdG9rZW46IHdlIGRvIG5vdCBzdG9yZSB0aGUgcmVhbCB0b2tlbiAoaXQgaXMgZ2VuZXJhdGVkIG9uY2UgYW5kIHJldHJpZXZlZCB0byB0aGUgdXNlciksIGp1c3QgYSBtYXNrIG9mIGl0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGNvbnN0IHNhdmVUb2tlbjogVG9rZW4gPSB7XG4gICAgICAgICAgICB1c2VyOiBuYW1lLFxuICAgICAgICAgICAgdG9rZW46IG1hc2tlZFRva2VuLFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY2lkcjogY2lkcl93aGl0ZWxpc3QsXG4gICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgIGNyZWF0ZWQsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGF3YWl0IHN0b3JhZ2Uuc2F2ZVRva2VuKHNhdmVUb2tlbik7XG4gICAgICAgICAgZGVidWcoJ3Rva2VuICVvIHdhcyBjcmVhdGVkIGZvciB1c2VyICVvJywga2V5LCBuYW1lKTtcbiAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgbm9ybWFsaXplVG9rZW4oe1xuICAgICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgICAgdXNlcjogbmFtZSxcbiAgICAgICAgICAgICAga2V5OiBzYXZlVG9rZW4ua2V5LFxuICAgICAgICAgICAgICBjaWRyOiBjaWRyX3doaXRlbGlzdCxcbiAgICAgICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgICAgIGNyZWF0ZWQ6IHNhdmVUb2tlbi5jcmVhdGVkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gY3JlYXRpb24gaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGVyLmRlbGV0ZShcbiAgICAnLy0vbnBtL3YxL3Rva2Vucy90b2tlbi86dG9rZW5LZXknLFxuICAgIHJhdGVMaW1pdChjb25maWc/LnVzZXJSYXRlTGltaXQpLFxuICAgIGFzeW5jIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHBhcmFtczogeyB0b2tlbktleSB9LFxuICAgICAgfSA9IHJlcTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZGVidWcoJyVvIGhhcyByZXF1ZXN0ZWQgcmVtb3ZlIGEgdG9rZW4nLCBuYW1lKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBzdG9yYWdlLmRlbGV0ZVRva2VuKG5hbWUsIHRva2VuS2V5KTtcbiAgICAgICAgICBsb2dnZXIuaW5mbyh7IHRva2VuS2V5LCBuYW1lIH0sICd0b2tlbiBpZCBAe3Rva2VuS2V5fSB3YXMgcmV2b2tlZCBmb3IgdXNlciBAe25hbWV9Jyk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoe30pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gY3JlYXRpb24gaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0VW5hdXRob3JpemVkKCkpO1xuICAgIH1cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBR0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQXdELFNBQUFELHVCQUFBUyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxD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
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _lodash = _interopRequireDefault(require("lodash"));
8
+ var _core = require("@verdaccio/core");
8
9
  var _middleware = require("@verdaccio/middleware");
9
10
  var _authUtils = require("../../../lib/auth-utils");
10
11
  var _constants = require("../../../lib/constants");
@@ -45,7 +46,7 @@ function addUserAuthApi(route, auth, config) {
45
46
  const {
46
47
  name
47
48
  } = req.remote_user;
48
- if ((0, _authUtils.validatePassword)(password.new) === false) {
49
+ if (_core.validationUtils.validatePassword(password.new) === false) {
49
50
  auth.changePassword(name, password.old, password.new, (err, isUpdated) => {
50
51
  if (_lodash.default.isNil(err) && isUpdated) {
51
52
  next({
@@ -62,4 +63,4 @@ function addUserAuthApi(route, auth, config) {
62
63
  return route;
63
64
  }
64
65
  var _default = exports.default = addUserAuthApi;
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWlkZGxld2FyZSIsIl9hdXRoVXRpbHMiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJhZGRVc2VyQXV0aEFwaSIsInJvdXRlIiwiYXV0aCIsImNvbmZpZyIsInBvc3QiLCJyYXRlTGltaXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJib2R5IiwiYXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImVycm9yQ29kZSIsIm1lc3NhZ2UiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIklOVEVSTkFMX0VSUk9SIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsInJlbW90ZV91c2VyIiwialdUU2lnbk9wdGlvbnMiLCJnZXRTZWN1cml0eSIsIndlYiIsInNpZ24iLCJzZXQiLCJIRUFERVJTIiwiQ0FDSEVfQ09OVFJPTCIsInRva2VuIiwiand0RW5jcnlwdCIsIm5hbWUiLCJwdXQiLCJfIiwiaXNOaWwiLCJzdGF0dXMiLCJBUElfRVJST1IiLCJNVVNUX0JFX0xPR0dFRCIsInZhbGlkYXRlUGFzc3dvcmQiLCJuZXciLCJjaGFuZ2VQYXNzd29yZCIsIm9sZCIsImlzVXBkYXRlZCIsIm9rIiwiZ2V0SW50ZXJuYWxFcnJvciIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkJBRF9SRVFVRVNUIiwiQVBQX0VSUk9SIiwiUEFTU1dPUkRfVkFMSURBVElPTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2FwaS91c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3QsIFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBDb25maWcsIEpXVFNpZ25PcHRpb25zLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IGdldFNlY3VyaXR5LCB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgtdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZnVuY3Rpb24gYWRkVXNlckF1dGhBcGkocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWcpOiBSb3V0ZXIge1xuICByb3V0ZS5wb3N0KFxuICAgICcvLS92ZXJkYWNjaW8vc2VjL2xvZ2luJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG5cbiAgICAgIGF1dGguYXV0aGVudGljYXRlKHVzZXJuYW1lLCBwYXNzd29yZCwgYXN5bmMgKGVyciwgdXNlcjogUmVtb3RlVXNlcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gZXJyLm1lc3NhZ2UgPyBIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQgOiBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUjtcbiAgICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IGpXVFNpZ25PcHRpb25zOiBKV1RTaWduT3B0aW9ucyA9IGdldFNlY3VyaXR5KGNvbmZpZykud2ViLnNpZ247XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICBuZXh0KHtcbiAgICAgICAgICAgIHRva2VuOiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQodXNlciwgaldUU2lnbk9wdGlvbnMpLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHJlcS5yZW1vdGVfdXNlci5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUucHV0KFxuICAgICcvLS92ZXJkYWNjaW8vc2VjL3Jlc2V0X3Bhc3N3b3JkJyxcbiAgICBmdW5jdGlvbiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBpZiAoXy5pc05pbChyZXEucmVtb3RlX3VzZXIubmFtZSkpIHtcbiAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgLy8gRlVUVVJFOiB1cGRhdGUgdG8gYSBtb3JlIG1lYW5pbmdmdWwgbWVzc2FnZVxuICAgICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmICh2YWxpZGF0ZVBhc3N3b3JkKHBhc3N3b3JkLm5ldykgPT09IGZhbHNlKSB7XG4gICAgICAgIGF1dGguY2hhbmdlUGFzc3dvcmQobmFtZSBhcyBzdHJpbmcsIHBhc3N3b3JkLm9sZCwgcGFzc3dvcmQubmV3LCAoZXJyLCBpc1VwZGF0ZWQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoXy5pc05pbChlcnIpICYmIGlzVXBkYXRlZCkge1xuICAgICAgICAgICAgbmV4dCh7XG4gICAgICAgICAgICAgIG9rOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QsIEFQUF9FUlJPUi5QQVNTV09SRF9WQUxJREFUSU9OKSk7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHJldHVybiByb3V0ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRkVXNlckF1dGhBcGk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUlBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUErQyxTQUFBRCx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUcvQyxTQUFTRyxjQUFjQSxDQUFDQyxLQUFhLEVBQUVDLElBQVUsRUFBRUMsTUFBYyxFQUFVO0VBQ3pFRixLQUFLLENBQUNHLElBQUksQ0FDUix3QkFBd0IsRUFDeEIsSUFBQUMscUJBQVMsRUFBQ0YsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVHLGFBQWEsQ0FBQyxFQUNoQyxVQUFVQyxHQUFZLEVBQUVDLEdBQWEsRUFBRUMsSUFBc0IsRUFBUTtJQUNuRSxNQUFNO01BQUVDLFFBQVE7TUFBRUM7SUFBUyxDQUFDLEdBQUdKLEdBQUcsQ0FBQ0ssSUFBSTtJQUV2Q1YsSUFBSSxDQUFDVyxZQUFZLENBQUNILFFBQVEsRUFBRUMsUUFBUSxFQUFFLE9BQU9HLEdBQUcsRUFBRUMsSUFBZ0IsS0FBb0I7TUFDcEYsSUFBSUQsR0FBRyxFQUFFO1FBQ1AsTUFBTUUsU0FBUyxHQUFHRixHQUFHLENBQUNHLE9BQU8sR0FBR0Msc0JBQVcsQ0FBQ0MsWUFBWSxHQUFHRCxzQkFBVyxDQUFDRSxjQUFjO1FBQ3JGWCxJQUFJLENBQUNZLGdCQUFTLENBQUNDLE9BQU8sQ0FBQ04sU0FBUyxFQUFFRixHQUFHLENBQUNHLE9BQU8sQ0FBQyxDQUFDO01BQ2pELENBQUMsTUFBTTtRQUNMVixHQUFHLENBQUNnQixXQUFXLEdBQUdSLElBQUk7UUFDdEIsTUFBTVMsY0FBOEIsR0FBRyxJQUFBQyxzQkFBVyxFQUFDdEIsTUFBTSxDQUFDLENBQUN1QixHQUFHLENBQUNDLElBQUk7UUFDbkVuQixHQUFHLENBQUNvQixHQUFHLENBQUNDLGtCQUFPLENBQUNDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztRQUNwRHJCLElBQUksQ0FBQztVQUNIc0IsS0FBSyxFQUFFLE1BQU03QixJQUFJLENBQUM4QixVQUFVLENBQUNqQixJQUFJLEVBQUVTLGNBQWMsQ0FBQztVQUNsRGQsUUFBUSxFQUFFSCxHQUFHLENBQUNnQixXQUFXLENBQUNVO1FBQzVCLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FDRixDQUFDO0VBRURoQyxLQUFLLENBQUNpQyxHQUFHLENBQ1AsaUNBQWlDLEVBQ2pDLFVBQVUzQixHQUFZLEVBQUVDLEdBQWEsRUFBRUMsSUFBc0IsRUFBUTtJQUNuRSxJQUFJMEIsZUFBQyxDQUFDQyxLQUFLLENBQUM3QixHQUFHLENBQUNnQixXQUFXLENBQUNVLElBQUksQ0FBQyxFQUFFO01BQ2pDekIsR0FBRyxDQUFDNkIsTUFBTSxDQUFDbkIsc0JBQVcsQ0FBQ0MsWUFBWSxDQUFDO01BQ3BDLE9BQU9WLElBQUksQ0FBQztRQUNWO1FBQ0FRLE9BQU8sRUFBRXFCLG9CQUFTLENBQUNDO01BQ3JCLENBQUMsQ0FBQztJQUNKO0lBRUEsTUFBTTtNQUFFNUI7SUFBUyxDQUFDLEdBQUdKLEdBQUcsQ0FBQ0ssSUFBSTtJQUM3QixNQUFNO01BQUVxQjtJQUFLLENBQUMsR0FBRzFCLEdBQUcsQ0FBQ2dCLFdBQVc7SUFFaEMsSUFBSSxJQUFBaUIsMkJBQWdCLEVBQUM3QixRQUFRLENBQUM4QixHQUFHLENBQUMsS0FBSyxLQUFLLEVBQUU7TUFDNUN2QyxJQUFJLENBQUN3QyxjQUFjLENBQUNULElBQUksRUFBWXRCLFFBQVEsQ0FBQ2dDLEdBQUcsRUFBRWhDLFFBQVEsQ0FBQzhCLEdBQUcsRUFBRSxDQUFDM0IsR0FBRyxFQUFFOEIsU0FBUyxLQUFXO1FBQ3hGLElBQUlULGVBQUMsQ0FBQ0MsS0FBSyxDQUFDdEIsR0FBRyxDQUFDLElBQUk4QixTQUFTLEVBQUU7VUFDN0JuQyxJQUFJLENBQUM7WUFDSG9DLEVBQUUsRUFBRTtVQUNOLENBQUMsQ0FBQztRQUNKLENBQUMsTUFBTTtVQUNMLE9BQU9wQyxJQUFJLENBQUNZLGdCQUFTLENBQUN5QixnQkFBZ0IsQ0FBQ1Isb0JBQVMsQ0FBQ1MscUJBQXFCLENBQUMsQ0FBQztRQUMxRTtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTTtNQUNMLE9BQU90QyxJQUFJLENBQUNZLGdCQUFTLENBQUNDLE9BQU8sQ0FBQ0osc0JBQVcsQ0FBQzhCLFdBQVcsRUFBRUMsb0JBQVMsQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQztJQUN4RjtFQUNGLENBQ0YsQ0FBQztFQUVELE9BQU9qRCxLQUFLO0FBQ2Q7QUFBQyxJQUFBa0QsUUFBQSxHQUFBQyxPQUFBLENBQUFyRCxPQUFBLEdBRWNDLGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9taWRkbGV3YXJlIiwiX2F1dGhVdGlscyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImFkZFVzZXJBdXRoQXBpIiwicm91dGUiLCJhdXRoIiwiY29uZmlnIiwicG9zdCIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImJvZHkiLCJhdXRoZW50aWNhdGUiLCJlcnIiLCJ1c2VyIiwiZXJyb3JDb2RlIiwibWVzc2FnZSIsIkhUVFBfU1RBVFVTIiwiVU5BVVRIT1JJWkVEIiwiSU5URVJOQUxfRVJST1IiLCJFcnJvckNvZGUiLCJnZXRDb2RlIiwicmVtb3RlX3VzZXIiLCJqV1RTaWduT3B0aW9ucyIsImdldFNlY3VyaXR5Iiwid2ViIiwic2lnbiIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwidG9rZW4iLCJqd3RFbmNyeXB0IiwibmFtZSIsInB1dCIsIl8iLCJpc05pbCIsInN0YXR1cyIsIkFQSV9FUlJPUiIsIk1VU1RfQkVfTE9HR0VEIiwidmFsaWRhdGlvblV0aWxzIiwidmFsaWRhdGVQYXNzd29yZCIsIm5ldyIsImNoYW5nZVBhc3N3b3JkIiwib2xkIiwiaXNVcGRhdGVkIiwib2siLCJnZXRJbnRlcm5hbEVycm9yIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwiQkFEX1JFUVVFU1QiLCJBUFBfRVJST1IiLCJQQVNTV09SRF9WQUxJREFUSU9OIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS93ZWIvYXBpL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IHJhdGVMaW1pdCB9IGZyb20gJ0B2ZXJkYWNjaW8vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBDb25maWcsIEpXVFNpZ25PcHRpb25zLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IGdldFNlY3VyaXR5IH0gZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgtdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZnVuY3Rpb24gYWRkVXNlckF1dGhBcGkocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWcpOiBSb3V0ZXIge1xuICByb3V0ZS5wb3N0KFxuICAgICcvLS92ZXJkYWNjaW8vc2VjL2xvZ2luJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG5cbiAgICAgIGF1dGguYXV0aGVudGljYXRlKHVzZXJuYW1lLCBwYXNzd29yZCwgYXN5bmMgKGVyciwgdXNlcjogUmVtb3RlVXNlcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gZXJyLm1lc3NhZ2UgPyBIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQgOiBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUjtcbiAgICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IGpXVFNpZ25PcHRpb25zOiBKV1RTaWduT3B0aW9ucyA9IGdldFNlY3VyaXR5KGNvbmZpZykud2ViLnNpZ247XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICBuZXh0KHtcbiAgICAgICAgICAgIHRva2VuOiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQodXNlciwgaldUU2lnbk9wdGlvbnMpLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHJlcS5yZW1vdGVfdXNlci5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUucHV0KFxuICAgICcvLS92ZXJkYWNjaW8vc2VjL3Jlc2V0X3Bhc3N3b3JkJyxcbiAgICBmdW5jdGlvbiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICBpZiAoXy5pc05pbChyZXEucmVtb3RlX3VzZXIubmFtZSkpIHtcbiAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgLy8gRlVUVVJFOiB1cGRhdGUgdG8gYSBtb3JlIG1lYW5pbmdmdWwgbWVzc2FnZVxuICAgICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICAgIGlmICh2YWxpZGF0aW9uVXRpbHMudmFsaWRhdGVQYXNzd29yZChwYXNzd29yZC5uZXcpID09PSBmYWxzZSkge1xuICAgICAgICBhdXRoLmNoYW5nZVBhc3N3b3JkKG5hbWUgYXMgc3RyaW5nLCBwYXNzd29yZC5vbGQsIHBhc3N3b3JkLm5ldywgKGVyciwgaXNVcGRhdGVkKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSAmJiBpc1VwZGF0ZWQpIHtcbiAgICAgICAgICAgIG5leHQoe1xuICAgICAgICAgICAgICBvazogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0SW50ZXJuYWxFcnJvcihBUElfRVJST1IuSU5URVJOQUxfU0VSVkVSX0VSUk9SKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNULCBBUFBfRVJST1IuUEFTU1dPUkRfVkFMSURBVElPTikpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICByZXR1cm4gcm91dGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkZFVzZXJBdXRoQXBpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFJQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFPLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFHL0MsU0FBU0csY0FBY0EsQ0FBQ0MsS0FBYSxFQUFFQyxJQUFVLEVBQUVDLE1BQWMsRUFBVTtFQUN6RUYsS0FBSyxDQUFDRyxJQUFJLENBQ1Isd0JBQXdCLEVBQ3hCLElBQUFDLHFCQUFTLEVBQUNGLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFRyxhQUFhLENBQUMsRUFDaEMsVUFBVUMsR0FBWSxFQUFFQyxHQUFhLEVBQUVDLElBQXNCLEVBQVE7SUFDbkUsTUFBTTtNQUFFQyxRQUFRO01BQUVDO0lBQVMsQ0FBQyxHQUFHSixHQUFHLENBQUNLLElBQUk7SUFFdkNWLElBQUksQ0FBQ1csWUFBWSxDQUFDSCxRQUFRLEVBQUVDLFFBQVEsRUFBRSxPQUFPRyxHQUFHLEVBQUVDLElBQWdCLEtBQW9CO01BQ3BGLElBQUlELEdBQUcsRUFBRTtRQUNQLE1BQU1FLFNBQVMsR0FBR0YsR0FBRyxDQUFDRyxPQUFPLEdBQUdDLHNCQUFXLENBQUNDLFlBQVksR0FBR0Qsc0JBQVcsQ0FBQ0UsY0FBYztRQUNyRlgsSUFBSSxDQUFDWSxnQkFBUyxDQUFDQyxPQUFPLENBQUNOLFNBQVMsRUFBRUYsR0FBRyxDQUFDRyxPQUFPLENBQUMsQ0FBQztNQUNqRCxDQUFDLE1BQU07UUFDTFYsR0FBRyxDQUFDZ0IsV0FBVyxHQUFHUixJQUFJO1FBQ3RCLE1BQU1TLGNBQThCLEdBQUcsSUFBQUMsc0JBQVcsRUFBQ3RCLE1BQU0sQ0FBQyxDQUFDdUIsR0FBRyxDQUFDQyxJQUFJO1FBQ25FbkIsR0FBRyxDQUFDb0IsR0FBRyxDQUFDQyxrQkFBTyxDQUFDQyxhQUFhLEVBQUUsb0JBQW9CLENBQUM7UUFDcERyQixJQUFJLENBQUM7VUFDSHNCLEtBQUssRUFBRSxNQUFNN0IsSUFBSSxDQUFDOEIsVUFBVSxDQUFDakIsSUFBSSxFQUFFUyxjQUFjLENBQUM7VUFDbERkLFFBQVEsRUFBRUgsR0FBRyxDQUFDZ0IsV0FBVyxDQUFDVTtRQUM1QixDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQ0YsQ0FBQztFQUVEaEMsS0FBSyxDQUFDaUMsR0FBRyxDQUNQLGlDQUFpQyxFQUNqQyxVQUFVM0IsR0FBWSxFQUFFQyxHQUFhLEVBQUVDLElBQXNCLEVBQVE7SUFDbkUsSUFBSTBCLGVBQUMsQ0FBQ0MsS0FBSyxDQUFDN0IsR0FBRyxDQUFDZ0IsV0FBVyxDQUFDVSxJQUFJLENBQUMsRUFBRTtNQUNqQ3pCLEdBQUcsQ0FBQzZCLE1BQU0sQ0FBQ25CLHNCQUFXLENBQUNDLFlBQVksQ0FBQztNQUNwQyxPQUFPVixJQUFJLENBQUM7UUFDVjtRQUNBUSxPQUFPLEVBQUVxQixvQkFBUyxDQUFDQztNQUNyQixDQUFDLENBQUM7SUFDSjtJQUVBLE1BQU07TUFBRTVCO0lBQVMsQ0FBQyxHQUFHSixHQUFHLENBQUNLLElBQUk7SUFDN0IsTUFBTTtNQUFFcUI7SUFBSyxDQUFDLEdBQUcxQixHQUFHLENBQUNnQixXQUFXO0lBRWhDLElBQUlpQixxQkFBZSxDQUFDQyxnQkFBZ0IsQ0FBQzlCLFFBQVEsQ0FBQytCLEdBQUcsQ0FBQyxLQUFLLEtBQUssRUFBRTtNQUM1RHhDLElBQUksQ0FBQ3lDLGNBQWMsQ0FBQ1YsSUFBSSxFQUFZdEIsUUFBUSxDQUFDaUMsR0FBRyxFQUFFakMsUUFBUSxDQUFDK0IsR0FBRyxFQUFFLENBQUM1QixHQUFHLEVBQUUrQixTQUFTLEtBQVc7UUFDeEYsSUFBSVYsZUFBQyxDQUFDQyxLQUFLLENBQUN0QixHQUFHLENBQUMsSUFBSStCLFNBQVMsRUFBRTtVQUM3QnBDLElBQUksQ0FBQztZQUNIcUMsRUFBRSxFQUFFO1VBQ04sQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFNO1VBQ0wsT0FBT3JDLElBQUksQ0FBQ1ksZ0JBQVMsQ0FBQzBCLGdCQUFnQixDQUFDVCxvQkFBUyxDQUFDVSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFFO01BQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxNQUFNO01BQ0wsT0FBT3ZDLElBQUksQ0FBQ1ksZ0JBQVMsQ0FBQ0MsT0FBTyxDQUFDSixzQkFBVyxDQUFDK0IsV0FBVyxFQUFFQyxvQkFBUyxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hGO0VBQ0YsQ0FDRixDQUFDO0VBRUQsT0FBT2xELEtBQUs7QUFDZDtBQUFDLElBQUFtRCxRQUFBLEdBQUFDLE9BQUEsQ0FBQXRELE9BQUEsR0FFY0MsY0FBYyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,6 +1,5 @@
1
1
  import { pluginUtils } from '@verdaccio/core';
2
- import { Config, RemoteUser, Security } from '@verdaccio/types';
3
- import { AuthMiddlewarePayload, AuthTokenHeader, BasicPayload, IAuthWebUI } from '../types';
2
+ import { Config, Security } from '@verdaccio/types';
4
3
  export declare function validatePassword(password: string, // pragma: allowlist secret
5
4
  minLength?: number): boolean;
6
5
  export declare function allow_action(action: string): Function;
@@ -11,12 +10,3 @@ export declare function handleSpecialUnpublish(): any;
11
10
  export declare function getDefaultPlugins(logger: any): pluginUtils.Auth<Config>;
12
11
  export declare const defaultSecurity: Security;
13
12
  export declare function getSecurity(config: Config): Security;
14
- export declare function isAESLegacy(security: Security): boolean;
15
- export declare function getApiToken(auth: IAuthWebUI, config: Config, remoteUser: RemoteUser, aesPassword: string): Promise<string>;
16
- export declare function parseAuthTokenHeader(authorizationHeader: string): AuthTokenHeader;
17
- export declare function parseBasicPayload(credentials: string): BasicPayload;
18
- export declare function parseAESCredentials(authorizationHeader: string, secret: string): string | undefined;
19
- export declare const expireReasons: string[];
20
- export declare function verifyJWTPayload(token: string, secret: string): RemoteUser;
21
- export declare function isAuthHeaderValid(authorization: string): boolean;
22
- export declare function getMiddlewareCredentials(security: Security, secret: string, authorizationHeader: string): AuthMiddlewarePayload;
@@ -4,27 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.allow_action = allow_action;
7
- exports.expireReasons = exports.defaultSecurity = void 0;
8
- exports.getApiToken = getApiToken;
7
+ exports.defaultSecurity = void 0;
9
8
  exports.getDefaultPlugins = getDefaultPlugins;
10
- exports.getMiddlewareCredentials = getMiddlewareCredentials;
11
9
  exports.getSecurity = getSecurity;
12
10
  exports.handleSpecialUnpublish = handleSpecialUnpublish;
13
- exports.isAESLegacy = isAESLegacy;
14
- exports.isAuthHeaderValid = isAuthHeaderValid;
15
- exports.parseAESCredentials = parseAESCredentials;
16
- exports.parseAuthTokenHeader = parseAuthTokenHeader;
17
- exports.parseBasicPayload = parseBasicPayload;
18
11
  exports.validatePassword = validatePassword;
19
- exports.verifyJWTPayload = verifyJWTPayload;
20
12
  var _debug = _interopRequireDefault(require("debug"));
21
13
  var _lodash = _interopRequireDefault(require("lodash"));
22
- var _config = require("@verdaccio/config");
23
- var _signature = require("@verdaccio/signature");
24
- var _utils = require("@verdaccio/utils");
25
14
  var _constants = require("./constants");
26
15
  var _logger = require("./logger");
27
- var _utils2 = require("./utils");
16
+ var _utils = require("./utils");
28
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
18
  const debug = (0, _debug.default)('verdaccio');
30
19
  function validatePassword(password,
@@ -49,9 +38,9 @@ function allow_action(action) {
49
38
  return callback(null, true);
50
39
  }
51
40
  if (name) {
52
- callback(_utils2.ErrorCode.getForbidden(`user ${name} is not allowed to ${action} package ${pkg.name}`));
41
+ callback(_utils.ErrorCode.getForbidden(`user ${name} is not allowed to ${action} package ${pkg.name}`));
53
42
  } else {
54
- callback(_utils2.ErrorCode.getUnauthorized(`authorization required to ${action} package ${pkg.name}`));
43
+ callback(_utils.ErrorCode.getUnauthorized(`authorization required to ${action} package ${pkg.name}`));
55
44
  }
56
45
  };
57
46
  }
@@ -77,11 +66,11 @@ function getDefaultPlugins(logger) {
77
66
  return {
78
67
  authenticate(_user, _password, cb) {
79
68
  // pragma: allowlist secret
80
- cb(_utils2.ErrorCode.getForbidden(_constants.API_ERROR.BAD_USERNAME_PASSWORD));
69
+ cb(_utils.ErrorCode.getForbidden(_constants.API_ERROR.BAD_USERNAME_PASSWORD));
81
70
  },
82
71
  add_user(_user, _password, cb) {
83
72
  // pragma: allowlist secret
84
- return cb(_utils2.ErrorCode.getConflict(_constants.API_ERROR.BAD_USERNAME_PASSWORD));
73
+ return cb(_utils.ErrorCode.getConflict(_constants.API_ERROR.BAD_USERNAME_PASSWORD));
85
74
  },
86
75
  // FIXME: allow_action and allow_publish should be in the @verdaccio/types
87
76
  // @ts-ignore
@@ -99,7 +88,8 @@ const defaultWebTokenOptions = {
99
88
  verify: {}
100
89
  };
101
90
  const defaultApiTokenConf = {
102
- legacy: true
91
+ legacy: true,
92
+ migrateToSecureLegacySignature: false
103
93
  };
104
94
  const defaultSecurity = exports.defaultSecurity = {
105
95
  web: defaultWebTokenOptions,
@@ -111,105 +101,4 @@ function getSecurity(config) {
111
101
  }
112
102
  return defaultSecurity;
113
103
  }
114
- function isAESLegacy(security) {
115
- const {
116
- legacy,
117
- jwt
118
- } = security.api;
119
- return _lodash.default.isNil(legacy) === false && _lodash.default.isNil(jwt) && legacy === true;
120
- }
121
- async function getApiToken(auth, config, remoteUser, aesPassword) {
122
- const security = getSecurity(config);
123
- if (isAESLegacy(security)) {
124
- // fallback all goes to AES encryption
125
- return await new Promise(resolve => {
126
- resolve(auth.aesEncrypt((0, _utils.buildUserBuffer)(remoteUser.name, aesPassword)).toString('base64'));
127
- });
128
- }
129
- // i am wiling to use here _.isNil but flow does not like it yet.
130
- const {
131
- jwt
132
- } = security.api;
133
- if (jwt && jwt.sign) {
134
- return await auth.jwtEncrypt(remoteUser, jwt.sign);
135
- }
136
- return await new Promise(resolve => {
137
- resolve(auth.aesEncrypt((0, _utils.buildUserBuffer)(remoteUser.name, aesPassword)).toString('base64'));
138
- });
139
- }
140
- function parseAuthTokenHeader(authorizationHeader) {
141
- const parts = authorizationHeader.split(' ');
142
- const [scheme, token] = parts;
143
- return {
144
- scheme,
145
- token
146
- };
147
- }
148
- function parseBasicPayload(credentials) {
149
- const index = credentials.indexOf(':');
150
- if (index < 0) {
151
- return;
152
- }
153
- const user = credentials.slice(0, index);
154
- const password = credentials.slice(index + 1);
155
- return {
156
- user,
157
- password
158
- };
159
- }
160
- function parseAESCredentials(authorizationHeader, secret) {
161
- const {
162
- scheme,
163
- token
164
- } = parseAuthTokenHeader(authorizationHeader);
165
-
166
- // basic is deprecated and should not be enforced
167
- if (scheme.toUpperCase() === _constants.TOKEN_BASIC.toUpperCase()) {
168
- const credentials = (0, _utils2.convertPayloadToBase64)(token).toString();
169
- return credentials;
170
- } else if (scheme.toUpperCase() === _constants.TOKEN_BEARER.toUpperCase()) {
171
- const tokenAsBuffer = (0, _utils2.convertPayloadToBase64)(token);
172
- const credentials = (0, _signature.aesDecryptDeprecated)(tokenAsBuffer, secret).toString('utf8');
173
- return credentials;
174
- }
175
- }
176
- const expireReasons = exports.expireReasons = ['JsonWebTokenError', 'TokenExpiredError'];
177
- function verifyJWTPayload(token, secret) {
178
- try {
179
- const payload = (0, _signature.verifyPayload)(token, secret);
180
- return payload;
181
- } catch (error) {
182
- // #168 this check should be removed as soon AES encrypt is removed.
183
- if (expireReasons.includes(error.name)) {
184
- // it might be possible the jwt configuration is enabled and
185
- // old tokens fails still remains in usage, thus
186
- // we return an anonymous user to force log in.
187
- return (0, _config.createAnonymousRemoteUser)();
188
- }
189
- throw _utils2.ErrorCode.getCode(_constants.HTTP_STATUS.UNAUTHORIZED, error.message);
190
- }
191
- }
192
- function isAuthHeaderValid(authorization) {
193
- return authorization.split(' ').length === 2;
194
- }
195
- function getMiddlewareCredentials(security, secret, authorizationHeader) {
196
- if (isAESLegacy(security)) {
197
- const credentials = parseAESCredentials(authorizationHeader, secret);
198
- if (!credentials) {
199
- return;
200
- }
201
- const parsedCredentials = parseBasicPayload(credentials);
202
- if (!parsedCredentials) {
203
- return;
204
- }
205
- return parsedCredentials;
206
- }
207
- const {
208
- scheme,
209
- token
210
- } = parseAuthTokenHeader(authorizationHeader);
211
- if (_lodash.default.isString(token) && scheme.toUpperCase() === _constants.TOKEN_BEARER.toUpperCase()) {
212
- return verifyJWTPayload(token, secret);
213
- }
214
- }
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfY29uZmlnIiwiX3NpZ25hdHVyZSIsIl91dGlscyIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3V0aWxzMiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVidWciLCJidWlsZERlYnVnIiwidmFsaWRhdGVQYXNzd29yZCIsInBhc3N3b3JkIiwibWluTGVuZ3RoIiwiREVGQVVMVF9NSU5fTElNSVRfUEFTU1dPUkQiLCJsZW5ndGgiLCJhbGxvd19hY3Rpb24iLCJhY3Rpb24iLCJ1c2VyIiwicGtnIiwiY2FsbGJhY2siLCJuYW1lIiwiZ3JvdXBzIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsInVuZGVmaW5lZCIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiZGVmYXVsdFdlYlRva2VuT3B0aW9ucyIsInNpZ24iLCJleHBpcmVzSW4iLCJUSU1FX0VYUElSQVRJT05fMUgiLCJ2ZXJpZnkiLCJkZWZhdWx0QXBpVG9rZW5Db25mIiwibGVnYWN5IiwiZGVmYXVsdFNlY3VyaXR5IiwiZXhwb3J0cyIsIndlYiIsImFwaSIsImdldFNlY3VyaXR5IiwiY29uZmlnIiwic2VjdXJpdHkiLCJtZXJnZSIsImlzQUVTTGVnYWN5Iiwiand0IiwiZ2V0QXBpVG9rZW4iLCJhdXRoIiwicmVtb3RlVXNlciIsImFlc1Bhc3N3b3JkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhZXNFbmNyeXB0IiwiYnVpbGRVc2VyQnVmZmVyIiwidG9TdHJpbmciLCJqd3RFbmNyeXB0IiwicGFyc2VBdXRoVG9rZW5IZWFkZXIiLCJhdXRob3JpemF0aW9uSGVhZGVyIiwicGFydHMiLCJzcGxpdCIsInNjaGVtZSIsInRva2VuIiwicGFyc2VCYXNpY1BheWxvYWQiLCJjcmVkZW50aWFscyIsImluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwicGFyc2VBRVNDcmVkZW50aWFscyIsInNlY3JldCIsInRvVXBwZXJDYXNlIiwiVE9LRU5fQkFTSUMiLCJjb252ZXJ0UGF5bG9hZFRvQmFzZTY0IiwiVE9LRU5fQkVBUkVSIiwidG9rZW5Bc0J1ZmZlciIsImFlc0RlY3J5cHQiLCJleHBpcmVSZWFzb25zIiwidmVyaWZ5SldUUGF5bG9hZCIsInBheWxvYWQiLCJ2ZXJpZnlQYXlsb2FkIiwiZXJyb3IiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwiZ2V0Q29kZSIsIkhUVFBfU1RBVFVTIiwiVU5BVVRIT1JJWkVEIiwibWVzc2FnZSIsImlzQXV0aEhlYWRlclZhbGlkIiwiYXV0aG9yaXphdGlvbiIsImdldE1pZGRsZXdhcmVDcmVkZW50aWFscyIsInBhcnNlZENyZWRlbnRpYWxzIiwiaXNTdHJpbmciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2F1dGgtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlciB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB7IHBsdWdpblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IGFlc0RlY3J5cHREZXByZWNhdGVkIGFzIGFlc0RlY3J5cHQsIHZlcmlmeVBheWxvYWQgfSBmcm9tICdAdmVyZGFjY2lvL3NpZ25hdHVyZSc7XG5pbXBvcnQge1xuICBBUElUb2tlbk9wdGlvbnMsXG4gIENhbGxiYWNrLFxuICBDb25maWcsXG4gIEpXVE9wdGlvbnMsXG4gIFBhY2thZ2UsXG4gIFJlbW90ZVVzZXIsXG4gIFNlY3VyaXR5LFxufSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGJ1aWxkVXNlckJ1ZmZlciB9IGZyb20gJ0B2ZXJkYWNjaW8vdXRpbHMnO1xuXG5pbXBvcnQgeyBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkLCBJQXV0aFdlYlVJIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQVBJX0VSUk9SLFxuICBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCxcbiAgSFRUUF9TVEFUVVMsXG4gIFRJTUVfRVhQSVJBVElPTl8xSCxcbiAgVE9LRU5fQkFTSUMsXG4gIFRPS0VOX0JFQVJFUixcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0IH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhc3N3b3JkKFxuICBwYXNzd29yZDogc3RyaW5nLCAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiAgbWluTGVuZ3RoOiBudW1iZXIgPSBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnICYmIHBhc3N3b3JkLmxlbmd0aCA+PSBtaW5MZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd19hY3Rpb24oYWN0aW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gIHJldHVybiBmdW5jdGlvbiAodXNlcjogUmVtb3RlVXNlciwgcGtnOiBQYWNrYWdlLCBjYWxsYmFjazogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBkZWJ1ZygnW2F1dGgvYWxsb3dfYWN0aW9uXTogdXNlcjogJW8nLCB1c2VyPy5uYW1lKTtcbiAgICBjb25zdCB7IG5hbWUsIGdyb3VwcyB9ID0gdXNlcjtcbiAgICBjb25zdCBncm91cEFjY2VzcyA9IHBrZ1thY3Rpb25dO1xuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSBncm91cEFjY2Vzcy5zb21lKChncm91cCkgPT4gbmFtZSA9PT0gZ3JvdXAgfHwgZ3JvdXBzLmluY2x1ZGVzKGdyb3VwKSk7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IGhhc1Blcm1pc3Npb24/ICVvfSBmb3IgdXNlcjogJW8nLCBoYXNQZXJtaXNzaW9uLCB1c2VyPy5uYW1lKTtcblxuICAgIGlmIChoYXNQZXJtaXNzaW9uKSB7XG4gICAgICBsb2dnZXIuaW5mbyh7IHVzZXI6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKFxuICAgICAgICBFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKGB1c2VyICR7bmFtZX0gaXMgbm90IGFsbG93ZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soXG4gICAgICAgIEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoYGF1dGhvcml6YXRpb24gcmVxdWlyZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogcGx1Z2luVXRpbHMuQXV0aDxDb25maWc+IHtcbiAgcmV0dXJuIHtcbiAgICBhdXRoZW50aWNhdGUoX3VzZXI6IHN0cmluZywgX3Bhc3N3b3JkOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG4gICAgICBjYihFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKEFQSV9FUlJPUi5CQURfVVNFUk5BTUVfUEFTU1dPUkQpKTtcbiAgICB9LFxuXG4gICAgYWRkX3VzZXIoX3VzZXI6IHN0cmluZywgX3Bhc3N3b3JkOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG4gICAgICByZXR1cm4gY2IoRXJyb3JDb2RlLmdldENvbmZsaWN0KEFQSV9FUlJPUi5CQURfVVNFUk5BTUVfUEFTU1dPUkQpKTtcbiAgICB9LFxuXG4gICAgLy8gRklYTUU6IGFsbG93X2FjdGlvbiBhbmQgYWxsb3dfcHVibGlzaCBzaG91bGQgYmUgaW4gdGhlIEB2ZXJkYWNjaW8vdHlwZXNcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgYWxsb3dfYWNjZXNzOiBhbGxvd19hY3Rpb24oJ2FjY2VzcycsIGxvZ2dlciksXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X3B1Ymxpc2g6IGFsbG93X2FjdGlvbigncHVibGlzaCcsIGxvZ2dlciksXG4gICAgYWxsb3dfdW5wdWJsaXNoOiBoYW5kbGVTcGVjaWFsVW5wdWJsaXNoKCksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgMSBob3VyXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fMUgsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oXG4gIGF1dGg6IElBdXRoV2ViVUksXG4gIGNvbmZpZzogQ29uZmlnLFxuICByZW1vdGVVc2VyOiBSZW1vdGVVc2VyLFxuICBhZXNQYXNzd29yZDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgLy8gZmFsbGJhY2sgYWxsIGdvZXMgdG8gQUVTIGVuY3J5cHRpb25cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICAgIHJlc29sdmUoXG4gICAgICAgIGF1dGguYWVzRW5jcnlwdChidWlsZFVzZXJCdWZmZXIocmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZywgYWVzUGFzc3dvcmQpKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgLy8gaSBhbSB3aWxpbmcgdG8gdXNlIGhlcmUgXy5pc05pbCBidXQgZmxvdyBkb2VzIG5vdCBsaWtlIGl0IHlldC5cbiAgY29uc3QgeyBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICBpZiAoand0ICYmIGp3dC5zaWduKSB7XG4gICAgcmV0dXJuIGF3YWl0IGF1dGguand0RW5jcnlwdChyZW1vdGVVc2VyLCBqd3Quc2lnbik7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgcmVzb2x2ZShcbiAgICAgIGF1dGguYWVzRW5jcnlwdChidWlsZFVzZXJCdWZmZXIocmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZywgYWVzUGFzc3dvcmQpKS50b1N0cmluZygnYmFzZTY0JylcbiAgICApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZyk6IEF1dGhUb2tlbkhlYWRlciB7XG4gIGNvbnN0IHBhcnRzID0gYXV0aG9yaXphdGlvbkhlYWRlci5zcGxpdCgnICcpO1xuICBjb25zdCBbc2NoZW1lLCB0b2tlbl0gPSBwYXJ0cztcblxuICByZXR1cm4geyBzY2hlbWUsIHRva2VuIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJhc2ljUGF5bG9hZChjcmVkZW50aWFsczogc3RyaW5nKTogQmFzaWNQYXlsb2FkIHtcbiAgY29uc3QgaW5kZXggPSBjcmVkZW50aWFscy5pbmRleE9mKCc6Jyk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB1c2VyOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZSgwLCBpbmRleCk7XG4gIGNvbnN0IHBhc3N3b3JkOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiB7IHVzZXIsIHBhc3N3b3JkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFFU0NyZWRlbnRpYWxzKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZywgc2VjcmV0OiBzdHJpbmcpIHtcbiAgY29uc3QgeyBzY2hlbWUsIHRva2VuIH0gPSBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyKTtcblxuICAvLyBiYXNpYyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIGVuZm9yY2VkXG4gIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkFTSUMudG9VcHBlckNhc2UoKSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbikudG9TdHJpbmcoKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfSBlbHNlIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkVBUkVSLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCB0b2tlbkFzQnVmZmVyID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbik7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhZXNEZWNyeXB0KHRva2VuQXNCdWZmZXIsIHNlY3JldCkudG9TdHJpbmcoJ3V0ZjgnKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXhwaXJlUmVhc29uczogc3RyaW5nW10gPSBbJ0pzb25XZWJUb2tlbkVycm9yJywgJ1Rva2VuRXhwaXJlZEVycm9yJ107XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKTogUmVtb3RlVXNlciB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZDogUmVtb3RlVXNlciA9IHZlcmlmeVBheWxvYWQodG9rZW4sIHNlY3JldCk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIC8vICMxNjggdGhpcyBjaGVjayBzaG91bGQgYmUgcmVtb3ZlZCBhcyBzb29uIEFFUyBlbmNyeXB0IGlzIHJlbW92ZWQuXG4gICAgaWYgKGV4cGlyZVJlYXNvbnMuaW5jbHVkZXMoZXJyb3IubmFtZSkpIHtcbiAgICAgIC8vIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRoZSBqd3QgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkIGFuZFxuICAgICAgLy8gb2xkIHRva2VucyBmYWlscyBzdGlsbCByZW1haW5zIGluIHVzYWdlLCB0aHVzXG4gICAgICAvLyB3ZSByZXR1cm4gYW4gYW5vbnltb3VzIHVzZXIgdG8gZm9yY2UgbG9nIGluLlxuICAgICAgcmV0dXJuIGNyZWF0ZUFub255bW91c1JlbW90ZVVzZXIoKTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBlcnJvci5tZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoSGVhZGVyVmFsaWQoYXV0aG9yaXphdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBhdXRob3JpemF0aW9uLnNwbGl0KCcgJykubGVuZ3RoID09PSAyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWlkZGxld2FyZUNyZWRlbnRpYWxzKFxuICBzZWN1cml0eTogU2VjdXJpdHksXG4gIHNlY3JldDogc3RyaW5nLFxuICBhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmdcbik6IEF1dGhNaWRkbGV3YXJlUGF5bG9hZCB7XG4gIGlmIChpc0FFU0xlZ2FjeShzZWN1cml0eSkpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHBhcnNlQUVTQ3JlZGVudGlhbHMoYXV0aG9yaXphdGlvbkhlYWRlciwgc2VjcmV0KTtcbiAgICBpZiAoIWNyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkQ3JlZGVudGlhbHMgPSBwYXJzZUJhc2ljUGF5bG9hZChjcmVkZW50aWFscyk7XG4gICAgaWYgKCFwYXJzZWRDcmVkZW50aWFscykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRDcmVkZW50aWFscztcbiAgfVxuICBjb25zdCB7IHNjaGVtZSwgdG9rZW4gfSA9IHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXIpO1xuXG4gIGlmIChfLmlzU3RyaW5nKHRva2VuKSAmJiBzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkVBUkVSLnRvVXBwZXJDYXNlKCkpIHtcbiAgICByZXR1cm4gdmVyaWZ5SldUUGF5bG9hZCh0b2tlbiwgc2VjcmV0KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBVUEsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBR0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBUUEsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQTRELFNBQUFELHVCQUFBUyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRTVELE1BQU1HLEtBQUssR0FBRyxJQUFBQyxjQUFVLEVBQUMsV0FBVyxDQUFDO0FBRTlCLFNBQVNDLGdCQUFnQkEsQ0FDOUJDLFFBQWdCO0FBQUU7QUFDbEJDLFNBQWlCLEdBQUdDLHFDQUEwQixFQUNyQztFQUNULE9BQU8sT0FBT0YsUUFBUSxLQUFLLFFBQVEsSUFBSUEsUUFBUSxDQUFDRyxNQUFNLElBQUlGLFNBQVM7QUFDckU7QUFFTyxTQUFTRyxZQUFZQSxDQUFDQyxNQUFjLEVBQVk7RUFDckQsT0FBTyxVQUFVQyxJQUFnQixFQUFFQyxHQUFZLEVBQUVDLFFBQWtCLEVB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
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVidWciLCJidWlsZERlYnVnIiwidmFsaWRhdGVQYXNzd29yZCIsInBhc3N3b3JkIiwibWluTGVuZ3RoIiwiREVGQVVMVF9NSU5fTElNSVRfUEFTU1dPUkQiLCJsZW5ndGgiLCJhbGxvd19hY3Rpb24iLCJhY3Rpb24iLCJ1c2VyIiwicGtnIiwiY2FsbGJhY2siLCJuYW1lIiwiZ3JvdXBzIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsInVuZGVmaW5lZCIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiZGVmYXVsdFdlYlRva2VuT3B0aW9ucyIsInNpZ24iLCJleHBpcmVzSW4iLCJUSU1FX0VYUElSQVRJT05fMUgiLCJ2ZXJpZnkiLCJkZWZhdWx0QXBpVG9rZW5Db25mIiwibGVnYWN5IiwibWlncmF0ZVRvU2VjdXJlTGVnYWN5U2lnbmF0dXJlIiwiZGVmYXVsdFNlY3VyaXR5IiwiZXhwb3J0cyIsIndlYiIsImFwaSIsImdldFNlY3VyaXR5IiwiY29uZmlnIiwic2VjdXJpdHkiLCJtZXJnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBwbHVnaW5VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQge1xuICBBUElUb2tlbk9wdGlvbnMsXG4gIENhbGxiYWNrLFxuICBDb25maWcsXG4gIEpXVE9wdGlvbnMsXG4gIFBhY2thZ2UsXG4gIFJlbW90ZVVzZXIsXG4gIFNlY3VyaXR5LFxufSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgQVBJX0VSUk9SLCBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCwgVElNRV9FWFBJUkFUSU9OXzFIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhc3N3b3JkKFxuICBwYXNzd29yZDogc3RyaW5nLCAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiAgbWluTGVuZ3RoOiBudW1iZXIgPSBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnICYmIHBhc3N3b3JkLmxlbmd0aCA+PSBtaW5MZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd19hY3Rpb24oYWN0aW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gIHJldHVybiBmdW5jdGlvbiAodXNlcjogUmVtb3RlVXNlciwgcGtnOiBQYWNrYWdlLCBjYWxsYmFjazogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBkZWJ1ZygnW2F1dGgvYWxsb3dfYWN0aW9uXTogdXNlcjogJW8nLCB1c2VyPy5uYW1lKTtcbiAgICBjb25zdCB7IG5hbWUsIGdyb3VwcyB9ID0gdXNlcjtcbiAgICBjb25zdCBncm91cEFjY2VzcyA9IHBrZ1thY3Rpb25dO1xuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSBncm91cEFjY2Vzcy5zb21lKChncm91cCkgPT4gbmFtZSA9PT0gZ3JvdXAgfHwgZ3JvdXBzLmluY2x1ZGVzKGdyb3VwKSk7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IGhhc1Blcm1pc3Npb24/ICVvfSBmb3IgdXNlcjogJW8nLCBoYXNQZXJtaXNzaW9uLCB1c2VyPy5uYW1lKTtcblxuICAgIGlmIChoYXNQZXJtaXNzaW9uKSB7XG4gICAgICBsb2dnZXIuaW5mbyh7IHVzZXI6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKFxuICAgICAgICBFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKGB1c2VyICR7bmFtZX0gaXMgbm90IGFsbG93ZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soXG4gICAgICAgIEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoYGF1dGhvcml6YXRpb24gcmVxdWlyZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogcGx1Z2luVXRpbHMuQXV0aDxDb25maWc+IHtcbiAgcmV0dXJuIHtcbiAgICBhdXRoZW50aWNhdGUoX3VzZXI6IHN0cmluZywgX3Bhc3N3b3JkOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG4gICAgICBjYihFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKEFQSV9FUlJPUi5CQURfVVNFUk5BTUVfUEFTU1dPUkQpKTtcbiAgICB9LFxuXG4gICAgYWRkX3VzZXIoX3VzZXI6IHN0cmluZywgX3Bhc3N3b3JkOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG4gICAgICByZXR1cm4gY2IoRXJyb3JDb2RlLmdldENvbmZsaWN0KEFQSV9FUlJPUi5CQURfVVNFUk5BTUVfUEFTU1dPUkQpKTtcbiAgICB9LFxuXG4gICAgLy8gRklYTUU6IGFsbG93X2FjdGlvbiBhbmQgYWxsb3dfcHVibGlzaCBzaG91bGQgYmUgaW4gdGhlIEB2ZXJkYWNjaW8vdHlwZXNcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgYWxsb3dfYWNjZXNzOiBhbGxvd19hY3Rpb24oJ2FjY2VzcycsIGxvZ2dlciksXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X3B1Ymxpc2g6IGFsbG93X2FjdGlvbigncHVibGlzaCcsIGxvZ2dlciksXG4gICAgYWxsb3dfdW5wdWJsaXNoOiBoYW5kbGVTcGVjaWFsVW5wdWJsaXNoKCksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgMSBob3VyXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fMUgsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbiAgbWlncmF0ZVRvU2VjdXJlTGVnYWN5U2lnbmF0dXJlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQWFBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFvQyxTQUFBRCx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUVwQyxNQUFNRyxLQUFLLEdBQUcsSUFBQUMsY0FBVSxFQUFDLFdBQVcsQ0FBQztBQUU5QixTQUFTQyxnQkFBZ0JBLENBQzlCQyxRQUFnQjtBQUFFO0FBQ2xCQyxTQUFpQixHQUFHQyxxQ0FBMEIsRUFDckM7RUFDVCxPQUFPLE9BQU9GLFFBQVEsS0FBSyxRQUFRLElBQUlBLFFBQVEsQ0FBQ0csTUFBTSxJQUFJRixTQUFTO0FBQ3JFO0FBRU8sU0FBU0csWUFBWUEsQ0FBQ0MsTUFBYyxFQUFZO0VBQ3JELE9BQU8sVUFBVUMsSUFBZ0IsRUFBRUMsR0FBWSxFQUFFQyxRQUFrQixFQUFRO0lBQ3pFWCxLQUFLLENBQUMsK0JBQStCLEVBQUVTLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFRyxJQUFJLENBQUM7SUFDbEQsTUFBTTtNQUFFQSxJQUFJO01BQUVDO0lBQU8sQ0FBQyxHQUFHSixJQUFJO0lBQzdCLE1BQU1LLFdBQVcsR0FBR0osR0FBRyxDQUFDRixNQUFNLENBQUM7SUFDL0IsTUFBTU8sYUFBYSxHQUFHRCxXQUFXLENBQUNFLElBQUksQ0FBRUMsS0FBSyxJQUFL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
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { NextFunction } from 'express';
3
2
  import { pluginUtils } from '@verdaccio/core';
4
3
  import { Callback, Config, JWTSignOptions, Logger, RemoteUser } from '@verdaccio/types';
@@ -37,6 +36,6 @@ declare class Auth {
37
36
  /**
38
37
  * Encrypt a string.
39
38
  */
40
- aesEncrypt(buf: Buffer): Buffer;
39
+ aesEncrypt(value: string): string | void;
41
40
  }
42
41
  export default Auth;