verdaccio 5.3.2 → 5.5.2
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/CHANGELOG.md +56 -0
- package/CODE_OF_CONDUCT.md +10 -10
- package/CONTRIBUTING.md +28 -27
- package/README.md +6 -5
- package/SECURITY.md +8 -9
- package/build/api/debug/index.js +1 -1
- package/build/api/endpoint/api/dist-tags.js +4 -4
- package/build/api/endpoint/api/package.js +3 -3
- package/build/api/endpoint/api/ping.js +1 -1
- package/build/api/endpoint/api/publish.js +11 -11
- package/build/api/endpoint/api/star.js +5 -5
- package/build/api/endpoint/api/stars.js +1 -1
- package/build/api/endpoint/api/user.js +19 -9
- package/build/api/endpoint/api/v1/index.js +26 -0
- package/build/api/endpoint/api/v1/profile.js +13 -5
- package/build/api/endpoint/api/v1/search.js +4 -4
- package/build/api/endpoint/api/v1/token.js +20 -11
- package/build/api/endpoint/api/whoami.js +1 -1
- package/build/api/endpoint/index.js +11 -14
- package/build/api/index.js +23 -17
- package/build/api/middleware.js +6 -6
- package/build/api/rate-limiter.js +24 -0
- package/build/api/web/api.js +6 -18
- package/build/api/web/endpoint/index.js +51 -0
- package/build/api/web/endpoint/package.js +16 -11
- package/build/api/web/endpoint/search.js +9 -3
- package/build/api/web/endpoint/user.js +11 -5
- package/build/api/web/html/renderHTML.js +13 -9
- package/build/api/web/html/template.js +1 -1
- package/build/api/web/index.js +14 -11
- package/build/config/env.js +1 -1
- package/build/index.js +1 -1
- package/build/lib/auth-utils.js +15 -8
- package/build/lib/auth.js +7 -17
- package/build/lib/bootstrap.js +8 -8
- package/build/lib/cli/cli.js +3 -3
- package/build/lib/cli/commands/info.js +3 -3
- package/build/lib/cli/commands/init.js +3 -3
- package/build/lib/cli/commands/version.js +1 -1
- package/build/lib/cli/utils.js +3 -3
- package/build/lib/config-path.js +3 -3
- package/build/lib/config-utils.js +3 -3
- package/build/lib/config.js +16 -31
- package/build/lib/constants.js +5 -4
- package/build/lib/crypto-utils.js +3 -3
- package/build/lib/local-storage.js +7 -15
- package/build/lib/logger/formatter/index.js +1 -1
- package/build/lib/logger/formatter/prettifier.js +3 -3
- package/build/lib/logger/levels.js +1 -1
- package/build/lib/logger/logger.js +10 -6
- package/build/lib/logger/utils.js +1 -1
- package/build/lib/metadata-utils.js +3 -3
- package/build/lib/notify/index.js +3 -3
- package/build/lib/notify/notify-request.js +5 -5
- package/build/lib/plugin-loader.js +4 -4
- package/build/lib/search.js +2 -6
- package/build/lib/storage-utils.js +3 -3
- package/build/lib/storage.js +10 -22
- package/build/lib/up-storage.js +14 -45
- package/build/lib/uplink-util.js +1 -1
- package/build/lib/utils.js +32 -14
- package/build/utils/user.js +1 -1
- package/conf/README.md +3 -3
- package/conf/default.yaml +3 -1
- package/conf/docker.yaml +3 -1
- package/eslintrc.js +92 -92
- package/index.js +1 -1
- package/package.json +66 -59
- package/prettier.config.js +15 -0
- package/tsconfig.json +3 -10
- package/yarn-plugins/plugin-postinstall.js +10 -10
|
@@ -5,25 +5,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = _default;
|
|
7
7
|
|
|
8
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
|
|
10
8
|
var _debug = _interopRequireDefault(require("debug"));
|
|
11
9
|
|
|
12
|
-
var
|
|
10
|
+
var _express = require("express");
|
|
13
11
|
|
|
14
|
-
var
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
15
13
|
|
|
16
14
|
var _authUtils = require("../../../../lib/auth-utils");
|
|
17
15
|
|
|
16
|
+
var _constants = require("../../../../lib/constants");
|
|
17
|
+
|
|
18
18
|
var _cryptoUtils = require("../../../../lib/crypto-utils");
|
|
19
19
|
|
|
20
20
|
var _logger = require("../../../../lib/logger");
|
|
21
21
|
|
|
22
|
+
var _utils = require("../../../../lib/utils");
|
|
23
|
+
|
|
24
|
+
var _rateLimiter = require("../../../rate-limiter");
|
|
25
|
+
|
|
22
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
27
|
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
29
|
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
31
|
|
|
28
32
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
33
|
|
|
@@ -36,8 +40,11 @@ function normalizeToken(token) {
|
|
|
36
40
|
} // https://github.com/npm/npm-profile/blob/latest/lib/index.js
|
|
37
41
|
|
|
38
42
|
|
|
39
|
-
function _default(
|
|
40
|
-
|
|
43
|
+
function _default(auth, storage, config) {
|
|
44
|
+
const tokenRoute = (0, _express.Router)();
|
|
45
|
+
/* eslint new-cap: 0 */
|
|
46
|
+
|
|
47
|
+
tokenRoute.get('/tokens', (0, _rateLimiter.limiter)(config === null || config === void 0 ? void 0 : config.userRateLimit), async function (req, res, next) {
|
|
41
48
|
const {
|
|
42
49
|
name
|
|
43
50
|
} = req.remote_user;
|
|
@@ -68,7 +75,7 @@ function _default(route, auth, storage, config) {
|
|
|
68
75
|
|
|
69
76
|
return next(_utils.ErrorCode.getUnauthorized());
|
|
70
77
|
});
|
|
71
|
-
|
|
78
|
+
tokenRoute.post('/tokens', (0, _rateLimiter.limiter)(config === null || config === void 0 ? void 0 : config.userRateLimit), function (req, res, next) {
|
|
72
79
|
const {
|
|
73
80
|
password,
|
|
74
81
|
readonly,
|
|
@@ -115,6 +122,7 @@ function _default(route, auth, storage, config) {
|
|
|
115
122
|
};
|
|
116
123
|
await storage.saveToken(saveToken);
|
|
117
124
|
debug('token %o was created for user %o', key, name);
|
|
125
|
+
res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
|
|
118
126
|
return next(normalizeToken({
|
|
119
127
|
token,
|
|
120
128
|
user: name,
|
|
@@ -132,7 +140,7 @@ function _default(route, auth, storage, config) {
|
|
|
132
140
|
}
|
|
133
141
|
});
|
|
134
142
|
});
|
|
135
|
-
|
|
143
|
+
tokenRoute.delete('/tokens/token/:tokenKey', (0, _rateLimiter.limiter)(config === null || config === void 0 ? void 0 : config.userRateLimit), async (req, res, next) => {
|
|
136
144
|
const {
|
|
137
145
|
params: {
|
|
138
146
|
tokenKey
|
|
@@ -165,5 +173,6 @@ function _default(route, auth, storage, config) {
|
|
|
165
173
|
|
|
166
174
|
return next(_utils.ErrorCode.getUnauthorized());
|
|
167
175
|
});
|
|
176
|
+
return tokenRoute;
|
|
168
177
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3YxL3Rva2VuLnRzIl0sIm5hbWVzIjpbImRlYnVnIiwibm9ybWFsaXplVG9rZW4iLCJ0b2tlbiIsImNyZWF0ZWQiLCJEYXRlIiwidG9JU09TdHJpbmciLCJyb3V0ZSIsImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsIm5hbWUiLCJyZW1vdGVfdXNlciIsIl8iLCJpc05pbCIsInRva2VucyIsInJlYWRUb2tlbnMiLCJ1c2VyIiwidG90YWxUb2tlbnMiLCJsZW5ndGgiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2JqZWN0cyIsIm1hcCIsInVybHMiLCJlcnJvciIsImxvZ2dlciIsIm1zZyIsIkVycm9yQ29kZSIsImdldENvZGUiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRVbmF1dGhvcml6ZWQiLCJwb3N0IiwicGFzc3dvcmQiLCJyZWFkb25seSIsImNpZHJfd2hpdGVsaXN0IiwiYm9keSIsImlzQm9vbGVhbiIsImlzQXJyYXkiLCJCQURfREFUQSIsIlNVUFBPUlRfRVJST1JTIiwiUEFSQU1FVEVSU19OT1RfVkFMSUQiLCJhdXRoZW50aWNhdGUiLCJlcnIiLCJlcnJvckNvZGUiLCJVTkFVVEhPUklaRUQiLCJpc0Z1bmN0aW9uIiwic2F2ZVRva2VuIiwiTk9UX0lNUExFTUVOVEVEIiwiU1RPUkFHRV9OT1RfSU1QTEVNRU5UIiwia2V5IiwibWFza2VkVG9rZW4iLCJnZXRUaW1lIiwiY2lkciIsImRlbGV0ZSIsInBhcmFtcyIsInRva2VuS2V5IiwiZGVsZXRlVG9rZW4iLCJpbmZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFJQSxNQUFNQSxLQUFLLEdBQUcsb0JBQVcsaUJBQVgsQ0FBZDs7QUFLQSxTQUFTQyxjQUFULENBQXdCQyxLQUF4QixF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WVUsY0FBOUIsRUFBOENMLEtBQUssQ0FBQ00sT0FBcEQsQ0FBRCxDQUFYO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPdEIsSUFBSSxDQUFDbUIsaUJBQVVJLGVBQVYsRUFBRCxDQUFYO0FBQ0QsR0FsQkQ7QUFtQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgSFRUUF9TVEFUVVMsIFNVUFBPUlRfRVJST1JTIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFcnJvckNvZGUsIG1hc2sgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0QXBpVG9rZW4gfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvYXV0aC11dGlscyc7XG5pbXBvcnQgeyBzdHJpbmdUb01ENSB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5cbmltcG9ydCB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2Npbzp0b2tlbicpO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplVG9rZW4gPSBUb2tlbiAmIHtcbiAgY3JlYXRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplVG9rZW4odG9rZW46IFRva2VuKTogTm9ybWFsaXplVG9rZW4ge1xuICByZXR1cm4ge1xuICAgIC4uLnRva2VuLFxuICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKHRva2VuLmNyZWF0ZWQpLnRvSVNPU3RyaW5nKCksXG4gIH07XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXByb2ZpbGUvYmxvYi9sYXRlc3QvbGliL2luZGV4LmpzXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogSUF1dGgsIHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlciwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgcm91dGUuZ2V0KCcvLS9ucG0vdjEvdG9rZW5zJywgYXN5bmMgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBjb25zdCB7IG5hbWUgfSA9IHJlcS5yZW1vdGVfdXNlcjtcblxuICAgIGlmIChfLmlzTmlsKG5hbWUpID09PSBmYWxzZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgc3RvcmFnZS5yZWFkVG9rZW5zKHsgdXNlcjogbmFtZSB9KTtcbiAgICAgICAgY29uc3QgdG90YWxUb2tlbnMgPSB0b2tlbnMubGVuZ3RoO1xuICAgICAgICBkZWJ1ZygndG9rZW4gbGlzdCByZXRyaWV2ZWQ6ICVvJywgdG90YWxUb2tlbnMpO1xuICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk9LKTtcbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgIG9iamVjdHM6IHRva2Vucy5tYXAobm9ybWFsaXplVG9rZW4pLFxuICAgICAgICAgIHVybHM6IHtcbiAgICAgICAgICAgIG5leHQ6ICcnLCAvLyBUT0RPOiBwYWdpbmF0aW9uP1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gbGlzdCBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0VW5hdXRob3JpemVkKCkpO1xuICB9KTtcblxuICByb3V0ZS5wb3N0KCcvLS9ucG0vdjEvdG9rZW5zJywgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBjb25zdCB7IHBhc3N3b3JkLCByZWFkb25seSwgY2lkcl93aGl0ZWxpc3QgfSA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgaWYgKCFfLmlzQm9vbGVhbihyZWFkb25seSkgfHwgIV8uaXNBcnJheShjaWRyX3doaXRlbGlzdCkpIHtcbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9EQVRBLCBTVVBQT1JUX0VSUk9SUy5QQVJBTUVURVJTX05PVF9WQUxJRCkpO1xuICAgIH1cblxuICAgIGF1dGguYXV0aGVudGljYXRlKG5hbWUsIHBhc3N3b3JkLCBhc3luYyAoZXJyLCB1c2VyOiBSZW1vdGVVc2VyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IGVyci5tZXNzYWdlID8gSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEIDogSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1I7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgIH1cblxuICAgICAgcmVxLnJlbW90ZV91c2VyID0gdXNlcjtcblxuICAgICAgaWYgKCFfLmlzRnVuY3Rpb24oc3RvcmFnZS5zYXZlVG9rZW4pKSB7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLk5PVF9JTVBMRU1FTlRFRCwgU1VQUE9SVF9FUlJPUlMuU1RPUkFHRV9OT1RfSU1QTEVNRU5UKSk7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyLCBwYXNzd29yZCk7XG4gICAgICAgIGNvbnN0IGtleSA9IHN0cmluZ1RvTUQ1KHRva2VuKTtcbiAgICAgICAgLy8gVE9ETzogdXNlIGEgdXRpbGl0eSBoZXJlXG4gICAgICAgIGNvbnN0IG1hc2tlZFRva2VuID0gbWFzayh0b2tlbiwgNSk7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2lkcl93aGl0ZWxpc3Q6IGlzIG5vdCBiZWluZyB1c2VkLCB3ZSBwYXNzIGl0IHRocm91Z2hcbiAgICAgICAgICogdG9rZW46IHdlIGRvIG5vdCBzdG9yZSB0aGUgcmVhbCB0b2tlbiAoaXQgaXMgZ2VuZXJhdGVkIG9uY2UgYW5kIHJldHJpZXZlZCB0byB0aGUgdXNlciksIGp1c3QgYSBtYXNrIG9mIGl0LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc2F2ZVRva2VuOiBUb2tlbiA9IHtcbiAgICAgICAgICB1c2VyOiBuYW1lLFxuICAgICAgICAgIHRva2VuOiBtYXNrZWRUb2tlbixcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgY2lkcjogY2lkcl93aGl0ZWxpc3QsXG4gICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgfTtcblxuICAgICAgICBhd2FpdCBzdG9yYWdlLnNhdmVUb2tlbihzYXZlVG9rZW4pO1xuICAgICAgICBkZWJ1ZygndG9rZW4gJW8gd2FzIGNyZWF0ZWQgZm9yIHVzZXIgJW8nLCBrZXksIG5hbWUpO1xuICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICBub3JtYWxpemVUb2tlbih7XG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgICBrZXk6IHNhdmVUb2tlbi5rZXksXG4gICAgICAgICAgICBjaWRyOiBjaWRyX3doaXRlbGlzdCxcbiAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgY3JlYXRlZDogc2F2ZVRva2VuLmNyZWF0ZWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGNyZWF0aW9uIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJvdXRlLmRlbGV0ZSgnLy0vbnBtL3YxL3Rva2Vucy90b2tlbi86dG9rZW5LZXknLCBhc3luYyAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHBhcmFtczogeyB0b2tlbktleSB9LFxuICAgIH0gPSByZXE7XG4gICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgIGRlYnVnKCclbyBoYXMgcmVxdWVzdGVkIHJlbW92ZSBhIHRva2VuJywgbmFtZSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzdG9yYWdlLmRlbGV0ZVRva2VuKG5hbWUsIHRva2VuS2V5KTtcbiAgICAgICAgbG9nZ2VyLmluZm8oeyB0b2tlbktleSwgbmFtZSB9LCAndG9rZW4gaWQgQHt0b2tlbktleX0gd2FzIHJldm9rZWQgZm9yIHVzZXIgQHtuYW1lfScpO1xuICAgICAgICByZXR1cm4gbmV4dCh7fSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0VW5hdXRob3JpemVkKCkpO1xuICB9KTtcbn1cbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3YxL3Rva2VuLnRzIl0sIm5hbWVzIjpbImRlYnVnIiwibm9ybWFsaXplVG9rZW4iLCJ0b2tlbiIsImNyZWF0ZWQiLCJEYXRlIiwidG9JU09TdHJpbmciLCJhdXRoIiwic3RvcmFnZSIsImNvbmZpZyIsInRva2VuUm91dGUiLCJnZXQiLCJ1c2VyUmF0ZUxpbWl0IiwicmVxIiwicmVzIiwibmV4dCIsIm5hbWUiLCJyZW1vdGVfdXNlciIsIl8iLCJpc05pbCIsInRva2VucyIsInJlYWRUb2tlbnMiLCJ1c2VyIiwidG90YWxUb2tlbnMiLCJsZW5ndGgiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2JqZWN0cyIsIm1hcCIsInVybHMiLCJlcnJvciIsImxvZ2dlciIsIm1zZyIsIkVycm9yQ29kZSIsImdldENvZGUiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRVbmF1dGhvcml6ZWQiLCJwb3N0IiwicGFzc3dvcmQiLCJyZWFkb25seSIsImNpZHJfd2hpdGVsaXN0IiwiYm9keSIsImlzQm9vbGVhbiIsImlzQXJyYXkiLCJCQURfREFUQSIsIlNVUFBPUlRfRVJST1JTIiwiUEFSQU1FVEVSU19OT1RfVkFMSUQiLCJhdXRoZW50aWNhdGUiLCJlcnIiLCJlcnJvckNvZGUiLCJVTkFVVEhPUklaRUQiLCJpc0Z1bmN0aW9uIiwic2F2ZVRva2VuIiwiTk9UX0lNUExFTUVOVEVEIiwiU1RPUkFHRV9OT1RfSU1QTEVNRU5UIiwia2V5IiwibWFza2VkVG9rZW4iLCJnZXRUaW1lIiwiY2lkciIsInNldCIsIkhFQURFUlMiLCJDQUNIRV9DT05UUk9MIiwiZGVsZXRlIiwicGFyYW1zIiwidG9rZW5LZXkiLCJkZWxldGVUb2tlbiIsImluZm8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVB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RixjQUFNUixPQUFPLENBQUMyRCxXQUFSLENBQW9CbkQsSUFBcEIsRUFBMEJrRCxRQUExQixDQUFOOztBQUNBbEMsdUJBQU9vQyxJQUFQLENBQVk7QUFBRUYsVUFBQUEsUUFBRjtBQUFZbEQsVUFBQUE7QUFBWixTQUFaLEVBQWdDLG1EQUFoQzs7QUFDQSxlQUFPRCxJQUFJLENBQUMsRUFBRCxDQUFYO0FBQ0QsT0FKRCxDQUlFLE9BQU9nQixLQUFQLEVBQWM7QUFDZEMsdUJBQU9ELEtBQVAsQ0FBYTtBQUFFQSxVQUFBQSxLQUFLLEVBQUVBLEtBQUssQ0FBQ0U7QUFBZixTQUFiLEVBQW1DLHFDQUFuQzs7QUFDQSxlQUFPbEIsSUFBSSxDQUFDbUIsaUJBQVVDLE9BQVYsQ0FBa0JULHVCQUFZVSxjQUE5QixFQUE4Q0wsS0FBSyxDQUFDTSxPQUFwRCxDQUFELENBQVg7QUFDRDtBQUNGOztBQUNELFdBQU90QixJQUFJLENBQUNtQixpQkFBVUksZUFBVixFQUFELENBQVg7QUFDRCxHQWxCRDtBQW9CQSxTQUFPNUIsVUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBUb2tlbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgSUF1dGgsIElTdG9yYWdlSGFuZGxlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2F1dGgtdXRpbHMnO1xuaW1wb3J0IHsgSEVBREVSUywgSFRUUF9TVEFUVVMsIFNVUFBPUlRfRVJST1JTIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzdHJpbmdUb01ENSB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBFcnJvckNvZGUsIG1hc2sgfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbGltaXRlciB9IGZyb20gJy4uLy4uLy4uL3JhdGUtbGltaXRlcic7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvOnRva2VuJyk7XG5leHBvcnQgdHlwZSBOb3JtYWxpemVUb2tlbiA9IFRva2VuICYge1xuICBjcmVhdGVkOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBub3JtYWxpemVUb2tlbih0b2tlbjogVG9rZW4pOiBOb3JtYWxpemVUb2tlbiB7XG4gIHJldHVybiB7XG4gICAgLi4udG9rZW4sXG4gICAgY3JlYXRlZDogbmV3IERhdGUodG9rZW4uY3JlYXRlZCkudG9JU09TdHJpbmcoKSxcbiAgfTtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL25wbS9ucG0tcHJvZmlsZS9ibG9iL2xhdGVzdC9saWIvaW5kZXguanNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChhdXRoOiBJQXV0aCwgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyLCBjb25maWc6IENvbmZpZyk6IFJvdXRlciB7XG4gIGNvbnN0IHRva2VuUm91dGUgPSBSb3V0ZXIoKTsgLyogZXNsaW50IG5ldy1jYXA6IDAgKi9cbiAgdG9rZW5Sb3V0ZS5nZXQoJy90b2tlbnMnLCBsaW1pdGVyKGNvbmZpZz8udXNlclJhdGVMaW1pdCksIGFzeW5jIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHN0b3JhZ2UucmVhZFRva2Vucyh7IHVzZXI6IG5hbWUgfSk7XG4gICAgICAgIGNvbnN0IHRvdGFsVG9rZW5zID0gdG9rZW5zLmxlbmd0aDtcbiAgICAgICAgZGVidWcoJ3Rva2VuIGxpc3QgcmV0cmlldmVkOiAlbycsIHRvdGFsVG9rZW5zKTtcbiAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvYmplY3RzOiB0b2tlbnMubWFwKG5vcm1hbGl6ZVRva2VuKSxcbiAgICAgICAgICB1cmxzOiB7XG4gICAgICAgICAgICBuZXh0OiAnJywgLy8gVE9ETzogcGFnaW5hdGlvbj9cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yOiBlcnJvci5tc2cgfSwgJ3Rva2VuIGxpc3QgaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZCgpKTtcbiAgfSk7XG5cbiAgdG9rZW5Sb3V0ZS5wb3N0KCcvdG9rZW5zJywgbGltaXRlcihjb25maWc/LnVzZXJSYXRlTGltaXQpLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgIGNvbnN0IHsgcGFzc3dvcmQsIHJlYWRvbmx5LCBjaWRyX3doaXRlbGlzdCB9ID0gcmVxLmJvZHk7XG4gICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICBpZiAoIV8uaXNCb29sZWFuKHJlYWRvbmx5KSB8fCAhXy5pc0FycmF5KGNpZHJfd2hpdGVsaXN0KSkge1xuICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX0RBVEEsIFNVUFBPUlRfRVJST1JTLlBBUkFNRVRFUlNfTk9UX1ZBTElEKSk7XG4gICAgfVxuXG4gICAgYXV0aC5hdXRoZW50aWNhdGUobmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI6IFJlbW90ZVVzZXIpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gZXJyLm1lc3NhZ2UgPyBIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQgOiBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUjtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoZXJyb3JDb2RlLCBlcnIubWVzc2FnZSkpO1xuICAgICAgfVxuXG4gICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuXG4gICAgICBpZiAoIV8uaXNGdW5jdGlvbihzdG9yYWdlLnNhdmVUb2tlbikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuTk9UX0lNUExFTUVOVEVELCBTVVBQT1JUX0VSUk9SUy5TVE9SQUdFX05PVF9JTVBMRU1FTlQpKTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRBcGlUb2tlbihhdXRoLCBjb25maWcsIHVzZXIsIHBhc3N3b3JkKTtcbiAgICAgICAgY29uc3Qga2V5ID0gc3RyaW5nVG9NRDUodG9rZW4pO1xuICAgICAgICAvLyBUT0RPOiB1c2UgYSB1dGlsaXR5IGhlcmVcbiAgICAgICAgY29uc3QgbWFza2VkVG9rZW4gPSBtYXNrKHRva2VuLCA1KTtcbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaWRyX3doaXRlbGlzdDogaXMgbm90IGJlaW5nIHVzZWQsIHdlIHBhc3MgaXQgdGhyb3VnaFxuICAgICAgICAgKiB0b2tlbjogd2UgZG8gbm90IHN0b3JlIHRoZSByZWFsIHRva2VuIChpdCBpcyBnZW5lcmF0ZWQgb25jZSBhbmQgcmV0cmlldmVkIHRvIHRoZSB1c2VyKSwganVzdCBhIG1hc2sgb2YgaXQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzYXZlVG9rZW46IFRva2VuID0ge1xuICAgICAgICAgIHVzZXI6IG5hbWUsXG4gICAgICAgICAgdG9rZW46IG1hc2tlZFRva2VuLFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjaWRyOiBjaWRyX3doaXRlbGlzdCxcbiAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICBjcmVhdGVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIGF3YWl0IHN0b3JhZ2Uuc2F2ZVRva2VuKHNhdmVUb2tlbik7XG4gICAgICAgIGRlYnVnKCd0b2tlbiAlbyB3YXMgY3JlYXRlZCBmb3IgdXNlciAlbycsIGtleSwgbmFtZSk7XG4gICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIG5vcm1hbGl6ZVRva2VuKHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgdXNlcjogbmFtZSxcbiAgICAgICAgICAgIGtleTogc2F2ZVRva2VuLmtleSxcbiAgICAgICAgICAgIGNpZHI6IGNpZHJfd2hpdGVsaXN0LFxuICAgICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgICBjcmVhdGVkOiBzYXZlVG9rZW4uY3JlYXRlZCxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVycm9yLm1zZyB9LCAndG9rZW4gY3JlYXRpb24gaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IsIGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgdG9rZW5Sb3V0ZS5kZWxldGUoJy90b2tlbnMvdG9rZW4vOnRva2VuS2V5JywgbGltaXRlcihjb25maWc/LnVzZXJSYXRlTGltaXQpLCBhc3luYyAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHBhcmFtczogeyB0b2tlbktleSB9LFxuICAgIH0gPSByZXE7XG4gICAgY29uc3QgeyBuYW1lIH0gPSByZXEucmVtb3RlX3VzZXI7XG5cbiAgICBpZiAoXy5pc05pbChuYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgIGRlYnVnKCclbyBoYXMgcmVxdWVzdGVkIHJlbW92ZSBhIHRva2VuJywgbmFtZSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzdG9yYWdlLmRlbGV0ZVRva2VuKG5hbWUsIHRva2VuS2V5KTtcbiAgICAgICAgbG9nZ2VyLmluZm8oeyB0b2tlbktleSwgbmFtZSB9LCAndG9rZW4gaWQgQHt0b2tlbktleX0gd2FzIHJldm9rZWQgZm9yIHVzZXIgQHtuYW1lfScpO1xuICAgICAgICByZXR1cm4gbmV4dCh7fSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvcjogZXJyb3IubXNnIH0sICd0b2tlbiBjcmVhdGlvbiBoYXMgZmFpbGVkOiBAe2Vycm9yfScpO1xuICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0VW5hdXRob3JpemVkKCkpO1xuICB9KTtcblxuICByZXR1cm4gdG9rZW5Sb3V0ZTtcbn1cbiJdfQ==
|
|
@@ -21,4 +21,4 @@ function _default(route) {
|
|
|
21
21
|
});
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3dob2FtaS50cyJdLCJuYW1lcyI6WyJyb3V0ZSIsImdldCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2VybmFtZSIsInJlbW90ZV91c2VyIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUllLGtCQUFVQSxLQUFWLEVBQStCO0FBQzVDQSxFQUFBQSxLQUFLLENBQUNDLEdBQU4sQ0FBVSxTQUFWLEVBQXFCLENBQUNDLEdBQUQsRUFBc0JDLEdBQXRCLEVBQXFDQyxJQUFyQyxLQUFzRTtBQUN6RixRQUFJRixHQUFHLENBQUNELEdBQUosQ0FBUSxTQUFSLE1BQXVCLFFBQTNCLEVBQXFDO0FBQ25DRyxNQUFBQSxJQUFJLENBQUM7QUFBRUMsUUFBQUEsUUFBUSxFQUFFSCxHQUFHLENBQUNJLFdBQUosQ0FBZ0JDO0FBQTVCLE9BQUQsQ0FBSjtBQUNELEtBRkQsTUFFTztBQUNMSCxNQUFBQSxJQUFJLENBQUMsT0FBRCxDQUFKO0FBQ0Q7QUFDRixHQU5EO0FBUUFKLEVBQUFBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLFdBQVYsRUFBdUIsQ0FBQ0MsR0FBRCxFQUFzQkMsR0FBdEIsRUFBcUNDLElBQXJDLEtBQXFFO0FBQzFGQSxJQUFBQSxJQUFJLENBQUM7QUFBRUMsTUFBQUEsUUFBUSxFQUFFSCxHQUFHLENBQUNJLFdBQUosQ0FBZ0JDO0FBQTVCLEtBQUQsQ0FBSjtBQUNELEdBRkQ7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlLCBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcblxuaW1wb3J0IHsgJE5leHRGdW5jdGlvblZlciwgJFJlcXVlc3RFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChyb3V0ZTogUm91dGVyKTogdm9pZCB7XG4gIHJvdXRlLmdldCgnL3dob2FtaScsIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCA9PiB7XG4gICAgaWYgKHJlcS5nZXQoJ3JlZmVyZXInKSA9PT0gJ3dob2FtaScpIHtcbiAgICAgIG5leHQoeyB1c2VybmFtZTogcmVxLnJlbW90ZV91c2VyLm5hbWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoJ3JvdXRlJyk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZS5nZXQoJy8tL3dob2FtaScsIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6IFJlc3BvbnNlLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogYW55ID0+IHtcbiAgICBuZXh0KHsgdXNlcm5hbWU6IHJlcS5yZW1vdGVfdXNlci5uYW1lIH0pO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -5,32 +5,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = _default;
|
|
7
7
|
|
|
8
|
-
var _express = _interopRequireDefault(require("express"));
|
|
9
|
-
|
|
10
8
|
var _bodyParser = _interopRequireDefault(require("body-parser"));
|
|
11
9
|
|
|
12
|
-
var
|
|
10
|
+
var _express = _interopRequireDefault(require("express"));
|
|
13
11
|
|
|
14
|
-
var
|
|
12
|
+
var _distTags = _interopRequireDefault(require("./api/dist-tags"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _package = _interopRequireDefault(require("./api/package"));
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _ping = _interopRequireDefault(require("./api/ping"));
|
|
19
17
|
|
|
20
18
|
var _publish = _interopRequireDefault(require("./api/publish"));
|
|
21
19
|
|
|
22
20
|
var _search = _interopRequireDefault(require("./api/search"));
|
|
23
21
|
|
|
24
|
-
var _package = _interopRequireDefault(require("./api/package"));
|
|
25
|
-
|
|
26
22
|
var _stars = _interopRequireDefault(require("./api/stars"));
|
|
27
23
|
|
|
28
|
-
var
|
|
24
|
+
var _user = _interopRequireDefault(require("./api/user"));
|
|
29
25
|
|
|
30
|
-
var
|
|
26
|
+
var _v = _interopRequireDefault(require("./api/v1"));
|
|
31
27
|
|
|
32
28
|
var _search2 = _interopRequireDefault(require("./api/v1/search"));
|
|
33
29
|
|
|
30
|
+
var _whoami = _interopRequireDefault(require("./api/whoami"));
|
|
31
|
+
|
|
34
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
33
|
|
|
36
34
|
const {
|
|
@@ -71,15 +69,14 @@ function _default(config, auth, storage) {
|
|
|
71
69
|
|
|
72
70
|
(0, _whoami.default)(app);
|
|
73
71
|
(0, _package.default)(app, auth, storage, config);
|
|
74
|
-
(0, _profile.default)(app, auth);
|
|
75
72
|
(0, _search.default)(app, auth, storage);
|
|
76
|
-
(0, _user.default)(app, auth, config);
|
|
77
73
|
(0, _distTags.default)(app, auth, storage);
|
|
78
74
|
(0, _publish.default)(app, auth, storage, config);
|
|
79
75
|
(0, _ping.default)(app);
|
|
80
76
|
(0, _stars.default)(app, storage);
|
|
81
77
|
(0, _search2.default)(app, auth, storage);
|
|
82
|
-
(0,
|
|
78
|
+
(0, _user.default)(app, auth, config);
|
|
79
|
+
app.use((0, _v.default)(auth, storage, config));
|
|
83
80
|
return app;
|
|
84
81
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOlsibWF0Y2giLCJ2YWxpZGF0ZU5hbWUiLCJ2YWxpZGF0ZVBhY2thZ2UiLCJlbmNvZGVTY29wZVBhY2thZ2UiLCJhbnRpTG9vcCIsInJlcXVpcmUiLCJjb25maWciLCJhdXRoIiwic3RvcmFnZSIsImFwcCIsImV4cHJlc3MiLCJSb3V0ZXIiLCJwYXJhbSIsInVzZSIsImFwaUpXVG1pZGRsZXdhcmUiLCJib2R5UGFyc2VyIiwianNvbiIsInN0cmljdCIsImxpbWl0IiwibWF4X2JvZHlfc2l6ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQSxLQUFGO0FBQVNDLEVBQUFBLFlBQVQ7QUFBdUJDLEVBQUFBLGVBQXZCO0FBQXdDQyxFQUFBQSxrQkFBeEM7QUFBNERDLEVBQUFBO0FBQTVELElBQXlFQyxPQUFPLENBQUMsZUFBRCxDQUF0Rjs7QUFFZSxrQkFBVUMsTUFBVixFQUEwQkMsSUFBMUIsRUFBdUNDLE9BQXZDLEVBQWlFO0FBQzlFO0FBQ0EsUUFBTUMsR0FBRyxHQUFHQyxpQkFBUUMsTUFBUixFQUFaO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQUYsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlYsZUFBckI7QUFDQU8sRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsS0FBVixFQUFpQlgsWUFBakI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlgsWUFBckI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQlgsWUFBbkIsRUFYOEUsQ0FhOUU7QUFDQTs7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsTUFBVixFQUFrQlosS0FBSyxDQUFDLFFBQUQsQ0FBdkI7QUFDQVMsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsa0JBQVYsRUFBOEJaLEtBQUssQ0FBQyxzQkFBRCxDQUFuQztBQUNBUyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWixLQUFLLENBQUMsSUFBRCxDQUEzQjtBQUVBUyxFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUU4sSUFBSSxDQUFDTyxnQkFBTCxFQUFSO0FBQ0FMLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRRSxvQkFBV0MsSUFBWCxDQUFnQjtBQUFFQyxJQUFBQSxNQUFNLEVBQUUsS0FBVjtBQUFpQkMsSUFBQUEsS0FBSyxFQUFFWixNQUFNLENBQUNhLGFBQVAsSUFBd0I7QUFBaEQsR0FBaEIsQ0FBUjtBQUNBVixFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUVQsUUFBUSxDQUFDRSxNQUFELENBQWhCLEVBckI4RSxDQXNCOUU7O0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRVixrQkFBUixFQXZCOEUsQ0F3QjlFOztBQUNBLHVCQUFPTSxHQUFQO0FBQ0Esd0JBQUlBLEdBQUosRUFBU0YsSUFBVCxFQUFlQyxPQUFmLEVBQXdCRixNQUF4QjtBQUNBLHVCQUFPRyxHQUFQLEVBQVlGLElBQVosRUFBa0JDLE9BQWxCO0FBQ0EseUJBQVNDLEdBQVQsRUFBY0YsSUFBZCxFQUFvQkMsT0FBcEI7QUFDQSx3QkFBUUMsR0FBUixFQUFhRixJQUFiLEVBQW1CQyxPQUFuQixFQUE0QkYsTUFBNUI7QUFDQSxxQkFBS0csR0FBTDtBQUNBLHNCQUFNQSxHQUFOLEVBQVdELE9BQVg7QUFDQSx3QkFBU0MsR0FBVCxFQUFjRixJQUFkLEVBQW9CQyxPQUFwQjtBQUNBLHFCQUFLQyxHQUFMLEVBQVVGLElBQVYsRUFBZ0JELE1BQWhCO0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLGdCQUFNTixJQUFOLEVBQVlDLE9BQVosRUFBcUJGLE1BQXJCLENBQVI7QUFDQSxTQUFPRyxHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IGRpc3RUYWdzIGZyb20gJy4vYXBpL2Rpc3QtdGFncyc7XG5pbXBvcnQgcGtnIGZyb20gJy4vYXBpL3BhY2thZ2UnO1xuaW1wb3J0IHBpbmcgZnJvbSAnLi9hcGkvcGluZyc7XG5pbXBvcnQgcHVibGlzaCBmcm9tICcuL2FwaS9wdWJsaXNoJztcbmltcG9ydCBzZWFyY2ggZnJvbSAnLi9hcGkvc2VhcmNoJztcbmltcG9ydCBzdGFycyBmcm9tICcuL2FwaS9zdGFycyc7XG5pbXBvcnQgdXNlciBmcm9tICcuL2FwaS91c2VyJztcbmltcG9ydCBucG1WMSBmcm9tICcuL2FwaS92MSc7XG5pbXBvcnQgdjFTZWFyY2ggZnJvbSAnLi9hcGkvdjEvc2VhcmNoJztcbmltcG9ydCB3aG9hbWkgZnJvbSAnLi9hcGkvd2hvYW1pJztcblxuY29uc3QgeyBtYXRjaCwgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZVBhY2thZ2UsIGVuY29kZVNjb3BlUGFja2FnZSwgYW50aUxvb3AgfSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUnKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBJQXV0aCwgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyKSB7XG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCBhcHAgPSBleHByZXNzLlJvdXRlcigpO1xuICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgLy8gdmFsaWRhdGUgYWxsIG9mIHRoZXNlIHBhcmFtcyBhcyBhIHBhY2thZ2UgbmFtZVxuICAvLyB0aGlzIG1pZ2h0IGJlIHRvbyBoYXJzaCwgc28gYXNrIGlmIGl0IGNhdXNlcyB0cm91YmxlXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIGFwcC5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3RhZycsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgncmV2aXNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3Rva2VuJywgdmFsaWRhdGVOYW1lKTtcblxuICAvLyB0aGVzZSBjYW4ndCBiZSBzYWZlbHkgcHV0IGludG8gZXhwcmVzcyB1cmwgZm9yIHNvbWUgcmVhc29uXG4gIC8vIFRPRE86IEZvciBzb21lIHJlYXNvbj8gd2hhdCByZWFzb24/XG4gIGFwcC5wYXJhbSgnX3JldicsIG1hdGNoKC9eLXJldiQvKSk7XG4gIGFwcC5wYXJhbSgnb3JnX2NvdWNoZGJfdXNlcicsIG1hdGNoKC9eb3JnXFwuY291Y2hkYlxcLnVzZXI6LykpO1xuICBhcHAucGFyYW0oJ2FueXRoaW5nJywgbWF0Y2goLy4qLykpO1xuXG4gIGFwcC51c2UoYXV0aC5hcGlKV1RtaWRkbGV3YXJlKCkpO1xuICBhcHAudXNlKGJvZHlQYXJzZXIuanNvbih7IHN0cmljdDogZmFsc2UsIGxpbWl0OiBjb25maWcubWF4X2JvZHlfc2l6ZSB8fCAnMTBtYicgfSkpO1xuICBhcHAudXNlKGFudGlMb29wKGNvbmZpZykpO1xuICAvLyBlbmNvZGUgLyBpbiBhIHNjb3BlZCBwYWNrYWdlIG5hbWUgdG8gYmUgbWF0Y2hlZCBhcyBhIHNpbmdsZSBwYXJhbWV0ZXIgaW4gcm91dGVzXG4gIGFwcC51c2UoZW5jb2RlU2NvcGVQYWNrYWdlKTtcbiAgLy8gZm9yIFwibnBtIHdob2FtaVwiXG4gIHdob2FtaShhcHApO1xuICBwa2coYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICBzZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgdXNlcihhcHAsIGF1dGgsIGNvbmZpZyk7XG4gIGFwcC51c2UobnBtVjEoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSk7XG4gIHJldHVybiBhcHA7XG59XG4iXX0=
|
package/build/api/index.js
CHANGED
|
@@ -5,38 +5,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
|
|
10
|
-
var _express = _interopRequireDefault(require("express"));
|
|
11
|
-
|
|
12
8
|
var _compression = _interopRequireDefault(require("compression"));
|
|
13
9
|
|
|
14
10
|
var _cors = _interopRequireDefault(require("cors"));
|
|
15
11
|
|
|
16
|
-
var
|
|
12
|
+
var _express = _interopRequireDefault(require("express"));
|
|
17
13
|
|
|
18
|
-
var
|
|
14
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
19
15
|
|
|
20
16
|
var _auth = _interopRequireDefault(require("../lib/auth"));
|
|
21
17
|
|
|
22
|
-
var
|
|
18
|
+
var _config = _interopRequireDefault(require("../lib/config"));
|
|
23
19
|
|
|
24
20
|
var _constants = require("../lib/constants");
|
|
25
21
|
|
|
26
|
-
var _config = _interopRequireDefault(require("../lib/config"));
|
|
27
|
-
|
|
28
22
|
var _logger = require("../lib/logger");
|
|
29
23
|
|
|
30
|
-
var
|
|
24
|
+
var _pluginLoader = _interopRequireDefault(require("../lib/plugin-loader"));
|
|
31
25
|
|
|
32
|
-
var
|
|
26
|
+
var _storage = _interopRequireDefault(require("../lib/storage"));
|
|
33
27
|
|
|
34
|
-
var
|
|
28
|
+
var _utils = require("../lib/utils");
|
|
35
29
|
|
|
36
30
|
var _debug = _interopRequireDefault(require("./debug"));
|
|
37
31
|
|
|
32
|
+
var _endpoint = _interopRequireDefault(require("./endpoint"));
|
|
33
|
+
|
|
38
34
|
var _middleware = require("./middleware");
|
|
39
35
|
|
|
36
|
+
var _web = _interopRequireDefault(require("./web"));
|
|
37
|
+
|
|
38
|
+
var _api = _interopRequireDefault(require("./web/api"));
|
|
39
|
+
|
|
40
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
41
|
|
|
42
42
|
const defineAPI = function (config, storage) {
|
|
@@ -49,10 +49,16 @@ const defineAPI = function (config, storage) {
|
|
|
49
49
|
|
|
50
50
|
app.use((0, _middleware.log)(config));
|
|
51
51
|
app.use(_middleware.errorReportingMiddleware);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
next
|
|
55
|
-
|
|
52
|
+
|
|
53
|
+
if (config.user_agent) {
|
|
54
|
+
app.use(function (req, res, next) {
|
|
55
|
+
res.setHeader('X-Powered-By', (0, _utils.getUserAgent)(config.user_agent));
|
|
56
|
+
next();
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
app.disable('x-powered-by');
|
|
60
|
+
}
|
|
61
|
+
|
|
56
62
|
app.use((0, _compression.default)());
|
|
57
63
|
app.get('/-/static/favicon.ico', (0, _middleware.serveFavicon)(config)); // Hook for tests only
|
|
58
64
|
|
|
@@ -125,4 +131,4 @@ var _default = async function _default(configHash) {
|
|
|
125
131
|
};
|
|
126
132
|
|
|
127
133
|
exports.default = _default;
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5kZXgudHMiXSwibmFtZXMiOlsiZGVmaW5lQVBJIiwiY29uZmlnIiwic3RvcmFnZSIsImF1dGgiLCJBdXRoIiwiYXBwIiwic2V0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlIiwiZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlIiwicmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsInVzZXJfYWdlbnQiLCJnZXQiLCJfZGVidWciLCJzZWxmX3BhdGgiLCJwbHVnaW5fcGFyYW1zIiwibG9nZ2VyIiwicGx1Z2lucyIsIm1pZGRsZXdhcmVzIiwicGx1Z2luIiwicmVnaXN0ZXJfbWlkZGxld2FyZXMiLCJmb3JFYWNoIiwiXyIsIkVycm9yQ29kZSIsImdldE5vdEZvdW5kIiwiQVBJX0VSUk9SIiwiV0VCX0RJU0FCTEVEIiwiRklMRV9OT1RfRk9VTkQiLCJlcnIiLCJpc0Vycm9yIiwiY29kZSIsInN0YXR1c0NvZGUiLCJIVFRQX1NUQVRVUyIsIk5PVF9NT0RJRklFRCIsImlzRnVuY3Rpb24iLCJsb2NhbHMiLCJyZXBvcnRfZXJyb3IiLCJub29wIiwiZmluYWwiLCJjb25maWdIYXNoIiwibG9ncyIsIkFwcENvbmZpZyIsImNsb25lRGVlcCIsImZpbHRlcnMiLCJmaWx0ZXJfbWV0YWRhdGEiLCJTdG9yYWdlIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLFVBQVVDLE1BQVYsRUFBMkJDLE9BQTNCLEVBQTBEO0FBQzFFLFFBQU1DLElBQVcsR0FBRyxJQUFJQyxhQUFKLENBQVNILE1BQVQsQ0FBcEI7QUFDQSxRQUFNSSxHQUFnQixHQUFHLHVCQUF6QixDQUYwRSxDQUkxRTtBQUNBOztBQUNBQSxFQUFBQSxHQUFH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aUQsSUFBUixDQUFhbEQsTUFBYixFQUFxQitDLE9BQXJCLENBQU47QUFDQSxTQUFPaEQsU0FBUyxDQUFDQyxNQUFELEVBQVNDLE9BQVQsQ0FBaEI7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBleHByZXNzLCB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3IgfSBmcm9tICdodHRwLWVycm9ycyc7XG5pbXBvcnQgeyBDb25maWcgYXMgSUNvbmZpZywgSVBsdWdpbk1pZGRsZXdhcmUsIElQbHVnaW5TdG9yYWdlRmlsdGVyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgU3RvcmFnZSBmcm9tICcuLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgbG9hZFBsdWdpbiBmcm9tICcuLi9saWIvcGx1Z2luLWxvYWRlcic7XG5pbXBvcnQgQXV0aCBmcm9tICcuLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IEFwcENvbmZpZyBmcm9tICcuLi9saWIvY29uZmlnJztcbmltcG9ydCB7ICRSZXNwb25zZUV4dGVuZCwgJFJlcXVlc3RFeHRlbmQsICROZXh0RnVuY3Rpb25WZXIsIElTdG9yYWdlSGFuZGxlciwgSUF1dGggfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBzZXR1cCwgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgd2ViQVBJIGZyb20gJy4vd2ViL2FwaSc7XG5pbXBvcnQgd2ViIGZyb20gJy4vd2ViJztcbmltcG9ydCBhcGlFbmRwb2ludCBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCBob29rRGVidWcgZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgeyBsb2csIGZpbmFsLCBlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUsIHNlcnZlRmF2aWNvbiB9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5cbmNvbnN0IGRlZmluZUFQSSA9IGZ1bmN0aW9uIChjb25maWc6IElDb25maWcsIHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlcik6IGFueSB7XG4gIGNvbnN0IGF1dGg6IElBdXRoID0gbmV3IEF1dGgoY29uZmlnKTtcbiAgY29uc3QgYXBwOiBBcHBsaWNhdGlvbiA9IGV4cHJlc3MoKTtcblxuICAvLyBydW4gaW4gcHJvZHVjdGlvbiBtb2RlIGJ5IGRlZmF1bHQsIGp1c3QgaW4gY2FzZVxuICAvLyBpdCBzaG91bGRuJ3QgbWFrZSBhbnkgZGlmZmVyZW5jZSBhbnl3YXlcbiAgYXBwLnNldCgnZW52JywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgJ3Byb2R1Y3Rpb24nKTtcbiAgYXBwLnVzZShjb3JzKCkpO1xuXG4gIC8vIFJvdXRlciBzZXR1cFxuICBhcHAudXNlKGxvZyhjb25maWcpKTtcbiAgYXBwLnVzZShlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUpO1xuICBhcHAudXNlKGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsIGNvbmZpZy51c2VyX2FnZW50KTtcbiAgICBuZXh0KCk7XG4gIH0pO1xuXG4gIGFwcC51c2UoY29tcHJlc3Npb24oKSk7XG5cbiAgYXBwLmdldCgnLy0vc3RhdGljL2Zhdmljb24uaWNvJywgc2VydmVGYXZpY29uKGNvbmZpZykpO1xuXG4gIC8vIEhvb2sgZm9yIHRlc3RzIG9ubHlcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICBob29rRGVidWcoYXBwLCBjb25maWcuc2VsZl9wYXRoKTtcbiAgfVxuXG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuXG4gIGNvbnN0IHBsdWdpbnM6IElQbHVnaW5NaWRkbGV3YXJlPElDb25maWc+W10gPSBsb2FkUGx1Z2luKGNvbmZpZywgY29uZmlnLm1pZGRsZXdhcmVzLCBwbHVnaW5fcGFyYW1zLCBmdW5jdGlvbiAocGx1Z2luOiBJUGx1Z2luTWlkZGxld2FyZTxJQ29uZmlnPikge1xuICAgIHJldHVybiBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXM7XG4gIH0pO1xuICBwbHVnaW5zLmZvckVhY2goKHBsdWdpbjogSVBsdWdpbk1pZGRsZXdhcmU8SUNvbmZpZz4pID0+IHtcbiAgICBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXMoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgfSk7XG5cbiAgLy8gRm9yICBucG0gcmVxdWVzdFxuICBhcHAudXNlKGFwaUVuZHBvaW50KGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuXG4gIC8vIEZvciBXZWJVSSAmIFdlYlVJIEFQSVxuICBpZiAoXy5nZXQoY29uZmlnLCAnd2ViLmVuYWJsZScsIHRydWUpKSB7XG4gICAgYXBwLnVzZSgnLycsIHdlYihjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcbiAgICBhcHAudXNlKCcvLS92ZXJkYWNjaW8vJywgd2ViQVBJKGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENhdGNoIDQwNFxuICBhcHAuZ2V0KCcvKicsIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5GSUxFX05PVF9GT1VORCkpO1xuICB9KTtcblxuICBhcHAudXNlKGZ1bmN0aW9uIChlcnI6IEh0dHBFcnJvciwgcmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBpZiAoXy5pc0Vycm9yKGVycikpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VDT05OQUJPUlQnICYmIHJlcy5zdGF0dXNDb2RlID09PSBIVFRQX1NUQVRVUy5OT1RfTU9ESUZJRUQpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRnVuY3Rpb24ocmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBpbiBjYXNlIG9mIHZlcnkgZWFybHkgZXJyb3IgdGhpcyBtaWRkbGV3YXJlIG1heSBub3QgYmUgbG9hZGVkIGJlZm9yZSBlcnJvciBpcyBnZW5lcmF0ZWRcbiAgICAgICAgLy8gZml4aW5nIHRoYXRcbiAgICAgICAgZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlKHJlcSwgcmVzLCBfLm5vb3ApO1xuICAgICAgfVxuICAgICAgcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IoZXJyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbCB0byBNaWRkbGV3YXJlLmZpbmFsXG4gICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgIH1cbiAgfSk7XG5cbiAgYXBwLnVzZShmaW5hbCk7XG5cbiAgcmV0dXJuIGFwcDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChhc3luYyBmdW5jdGlvbiAoY29uZmlnSGFzaDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgc2V0dXAoY29uZmlnSGFzaC5sb2dzKTtcbiAgY29uc3QgY29uZmlnOiBJQ29uZmlnID0gbmV3IEFwcENvbmZpZyhfLmNsb25lRGVlcChjb25maWdIYXNoKSk7XG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuICBjb25zdCBmaWx0ZXJzID0gbG9hZFBsdWdpbihjb25maWcsIGNvbmZpZy5maWx0ZXJzIHx8IHt9LCBwbHVnaW5fcGFyYW1zLCAocGx1Z2luOiBJUGx1Z2luU3RvcmFnZUZpbHRlcjxJQ29uZmlnPikgPT4gcGx1Z2luLmZpbHRlcl9tZXRhZGF0YSk7XG4gIGNvbnN0IHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlciA9IG5ldyBTdG9yYWdlKGNvbmZpZyk7XG4gIC8vIHdhaXRzIHVudGlsIGluaXQgY2FsbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkXG4gIGF3YWl0IHN0b3JhZ2UuaW5pdChjb25maWcsIGZpbHRlcnMpO1xuICByZXR1cm4gZGVmaW5lQVBJKGNvbmZpZywgc3RvcmFnZSk7XG59KTtcbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5kZXgudHMiXSwibmFtZXMiOlsiZGVmaW5lQVBJIiwiY29uZmlnIiwic3RvcmFnZSIsImF1dGgiLCJBdXRoIiwiYXBwIiwic2V0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlIiwiZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlIiwidXNlcl9hZ2VudCIsInJlcSIsInJlcyIsIm5leHQiLCJzZXRIZWFkZXIiLCJkaXNhYmxlIiwiZ2V0IiwiX2RlYnVnIiwic2VsZl9wYXRoIiwicGx1Z2luX3BhcmFtcyIsImxvZ2dlciIsInBsdWdpbnMiLCJtaWRkbGV3YXJlcyIsInBsdWdpbiIsInJlZ2lzdGVyX21pZGRsZXdhcmVzIiwiZm9yRWFjaCIsIl8iLCJFcnJvckNvZGUiLCJnZXROb3RGb3VuZCIsIkFQSV9FUlJPUiIsIldFQl9ESVNBQkxFRCIsIkZJTEVfTk9UX0ZPVU5EIiwiZXJyIiwiaXNFcnJvciIsImNvZGUiLCJzdGF0dXNDb2RlIiwiSFRUUF9TVEFUVVMiLCJOT1RfTU9ESUZJRUQiLCJpc0Z1bmN0aW9uIiwibG9jYWxzIiwicmVwb3J0X2Vycm9yIiwibm9vcCIsImZpbmFsIiwiY29uZmlnSGFzaCIsImxvZ3MiLCJBcHBDb25maWciLCJjbG9uZURlZXAiLCJmaWx0ZXJzIiwiZmlsdGVyX21ldGFkYXRhIiwiU3RvcmFnZSIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLFNBQVMsR0FBRyxVQUFVQyxNQUFWLEVBQTJCQyxPQUEzQixFQUEwRDtBQUMxRSxRQUFNQyxJQUFXLEdBQUcsSUFBSUMsYUFBSixDQUFTSCxNQUFULENBQXBCO0FBQ0EsUUFBTUksR0FBZ0IsR0FBRyx1QkFBekIsQ0FGMEUsQ0FJMUU7QUFDQTs7QUFDQUEs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QTJDQSxNQUFNLENBQUN5QixlQUExRyxDQUFoQjtBQUNBLFFBQU1oRCxPQUF3QixHQUFHLElBQUlpRCxnQkFBSixDQUFZbEQsTUFBWixDQUFqQyxDQVQ2RCxDQVU3RDs7QUFDQSxRQUFNQyxPQUFPLENBQUNrRCxJQUFSLENBQWFuRCxNQUFiLEVBQXFCZ0QsT0FBckIsQ0FBTjtBQUNBLFNBQU9qRCxTQUFTLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxDQUFoQjtBQUNELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgZXhwcmVzcywgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgSHR0cEVycm9yIH0gZnJvbSAnaHR0cC1lcnJvcnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQ29uZmlnIGFzIElDb25maWcsIElQbHVnaW5NaWRkbGV3YXJlLCBJUGx1Z2luU3RvcmFnZUZpbHRlciB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kLCBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi4vbGliL2F1dGgnO1xuaW1wb3J0IEFwcENvbmZpZyBmcm9tICcuLi9saWIvY29uZmlnJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMgfSBmcm9tICcuLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciwgc2V0dXAgfSBmcm9tICcuLi9saWIvbG9nZ2VyJztcbmltcG9ydCBsb2FkUGx1Z2luIGZyb20gJy4uL2xpYi9wbHVnaW4tbG9hZGVyJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSwgZ2V0VXNlckFnZW50IH0gZnJvbSAnLi4vbGliL3V0aWxzJztcbmltcG9ydCBob29rRGVidWcgZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgYXBpRW5kcG9pbnQgZnJvbSAnLi9lbmRwb2ludCc7XG5pbXBvcnQgeyBlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUsIGZpbmFsLCBsb2csIHNlcnZlRmF2aWNvbiB9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5pbXBvcnQgd2ViIGZyb20gJy4vd2ViJztcbmltcG9ydCB3ZWJBUEkgZnJvbSAnLi93ZWIvYXBpJztcblxuY29uc3QgZGVmaW5lQVBJID0gZnVuY3Rpb24gKGNvbmZpZzogSUNvbmZpZywgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyKTogYW55IHtcbiAgY29uc3QgYXV0aDogSUF1dGggPSBuZXcgQXV0aChjb25maWcpO1xuICBjb25zdCBhcHA6IEFwcGxpY2F0aW9uID0gZXhwcmVzcygpO1xuXG4gIC8vIHJ1biBpbiBwcm9kdWN0aW9uIG1vZGUgYnkgZGVmYXVsdCwganVzdCBpbiBjYXNlXG4gIC8vIGl0IHNob3VsZG4ndCBtYWtlIGFueSBkaWZmZXJlbmNlIGFueXdheVxuICBhcHAuc2V0KCdlbnYnLCBwcm9jZXNzLmVudi5OT0RFX0VOViB8fCAncHJvZHVjdGlvbicpO1xuICBhcHAudXNlKGNvcnMoKSk7XG5cbiAgLy8gUm91dGVyIHNldHVwXG4gIGFwcC51c2UobG9nKGNvbmZpZykpO1xuICBhcHAudXNlKGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSk7XG4gIGlmIChjb25maWcudXNlcl9hZ2VudCkge1xuICAgIGFwcC51c2UoZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCBnZXRVc2VyQWdlbnQoY29uZmlnLnVzZXJfYWdlbnQpKTtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIH1cblxuICBhcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuXG4gIGFwcC5nZXQoJy8tL3N0YXRpYy9mYXZpY29uLmljbycsIHNlcnZlRmF2aWNvbihjb25maWcpKTtcblxuICAvLyBIb29rIGZvciB0ZXN0cyBvbmx5XG4gIGlmIChjb25maWcuX2RlYnVnKSB7XG4gICAgaG9va0RlYnVnKGFwcCwgY29uZmlnLnNlbGZfcGF0aCk7XG4gIH1cblxuICAvLyByZWdpc3RlciBtaWRkbGV3YXJlIHBsdWdpbnNcbiAgY29uc3QgcGx1Z2luX3BhcmFtcyA9IHtcbiAgICBjb25maWc6IGNvbmZpZyxcbiAgICBsb2dnZXI6IGxvZ2dlcixcbiAgfTtcblxuICBjb25zdCBwbHVnaW5zOiBJUGx1Z2luTWlkZGxld2FyZTxJQ29uZmlnPltdID0gbG9hZFBsdWdpbihjb25maWcsIGNvbmZpZy5taWRkbGV3YXJlcywgcGx1Z2luX3BhcmFtcywgZnVuY3Rpb24gKHBsdWdpbjogSVBsdWdpbk1pZGRsZXdhcmU8SUNvbmZpZz4pIHtcbiAgICByZXR1cm4gcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzO1xuICB9KTtcbiAgcGx1Z2lucy5mb3JFYWNoKChwbHVnaW46IElQbHVnaW5NaWRkbGV3YXJlPElDb25maWc+KSA9PiB7XG4gICAgcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzKGFwcCwgYXV0aCwgc3RvcmFnZSk7XG4gIH0pO1xuXG4gIC8vIEZvciAgbnBtIHJlcXVlc3RcbiAgYXBwLnVzZShhcGlFbmRwb2ludChjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcblxuICAvLyBGb3IgV2ViVUkgJiBXZWJVSSBBUElcbiAgaWYgKF8uZ2V0KGNvbmZpZywgJ3dlYi5lbmFibGUnLCB0cnVlKSkge1xuICAgIGFwcC51c2UoJy8nLCB3ZWIoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSk7XG4gICAgYXBwLnVzZSgnLy0vdmVyZGFjY2lvLycsIHdlYkFQSShjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcbiAgfSBlbHNlIHtcbiAgICBhcHAuZ2V0KCcvJywgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgICBuZXh0KEVycm9yQ29kZS5nZXROb3RGb3VuZChBUElfRVJST1IuV0VCX0RJU0FCTEVEKSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBDYXRjaCA0MDRcbiAgYXBwLmdldCgnLyonLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBuZXh0KEVycm9yQ29kZS5nZXROb3RGb3VuZChBUElfRVJST1IuRklMRV9OT1RfRk9VTkQpKTtcbiAgfSk7XG5cbiAgYXBwLnVzZShmdW5jdGlvbiAoZXJyOiBIdHRwRXJyb3IsIHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgaWYgKF8uaXNFcnJvcihlcnIpKSB7XG4gICAgICBpZiAoZXJyLmNvZGUgPT09ICdFQ09OTkFCT1JUJyAmJiByZXMuc3RhdHVzQ29kZSA9PT0gSFRUUF9TVEFUVVMuTk9UX01PRElGSUVEKSB7XG4gICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICB9XG4gICAgICBpZiAoXy5pc0Z1bmN0aW9uKHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gaW4gY2FzZSBvZiB2ZXJ5IGVhcmx5IGVycm9yIHRoaXMgbWlkZGxld2FyZSBtYXkgbm90IGJlIGxvYWRlZCBiZWZvcmUgZXJyb3IgaXMgZ2VuZXJhdGVkXG4gICAgICAgIC8vIGZpeGluZyB0aGF0XG4gICAgICAgIGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZShyZXEsIHJlcywgXy5ub29wKTtcbiAgICAgIH1cbiAgICAgIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKGVycik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGwgdG8gTWlkZGxld2FyZS5maW5hbFxuICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIGFwcC51c2UoZmluYWwpO1xuXG4gIHJldHVybiBhcHA7XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoYXN5bmMgZnVuY3Rpb24gKGNvbmZpZ0hhc2g6IGFueSk6IFByb21pc2U8YW55PiB7XG4gIHNldHVwKGNvbmZpZ0hhc2gubG9ncyk7XG4gIGNvbnN0IGNvbmZpZzogSUNvbmZpZyA9IG5ldyBBcHBDb25maWcoXy5jbG9uZURlZXAoY29uZmlnSGFzaCkpO1xuICAvLyByZWdpc3RlciBtaWRkbGV3YXJlIHBsdWdpbnNcbiAgY29uc3QgcGx1Z2luX3BhcmFtcyA9IHtcbiAgICBjb25maWc6IGNvbmZpZyxcbiAgICBsb2dnZXI6IGxvZ2dlcixcbiAgfTtcbiAgY29uc3QgZmlsdGVycyA9IGxvYWRQbHVnaW4oY29uZmlnLCBjb25maWcuZmlsdGVycyB8fCB7fSwgcGx1Z2luX3BhcmFtcywgKHBsdWdpbjogSVBsdWdpblN0b3JhZ2VGaWx0ZXI8SUNvbmZpZz4pID0+IHBsdWdpbi5maWx0ZXJfbWV0YWRhdGEpO1xuICBjb25zdCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIgPSBuZXcgU3RvcmFnZShjb25maWcpO1xuICAvLyB3YWl0cyB1bnRpbCBpbml0IGNhbGxzIGhhdmUgYmVlbiBpbml0aWFsaXplZFxuICBhd2FpdCBzdG9yYWdlLmluaXQoY29uZmlnLCBmaWx0ZXJzKTtcbiAgcmV0dXJuIGRlZmluZUFQSShjb25maWcsIHN0b3JhZ2UpO1xufSk7XG4iXX0=
|
package/build/api/middleware.js
CHANGED
|
@@ -18,24 +18,24 @@ exports.setSecurityWebHeaders = setSecurityWebHeaders;
|
|
|
18
18
|
exports.validateName = validateName;
|
|
19
19
|
exports.validatePackage = validatePackage;
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
24
24
|
|
|
25
25
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _path = _interopRequireDefault(require("path"));
|
|
28
28
|
|
|
29
29
|
var _validator = _interopRequireDefault(require("validator"));
|
|
30
30
|
|
|
31
|
-
var _utils = require("../lib/utils");
|
|
32
|
-
|
|
33
31
|
var _constants = require("../lib/constants");
|
|
34
32
|
|
|
35
33
|
var _cryptoUtils = require("../lib/crypto-utils");
|
|
36
34
|
|
|
37
35
|
var _logger = require("../lib/logger");
|
|
38
36
|
|
|
37
|
+
var _utils = require("../lib/utils");
|
|
38
|
+
|
|
39
39
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
40
40
|
|
|
41
41
|
const debug = (0, _debug.default)('verdaccio');
|
|
@@ -424,4 +424,4 @@ function errorReportingMiddleware(req, res, next) {
|
|
|
424
424
|
|
|
425
425
|
next();
|
|
426
426
|
}
|
|
427
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIm1hdGNoIiwicmVnZXhwIiwicmVxIiwicmVzIiwibmV4dCIsInZhbHVlIiwiZXhlYyIsInNlcnZlRmF2aWNvbiIsImNvbmZpZyIsImxvZ29Db25mIiwid2ViIiwiZmF2aWNvbiIsInN0YXR1cyIsIl8iLCJpc0VtcHR5IiwidmFsaWRhdG9yIiwiaXNVUkwiLCJyZXF1aXJlX2hvc3QiLCJyZXF1aXJlX3ZhbGlkX3Byb3RvY29sIiwicmVkaXJlY3QiLCJmYXZpY29uUGF0aCIsInBhdGgiLCJub3JtYWxpemUiLCJmcyIsImFjY2VzcyIsImNvbnN0YW50cyIsIlJfT0siLCJlcnIiLCJtZXNzYWdlIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJlbmQiLCJzZXRIZWFkZXIiLCJjcmVhdGVSZWFkU3RyZWFtIiwicGlwZSIsInBvc2l4Iiwiam9pbiIsIl9fZGlybmFtZSIsInNldFNlY3VyaXR5V2ViSGVhZGVycyIsImhlYWRlciIsIkhFQURFUlMiLCJGUkFNRVNfT1BUSU9OUyIsIkNTUCIsIkNUTyIsIlhTUyIsInZhbGlkYXRlTmFtZSIsIm5hbWUiLCJFcnJvckNvZGUiLCJnZXRGb3JiaWRkZW4iLCJ2YWxpZGF0ZVBhY2thZ2UiLCJtZWRpYSIsImV4cGVjdCIsImhlYWRlcnMiLCJIRUFERVJfVFlQRSIsIkNPTlRFTlRfVFlQRSIsImdldENvZGUiLCJVTlNVUFBPUlRFRF9NRURJQSIsImdldCIsImVuY29kZVNjb3BlUGFja2FnZSIsInVybCIsImluZGV4T2YiLCJyZXBsYWNlIiwiZXhwZWN0SnNvbiIsImJvZHkiLCJnZXRCYWRSZXF1ZXN0IiwiYW50aUxvb3AiLCJ2aWEiLCJhcnIiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJtIiwic2VydmVyX2lkIiwiTE9PUF9ERVRFQ1RFRCIsImFsbG93IiwiYXV0aCIsImFjdGlvbiIsInBhdXNlIiwicGFja2FnZU5hbWUiLCJwYXJhbXMiLCJzY29wZSIsInBhY2thZ2UiLCJwYWNrYWdlVmVyc2lvbiIsInVuZGVmaW5lZCIsImZpbGVuYW1lIiwidmVyc2lvbnMiLCJPYmplY3QiLCJrZXlzIiwicmVtb3RlIiwicmVtb3RlX3VzZXIiLCJlcnJvciIsImFsbG93ZWQiLCJyZXN1bWUiLCJnZXRJbnRlcm5hbEVycm9yIiwiQVBJX0VSUk9SIiwiUExVR0lOX0VSUk9SIiwiZmluYWwiLCJzdGF0dXNDb2RlIiwiVU5BVVRIT1JJWkVEIiwiZ2V0SGVhZGVyIiwiV1dXX0FVVEgiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsImlzU3RyaW5nIiwiaXNPYmplY3QiLCJKU09OIiwiaXNOaWwiLCJsb2NhbHMiLCJfdmVyZGFjY2lvX2Vycm9yIiwic3RyaW5naWZ5IiwiT0siLCJNVUxUSVBMRV9DSE9JQ0VTIiwiRVRBRyIsInNvY2tldCIsImRlc3Ryb3kiLCJzZW5kIiwiTE9HX1NUQVRVU19NRVNTQUdFIiwiTE9HX1ZFUkRBQ0NJT19FUlJPUiIsIkxPR19WRVJEQUNDSU9fQllURVMiLCJsb2ciLCJfYXV0aCIsImF1dGhvcml6YXRpb24iLCJfY29va2llIiwiY29va2llIiwib3JpZ2luYWxVcmwiLCJsb2dnZXIiLCJodHRwIiwiaXAiLCJieXRlc2luIiwiZXhwZXJpbWVudHMiLCJieXRlc2luX29mZiIsIm9uIiwiY2h1bmsiLCJieXRlc291dCIsIl93cml0ZSIsIndyaXRlIiwiYnVmIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJsb2dIYXNCZWVuQ2FsbGVkIiwiZm9yd2FyZGVkRm9yIiwicmVtb3RlQWRkcmVzcyIsImNvbm5lY3Rpb24iLCJyZW1vdGVJUCIsInJlcXVlc3QiLCJtZXRob2QiLCJ1c2VyIiwiYnl0ZXMiLCJpbiIsIm91dCIsIl9lbmQiLCJlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUiLCJyZXBvcnRfZXJyb3IiLCJCQURfUkVRVUVTVCIsImhlYWRlcnNTZW50IiwiVU5LTk9XTl9FUlJPUiIsIklOVEVSTkFMX0VSUk9SIiwiSU5URVJOQUxfU0VSVkVS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QUcsQ0FBQytHLE9BQUo7QUFDRCxPQUhELE1BR08sSUFBSSxDQUFDL0csR0FBRyxDQUFDdUosV0FBVCxFQUFzQjtBQUMzQnZKLFFBQUFBLEdBQUcsQ0FBQ1MsTUFBSixDQUFXaUIsdUJBQVkrSCxjQUF2QjtBQUNBeEosUUFBQUEsSUFBSSxDQUFDO0FBQUVzRixVQUFBQSxLQUFLLEVBQUVJLHFCQUFVK0Q7QUFBbkIsU0FBRCxDQUFKO0FBQ0QsT0FITSxNQUdBLENBQ0w7QUFDRDtBQUNGO0FBQ0YsR0FwQkg7O0FBc0JBekosRUFBQUEsSUFBSTtBQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB2YWxpZGF0b3IgZnJvbSAndmFsaWRhdG9yJztcblxuaW1wb3J0IHsgQ29uZmlnLCBQYWNrYWdlLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBWZXJkYWNjaW9FcnJvciB9IGZyb20gJ0B2ZXJkYWNjaW8vY29tbW9ucy1hcGknO1xuaW1wb3J0IHsgdmFsaWRhdGVOYW1lIGFzIHV0aWxWYWxpZGF0ZU5hbWUsIHZhbGlkYXRlUGFja2FnZSBhcyB1dGlsVmFsaWRhdGVQYWNrYWdlLCBnZXRWZXJzaW9uRnJvbVRhcmJhbGwsIGlzT2JqZWN0LCBFcnJvckNvZGUgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBIRUFERVJfVFlQRSwgSEVBREVSUywgSFRUUF9TVEFUVVMsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIgfSBmcm9tICcuLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IHN0cmluZ1RvTUQ1IH0gZnJvbSAnLi4vbGliL2NyeXB0by11dGlscyc7XG5pbXBvcnQgeyAkUmVzcG9uc2VFeHRlbmQsICRSZXF1ZXN0RXh0ZW5kLCAkTmV4dEZ1bmN0aW9uVmVyLCBJQXV0aCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xpYi9sb2dnZXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbycpO1xuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2gocmVnZXhwOiBSZWdFeHApOiBhbnkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHJlZ2V4cC5leGVjKHZhbHVlKSkge1xuICAgICAgbmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0KCdyb3V0ZScpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlRmF2aWNvbihjb25maWc6IENvbmZpZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGxvZ29Db25mOiBzdHJpbmcgPSBjb25maWc/LndlYj8uZmF2aWNvbiBhcyBzdHJpbmc7XG4gICAgICBpZiAobG9nb0NvbmYgPT09ICcnKSB7XG4gICAgICAgIGRlYnVnKCdmYXZpY29uIGRpc2FibGVkJyk7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICAgIH0gZWxzZSBpZiAoIV8uaXNFbXB0eShsb2dvQ29uZikpIHtcbiAgICAgICAgZGVidWcoJ2N1c3RvbSBmYXZpY29uJyk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2YWxpZGF0b3IuaXNVUkwobG9nb0NvbmYsIHtcbiAgICAgICAgICAgIHJlcXVpcmVfaG9zdDogdHJ1ZSxcbiAgICAgICAgICAgIHJlcXVpcmVfdmFsaWRfcHJvdG9jb2w6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgZGVidWcoJ3JlZGlyZWN0IHRvICVvJywgbG9nb0NvbmYpO1xuICAgICAgICAgIHJlcy5yZWRpcmVjdChsb2dvQ29uZik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZhdmljb25QYXRoID0gcGF0aC5ub3JtYWxpemUobG9nb0NvbmYpO1xuICAgICAgICAgIGRlYnVnKCdzZXJ2aW5nIGZhdmljb24gZnJvbSAlbycsIGZhdmljb25QYXRoKTtcbiAgICAgICAgICBmcy5hY2Nlc3MoZmF2aWNvblBhdGgsIGZzLmNvbnN0YW50cy5SX09LLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIGRlYnVnKCdubyByZWFkIHBlcm1pc3Npb25zIHRvIHJlYWQ6ICVvLCByZWFzb246JywgbG9nb0NvbmYsIGVycj8ubWVzc2FnZSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLk5PVF9GT1VORCkuZW5kKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCAnaW1hZ2UveC1pY29uJyk7XG4gICAgICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oZmF2aWNvblBhdGgpLnBpcGUocmVzKTtcbiAgICAgICAgICAgICAgZGVidWcoJ3JlbmRlcmVkIGN1c3RvbSBpY28nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignY29udGVudC10eXBlJywgJ2ltYWdlL3gtaWNvbicpO1xuICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKHBhdGgucG9zaXguam9pbihfX2Rpcm5hbWUsICcuL3dlYi9odG1sL2Zhdmljb24uaWNvJykpLnBpcGUocmVzKTtcbiAgICAgICAgZGVidWcoJ3JlbmRlcmVkIGljbycpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVidWcoJ2Vycm9yIHRyaWdnZXJlZCwgZmF2aWNvbiBub3QgZm91bmQnKTtcbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKS5lbmQoKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWN1cml0eVdlYkhlYWRlcnMocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgLy8gZGlzYWJsZSBsb2FkaW5nIGluIGZyYW1lcyAoY2xpY2tqYWNraW5nLCBldGMuKVxuICByZXMuaGVhZGVyKEhFQURFUlMuRlJBTUVTX09QVElPTlMsICdkZW55Jyk7XG4gIC8vIGF2b2lkIHN0YWJsaXNoIGNvbm5lY3Rpb25zIG91dHNpZGUgb2YgZG9tYWluXG4gIHJlcy5oZWFkZXIoSEVBREVSUy5DU1AsIFwiY29ubmVjdC1zcmMgJ3NlbGYnXCIpO1xuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xODMzNzYzMC93aGF0LWlzLXgtY29udGVudC10eXBlLW9wdGlvbnMtbm9zbmlmZlxuICByZXMuaGVhZGVyKEhFQURFUlMuQ1RPLCAnbm9zbmlmZicpO1xuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy85MDkwNTc3L3doYXQtaXMtdGhlLWh0dHAtaGVhZGVyLXgteHNzLXByb3RlY3Rpb25cbiAgcmVzLmhlYWRlcihIRUFERVJTLlhTUywgJzE7IG1vZGU9YmxvY2snKTtcbiAgbmV4dCgpO1xufVxuXG4vLyBmbG93OiBleHByZXNzIGRvZXMgbm90IG1hdGNoIHByb3Blcmx5XG4vLyBmbG93IGluZm8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb3d0eXBlL2Zsb3ctdHlwZWQvaXNzdWVzP3V0Zjg9JUUyJTlDJTkzJnE9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rZXhwcmVzc1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTmFtZShyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlciwgdmFsdWU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gJy0nKSB7XG4gICAgLy8gc3BlY2lhbCBjYXNlIGluIGNvdWNoZGIgdXN1YWxseVxuICAgIG5leHQoJ3JvdXRlJyk7XG4gIH0gZWxzZSBpZiAodXRpbFZhbGlkYXRlTmFtZSh2YWx1ZSkpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKCdpbnZhbGlkICcgKyBuYW1lKSk7XG4gIH1cbn1cblxuLy8gZmxvdzogZXhwcmVzcyBkb2VzIG5vdCBtYXRjaCBwcm9wZXJseVxuLy8gZmxvdyBpbmZvIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG93dHlwZS9mbG93LXR5cGVkL2lzc3Vlcz91dGY4PSVFMiU5QyU5MyZxPWlzJTNBaXNzdWUraXMlM0FvcGVuK2V4cHJlc3NcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhY2thZ2UocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIsIHZhbHVlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAodmFsdWUgPT09ICctJykge1xuICAgIC8vIHNwZWNpYWwgY2FzZSBpbiBjb3VjaGRiIHVzdWFsbHlcbiAgICBuZXh0KCdyb3V0ZScpO1xuICB9IGVsc2UgaWYgKHV0aWxWYWxpZGF0ZVBhY2thZ2UodmFsdWUpKSB7XG4gICAgbmV4dCgpO1xuICB9IGVsc2Uge1xuICAgIG5leHQoRXJyb3JDb2RlLmdldEZvcmJpZGRlbignaW52YWxpZCAnICsgbmFtZSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZWRpYShleHBlY3Q6IHN0cmluZyB8IG51bGwpOiBhbnkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgaWYgKHJlcS5oZWFkZXJzW0hFQURFUl9UWVBFLkNPTlRFTlRfVFlQRV0gIT09IGV4cGVjdCkge1xuICAgICAgbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5VTlNVUFBPUlRFRF9NRURJQSwgJ3dyb25nIGNvbnRlbnQtdHlwZSwgZXhwZWN0OiAnICsgZXhwZWN0ICsgJywgZ290OiAnICsgcmVxLmdldChIRUFERVJfVFlQRS5DT05URU5UX1RZUEUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTY29wZVBhY2thZ2UocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgaWYgKHJlcS51cmwuaW5kZXhPZignQCcpICE9PSAtMSkge1xuICAgIC8vIGUuZy46IC9Ab3JnL3BrZy8xLjIuMyAtPiAvQG9yZyUyRnBrZy8xLjIuMywgL0BvcmclMkZwa2cvMS4yLjMgLT4gL0BvcmclMkZwa2cvMS4yLjNcbiAgICByZXEudXJsID0gcmVxLnVybC5yZXBsYWNlKC9eKFxcL0BbXlxcLyVdKylcXC8oPyEkKS8sICckMSUyRicpO1xuICB9XG4gIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdEpzb24ocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgaWYgKCFpc09iamVjdChyZXEuYm9keSkpIHtcbiAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0QmFkUmVxdWVzdChcImNhbid0IHBhcnNlIGluY29taW5nIGpzb25cIikpO1xuICB9XG4gIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFudGlMb29wKGNvbmZpZzogQ29uZmlnKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgaWYgKHJlcT8uaGVhZGVycz8udmlhICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGFyciA9IHJlcS5oZWFkZXJzLnZpYS5zcGxpdCgnLCcpO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBtID0gYXJyW2ldLm1hdGNoKC9cXHMqKFxcUyspXFxzKyhcXFMrKS8pO1xuICAgICAgICBpZiAobSAmJiBtWzJdID09PSBjb25maWcuc2VydmVyX2lkKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuTE9PUF9ERVRFQ1RFRCwgJ2xvb3AgZGV0ZWN0ZWQnKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgbmV4dCgpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3coYXV0aDogSUF1dGgpOiBGdW5jdGlvbiB7XG4gIHJldHVybiBmdW5jdGlvbiAoYWN0aW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVxLnBhdXNlKCk7XG4gICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMuc2NvcGUgPyBgQCR7cmVxLnBhcmFtcy5zY29wZX0vJHtyZXEucGFyYW1zLnBhY2thZ2V9YCA6IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICAgIGxldCBwYWNrYWdlVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKHJlcS5wYXJhbXMuZmlsZW5hbWUpIHtcbiAgICAgICAgcGFja2FnZVZlcnNpb24gPSBnZXRWZXJzaW9uRnJvbVRhcmJhbGwocmVxLnBhcmFtcy5maWxlbmFtZSkgfHwgdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVxLmJvZHkudmVyc2lvbnMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHBhY2thZ2VWZXJzaW9uID0gT2JqZWN0LmtleXMocmVxLmJvZHkudmVyc2lvbnMpWzBdO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVtb3RlOiBSZW1vdGVVc2VyID0gcmVxLnJlbW90ZV91c2VyO1xuICAgICAgZGVidWcoJ1ttaWRkbGV3YXJlL2FsbG93XVslb10gYWxsb3cgZm9yICVvJywgYWN0aW9uLCByZW1vdGU/Lm5hbWUpO1xuICAgICAgYXV0aFsnYWxsb3dfJyArIGFjdGlvbl0oeyBwYWNrYWdlTmFtZSwgcGFja2FnZVZlcnNpb24gfSwgcmVtb3RlLCBmdW5jdGlvbiAoZXJyb3IsIGFsbG93ZWQpOiB2b2lkIHtcbiAgICAgICAgcmVxLnJlc3VtZSgpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICBuZXh0KGVycm9yKTtcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd2VkKSB7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGxhc3QgcGx1Z2luICh0aGF0J3Mgb3VyIGJ1aWx0LWluIG9uZSkgcmV0dXJucyBlaXRoZXJcbiAgICAgICAgICAvLyBjYihlcnIpIG9yIGNiKG51bGwsIHRydWUpLCBzbyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW5cbiAgICAgICAgICB0aHJvdyBFcnJvckNvZGUuZ2V0SW50ZXJuYWxFcnJvcihBUElfRVJST1IuUExVR0lOX0VSUk9SKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlRXJyb3Ige1xuICBlcnJvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBGaW5hbEJvZHkgPSBQYWNrYWdlIHwgTWlkZGxld2FyZUVycm9yIHwgc3RyaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluYWwoYm9keTogRmluYWxCb2R5LCByZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICBpZiAocmVzLnN0YXR1c0NvZGUgPT09IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCAmJiAhcmVzLmdldEhlYWRlcihIRUFERVJTLldXV19BVVRIKSkge1xuICAgIC8vIHRoZXkgc2F5IGl0J3MgcmVxdWlyZWQgZm9yIDQwMSwgc28uLi5cbiAgICByZXMuaGVhZGVyKEhFQURFUlMuV1dXX0FVVEgsIGAke1RPS0VOX0JBU0lDfSwgJHtUT0tFTl9CRUFSRVJ9YCk7XG4gIH1cblxuICB0cnkge1xuICAgIGlmIChfLmlzU3RyaW5nKGJvZHkpIHx8IF8uaXNPYmplY3QoYm9keSkpIHtcbiAgICAgIGlmICghcmVzLmdldEhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSkpIHtcbiAgICAgICAgcmVzLmhlYWRlcihIRUFERVJTLkNPTlRFTlRfVFlQRSwgSEVBREVSUy5KU09OKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0JyAmJiBfLmlzTmlsKGJvZHkpID09PSBmYWxzZSkge1xuICAgICAgICBpZiAodHlwZW9mIChib2R5IGFzIE1pZGRsZXdhcmVFcnJvcikuZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzLmxvY2Fscy5fdmVyZGFjY2lvX2Vycm9yID0gKGJvZHkgYXMgTWlkZGxld2FyZUVycm9yKS5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSwgdW5kZWZpbmVkLCAnICAnKSArICdcXG4nO1xuICAgICAgfVxuXG4gICAgICAvLyBkb24ndCBzZW5kIGV0YWdzIHdpdGggZXJyb3JzXG4gICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IChyZXMuc3RhdHVzQ29kZSA+PSBIVFRQX1NUQVRVUy5PSyAmJiByZXMuc3RhdHVzQ29kZSA8IEhUVFBfU1RBVFVTLk1VTFRJUExFX0NIT0lDRVMpKSB7XG4gICAgICAgIHJlcy5oZWFkZXIoSEVBREVSUy5FVEFHLCAnXCInICsgc3RyaW5nVG9NRDUoYm9keSBhcyBzdHJpbmcpICsgJ1wiJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNlbmQobnVsbCksIHNlbmQoMjA0KSwgZXRjLlxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gaWYgdmVyZGFjY2lvIHNlbmRzIGhlYWRlcnMgZmlyc3QsIGFuZCB0aGVuIGNhbGxzIHJlcy5zZW5kKClcbiAgICAvLyBhcyBhbiBlcnJvciBoYW5kbGVyLCB3ZSBjYW4ndCByZXBvcnQgZXJyb3IgcHJvcGVybHksXG4gICAgLy8gYW5kIHNob3VsZCBqdXN0IGNsb3NlIHNvY2tldFxuICAgIGlmIChlcnIubWVzc2FnZS5tYXRjaCgvc2V0IGhlYWRlcnMgYWZ0ZXIgdGhleSBhcmUgc2VudC8pKSB7XG4gICAgICBpZiAoXy5pc05pbChyZXMuc29ja2V0KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXMuc29ja2V0LmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG5cbiAgcmVzLnNlbmQoYm9keSk7XG59XG5cbmV4cG9ydCBjb25zdCBMT0dfU1RBVFVTX01FU1NBR0UgPSBcIkB7c3RhdHVzfSwgdXNlcjogQHt1c2VyfShAe3JlbW90ZUlQfSksIHJlcTogJ0B7cmVxdWVzdC5tZXRob2R9IEB7cmVxdWVzdC51cmx9J1wiO1xuZXhwb3J0IGNvbnN0IExPR19WRVJEQUNDSU9fRVJST1IgPSBgJHtMT0dfU1RBVFVTX01FU1NBR0V9LCBlcnJvcjogQHshZXJyb3J9YDtcbmV4cG9ydCBjb25zdCBMT0dfVkVSREFDQ0lPX0JZVEVTID0gYCR7TE9HX1NUQVRVU19NRVNTQUdFfSwgYnl0ZXM6IEB7Ynl0ZXMuaW59L0B7Ynl0ZXMub3V0fWA7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2coY29uZmlnOiBDb25maWcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IF9hdXRoID0gcmVxLmhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgICBpZiAoXy5pc05pbChfYXV0aCkgPT09IGZhbHNlKSB7XG4gICAgICByZXEuaGVhZGVycy5hdXRob3JpemF0aW9uID0gJzxDbGFzc2lmaWVkPic7XG4gICAgfVxuXG4gICAgY29uc3QgX2Nvb2tpZSA9IHJlcS5nZXQoJ2Nvb2tpZScpO1xuICAgIGlmIChfLmlzTmlsKF9jb29raWUpID09PSBmYWxzZSkge1xuICAgICAgcmVxLmhlYWRlcnMuY29va2llID0gJzxDbGFzc2lmaWVkPic7XG4gICAgfVxuXG4gICAgcmVxLnVybCA9IHJlcS5vcmlnaW5hbFVybDtcbiAgICAvLyBhdm9pZCBsb2cgbm9pc2UgZGF0YSBmcm9tIHN0YXRpYyBjb250ZW50XG4gICAgaWYgKHJlcS5vcmlnaW5hbFVybC5tYXRjaCgvc3RhdGljLykgPT09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5odHRwKHsgcmVxOiByZXEsIGlwOiByZXEuaXAgfSwgXCJAe2lwfSByZXF1ZXN0ZWQgJ0B7cmVxLm1ldGhvZH0gQHtyZXEudXJsfSdcIik7XG4gICAgfVxuICAgIHJlcS5vcmlnaW5hbFVybCA9IHJlcS51cmw7XG5cbiAgICBpZiAoXy5pc05pbChfYXV0aCkgPT09IGZhbHNlKSB7XG4gICAgICByZXEuaGVhZGVycy5hdXRob3JpemF0aW9uID0gX2F1dGg7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNOaWwoX2Nvb2tpZSkgPT09IGZhbHNlKSB7XG4gICAgICByZXEuaGVhZGVycy5jb29raWUgPSBfY29va2llO1xuICAgIH1cblxuICAgIGxldCBieXRlc2luID0gMDtcbiAgICBpZiAoY29uZmlnPy5leHBlcmltZW50cz8uYnl0ZXNpbl9vZmYgIT09IHRydWUpIHtcbiAgICAgIHJlcS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuayk6IHZvaWQge1xuICAgICAgICBieXRlc2luICs9IGNodW5rLmxlbmd0aDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBieXRlc291dCA9IDA7XG4gICAgY29uc3QgX3dyaXRlID0gcmVzLndyaXRlO1xuICAgIC8vIEZJWE1FOiByZXMud3JpdGUgc2hvdWxkIHJldHVybiBib29sZWFuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJlcy53cml0ZSA9IGZ1bmN0aW9uIChidWYpOiBib29sZWFuIHtcbiAgICAgIGJ5dGVzb3V0ICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAvKiBlc2xpbnQgcHJlZmVyLXJlc3QtcGFyYW1zOiBcIm9mZlwiICovXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBfd3JpdGUuYXBwbHkocmVzLCBhcmd1bWVudHMpO1xuICAgIH07XG5cbiAgICBsZXQgbG9nSGFzQmVlbkNhbGxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGxvZyA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcbiAgICAgIGlmIChsb2dIYXNCZWVuQ2FsbGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxvZ0hhc0JlZW5DYWxsZWQgPSB0cnVlO1xuXG4gICAgICBjb25zdCBmb3J3YXJkZWRGb3IgPSByZXEuZ2V0KCd4LWZvcndhcmRlZC1mb3InKTtcbiAgICAgIGNvbnN0IHJlbW90ZUFkZHJlc3MgPSByZXEuY29ubmVjdGlvbi5yZW1vdGVBZGRyZXNzO1xuICAgICAgY29uc3QgcmVtb3RlSVAgPSBmb3J3YXJkZWRGb3IgPyBgJHtmb3J3YXJkZWRGb3J9IHZpYSAke3JlbW90ZUFkZHJlc3N9YCA6IHJlbW90ZUFkZHJlc3M7XG4gICAgICBsZXQgbWVzc2FnZTtcbiAgICAgIGlmIChyZXMubG9jYWxzLl92ZXJkYWNjaW9fZXJyb3IpIHtcbiAgICAgICAgbWVzc2FnZSA9IExPR19WRVJEQUNDSU9fRVJST1I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gTE9HX1ZFUkRBQ0NJT19CWVRFUztcbiAgICAgIH1cblxuICAgICAgcmVxLnVybCA9IHJlcS5vcmlnaW5hbFVybDtcbiAgICAgIC8vIGF2b2lkIGxvZyBub2lzZSBkYXRhIGZyb20gc3RhdGljIGNvbnRlbnRcbiAgICAgIGlmIChyZXEudXJsLm1hdGNoKC9zdGF0aWMvKSA9PT0gbnVsbCkge1xuICAgICAgICBsb2dnZXIuaHR0cChcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgICAgICAgdXJsOiByZXEudXJsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXI6IChyZXEucmVtb3RlX3VzZXIgJiYgcmVxLnJlbW90ZV91c2VyLm5hbWUpIHx8IG51bGwsXG4gICAgICAgICAgICByZW1vdGVJUCxcbiAgICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICBlcnJvcjogcmVzLmxvY2Fscy5fdmVyZGFjY2lvX2Vycm9yLFxuICAgICAgICAgICAgYnl0ZXM6IHtcbiAgICAgICAgICAgICAgaW46IGJ5dGVzaW4sXG4gICAgICAgICAgICAgIG91dDogYnl0ZXNvdXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVzc2FnZVxuICAgICAgICApO1xuICAgICAgICByZXEub3JpZ2luYWxVcmwgPSByZXEudXJsO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXEub24oJ2Nsb3NlJywgZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgbG9nKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBfZW5kID0gcmVzLmVuZDtcbiAgICByZXMuZW5kID0gZnVuY3Rpb24gKGJ1Zik6IHZvaWQge1xuICAgICAgaWYgKGJ1Zikge1xuICAgICAgICBieXRlc291dCArPSBidWYubGVuZ3RoO1xuICAgICAgfVxuICAgICAgLyogZXNsaW50IHByZWZlci1yZXN0LXBhcmFtczogXCJvZmZcIiAqL1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgX2VuZC5hcHBseShyZXMsIGFyZ3VtZW50cyk7XG4gICAgICBsb2coKTtcbiAgICB9O1xuICAgIG5leHQoKTtcbiAgfTtcbn1cblxuLy8gTWlkZGxld2FyZVxuZXhwb3J0IGZ1bmN0aW9uIGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZShyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICByZXMubG9jYWxzLnJlcG9ydF9lcnJvciA9XG4gICAgcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IgfHxcbiAgICBmdW5jdGlvbiAoZXJyOiBWZXJkYWNjaW9FcnJvcik6IHZvaWQge1xuICAgICAgaWYgKGVyci5zdGF0dXMgJiYgZXJyLnN0YXR1cyA+PSBIVFRQX1NUQVRVUy5CQURfUkVRVUVTVCAmJiBlcnIuc3RhdHVzIDwgNjAwKSB7XG4gICAgICAgIGlmICghcmVzLmhlYWRlcnNTZW50KSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyhlcnIuc3RhdHVzKTtcbiAgICAgICAgICBuZXh0KHsgZXJyb3I6IGVyci5tZXNzYWdlIHx8IEFQSV9FUlJPUi5VTktOT1dOX0VSUk9SIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnI6IGVyciB9LCAndW5leHBlY3RlZCBlcnJvcjogQHshZXJyLm1lc3NhZ2V9XFxuQHtlcnIuc3RhY2t9Jyk7XG4gICAgICAgIGlmICghcmVzLnN0YXR1cyB8fCAhcmVzLnNlbmQpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ3RoaXMgaXMgYW4gZXJyb3IgaW4gZXhwcmVzcy5qcywgcGxlYXNlIHJlcG9ydCB0aGlzJyk7XG4gICAgICAgICAgcmVzLmRlc3Ryb3koKTtcbiAgICAgICAgfSBlbHNlIGlmICghcmVzLmhlYWRlcnNTZW50KSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUik7XG4gICAgICAgICAgbmV4dCh7IGVycm9yOiBBUElfRVJST1IuSU5URVJOQUxfU0VSVkVSX0VSUk9SIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHNvY2tldCBzaG91bGQgYmUgYWxyZWFkeSBjbG9zZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgbmV4dCgpO1xufVxuIl19
|
|
427
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIm1hdGNoIiwicmVnZXhwIiwicmVxIiwicmVzIiwibmV4dCIsInZhbHVlIiwiZXhlYyIsInNlcnZlRmF2aWNvbiIsImNvbmZpZyIsImxvZ29Db25mIiwid2ViIiwiZmF2aWNvbiIsInN0YXR1cyIsIl8iLCJpc0VtcHR5IiwidmFsaWRhdG9yIiwiaXNVUkwiLCJyZXF1aXJlX2hvc3QiLCJyZXF1aXJlX3ZhbGlkX3Byb3RvY29sIiwicmVkaXJlY3QiLCJmYXZpY29uUGF0aCIsInBhdGgiLCJub3JtYWxpemUiLCJmcyIsImFjY2VzcyIsImNvbnN0YW50cyIsIlJfT0siLCJlcnIiLCJtZXNzYWdlIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJlbmQiLCJzZXRIZWFkZXIiLCJjcmVhdGVSZWFkU3RyZWFtIiwicGlwZSIsInBvc2l4Iiwiam9pbiIsIl9fZGlybmFtZSIsInNldFNlY3VyaXR5V2ViSGVhZGVycyIsImhlYWRlciIsIkhFQURFUlMiLCJGUkFNRVNfT1BUSU9OUyIsIkNTUCIsIkNUTyIsIlhTUyIsInZhbGlkYXRlTmFtZSIsIm5hbWUiLCJFcnJvckNvZGUiLCJnZXRGb3JiaWRkZW4iLCJ2YWxpZGF0ZVBhY2thZ2UiLCJtZWRpYSIsImV4cGVjdCIsImhlYWRlcnMiLCJIRUFERVJfVFlQRSIsIkNPTlRFTlRfVFlQRSIsImdldENvZGUiLCJVTlNVUFBPUlRFRF9NRURJQSIsImdldCIsImVuY29kZVNjb3BlUGFja2FnZSIsInVybCIsImluZGV4T2YiLCJyZXBsYWNlIiwiZXhwZWN0SnNvbiIsImJvZHkiLCJnZXRCYWRSZXF1ZXN0IiwiYW50aUxvb3AiLCJ2aWEiLCJhcnIiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJtIiwic2VydmVyX2lkIiwiTE9PUF9ERVRFQ1RFRCIsImFsbG93IiwiYXV0aCIsImFjdGlvbiIsInBhdXNlIiwicGFja2FnZU5hbWUiLCJwYXJhbXMiLCJzY29wZSIsInBhY2thZ2UiLCJwYWNrYWdlVmVyc2lvbiIsInVuZGVmaW5lZCIsImZpbGVuYW1lIiwidmVyc2lvbnMiLCJPYmplY3QiLCJrZXlzIiwicmVtb3RlIiwicmVtb3RlX3VzZXIiLCJlcnJvciIsImFsbG93ZWQiLCJyZXN1bWUiLCJnZXRJbnRlcm5hbEVycm9yIiwiQVBJX0VSUk9SIiwiUExVR0lOX0VSUk9SIiwiZmluYWwiLCJzdGF0dXNDb2RlIiwiVU5BVVRIT1JJWkVEIiwiZ2V0SGVhZGVyIiwiV1dXX0FVVEgiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsImlzU3RyaW5nIiwiaXNPYmplY3QiLCJKU09OIiwiaXNOaWwiLCJsb2NhbHMiLCJfdmVyZGFjY2lvX2Vycm9yIiwic3RyaW5naWZ5IiwiT0siLCJNVUxUSVBMRV9DSE9JQ0VTIiwiRVRBRyIsInNvY2tldCIsImRlc3Ryb3kiLCJzZW5kIiwiTE9HX1NUQVRVU19NRVNTQUdFIiwiTE9HX1ZFUkRBQ0NJT19FUlJPUiIsIkxPR19WRVJEQUNDSU9fQllURVMiLCJsb2ciLCJfYXV0aCIsImF1dGhvcml6YXRpb24iLCJfY29va2llIiwiY29va2llIiwib3JpZ2luYWxVcmwiLCJsb2dnZXIiLCJodHRwIiwiaXAiLCJieXRlc2luIiwiZXhwZXJpbWVudHMiLCJieXRlc2luX29mZiIsIm9uIiwiY2h1bmsiLCJieXRlc291dCIsIl93cml0ZSIsIndyaXRlIiwiYnVmIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJsb2dIYXNCZWVuQ2FsbGVkIiwiZm9yd2FyZGVkRm9yIiwicmVtb3RlQWRkcmVzcyIsImNvbm5lY3Rpb24iLCJyZW1vdGVJUCIsInJlcXVlc3QiLCJtZXRob2QiLCJ1c2VyIiwiYnl0ZXMiLCJpbiIsIm91dCIsIl9lbmQiLCJlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUiLCJyZXBvcnRfZXJyb3IiLCJCQURfUkVRVUVTVCIsImhlYWRlcnNTZW50IiwiVU5LTk9XTl9FUlJPUiIsIklOVEVSTkFMX0VSUk9SIiwiSU5URVJOQUxfU0VSVkVS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QUcsQ0FBQytHLE9BQUo7QUFDRCxPQUhELE1BR08sSUFBSSxDQUFDL0csR0FBRyxDQUFDdUosV0FBVCxFQUFzQjtBQUMzQnZKLFFBQUFBLEdBQUcsQ0FBQ1MsTUFBSixDQUFXaUIsdUJBQVkrSCxjQUF2QjtBQUNBeEosUUFBQUEsSUFBSSxDQUFDO0FBQUVzRixVQUFBQSxLQUFLLEVBQUVJLHFCQUFVK0Q7QUFBbkIsU0FBRCxDQUFKO0FBQ0QsT0FITSxNQUdBLENBQ0w7QUFDRDtBQUNGO0FBQ0YsR0FwQkg7O0FBc0JBekosRUFBQUEsSUFBSTtBQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB2YWxpZGF0b3IgZnJvbSAndmFsaWRhdG9yJztcblxuaW1wb3J0IHsgVmVyZGFjY2lvRXJyb3IgfSBmcm9tICdAdmVyZGFjY2lvL2NvbW1vbnMtYXBpJztcbmltcG9ydCB7IENvbmZpZywgUGFja2FnZSwgUmVtb3RlVXNlciB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyAkTmV4dEZ1bmN0aW9uVmVyLCAkUmVxdWVzdEV4dGVuZCwgJFJlc3BvbnNlRXh0ZW5kLCBJQXV0aCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSEVBREVSUywgSEVBREVSX1RZUEUsIEhUVFBfU1RBVFVTLCBUT0tFTl9CQVNJQywgVE9LRU5fQkVBUkVSIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzdHJpbmdUb01ENSB9IGZyb20gJy4uL2xpYi9jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBFcnJvckNvZGUsIGdldFZlcnNpb25Gcm9tVGFyYmFsbCwgaXNPYmplY3QsIHZhbGlkYXRlTmFtZSBhcyB1dGlsVmFsaWRhdGVOYW1lLCB2YWxpZGF0ZVBhY2thZ2UgYXMgdXRpbFZhbGlkYXRlUGFja2FnZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChyZWdleHA6IFJlZ0V4cCk6IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAocmVnZXhwLmV4ZWModmFsdWUpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoJ3JvdXRlJyk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VydmVGYXZpY29uKGNvbmZpZzogQ29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICB0cnkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgbG9nb0NvbmY6IHN0cmluZyA9IGNvbmZpZz8ud2ViPy5mYXZpY29uIGFzIHN0cmluZztcbiAgICAgIGlmIChsb2dvQ29uZiA9PT0gJycpIHtcbiAgICAgICAgZGVidWcoJ2Zhdmljb24gZGlzYWJsZWQnKTtcbiAgICAgICAgcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgfSBlbHNlIGlmICghXy5pc0VtcHR5KGxvZ29Db25mKSkge1xuICAgICAgICBkZWJ1ZygnY3VzdG9tIGZhdmljb24nKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZhbGlkYXRvci5pc1VSTChsb2dvQ29uZiwge1xuICAgICAgICAgICAgcmVxdWlyZV9ob3N0OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZV92YWxpZF9wcm90b2NvbDogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICApIHtcbiAgICAgICAgICBkZWJ1ZygncmVkaXJlY3QgdG8gJW8nLCBsb2dvQ29uZik7XG4gICAgICAgICAgcmVzLnJlZGlyZWN0KGxvZ29Db25mKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmF2aWNvblBhdGggPSBwYXRoLm5vcm1hbGl6ZShsb2dvQ29uZik7XG4gICAgICAgICAgZGVidWcoJ3NlcnZpbmcgZmF2aWNvbiBmcm9tICVvJywgZmF2aWNvblBhdGgpO1xuICAgICAgICAgIGZzLmFjY2VzcyhmYXZpY29uUGF0aCwgZnMuY29uc3RhbnRzLlJfT0ssIChlcnIpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgZGVidWcoJ25vIHJlYWQgcGVybWlzc2lvbnMgdG8gcmVhZDogJW8sIHJlYXNvbjonLCBsb2dvQ29uZiwgZXJyPy5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKS5lbmQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ2NvbnRlbnQtdHlwZScsICdpbWFnZS94LWljb24nKTtcbiAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbShmYXZpY29uUGF0aCkucGlwZShyZXMpO1xuICAgICAgICAgICAgICBkZWJ1ZygncmVuZGVyZWQgY3VzdG9tIGljbycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCAnaW1hZ2UveC1pY29uJyk7XG4gICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0ocGF0aC5wb3NpeC5qb2luKF9fZGlybmFtZSwgJy4vd2ViL2h0bWwvZmF2aWNvbi5pY28nKSkucGlwZShyZXMpO1xuICAgICAgICBkZWJ1ZygncmVuZGVyZWQgaWNvJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBkZWJ1ZygnZXJyb3IgdHJpZ2dlcmVkLCBmYXZpY29uIG5vdCBmb3VuZCcpO1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5OT1RfRk9VTkQpLmVuZCgpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlY3VyaXR5V2ViSGVhZGVycyhyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAvLyBkaXNhYmxlIGxvYWRpbmcgaW4gZnJhbWVzIChjbGlja2phY2tpbmcsIGV0Yy4pXG4gIHJlcy5oZWFkZXIoSEVBREVSUy5GUkFNRVNfT1BUSU9OUywgJ2RlbnknKTtcbiAgLy8gYXZvaWQgc3RhYmxpc2ggY29ubmVjdGlvbnMgb3V0c2lkZSBvZiBkb21haW5cbiAgcmVzLmhlYWRlcihIRUFERVJTLkNTUCwgXCJjb25uZWN0LXNyYyAnc2VsZidcIik7XG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4MzM3NjMwL3doYXQtaXMteC1jb250ZW50LXR5cGUtb3B0aW9ucy1ub3NuaWZmXG4gIHJlcy5oZWFkZXIoSEVBREVSUy5DVE8sICdub3NuaWZmJyk7XG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzkwOTA1Nzcvd2hhdC1pcy10aGUtaHR0cC1oZWFkZXIteC14c3MtcHJvdGVjdGlvblxuICByZXMuaGVhZGVyKEhFQURFUlMuWFNTLCAnMTsgbW9kZT1ibG9jaycpO1xuICBuZXh0KCk7XG59XG5cbi8vIGZsb3c6IGV4cHJlc3MgZG9lcyBub3QgbWF0Y2ggcHJvcGVybHlcbi8vIGZsb3cgaW5mbyBodHRwczovL2dpdGh1Yi5jb20vZmxvd3R5cGUvZmxvdy10eXBlZC9pc3N1ZXM/dXRmOD0lRTIlOUMlOTMmcT1pcyUzQWlzc3VlK2lzJTNBb3BlbitleHByZXNzXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVOYW1lKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyLCB2YWx1ZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHZhbHVlID09PSAnLScpIHtcbiAgICAvLyBzcGVjaWFsIGNhc2UgaW4gY291Y2hkYiB1c3VhbGx5XG4gICAgbmV4dCgncm91dGUnKTtcbiAgfSBlbHNlIGlmICh1dGlsVmFsaWRhdGVOYW1lKHZhbHVlKSkge1xuICAgIG5leHQoKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0KEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oJ2ludmFsaWQgJyArIG5hbWUpKTtcbiAgfVxufVxuXG4vLyBmbG93OiBleHByZXNzIGRvZXMgbm90IG1hdGNoIHByb3Blcmx5XG4vLyBmbG93IGluZm8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb3d0eXBlL2Zsb3ctdHlwZWQvaXNzdWVzP3V0Zjg9JUUyJTlDJTkzJnE9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rZXhwcmVzc1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFja2FnZShyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlciwgdmFsdWU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gJy0nKSB7XG4gICAgLy8gc3BlY2lhbCBjYXNlIGluIGNvdWNoZGIgdXN1YWxseVxuICAgIG5leHQoJ3JvdXRlJyk7XG4gIH0gZWxzZSBpZiAodXRpbFZhbGlkYXRlUGFja2FnZSh2YWx1ZSkpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKCdpbnZhbGlkICcgKyBuYW1lKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lZGlhKGV4cGVjdDogc3RyaW5nIHwgbnVsbCk6IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBpZiAocmVxLmhlYWRlcnNbSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFXSAhPT0gZXhwZWN0KSB7XG4gICAgICBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOU1VQUE9SVEVEX01FRElBLCAnd3JvbmcgY29udGVudC10eXBlLCBleHBlY3Q6ICcgKyBleHBlY3QgKyAnLCBnb3Q6ICcgKyByZXEuZ2V0KEhFQURFUl9UWVBFLkNPTlRFTlRfVFlQRSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dCgpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVNjb3BlUGFja2FnZShyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICBpZiAocmVxLnVybC5pbmRleE9mKCdAJykgIT09IC0xKSB7XG4gICAgLy8gZS5nLjogL0BvcmcvcGtnLzEuMi4zIC0+IC9Ab3JnJTJGcGtnLzEuMi4zLCAvQG9yZyUyRnBrZy8xLjIuMyAtPiAvQG9yZyUyRnBrZy8xLjIuM1xuICAgIHJlcS51cmwgPSByZXEudXJsLnJlcGxhY2UoL14oXFwvQFteXFwvJV0rKVxcLyg/ISQpLywgJyQxJTJGJyk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwZWN0SnNvbihyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICBpZiAoIWlzT2JqZWN0KHJlcS5ib2R5KSkge1xuICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRCYWRSZXF1ZXN0KFwiY2FuJ3QgcGFyc2UgaW5jb21pbmcganNvblwiKSk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYW50aUxvb3AoY29uZmlnOiBDb25maWcpOiBGdW5jdGlvbiB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBpZiAocmVxPy5oZWFkZXJzPy52aWEgIT0gbnVsbCkge1xuICAgICAgY29uc3QgYXJyID0gcmVxLmhlYWRlcnMudmlhLnNwbGl0KCcsJyk7XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG0gPSBhcnJbaV0ubWF0Y2goL1xccyooXFxTKylcXHMrKFxcUyspLyk7XG4gICAgICAgIGlmIChtICYmIG1bMl0gPT09IGNvbmZpZy5zZXJ2ZXJfaWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5MT09QX0RFVEVDVEVELCAnbG9vcCBkZXRlY3RlZCcpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBuZXh0KCk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvdyhhdXRoOiBJQXV0aCk6IEZ1bmN0aW9uIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb246IHN0cmluZyk6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXEucGF1c2UoKTtcbiAgICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5zY29wZSA/IGBAJHtyZXEucGFyYW1zLnNjb3BlfS8ke3JlcS5wYXJhbXMucGFja2FnZX1gIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgICAgbGV0IHBhY2thZ2VWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAocmVxLnBhcmFtcy5maWxlbmFtZSkge1xuICAgICAgICBwYWNrYWdlVmVyc2lvbiA9IGdldFZlcnNpb25Gcm9tVGFyYmFsbChyZXEucGFyYW1zLmZpbGVuYW1lKSB8fCB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXEuYm9keS52ZXJzaW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcGFja2FnZVZlcnNpb24gPSBPYmplY3Qua2V5cyhyZXEuYm9keS52ZXJzaW9ucylbMF07XG4gICAgICB9XG4gICAgICBjb25zdCByZW1vdGU6IFJlbW90ZVVzZXIgPSByZXEucmVtb3RlX3VzZXI7XG4gICAgICBkZWJ1ZygnW21pZGRsZXdhcmUvYWxsb3ddWyVvXSBhbGxvdyBmb3IgJW8nLCBhY3Rpb24sIHJlbW90ZT8ubmFtZSk7XG4gICAgICBhdXRoWydhbGxvd18nICsgYWN0aW9uXSh7IHBhY2thZ2VOYW1lLCBwYWNrYWdlVmVyc2lvbiB9LCByZW1vdGUsIGZ1bmN0aW9uIChlcnJvciwgYWxsb3dlZCk6IHZvaWQge1xuICAgICAgICByZXEucmVzdW1lKCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9IGVsc2UgaWYgKGFsbG93ZWQpIHtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gbGFzdCBwbHVnaW4gKHRoYXQncyBvdXIgYnVpbHQtaW4gb25lKSByZXR1cm5zIGVpdGhlclxuICAgICAgICAgIC8vIGNiKGVycikgb3IgY2IobnVsbCwgdHJ1ZSksIHNvIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgICAgIHRocm93IEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5QTFVHSU5fRVJST1IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pZGRsZXdhcmVFcnJvciB7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEZpbmFsQm9keSA9IFBhY2thZ2UgfCBNaWRkbGV3YXJlRXJyb3IgfCBzdHJpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5hbChib2R5OiBGaW5hbEJvZHksIHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gIGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEICYmICFyZXMuZ2V0SGVhZGVyKEhFQURFUlMuV1dXX0FVVEgpKSB7XG4gICAgLy8gdGhleSBzYXkgaXQncyByZXF1aXJlZCBmb3IgNDAxLCBzby4uLlxuICAgIHJlcy5oZWFkZXIoSEVBREVSUy5XV1dfQVVUSCwgYCR7VE9LRU5fQkFTSUN9LCAke1RPS0VOX0JFQVJFUn1gKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKF8uaXNTdHJpbmcoYm9keSkgfHwgXy5pc09iamVjdChib2R5KSkge1xuICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKEhFQURFUlMuQ09OVEVOVF9UWVBFKSkge1xuICAgICAgICByZXMuaGVhZGVyKEhFQURFUlMuQ09OVEVOVF9UWVBFLCBIRUFERVJTLkpTT04pO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmIF8uaXNOaWwoYm9keSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgKGJvZHkgYXMgTWlkZGxld2FyZUVycm9yKS5lcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXMubG9jYWxzLl92ZXJkYWNjaW9fZXJyb3IgPSAoYm9keSBhcyBNaWRkbGV3YXJlRXJyb3IpLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5LCB1bmRlZmluZWQsICcgICcpICsgJ1xcbic7XG4gICAgICB9XG5cbiAgICAgIC8vIGRvbid0IHNlbmQgZXRhZ3Mgd2l0aCBlcnJvcnNcbiAgICAgIGlmICghcmVzLnN0YXR1c0NvZGUgfHwgKHJlcy5zdGF0dXNDb2RlID49IEhUVFBfU1RBVFVTLk9LICYmIHJlcy5zdGF0dXNDb2RlIDwgSFRUUF9TVEFUVVMuTVVMVElQTEVfQ0hPSUNFUykpIHtcbiAgICAgICAgcmVzLmhlYWRlcihIRUFERVJTLkVUQUcsICdcIicgKyBzdHJpbmdUb01ENShib2R5IGFzIHN0cmluZykgKyAnXCInKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2VuZChudWxsKSwgc2VuZCgyMDQpLCBldGMuXG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBpZiB2ZXJkYWNjaW8gc2VuZHMgaGVhZGVycyBmaXJzdCwgYW5kIHRoZW4gY2FsbHMgcmVzLnNlbmQoKVxuICAgIC8vIGFzIGFuIGVycm9yIGhhbmRsZXIsIHdlIGNhbid0IHJlcG9ydCBlcnJvciBwcm9wZXJseSxcbiAgICAvLyBhbmQgc2hvdWxkIGp1c3QgY2xvc2Ugc29ja2V0XG4gICAgaWYgKGVyci5tZXNzYWdlLm1hdGNoKC9zZXQgaGVhZGVycyBhZnRlciB0aGV5IGFyZSBzZW50LykpIHtcbiAgICAgIGlmIChfLmlzTmlsKHJlcy5zb2NrZXQpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJlcy5zb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBlcnI7XG4gIH1cblxuICByZXMuc2VuZChib2R5KTtcbn1cblxuZXhwb3J0IGNvbnN0IExPR19TVEFUVVNfTUVTU0FHRSA9IFwiQHtzdGF0dXN9LCB1c2VyOiBAe3VzZXJ9KEB7cmVtb3RlSVB9KSwgcmVxOiAnQHtyZXF1ZXN0Lm1ldGhvZH0gQHtyZXF1ZXN0LnVybH0nXCI7XG5leHBvcnQgY29uc3QgTE9HX1ZFUkRBQ0NJT19FUlJPUiA9IGAke0xPR19TVEFUVVNfTUVTU0FHRX0sIGVycm9yOiBAeyFlcnJvcn1gO1xuZXhwb3J0IGNvbnN0IExPR19WRVJEQUNDSU9fQllURVMgPSBgJHtMT0dfU1RBVFVTX01FU1NBR0V9LCBieXRlczogQHtieXRlcy5pbn0vQHtieXRlcy5vdXR9YDtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvZyhjb25maWc6IENvbmZpZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgX2F1dGggPSByZXEuaGVhZGVycy5hdXRob3JpemF0aW9uO1xuICAgIGlmIChfLmlzTmlsKF9hdXRoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gPSAnPENsYXNzaWZpZWQ+JztcbiAgICB9XG5cbiAgICBjb25zdCBfY29va2llID0gcmVxLmdldCgnY29va2llJyk7XG4gICAgaWYgKF8uaXNOaWwoX2Nvb2tpZSkgPT09IGZhbHNlKSB7XG4gICAgICByZXEuaGVhZGVycy5jb29raWUgPSAnPENsYXNzaWZpZWQ+JztcbiAgICB9XG5cbiAgICByZXEudXJsID0gcmVxLm9yaWdpbmFsVXJsO1xuICAgIC8vIGF2b2lkIGxvZyBub2lzZSBkYXRhIGZyb20gc3RhdGljIGNvbnRlbnRcbiAgICBpZiAocmVxLm9yaWdpbmFsVXJsLm1hdGNoKC9zdGF0aWMvKSA9PT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmh0dHAoeyByZXE6IHJlcSwgaXA6IHJlcS5pcCB9LCBcIkB7aXB9IHJlcXVlc3RlZCAnQHtyZXEubWV0aG9kfSBAe3JlcS51cmx9J1wiKTtcbiAgICB9XG4gICAgcmVxLm9yaWdpbmFsVXJsID0gcmVxLnVybDtcblxuICAgIGlmIChfLmlzTmlsKF9hdXRoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gPSBfYXV0aDtcbiAgICB9XG5cbiAgICBpZiAoXy5pc05pbChfY29va2llKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJlcS5oZWFkZXJzLmNvb2tpZSA9IF9jb29raWU7XG4gICAgfVxuXG4gICAgbGV0IGJ5dGVzaW4gPSAwO1xuICAgIGlmIChjb25maWc/LmV4cGVyaW1lbnRzPy5ieXRlc2luX29mZiAhPT0gdHJ1ZSkge1xuICAgICAgcmVxLm9uKCdkYXRhJywgZnVuY3Rpb24gKGNodW5rKTogdm9pZCB7XG4gICAgICAgIGJ5dGVzaW4gKz0gY2h1bmsubGVuZ3RoO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGJ5dGVzb3V0ID0gMDtcbiAgICBjb25zdCBfd3JpdGUgPSByZXMud3JpdGU7XG4gICAgLy8gRklYTUU6IHJlcy53cml0ZSBzaG91bGQgcmV0dXJuIGJvb2xlYW5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmVzLndyaXRlID0gZnVuY3Rpb24gKGJ1Zik6IGJvb2xlYW4ge1xuICAgICAgYnl0ZXNvdXQgKz0gYnVmLmxlbmd0aDtcbiAgICAgIC8qIGVzbGludCBwcmVmZXItcmVzdC1wYXJhbXM6IFwib2ZmXCIgKi9cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIF93cml0ZS5hcHBseShyZXMsIGFyZ3VtZW50cyk7XG4gICAgfTtcblxuICAgIGxldCBsb2dIYXNCZWVuQ2FsbGVkID0gZmFsc2U7XG4gICAgY29uc3QgbG9nID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgaWYgKGxvZ0hhc0JlZW5DYWxsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9nSGFzQmVlbkNhbGxlZCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZvcndhcmRlZEZvciA9IHJlcS5nZXQoJ3gtZm9yd2FyZGVkLWZvcicpO1xuICAgICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IHJlcS5jb25uZWN0aW9uLnJlbW90ZUFkZHJlc3M7XG4gICAgICBjb25zdCByZW1vdGVJUCA9IGZvcndhcmRlZEZvciA/IGAke2ZvcndhcmRlZEZvcn0gdmlhICR7cmVtb3RlQWRkcmVzc31gIDogcmVtb3RlQWRkcmVzcztcbiAgICAgIGxldCBtZXNzYWdlO1xuICAgICAgaWYgKHJlcy5sb2NhbHMuX3ZlcmRhY2Npb19lcnJvcikge1xuICAgICAgICBtZXNzYWdlID0gTE9HX1ZFUkRBQ0NJT19FUlJPUjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBMT0dfVkVSREFDQ0lPX0JZVEVTO1xuICAgICAgfVxuXG4gICAgICByZXEudXJsID0gcmVxLm9yaWdpbmFsVXJsO1xuICAgICAgLy8gYXZvaWQgbG9nIG5vaXNlIGRhdGEgZnJvbSBzdGF0aWMgY29udGVudFxuICAgICAgaWYgKHJlcS51cmwubWF0Y2goL3N0YXRpYy8pID09PSBudWxsKSB7XG4gICAgICAgIGxvZ2dlci5odHRwKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgICAgICAgICB1cmw6IHJlcS51cmwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjogKHJlcS5yZW1vdGVfdXNlciAmJiByZXEucmVtb3RlX3VzZXIubmFtZSkgfHwgbnVsbCxcbiAgICAgICAgICAgIHJlbW90ZUlQLFxuICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGVycm9yOiByZXMubG9jYWxzLl92ZXJkYWNjaW9fZXJyb3IsXG4gICAgICAgICAgICBieXRlczoge1xuICAgICAgICAgICAgICBpbjogYnl0ZXNpbixcbiAgICAgICAgICAgICAgb3V0OiBieXRlc291dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXNzYWdlXG4gICAgICAgICk7XG4gICAgICAgIHJlcS5vcmlnaW5hbFVybCA9IHJlcS51cmw7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlcS5vbignY2xvc2UnLCBmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgICBsb2coKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IF9lbmQgPSByZXMuZW5kO1xuICAgIHJlcy5lbmQgPSBmdW5jdGlvbiAoYnVmKTogdm9pZCB7XG4gICAgICBpZiAoYnVmKSB7XG4gICAgICAgIGJ5dGVzb3V0ICs9IGJ1Zi5sZW5ndGg7XG4gICAgICB9XG4gICAgICAvKiBlc2xpbnQgcHJlZmVyLXJlc3QtcGFyYW1zOiBcIm9mZlwiICovXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBfZW5kLmFwcGx5KHJlcywgYXJndW1lbnRzKTtcbiAgICAgIGxvZygpO1xuICAgIH07XG4gICAgbmV4dCgpO1xuICB9O1xufVxuXG4vLyBNaWRkbGV3YXJlXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yID1cbiAgICByZXMubG9jYWxzLnJlcG9ydF9lcnJvciB8fFxuICAgIGZ1bmN0aW9uIChlcnI6IFZlcmRhY2Npb0Vycm9yKTogdm9pZCB7XG4gICAgICBpZiAoZXJyLnN0YXR1cyAmJiBlcnIuc3RhdHVzID49IEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNUICYmIGVyci5zdGF0dXMgPCA2MDApIHtcbiAgICAgICAgaWYgKCFyZXMuaGVhZGVyc1NlbnQpIHtcbiAgICAgICAgICByZXMuc3RhdHVzKGVyci5zdGF0dXMpO1xuICAgICAgICAgIG5leHQoeyBlcnJvcjogZXJyLm1lc3NhZ2UgfHwgQVBJX0VSUk9SLlVOS05PV05fRVJST1IgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGVycjogZXJyIH0sICd1bmV4cGVjdGVkIGVycm9yOiBAeyFlcnIubWVzc2FnZX1cXG5Ae2Vyci5zdGFja30nKTtcbiAgICAgICAgaWYgKCFyZXMuc3RhdHVzIHx8ICFyZXMuc2VuZCkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcigndGhpcyBpcyBhbiBlcnJvciBpbiBleHByZXNzLmpzLCBwbGVhc2UgcmVwb3J0IHRoaXMnKTtcbiAgICAgICAgICByZXMuZGVzdHJveSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCFyZXMuaGVhZGVyc1NlbnQpIHtcbiAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SKTtcbiAgICAgICAgICBuZXh0KHsgZXJyb3I6IEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc29ja2V0IHNob3VsZCBiZSBhbHJlYWR5IGNsb3NlZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICBuZXh0KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.limiter = void 0;
|
|
7
|
+
|
|
8
|
+
var _expressRateLimit = _interopRequireDefault(require("express-rate-limit"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
+
|
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
const limiter = rateLimitOptions => {
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
return new _expressRateLimit.default(_objectSpread({}, rateLimitOptions));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.limiter = limiter;
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcmF0ZS1saW1pdGVyLnRzIl0sIm5hbWVzIjpbImxpbWl0ZXIiLCJyYXRlTGltaXRPcHRpb25zIiwiUmF0ZUxpbWl0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFJQSxNQUFNQSxPQUFPLEdBQUlDLGdCQUFELElBQXFDO0FBQ25EO0FBQ0EsU0FBTyxJQUFJQyx5QkFBSixtQkFDRkQsZ0JBREUsRUFBUDtBQUdELENBTEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmF0ZUxpbWl0IGZyb20gJ2V4cHJlc3MtcmF0ZS1saW1pdCc7XG5cbmltcG9ydCB7IFJhdGVMaW1pdCBhcyBSYXRlTGltaXRUeXBlIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmNvbnN0IGxpbWl0ZXIgPSAocmF0ZUxpbWl0T3B0aW9uczogUmF0ZUxpbWl0VHlwZSkgPT4ge1xuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBuZXcgUmF0ZUxpbWl0KHtcbiAgICAuLi5yYXRlTGltaXRPcHRpb25zLFxuICB9KTtcbn07XG5cbmV4cG9ydCB7IGxpbWl0ZXIgfTtcbiJdfQ==
|