verdaccio 5.3.2 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +6 -5
- package/build/api/endpoint/api/user.js +15 -5
- package/build/api/endpoint/api/v1/index.js +26 -0
- package/build/api/endpoint/api/v1/profile.js +12 -4
- package/build/api/endpoint/api/v1/token.js +14 -5
- package/build/api/endpoint/index.js +4 -7
- package/build/api/index.js +11 -5
- package/build/api/rate-limiter.js +24 -0
- package/build/api/web/api.js +4 -16
- package/build/api/web/endpoint/index.js +45 -0
- package/build/api/web/endpoint/package.js +10 -5
- package/build/api/web/endpoint/search.js +8 -2
- package/build/api/web/endpoint/user.js +9 -3
- package/build/api/web/index.js +5 -2
- package/build/lib/auth-utils.js +11 -4
- package/build/lib/config.js +15 -6
- package/build/lib/constants.js +5 -4
- package/build/lib/up-storage.js +6 -3
- package/build/lib/utils.js +11 -2
- package/conf/default.yaml +3 -1
- package/conf/docker.yaml +3 -1
- package/package.json +14 -8
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _express = require("express");
|
|
9
|
+
|
|
10
|
+
var _rateLimiter = require("../../rate-limiter");
|
|
11
|
+
|
|
12
|
+
var _package = _interopRequireDefault(require("./package"));
|
|
13
|
+
|
|
14
|
+
var _search = _interopRequireDefault(require("./search"));
|
|
15
|
+
|
|
16
|
+
var _user = _interopRequireDefault(require("./user"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
var _default = (auth, storage, config) => {
|
|
27
|
+
var _config$web;
|
|
28
|
+
|
|
29
|
+
const route = (0, _express.Router)();
|
|
30
|
+
/* eslint new-cap: 0 */
|
|
31
|
+
|
|
32
|
+
route.use('/data/', (0, _rateLimiter.limiter)(_objectSpread({
|
|
33
|
+
windowMs: 2 * 60 * 1000,
|
|
34
|
+
// 2 minutes
|
|
35
|
+
max: 5000
|
|
36
|
+
}, config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.rateLimit)));
|
|
37
|
+
route.use('/data/', (0, _package.default)(storage, auth, config));
|
|
38
|
+
route.use('/data/', (0, _search.default)(storage, auth));
|
|
39
|
+
route.use('/sec/', (0, _rateLimiter.limiter)(config === null || config === void 0 ? void 0 : config.userRateLimit));
|
|
40
|
+
route.use('/sec/', (0, _user.default)(auth, storage));
|
|
41
|
+
return route;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.default = _default;
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwicm91dGUiLCJ1c2UiLCJ3aW5kb3dNcyIsIm1heCIsIndlYiIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztlQUVlLENBQUNBLElBQUQsRUFBT0MsT0FBUCxFQUFnQkMsTUFBaEIsS0FBMkI7QUFBQTs7QUFDeEMsUUFBTUMsS0FBSyxHQUFHLHNCQUFkO0FBQXdCOztBQUN4QkEsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQ0UsUUFERixFQUVFO0FBQ0VDLElBQUFBLFFBQVEsRUFBRSxJQUFJLEVBQUosR0FBUyxJQURyQjtBQUMyQjtBQUN6QkMsSUFBQUEsR0FBRyxFQUFFO0FBRlAsS0FHS0osTUFITCxhQUdLQSxNQUhMLHNDQUdLQSxNQUFNLENBQUVLLEdBSGIsZ0RBR0ssWUFBYUMsU0FIbEIsRUFGRjtBQVFBTCxFQUFBQSxLQUFLLENBQUNDLEdBQU4sQ0FBVSxRQUFWLEVBQW9CLHNCQUFXSCxPQUFYLEVBQW9CRCxJQUFwQixFQUEwQkUsTUFBMUIsQ0FBcEI7QUFDQUMsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQVUsUUFBVixFQUFvQixxQkFBT0gsT0FBUCxFQUFnQkQsSUFBaEIsQ0FBcEI7QUFDQUcsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQVUsT0FBVixFQUFtQiwwQkFBUUYsTUFBUixhQUFRQSxNQUFSLHVCQUFRQSxNQUFNLENBQUVPLGFBQWhCLENBQW5CO0FBQ0FOLEVBQUFBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLE9BQVYsRUFBbUIsbUJBQUtKLElBQUwsRUFBV0MsT0FBWCxDQUFuQjtBQUNBLFNBQU9FLEtBQVA7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgbGltaXRlciB9IGZyb20gJy4uLy4uL3JhdGUtbGltaXRlcic7XG5pbXBvcnQgcGFja2FnZUFwaSBmcm9tICcuL3BhY2thZ2UnO1xuaW1wb3J0IHNlYXJjaCBmcm9tICcuL3NlYXJjaCc7XG5pbXBvcnQgdXNlciBmcm9tICcuL3VzZXInO1xuXG5leHBvcnQgZGVmYXVsdCAoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHJvdXRlID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG4gIHJvdXRlLnVzZShcbiAgICAnL2RhdGEvJyxcbiAgICBsaW1pdGVyKHtcbiAgICAgIHdpbmRvd01zOiAyICogNjAgKiAxMDAwLCAvLyAyICBtaW51dGVzXG4gICAgICBtYXg6IDUwMDAsIC8vIGxpbWl0IGVhY2ggSVAgdG8gMTAwMCByZXF1ZXN0cyBwZXIgd2luZG93TXNcbiAgICAgIC4uLmNvbmZpZz8ud2ViPy5yYXRlTGltaXQsXG4gICAgfSlcbiAgKTtcbiAgcm91dGUudXNlKCcvZGF0YS8nLCBwYWNrYWdlQXBpKHN0b3JhZ2UsIGF1dGgsIGNvbmZpZykpO1xuICByb3V0ZS51c2UoJy9kYXRhLycsIHNlYXJjaChzdG9yYWdlLCBhdXRoKSk7XG4gIHJvdXRlLnVzZSgnL3NlYy8nLCBsaW1pdGVyKGNvbmZpZz8udXNlclJhdGVMaW1pdCkpO1xuICByb3V0ZS51c2UoJy9zZWMvJywgdXNlcihhdXRoLCBzdG9yYWdlKSk7XG4gIHJldHVybiByb3V0ZTtcbn07XG4iXX0=
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
|
|
10
|
+
var _express = require("express");
|
|
11
|
+
|
|
10
12
|
var _utils = require("../../../lib/utils");
|
|
11
13
|
|
|
12
14
|
var _middleware = require("../../middleware");
|
|
@@ -29,8 +31,10 @@ const getOrder = (order = 'asc') => {
|
|
|
29
31
|
return order === 'asc';
|
|
30
32
|
};
|
|
31
33
|
|
|
32
|
-
function addPackageWebApi(
|
|
34
|
+
function addPackageWebApi(storage, auth, config) {
|
|
33
35
|
const can = (0, _middleware.allow)(auth);
|
|
36
|
+
const pkgRouter = (0, _express.Router)();
|
|
37
|
+
/* eslint new-cap: 0 */
|
|
34
38
|
|
|
35
39
|
const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
|
|
36
40
|
try {
|
|
@@ -49,7 +53,7 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
49
53
|
}); // Get list of all visible package
|
|
50
54
|
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
pkgRouter.get('/packages', function (req, res, next) {
|
|
53
57
|
storage.getLocalDatabase(async function (err, packages) {
|
|
54
58
|
if (err) {
|
|
55
59
|
throw err;
|
|
@@ -103,7 +107,7 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
103
107
|
});
|
|
104
108
|
}); // Get package readme
|
|
105
109
|
|
|
106
|
-
|
|
110
|
+
pkgRouter.get('/package/readme/(@:scope/)?:package/:version?', can('access'), function (req, res, next) {
|
|
107
111
|
const packageName = req.params.scope ? (0, _utils.addScope)(req.params.scope, req.params.package) : req.params.package;
|
|
108
112
|
storage.getPackage({
|
|
109
113
|
name: packageName,
|
|
@@ -123,7 +127,7 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
123
127
|
}
|
|
124
128
|
});
|
|
125
129
|
});
|
|
126
|
-
|
|
130
|
+
pkgRouter.get('/sidebar/(@:scope/)?:package', can('access'), function (req, res, next) {
|
|
127
131
|
const packageName = req.params.scope ? (0, _utils.addScope)(req.params.scope, req.params.package) : req.params.package;
|
|
128
132
|
storage.getPackage({
|
|
129
133
|
name: packageName,
|
|
@@ -174,8 +178,9 @@ function addPackageWebApi(route, storage, auth, config) {
|
|
|
174
178
|
}
|
|
175
179
|
});
|
|
176
180
|
});
|
|
181
|
+
return pkgRouter;
|
|
177
182
|
}
|
|
178
183
|
|
|
179
184
|
var _default = addPackageWebApi;
|
|
180
185
|
exports.default = _default;
|
|
181
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3BhY2thZ2UudHMiXSwibmFtZXMiOlsiZ2V0T3JkZXIiLCJvcmRlciIsImFkZFBhY2thZ2VXZWJBcGkiLCJyb3V0ZSIsInN0b3JhZ2UiLCJhdXRoIiwiY29uZmlnIiwiY2FuIiwiY2hlY2tBbGxvdyIsIm5hbWUiLCJyZW1vdGVVc2VyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhbGxvd19hY2Nlc3MiLCJwYWNrYWdlTmFtZSIsImVyciIsImFsbG93ZWQiLCJnZXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwiZ2V0TG9jYWxEYXRhYmFzZSIsInBhY2thZ2VzIiwicHJvY2Vzc1BhY2thZ2VzIiwicGVybWlzc2lvbnMiLCJwYWNrZ2VzQ29weSIsInNsaWNlIiwicGtnIiwicGtnQ29weSIsImF1dGhvciIsInJlbW90ZV91c2VyIiwid2ViIiwiYXZhdGFyIiwiZW1haWwiLCJncmF2YXRhciIsIl8iLCJpc05pbCIsImRpc3QiLCJpc051bGwiLCJ0YXJiYWxsIiwidXJsX3ByZWZpeCIsInB1c2giLCJsb2dnZXIiLCJlcnJvciIsInNvcnRfcGFja2FnZXMiLCJFcnJvckNvZGUiLCJnZXRJbnRlcm5hbEVycm9yIiwicGFyYW1zIiwic2NvcGUiLCJwYWNrYWdlIiwiZ2V0UGFja2FnZSIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJpbmZvIiwic2V0IiwiSEVBREVSX1RZUEUiLCJDT05URU5UX1RZUEUiLCJIRUFERVJTIiwiVEVYVF9QTEFJTiIsInJlZmVyZXIiLCJwYXRobmFtZSIsIlVSTCIsInVuZGVmaW5lZCIsInJlYWRtZSIsImtlZXBVcExpbmtEYXRhIiwidiIsInF1ZXJ5Iiwic2lkZUJhckluZm8iLCJjbG9uZSIsInZlcnNpb25zIiwibGF0ZXN0IiwiRElTVF9UQUdTIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJlbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFZQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUdBLE1BQU1BLFFBQVEsR0FBRyxDQUFDQyxLQUFLLEdBQUcsS0FBVCxLQUFtQjtBQUNsQyxTQUFPQSxLQUFLLEtBQUssS0FBakI7QUFDRCxDQUZEOztBQU1BLFNBQVNDLGdCQUFULENBQTBCQyxLQUExQixFQUF5Q0MsT0FBekMsRUFBbUVDLElBQW5FLEVBQWdGQyxNQUFoRixFQUFzRztBQUNwRyxRQUFNQyxHQUFHLEdBQUcsdUJBQU1GLElBQU4sQ0FBWjs7QUFFQSxRQUFNRyxVQUFVLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPQyxVQUFQLEtBQ2pCLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBMkI7QUFDckMsUUFBSTtBQUNGUixNQUFBQSxJQUFJLENBQUNTLFlBQUwsQ0FBa0I7QUFBRUMsUUFBQUEsV0FBVyxFQUFFTjtBQUFmLE9BQWxCLEVBQXlDQyxVQUF6QyxFQUFxRCxDQUFDTSxHQUFELEVBQU1DLE9BQU4sS0FBd0I7QUFDM0UsWUFBSUQsR0FBSixFQUFTO0FBQ1BKLFVBQUFBLE9BQU8sQ0FBQyxLQUFELENBQVA7QUFDRDs7QUFDREEsUUFBQUEsT0FBTyxDQUFDSyxPQUFELENBQVA7QUFDRCxPQUxEO0FBTUQsS0FQRCxDQU9FLE9BQU9ELEdBQVAsRUFBWTtBQUNaSCxNQUFBQSxNQUFNLENBQUNHLEdBQUQsQ0FBTjtBQUNEO0FBQ0YsR0FYRCxDQURGLENBSG9HLENBaUJwRzs7O0FBQ0FiLEVBQUFBLEtBQUssQ0FBQ2UsR0FBTixDQUFVLFdBQVYsRUFBdUIsVUFBVUMsR0FBVixFQUErQkMsR0FBL0IsRUFBcURDLElBQXJELEVBQW1GO0FBQ3hHakIsSUFBQUEsT0FBTyxDQUFDa0IsZ0JBQVIsQ0FBeUIsZ0JBQWdCTixHQUFoQixFQUFxQk8sUUFBckIsRUFBOEM7QUFDckUsVUFBSVAsR0FBSixFQUFTO0FBQ1AsY0FBTUEsR0FBTjtBQUNEOztBQUVELHFCQUFlUSxlQUFmLENBQStCRCxRQUF1QixHQUFHLEVBQXpELEVBQTJFO0FBQ3pFLGNBQU1FLFdBQTBCLEdBQUcsRUFBbkM7QUFDQSxjQUFNQyxXQUFXLEdBQUdILFFBQVEsQ0FBQ0ksS0FBVCxFQUFwQjs7QUFDQSxhQUFLLE1BQU1DLEdBQVgsSUFBa0JGLFdBQWxCLEVBQStCO0FBQzdCLGdCQUFNRyxPQUFPLHFCQUFRRCxHQUFSLENBQWI7O0FBQ0FDLFVBQUFBLE9BQU8sQ0FBQ0MsTUFBUixHQUFpQix5QkFBYUYsR0FBRyxDQUFDRSxNQUFqQixDQUFqQjs7QUFDQSxjQUFJO0FBQ0YsZ0JBQUksTUFBTXRCLFVBQVUsQ0FBQ29CLEdBQUcsQ0FBQ25CLElBQUwsRUFBV1UsR0FBRyxDQUFDWSxXQUFmLENBQXBCLEVBQWlEO0FBQy9DLGtCQUFJekIsTUFBTSxDQUFDMEIsR0FBWCxFQUFnQjtBQUNkSCxnQkFBQUEsT0FBTyxDQUFDQyxNQUFSLENBQWVHLE1BQWYsR0FBd0IsK0JBQW9CSixPQUFPLENBQUNDLE1BQVIsQ0FBZUksS0FBbkMsRUFBMEM1QixNQUFNLENBQUMwQixHQUFQLENBQVdHLFFBQXJELENBQXhCO0FBQ0Q7O0FBQ0Qsa0JBQUksQ0FBQ0MsZ0JBQUVDLEtBQUYsQ0FBUVIsT0FBTyxDQUFDUyxJQUFoQixDQUFELElBQTBCLENBQUNGLGdCQUFFRyxNQUFGLENBQVNWLE9BQU8sQ0FBQ1MsSUFBUixDQUFhRSxPQUF0QixDQUEvQixFQUErRDtBQUM3RFgsZ0JBQUFBLE9BQU8sQ0FBQ1MsSUFBUixDQUFhRSxPQUFiLEdBQXVCLHVDQUEyQlgsT0FBTyxDQUFDUyxJQUFSLENBQWFFLE9BQXhDLEVBQWlEWixHQUFHLENBQUNuQixJQUFyRCxFQUEyRFUsR0FBM0QsRUFBZ0ViLE1BQU0sQ0FBQ21DLFVBQXZFLENBQXZCO0FBQ0Q7O0FBQ0RoQixjQUFBQSxXQUFXLENBQUNpQixJQUFaLENBQWlCYixPQUFqQjtBQUNEO0FBQ0YsV0FWRCxDQVVFLE9BQU9iLEdBQVAsRUFBWTtBQUNaMkIsMkJBQU9DLEtBQVAsQ0FBYTtBQUFFbkMsY0FBQUEsSUFBSSxFQUFFbUIsR0FBRyxDQUFDbkIsSUFBWjtBQUFrQm1DLGNBQUFBLEtBQUssRUFBRTVCO0FBQXpCLGFBQWIsRUFBNkMscURBQTdDOztBQUNBLGtCQUFNQSxHQUFOO0FBQ0Q7QUFDRjs7QUFFRCxlQUFPUyxXQUFQO0FBQ0Q7O0FBRUQsWUFBTTtBQUFFTyxRQUFBQTtBQUFGLFVBQVUxQixNQUFoQixDQTlCcUUsQ0ErQnJFOztBQUNBLFlBQU1MLEtBQWMsR0FBR0ssTUFBTSxDQUFDMEIsR0FBUCxHQUFhaEMsUUFBUSxDQUFDZ0MsR0FBRyxDQUFDYSxhQUFMLENBQXJCLEdBQTJDLElBQWxFOztBQUVBLFVBQUk7QUFDRnhCLFFBQUFBLElBQUksQ0FBQyx1QkFBVyxNQUFNRyxlQUFlLENBQUNELFFBQUQsQ0FBaEMsRUFBNEN0QixLQUE1QyxDQUFELENBQUo7QUFDRCxPQUZELENBRUUsT0FBTzJDLEtBQVAsRUFBYztBQUNkdkIsUUFBQUEsSUFBSSxDQUFDeUIsaUJBQVVDLGdCQUFWLEVBQUQsQ0FBSjtBQUNEO0FBQ0YsS0F2Q0Q7QUF3Q0QsR0F6Q0QsRUFsQm9HLENBNkRwRzs7QUFDQTVDLEVBQUFBLEtBQUssQ0FBQ2UsR0FBTixDQUFVLCtDQUFWLEVBQTJEWCxHQUFHLENBQUMsUUFBRCxDQUE5RCxFQUEwRSxVQUFVWSxHQUFWLEVBQStCQyxHQUEvQixFQUFxREMsSUFBckQsRUFBbUY7QUFDM0osVUFBTU4sV0FBVyxHQUFHSSxHQUFHLENBQUM2QixNQUFKLENBQVdDLEtBQVgsR0FBbUIscUJBQVM5QixHQUFHLENBQUM2QixNQUFKLENBQVdDLEtBQXBCLEVBQTJCOUIsR0FBRyxDQUFDNkIsTUFBSixDQUFXRSxPQUF0QyxDQUFuQixHQUFvRS9CLEdBQUcsQ0FBQzZCLE1BQUosQ0FBV0UsT0FBbkc7QUFFQTlDLElBQUFBLE9BQU8sQ0FBQytDLFVBQVIsQ0FBbUI7QUFDakIxQyxNQUFBQSxJQUFJLEVBQUVNLFdBRFc7QUFFakJxQyxNQUFBQSxXQUFXLEVBQUUsSUFGSTtBQUdqQmpDLE1BQUFBLEdBSGlCO0FBSWpCa0MsTUFBQUEsUUFBUSxFQUFFLFVBQVVyQyxHQUFWLEVBQWVzQyxJQUFmLEVBQTJCO0FBQ25DLFlBQUl0QyxHQUFKLEVBQVM7QUFDUCxpQkFBT0ssSUFBSSxDQUFDTCxHQUFELENBQVg7QUFDRDs7QUFFREksUUFBQUEsR0FBRyxDQUFDbUMsR0FBSixDQUFRQyx1QkFBWUMsWUFBcEIsRUFBa0NDLG1CQUFRQyxVQUExQztBQUNBLGNBQU1DLE9BQU8sR0FBR3pDLEdBQUcsQ0FBQ0QsR0FBSixDQUFRLFNBQVIsQ0FBaEI7QUFDQSxjQUFNMkMsUUFBUSxHQUFHRCxPQUFPLEdBQUksSUFBSUUsR0FBSixDQUFRRixPQUFSLENBQUQsQ0FBbUJDLFFBQXRCLEdBQWlDRSxTQUF6RDtBQUNBMUMsUUFBQUEsSUFBSSxDQUFDLHdCQUFZaUMsSUFBSSxDQUFDN0MsSUFBakIsRUFBdUI2QyxJQUFJLENBQUNVLE1BQTVCLEVBQW9DO0FBQUNILFVBQUFBO0FBQUQsU0FBcEMsQ0FBRCxDQUFKO0FBQ0Q7QUFiZ0IsS0FBbkI7QUFlRCxHQWxCRDtBQW9CQTFELEVBQUFBLEtBQUssQ0FBQ2UsR0FBTixDQUFVLDhCQUFWLEVBQTBDWCxHQUFHLENBQUMsUUFBRCxDQUE3QyxFQUF5RCxVQUFVWSxHQUFWLEVBQStCQyxHQUEvQixFQUFxREMsSUFBckQsRUFBbUY7QUFDMUksVUFBTU4sV0FBbUIsR0FBR0ksR0FBRyxDQUFDNkIsTUFBSixDQUFXQyxLQUFYLEdBQW1CLHFCQUFTOUIsR0FBRyxDQUFDNkIsTUFBSixDQUFXQyxLQUFwQixFQUEyQjlCLEdBQUcsQ0FBQzZCLE1BQUosQ0FBV0UsT0FBdEMsQ0FBbkIsR0FBb0UvQixHQUFHLENBQUM2QixNQUFKLENBQVdFLE9BQTNHO0FBRUE5QyxJQUFBQSxPQUFPLENBQUMrQyxVQUFSLENBQW1CO0FBQ2pCMUMsTUFBQUEsSUFBSSxFQUFFTSxXQURXO0FBRWpCcUMsTUFBQUEsV0FBVyxFQUFFLElBRkk7QUFHakJhLE1BQUFBLGNBQWMsRUFBRSxJQUhDO0FBSWpCOUMsTUFBQUEsR0FKaUI7QUFLakJrQyxNQUFBQSxRQUFRLEVBQUUsVUFBVXJDLEdBQVYsRUFBc0JzQyxJQUF0QixFQUFtRDtBQUMzRCxZQUFJbEIsZ0JBQUVDLEtBQUYsQ0FBUXJCLEdBQVIsQ0FBSixFQUFrQjtBQUNoQixnQkFBTTtBQUFFa0QsWUFBQUE7QUFBRixjQUFRL0MsR0FBRyxDQUFDZ0QsS0FBbEI7O0FBQ0EsY0FBSUMsV0FBZ0IsR0FBR2hDLGdCQUFFaUMsS0FBRixDQUFRZixJQUFSLENBQXZCOztBQUNBYyxVQUFBQSxXQUFXLENBQUNFLFFBQVosR0FBdUIsZ0RBQW9DaEIsSUFBcEMsRUFBMENuQyxHQUExQyxFQUErQ2IsTUFBTSxDQUFDbUMsVUFBdEQsRUFBa0U2QixRQUF6Rjs7QUFDQSxjQUFJLDJCQUFlaEIsSUFBZixFQUFxQlksQ0FBckIsQ0FBSixFQUE2QjtBQUMzQjtBQUNBRSxZQUFBQSxXQUFXLENBQUNHLE1BQVosR0FBcUJILFdBQVcsQ0FBQ0UsUUFBWixDQUFxQkosQ0FBckIsQ0FBckI7QUFDQUUsWUFBQUEsV0FBVyxDQUFDRyxNQUFaLENBQW1CekMsTUFBbkIsR0FBNEIseUJBQWFzQyxXQUFXLENBQUNHLE1BQVosQ0FBbUJ6QyxNQUFoQyxDQUE1QjtBQUNELFdBSkQsTUFJTztBQUFBOztBQUNMc0MsWUFBQUEsV0FBVyxDQUFDRyxNQUFaLEdBQXFCSCxXQUFXLENBQUNFLFFBQVosQ0FBcUJoQixJQUFJLENBQUNrQixvQkFBRCxDQUFKLENBQWdCRCxNQUFyQyxDQUFyQjs7QUFDQSxnQ0FBSUgsV0FBSix5Q0FBSSxhQUFhRyxNQUFqQixFQUF5QjtBQUN2QkgsY0FBQUEsV0FBVyxDQUFDRyxNQUFaLENBQW1CekMsTUFBbkIsR0FBNEIseUJBQWFzQyxXQUFXLENBQUNHLE1BQVosQ0FBbUJ6QyxNQUFoQyxDQUE1QjtBQUNELGFBRkQsTUFFTztBQUNMVixjQUFBQSxHQUFHLENBQUNxRCxNQUFKLENBQVdDLHVCQUFZQyxTQUF2QjtBQUNBdkQsY0FBQUEsR0FBRyxDQUFDd0QsR0FBSjtBQUNBO0FBQ0Q7QUFDRjs7QUFDRFIsVUFBQUEsV0FBVyxHQUFHLDZCQUFpQixDQUFDLFFBQUQsRUFBVyxjQUFYLEVBQTJCLE1BQTNCLEVBQW1DLE1BQW5DLENBQWpCLEVBQTZEQSxXQUE3RCxDQUFkOztBQUNBLGNBQUk5RCxNQUFNLENBQUMwQixHQUFYLEVBQWdCO0FBQ2RvQyxZQUFBQSxXQUFXLEdBQUcsK0JBQW1CQSxXQUFuQixFQUFnQzlELE1BQU0sQ0FBQzBCLEdBQVAsQ0FBV0csUUFBM0MsQ0FBZDtBQUNELFdBRkQsTUFFTztBQUNMaUMsWUFBQUEsV0FBVyxHQUFHLCtCQUFtQkEsV0FBbkIsQ0FBZDtBQUNEOztBQUNEL0MsVUFBQUEsSUFBSSxDQUFDK0MsV0FBRCxDQUFKO0FBQ0QsU0F6QkQsTUF5Qk87QUFDTGhELFVBQUFBLEdBQUcsQ0FBQ3FELE1BQUosQ0FBV0MsdUJBQVlDLFNBQXZCO0FBQ0F2RCxVQUFBQSxHQUFHLENBQUN3RCxHQUFKO0FBQ0Q7QUFDRjtBQW5DZ0IsS0FBbkI7QUFxQ0QsR0F4Q0Q7QUF5Q0Q7O2VBRWMxRSxnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IENvbmZpZywgUGFja2FnZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHtcbiAgYWRkU2NvcGUsXG4gIGFkZEdyYXZhdGFyU3VwcG9ydCxcbiAgZGVsZXRlUHJvcGVydGllcyxcbiAgc29ydEJ5TmFtZSxcbiAgcGFyc2VSZWFkbWUsXG4gIGZvcm1hdEF1dGhvcixcbiAgY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMsXG4gIGdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpLFxuICBpc1ZlcnNpb25WYWxpZCxcbiAgRXJyb3JDb2RlLFxufSBmcm9tICcuLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgYWxsb3cgfSBmcm9tICcuLi8uLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IERJU1RfVEFHUywgSEVBREVSX1RZUEUsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUdyYXZhdGFyVXJsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXNlcic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IElBdXRoLCAkUmVzcG9uc2VFeHRlbmQsICRSZXF1ZXN0RXh0ZW5kLCAkTmV4dEZ1bmN0aW9uVmVyLCBJU3RvcmFnZUhhbmRsZXIsICRTaWRlYmFyUGFja2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxuY29uc3QgZ2V0T3JkZXIgPSAob3JkZXIgPSAnYXNjJykgPT4ge1xuICByZXR1cm4gb3JkZXIgPT09ICdhc2MnO1xufTtcblxuZXhwb3J0IHR5cGUgUGFja2NhZ2VFeHQgPSBQYWNrYWdlICYgeyBhdXRob3I6IGFueTsgZGlzdD86IHsgdGFyYmFsbDogc3RyaW5nIH0gfTtcblxuZnVuY3Rpb24gYWRkUGFja2FnZVdlYkFwaShyb3V0ZTogUm91dGVyLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIsIGF1dGg6IElBdXRoLCBjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoKTtcblxuICBjb25zdCBjaGVja0FsbG93ID0gKG5hbWUsIHJlbW90ZVVzZXIpOiBQcm9taXNlPGJvb2xlYW4+ID0+XG4gICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXV0aC5hbGxvd19hY2Nlc3MoeyBwYWNrYWdlTmFtZTogbmFtZSB9LCByZW1vdGVVc2VyLCAoZXJyLCBhbGxvd2VkKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUoYWxsb3dlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIEdldCBsaXN0IG9mIGFsbCB2aXNpYmxlIHBhY2thZ2VcbiAgcm91dGUuZ2V0KCcvcGFja2FnZXMnLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBzdG9yYWdlLmdldExvY2FsRGF0YWJhc2UoYXN5bmMgZnVuY3Rpb24gKGVyciwgcGFja2FnZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBhc3luYyBmdW5jdGlvbiBwcm9jZXNzUGFja2FnZXMocGFja2FnZXM6IFBhY2tjYWdlRXh0W10gPSBbXSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zOiBQYWNrY2FnZUV4dFtdID0gW107XG4gICAgICAgIGNvbnN0IHBhY2tnZXNDb3B5ID0gcGFja2FnZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChjb25zdCBwa2cgb2YgcGFja2dlc0NvcHkpIHtcbiAgICAgICAgICBjb25zdCBwa2dDb3B5ID0geyAuLi5wa2cgfTtcbiAgICAgICAgICBwa2dDb3B5LmF1dGhvciA9IGZvcm1hdEF1dGhvcihwa2cuYXV0aG9yKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IGNoZWNrQWxsb3cocGtnLm5hbWUsIHJlcS5yZW1vdGVfdXNlcikpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy53ZWIpIHtcbiAgICAgICAgICAgICAgICBwa2dDb3B5LmF1dGhvci5hdmF0YXIgPSBnZW5lcmF0ZUdyYXZhdGFyVXJsKHBrZ0NvcHkuYXV0aG9yLmVtYWlsLCBjb25maWcud2ViLmdyYXZhdGFyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIV8uaXNOaWwocGtnQ29weS5kaXN0KSAmJiAhXy5pc051bGwocGtnQ29weS5kaXN0LnRhcmJhbGwpKSB7XG4gICAgICAgICAgICAgICAgcGtnQ29weS5kaXN0LnRhcmJhbGwgPSBnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaShwa2dDb3B5LmRpc3QudGFyYmFsbCwgcGtnLm5hbWUsIHJlcSwgY29uZmlnLnVybF9wcmVmaXgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2gocGtnQ29weSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBuYW1lOiBwa2cubmFtZSwgZXJyb3I6IGVyciB9LCAncGVybWlzc2lvbiBwcm9jZXNzIGZvciBAe25hbWV9IGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHdlYiB9ID0gY29uZmlnO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3Qgb3JkZXI6IGJvb2xlYW4gPSBjb25maWcud2ViID8gZ2V0T3JkZXIod2ViLnNvcnRfcGFja2FnZXMpIDogdHJ1ZTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dChzb3J0QnlOYW1lKGF3YWl0IHByb2Nlc3NQYWNrYWdlcyhwYWNrYWdlcyksIG9yZGVyKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICAvLyBHZXQgcGFja2FnZSByZWFkbWVcbiAgcm91dGUuZ2V0KCcvcGFja2FnZS9yZWFkbWUvKEA6c2NvcGUvKT86cGFja2FnZS86dmVyc2lvbj8nLCBjYW4oJ2FjY2VzcycpLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMuc2NvcGUgPyBhZGRTY29wZShyZXEucGFyYW1zLnNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVyciwgaW5mbyk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5zZXQoSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFLCBIRUFERVJTLlRFWFRfUExBSU4pO1xuICAgICAgICBjb25zdCByZWZlcmVyID0gcmVxLmdldCgnUmVmZXJlcicpO1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHJlZmVyZXIgPyAobmV3IFVSTChyZWZlcmVyKSkucGF0aG5hbWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIG5leHQocGFyc2VSZWFkbWUoaW5mby5uYW1lLCBpbmZvLnJlYWRtZSwge3BhdGhuYW1lfSkpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcm91dGUuZ2V0KCcvc2lkZWJhci8oQDpzY29wZS8pPzpwYWNrYWdlJywgY2FuKCdhY2Nlc3MnKSwgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFja2FnZU5hbWU6IHN0cmluZyA9IHJlcS5wYXJhbXMuc2NvcGUgPyBhZGRTY29wZShyZXEucGFyYW1zLnNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICBrZWVwVXBMaW5rRGF0YTogdHJ1ZSxcbiAgICAgIHJlcSxcbiAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoZXJyOiBFcnJvciwgaW5mbzogJFNpZGViYXJQYWNrYWdlKTogdm9pZCB7XG4gICAgICAgIGlmIChfLmlzTmlsKGVycikpIHtcbiAgICAgICAgICBjb25zdCB7IHYgfSA9IHJlcS5xdWVyeTtcbiAgICAgICAgICBsZXQgc2lkZUJhckluZm86IGFueSA9IF8uY2xvbmUoaW5mbyk7XG4gICAgICAgICAgc2lkZUJhckluZm8udmVyc2lvbnMgPSBjb252ZXJ0RGlzdFJlbW90ZVRvTG9jYWxUYXJiYWxsVXJscyhpbmZvLCByZXEsIGNvbmZpZy51cmxfcHJlZml4KS52ZXJzaW9ucztcbiAgICAgICAgICBpZiAoaXNWZXJzaW9uVmFsaWQoaW5mbywgdikpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdCA9IHNpZGVCYXJJbmZvLnZlcnNpb25zW3ZdO1xuICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvciA9IGZvcm1hdEF1dGhvcihzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0ID0gc2lkZUJhckluZm8udmVyc2lvbnNbaW5mb1tESVNUX1RBR1NdLmxhdGVzdF07XG4gICAgICAgICAgICBpZiAoc2lkZUJhckluZm8/LmxhdGVzdCkge1xuICAgICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yID0gZm9ybWF0QXV0aG9yKHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5OT1RfRk9VTkQpO1xuICAgICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc2lkZUJhckluZm8gPSBkZWxldGVQcm9wZXJ0aWVzKFsncmVhZG1lJywgJ19hdHRhY2htZW50cycsICdfcmV2JywgJ25hbWUnXSwgc2lkZUJhckluZm8pO1xuICAgICAgICAgIGlmIChjb25maWcud2ViKSB7XG4gICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbywgY29uZmlnLndlYi5ncmF2YXRhcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvID0gYWRkR3JhdmF0YXJTdXBwb3J0KHNpZGVCYXJJbmZvKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV4dChzaWRlQmFySW5mbyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5OT1RfRk9VTkQpO1xuICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkZFBhY2thZ2VXZWJBcGk7XG4iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3BhY2thZ2UudHMiXSwibmFtZXMiOlsiZ2V0T3JkZXIiLCJvcmRlciIsImFkZFBhY2thZ2VXZWJBcGkiLCJzdG9yYWdlIiwiYXV0aCIsImNvbmZpZyIsImNhbiIsInBrZ1JvdXRlciIsImNoZWNrQWxsb3ciLCJuYW1lIiwicmVtb3RlVXNlciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWxsb3dfYWNjZXNzIiwicGFja2FnZU5hbWUiLCJlcnIiLCJhbGxvd2VkIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsImdldExvY2FsRGF0YWJhc2UiLCJwYWNrYWdlcyIsInByb2Nlc3NQYWNrYWdlcyIsInBlcm1pc3Npb25zIiwicGFja2dlc0NvcHkiLCJzbGljZSIsInBrZyIsInBrZ0NvcHkiLCJhdXRob3IiLCJyZW1vdGVfdXNlciIsIndlYiIsImF2YXRhciIsImVtYWlsIiwiZ3JhdmF0YXIiLCJfIiwiaXNOaWwiLCJkaXN0IiwiaXNOdWxsIiwidGFyYmFsbCIsInVybF9wcmVmaXgiLCJwdXNoIiwibG9nZ2VyIiwiZXJyb3IiLCJzb3J0X3BhY2thZ2VzIiwiRXJyb3JDb2RlIiwiZ2V0SW50ZXJuYWxFcnJvciIsInBhcmFtcyIsInNjb3BlIiwicGFja2FnZSIsImdldFBhY2thZ2UiLCJ1cGxpbmtzTG9vayIsImNhbGxiYWNrIiwiaW5mbyIsInNldCIsIkhFQURFUl9UWVBFIiwiQ09OVEVOVF9UWVBFIiwiSEVBREVSUyIsIlRFWFRfUExBSU4iLCJyZWZlcmVyIiwicGF0aG5hbWUiLCJVUkwiLCJ1bmRlZmluZWQiLCJyZWFkbWUiLCJrZWVwVXBMaW5rRGF0YSIsInYiLCJxdWVyeSIsInNpZGVCYXJJbmZvIiwiY2xvbmUiLCJ2ZXJzaW9ucyIsImxhdGVzdCIsIkRJU1RfVEFHUyIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiTk9UX0ZPVU5EIiwiZW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7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Q0Q7QUFDRjs7QUFDRFIsVUFBQUEsV0FBVyxHQUFHLDZCQUFpQixDQUFDLFFBQUQsRUFBVyxjQUFYLEVBQTJCLE1BQTNCLEVBQW1DLE1BQW5DLENBQWpCLEVBQTZEQSxXQUE3RCxDQUFkOztBQUNBLGNBQUkvRCxNQUFNLENBQUMyQixHQUFYLEVBQWdCO0FBQ2RvQyxZQUFBQSxXQUFXLEdBQUcsK0JBQW1CQSxXQUFuQixFQUFnQy9ELE1BQU0sQ0FBQzJCLEdBQVAsQ0FBV0csUUFBM0MsQ0FBZDtBQUNELFdBRkQsTUFFTztBQUNMaUMsWUFBQUEsV0FBVyxHQUFHLCtCQUFtQkEsV0FBbkIsQ0FBZDtBQUNEOztBQUNEL0MsVUFBQUEsSUFBSSxDQUFDK0MsV0FBRCxDQUFKO0FBQ0QsU0F6QkQsTUF5Qk87QUFDTGhELFVBQUFBLEdBQUcsQ0FBQ3FELE1BQUosQ0FBV0MsdUJBQVlDLFNBQXZCO0FBQ0F2RCxVQUFBQSxHQUFHLENBQUN3RCxHQUFKO0FBQ0Q7QUFDRjtBQW5DZ0IsS0FBbkI7QUFxQ0QsR0F4Q0Q7QUEwQ0EsU0FBT3JFLFNBQVA7QUFDRDs7ZUFFY0wsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBDb25maWcsIFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7XG4gIGFkZFNjb3BlLFxuICBhZGRHcmF2YXRhclN1cHBvcnQsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIHNvcnRCeU5hbWUsXG4gIHBhcnNlUmVhZG1lLFxuICBmb3JtYXRBdXRob3IsXG4gIGNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzLFxuICBnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaSxcbiAgaXNWZXJzaW9uVmFsaWQsXG4gIEVycm9yQ29kZSxcbn0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IGFsbG93IH0gZnJvbSAnLi4vLi4vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBESVNUX1RBR1MsIEhFQURFUl9UWVBFLCBIRUFERVJTLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVHcmF2YXRhclVybCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3VzZXInO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBJQXV0aCwgJFJlc3BvbnNlRXh0ZW5kLCAkUmVxdWVzdEV4dGVuZCwgJE5leHRGdW5jdGlvblZlciwgSVN0b3JhZ2VIYW5kbGVyLCAkU2lkZWJhclBhY2thZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmNvbnN0IGdldE9yZGVyID0gKG9yZGVyID0gJ2FzYycpID0+IHtcbiAgcmV0dXJuIG9yZGVyID09PSAnYXNjJztcbn07XG5cbmV4cG9ydCB0eXBlIFBhY2tjYWdlRXh0ID0gUGFja2FnZSAmIHsgYXV0aG9yOiBhbnk7IGRpc3Q/OiB7IHRhcmJhbGw6IHN0cmluZyB9IH07XG5cbmZ1bmN0aW9uIGFkZFBhY2thZ2VXZWJBcGkoc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyLCBhdXRoOiBJQXV0aCwgY29uZmlnOiBDb25maWcpOiBSb3V0ZXIge1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoKTtcbiAgY29uc3QgcGtnUm91dGVyID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG5cbiAgY29uc3QgY2hlY2tBbGxvdyA9IChuYW1lLCByZW1vdGVVc2VyKTogUHJvbWlzZTxib29sZWFuPiA9PlxuICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF1dGguYWxsb3dfYWNjZXNzKHsgcGFja2FnZU5hbWU6IG5hbWUgfSwgcmVtb3RlVXNlciwgKGVyciwgYWxsb3dlZCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKGFsbG93ZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAvLyBHZXQgbGlzdCBvZiBhbGwgdmlzaWJsZSBwYWNrYWdlXG4gIHBrZ1JvdXRlci5nZXQoJy9wYWNrYWdlcycsIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIHN0b3JhZ2UuZ2V0TG9jYWxEYXRhYmFzZShhc3luYyBmdW5jdGlvbiAoZXJyLCBwYWNrYWdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NQYWNrYWdlcyhwYWNrYWdlczogUGFja2NhZ2VFeHRbXSA9IFtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnM6IFBhY2tjYWdlRXh0W10gPSBbXTtcbiAgICAgICAgY29uc3QgcGFja2dlc0NvcHkgPSBwYWNrYWdlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGNvbnN0IHBrZyBvZiBwYWNrZ2VzQ29weSkge1xuICAgICAgICAgIGNvbnN0IHBrZ0NvcHkgPSB7IC4uLnBrZyB9O1xuICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yID0gZm9ybWF0QXV0aG9yKHBrZy5hdXRob3IpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoYXdhaXQgY2hlY2tBbGxvdyhwa2cubmFtZSwgcmVxLnJlbW90ZV91c2VyKSkge1xuICAgICAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yLmF2YXRhciA9IGdlbmVyYXRlR3JhdmF0YXJVcmwocGtnQ29weS5hdXRob3IuZW1haWwsIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICghXy5pc05pbChwa2dDb3B5LmRpc3QpICYmICFfLmlzTnVsbChwa2dDb3B5LmRpc3QudGFyYmFsbCkpIHtcbiAgICAgICAgICAgICAgICBwa2dDb3B5LmRpc3QudGFyYmFsbCA9IGdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpKHBrZ0NvcHkuZGlzdC50YXJiYWxsLCBwa2cubmFtZSwgcmVxLCBjb25maWcudXJsX3ByZWZpeCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGVybWlzc2lvbnMucHVzaChwa2dDb3B5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcih7IG5hbWU6IHBrZy5uYW1lLCBlcnJvcjogZXJyIH0sICdwZXJtaXNzaW9uIHByb2Nlc3MgZm9yIEB7bmFtZX0gaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgd2ViIH0gPSBjb25maWc7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBvcmRlcjogYm9vbGVhbiA9IGNvbmZpZy53ZWIgPyBnZXRPcmRlcih3ZWIuc29ydF9wYWNrYWdlcykgOiB0cnVlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0KHNvcnRCeU5hbWUoYXdhaXQgcHJvY2Vzc1BhY2thZ2VzKHBhY2thZ2VzKSwgb3JkZXIpKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoRXJyb3JDb2RlLmdldEludGVybmFsRXJyb3IoKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIEdldCBwYWNrYWdlIHJlYWRtZVxuICBwa2dSb3V0ZXIuZ2V0KCcvcGFja2FnZS9yZWFkbWUvKEA6c2NvcGUvKT86cGFja2FnZS86dmVyc2lvbj8nLCBjYW4oJ2FjY2VzcycpLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMuc2NvcGUgPyBhZGRTY29wZShyZXEucGFyYW1zLnNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVyciwgaW5mbyk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5zZXQoSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFLCBIRUFERVJTLlRFWFRfUExBSU4pO1xuICAgICAgICBjb25zdCByZWZlcmVyID0gcmVxLmdldCgnUmVmZXJlcicpO1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHJlZmVyZXIgPyBuZXcgVVJMKHJlZmVyZXIpLnBhdGhuYW1lIDogdW5kZWZpbmVkO1xuICAgICAgICBuZXh0KHBhcnNlUmVhZG1lKGluZm8ubmFtZSwgaW5mby5yZWFkbWUsIHsgcGF0aG5hbWUgfSkpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcGtnUm91dGVyLmdldCgnL3NpZGViYXIvKEA6c2NvcGUvKT86cGFja2FnZScsIGNhbignYWNjZXNzJyksIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lOiBzdHJpbmcgPSByZXEucGFyYW1zLnNjb3BlID8gYWRkU2NvcGUocmVxLnBhcmFtcy5zY29wZSwgcmVxLnBhcmFtcy5wYWNrYWdlKSA6IHJlcS5wYXJhbXMucGFja2FnZTtcblxuICAgIHN0b3JhZ2UuZ2V0UGFja2FnZSh7XG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAga2VlcFVwTGlua0RhdGE6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVycjogRXJyb3IsIGluZm86ICRTaWRlYmFyUGFja2FnZSk6IHZvaWQge1xuICAgICAgICBpZiAoXy5pc05pbChlcnIpKSB7XG4gICAgICAgICAgY29uc3QgeyB2IH0gPSByZXEucXVlcnk7XG4gICAgICAgICAgbGV0IHNpZGVCYXJJbmZvOiBhbnkgPSBfLmNsb25lKGluZm8pO1xuICAgICAgICAgIHNpZGVCYXJJbmZvLnZlcnNpb25zID0gY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMoaW5mbywgcmVxLCBjb25maWcudXJsX3ByZWZpeCkudmVyc2lvbnM7XG4gICAgICAgICAgaWYgKGlzVmVyc2lvblZhbGlkKGluZm8sIHYpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QgPSBzaWRlQmFySW5mby52ZXJzaW9uc1t2XTtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IgPSBmb3JtYXRBdXRob3Ioc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdCA9IHNpZGVCYXJJbmZvLnZlcnNpb25zW2luZm9bRElTVF9UQUdTXS5sYXRlc3RdO1xuICAgICAgICAgICAgaWYgKHNpZGVCYXJJbmZvPy5sYXRlc3QpIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvciA9IGZvcm1hdEF1dGhvcihzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZGVCYXJJbmZvID0gZGVsZXRlUHJvcGVydGllcyhbJ3JlYWRtZScsICdfYXR0YWNobWVudHMnLCAnX3JldicsICduYW1lJ10sIHNpZGVCYXJJbmZvKTtcbiAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgc2lkZUJhckluZm8gPSBhZGRHcmF2YXRhclN1cHBvcnQoc2lkZUJhckluZm8sIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQoc2lkZUJhckluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBwa2dSb3V0ZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkZFBhY2thZ2VXZWJBcGk7XG4iXX0=
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
+
var _express = require("express");
|
|
9
|
+
|
|
8
10
|
var _search = _interopRequireDefault(require("../../../lib/search"));
|
|
9
11
|
|
|
10
12
|
var _constants = require("../../../lib/constants");
|
|
@@ -15,8 +17,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
15
17
|
* @prettier
|
|
16
18
|
* @flow
|
|
17
19
|
*/
|
|
18
|
-
function addSearchWebApi(
|
|
20
|
+
function addSearchWebApi(storage, auth) {
|
|
21
|
+
const route = (0, _express.Router)();
|
|
22
|
+
/* eslint new-cap: 0 */
|
|
19
23
|
// Search package
|
|
24
|
+
|
|
20
25
|
route.get('/search/:anything', function (req, res, next) {
|
|
21
26
|
const results = _search.default.query(req.params.anything); // FUTURE: figure out here the correct type
|
|
22
27
|
|
|
@@ -55,8 +60,9 @@ function addSearchWebApi(route, storage, auth) {
|
|
|
55
60
|
next([]);
|
|
56
61
|
}
|
|
57
62
|
});
|
|
63
|
+
return route;
|
|
58
64
|
}
|
|
59
65
|
|
|
60
66
|
var _default = addSearchWebApi;
|
|
61
67
|
exports.default = _default;
|
|
62
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3NlYXJjaC50cyJdLCJuYW1lcyI6WyJhZGRTZWFyY2hXZWJBcGkiLCJzdG9yYWdlIiwiYXV0aCIsInJvdXRlIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsInJlc3VsdHMiLCJTZWFyY2giLCJxdWVyeSIsInBhcmFtcyIsImFueXRoaW5nIiwicGFja2FnZXMiLCJnZXRQYWNrYWdlSW5mbyIsImkiLCJnZXRQYWNrYWdlIiwibmFtZSIsInJlZiIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJlcnIiLCJlbnRyeSIsImFsbG93X2FjY2VzcyIsInBhY2thZ2VOYW1lIiwicmVtb3RlX3VzZXIiLCJhbGxvd2VkIiwicHVzaCIsInZlcnNpb25zIiwiRElTVF9UQUdTIiwibGF0ZXN0IiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0E7O0FBRUE7O0FBQ0E7Ozs7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQVFBLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQW1EQyxJQUFuRCxFQUF3RTtBQUN0RSxRQUFNQyxLQUFLLEdBQUcsc0JBQWQ7QUFBd0I7QUFDeEI7O0FBQ0FBLEVBQUFBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLG1CQUFWLEVBQStCLFVBQVVDLEdBQVYsRUFBK0JDLEdBQS9CLEVBQXFEQyxJQUFyRCxFQUFtRjtBQUNoSCxVQUFNQyxPQUFZLEdBQUdDLGdCQUFPQyxLQUFQLENBQWFMLEdBQUcsQ0FBQ00sTUFBSixDQUFXQyxRQUF4QixDQUFyQixDQURnSCxDQUVoSDs7O0FBQ0EsVUFBTUMsUUFBZSxHQUFHLEVBQXhCOztBQUVBLFVBQU1DLGNBQWMsR0FBRyxVQUFVQyxDQUFWLEVBQW1CO0FBQ3hDZCxNQUFBQSxPQUFPLENBQUNlLFVBQVIsQ0FBbUI7QUFDakJDLFFBQUFBLElBQUksRUFBRVQsT0FBTyxDQUFDTyxDQUFELENBQVAsQ0FBV0csR0FEQTtBQUVqQkMsUUFBQUEsV0FBVyxFQUFFLEtBRkk7QUFHakJDLFFBQUFBLFFBQVEsRUFBRSxDQUFDQyxHQUFELEVBQU1DLEtBQU4sS0FBK0I7QUFDdkMsY0FBSSxDQUFDRCxHQUFELElBQVFDLEtBQVosRUFBbUI7QUFDakJwQixZQUFBQSxJQUFJLENBQUNxQixZQUFMLENBQWtCO0FBQUVDLGNBQUFBLFdBQVcsRUFBRUYsS0FBSyxDQUFDTDtBQUFyQixhQUFsQixFQUErQ1osR0FBRyxDQUFDb0IsV0FBbkQsRUFBZ0UsVUFBVUosR0FBVixFQUFlSyxPQUFmLEVBQThCO0FBQzVGLGtCQUFJTCxHQUFHLElBQUksQ0FBQ0ssT0FBWixFQUFxQjtBQUNuQjtBQUNEOztBQUVEYixjQUFBQSxRQUFRLENBQUNjLElBQVQsQ0FBY0wsS0FBSyxDQUFDTSxRQUFOLENBQWVOLEtBQUssQ0FBQ08sb0JBQUQsQ0FBTCxDQUFpQkMsTUFBaEMsQ0FBZDtBQUNELGFBTkQ7QUFPRDs7QUFFRCxjQUFJZixDQUFDLElBQUlQLE9BQU8sQ0FBQ3VCLE1BQVIsR0FBaUIsQ0FBMUIsRUFBNkI7QUFDM0J4QixZQUFBQSxJQUFJLENBQUNNLFFBQUQsQ0FBSjtBQUNELFdBRkQsTUFFTztBQUNMQyxZQUFBQSxjQUFjLENBQUNDLENBQUMsR0FBRyxDQUFMLENBQWQ7QUFDRDtBQUNGO0FBbkJnQixPQUFuQjtBQXFCRCxLQXRCRDs7QUF3QkEsUUFBSVAsT0FBTyxDQUFDdUIsTUFBWixFQUFvQjtBQUNsQmpCLE1BQUFBLGNBQWMsQ0FBQyxDQUFELENBQWQ7QUFDRCxLQUZELE1BRU87QUFDTFAsTUFBQUEsSUFBSSxDQUFDLEVBQUQsQ0FBSjtBQUNEO0FBQ0YsR0FsQ0Q7QUFvQ0EsU0FBT0osS0FBUDtBQUNEOztlQUVjSCxlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgU2VhcmNoIGZyb20gJy4uLy4uLy4uL2xpYi9zZWFyY2gnO1xuaW1wb3J0IHsgRElTVF9UQUdTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJQXV0aCwgJFJlc3BvbnNlRXh0ZW5kLCAkUmVxdWVzdEV4dGVuZCwgJE5leHRGdW5jdGlvblZlciwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5mdW5jdGlvbiBhZGRTZWFyY2hXZWJBcGkoc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyLCBhdXRoOiBJQXV0aCk6IFJvdXRlciB7XG4gIGNvbnN0IHJvdXRlID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG4gIC8vIFNlYXJjaCBwYWNrYWdlXG4gIHJvdXRlLmdldCgnL3NlYXJjaC86YW55dGhpbmcnLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBTZWFyY2gucXVlcnkocmVxLnBhcmFtcy5hbnl0aGluZyk7XG4gICAgLy8gRlVUVVJFOiBmaWd1cmUgb3V0IGhlcmUgdGhlIGNvcnJlY3QgdHlwZVxuICAgIGNvbnN0IHBhY2thZ2VzOiBhbnlbXSA9IFtdO1xuXG4gICAgY29uc3QgZ2V0UGFja2FnZUluZm8gPSBmdW5jdGlvbiAoaSk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgbmFtZTogcmVzdWx0c1tpXS5yZWYsXG4gICAgICAgIHVwbGlua3NMb29rOiBmYWxzZSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnIsIGVudHJ5OiBQYWNrYWdlKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKCFlcnIgJiYgZW50cnkpIHtcbiAgICAgICAgICAgIGF1dGguYWxsb3dfYWNjZXNzKHsgcGFja2FnZU5hbWU6IGVudHJ5Lm5hbWUgfSwgcmVxLnJlbW90ZV91c2VyLCBmdW5jdGlvbiAoZXJyLCBhbGxvd2VkKTogdm9pZCB7XG4gICAgICAgICAgICAgIGlmIChlcnIgfHwgIWFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYWNrYWdlcy5wdXNoKGVudHJ5LnZlcnNpb25zW2VudHJ5W0RJU1RfVEFHU10ubGF0ZXN0XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaSA+PSByZXN1bHRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5leHQocGFja2FnZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYWNrYWdlSW5mbyhpICsgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCkge1xuICAgICAgZ2V0UGFja2FnZUluZm8oMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoW10pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRTZWFyY2hXZWJBcGk7XG4iXX0=
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
|
|
10
|
+
var _express = require("express");
|
|
11
|
+
|
|
10
12
|
var _constants = require("../../../lib/constants");
|
|
11
13
|
|
|
12
14
|
var _utils = require("../../../lib/utils");
|
|
@@ -17,9 +19,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* @prettier
|
|
20
|
-
* @flow
|
|
21
22
|
*/
|
|
22
|
-
function addUserAuthApi(
|
|
23
|
+
function addUserAuthApi(auth, config) {
|
|
24
|
+
const route = (0, _express.Router)();
|
|
25
|
+
/* eslint new-cap: 0 */
|
|
26
|
+
|
|
23
27
|
route.post('/login', function (req, res, next) {
|
|
24
28
|
const {
|
|
25
29
|
username,
|
|
@@ -32,6 +36,7 @@ function addUserAuthApi(route, auth, config) {
|
|
|
32
36
|
} else {
|
|
33
37
|
req.remote_user = user;
|
|
34
38
|
const jWTSignOptions = (0, _authUtils.getSecurity)(config).web.sign;
|
|
39
|
+
res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
|
|
35
40
|
next({
|
|
36
41
|
token: await auth.jwtEncrypt(user, jWTSignOptions),
|
|
37
42
|
username: req.remote_user.name
|
|
@@ -69,8 +74,9 @@ function addUserAuthApi(route, auth, config) {
|
|
|
69
74
|
return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_REQUEST, _constants.APP_ERROR.PASSWORD_VALIDATION));
|
|
70
75
|
}
|
|
71
76
|
});
|
|
77
|
+
return route;
|
|
72
78
|
}
|
|
73
79
|
|
|
74
80
|
var _default = addUserAuthApi;
|
|
75
81
|
exports.default = _default;
|
|
76
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3VzZXIudHMiXSwibmFtZXMiOlsiYWRkVXNlckF1dGhBcGkiLCJhdXRoIiwiY29uZmlnIiwicm91dGUiLCJwb3N0IiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJib2R5IiwiYXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImVycm9yQ29kZSIsIm1lc3NhZ2UiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIklOVEVSTkFMX0VSUk9SIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsInJlbW90ZV91c2VyIiwialdUU2lnbk9wdGlvbnMiLCJ3ZWIiLCJzaWduIiwic2V0IiwiSEVBREVSUyIsIkNBQ0hFX0NPTlRST0wiLCJ0b2tlbiIsImp3dEVuY3J5cHQiLCJuYW1lIiwicHV0IiwiXyIsImlzTmlsIiwic3RhdHVzIiwiQVBJX0VSUk9SIiwiTVVTVF9CRV9MT0dHRUQiLCJuZXciLCJjaGFuZ2VQYXNzd29yZCIsIm9sZCIsImlzVXBkYXRlZCIsIm9rIiwiZ2V0SW50ZXJuYWxFcnJvciIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkJBRF9SRVFVRVNUIiwiQVBQX0VSUk9SIiwiUEFTU1dPUkRfVkFMSURBVElPTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQUVBOztBQUVBOztBQUNBOzs7O0FBVkE7QUFDQTtBQUNBO0FBVUEsU0FBU0EsY0FBVCxDQUF3QkMsSUFBeEIsRUFBcUNDLE1BQXJDLEVBQTZEO0FBQzNELFFBQU1DLEtBQUssR0FBRyxzQkFBZDtBQUF3Qjs7QUFDeEJBLEVBQUFBLEtBQUssQ0FBQ0MsSUFBTixDQUFXLFFBQVgsRUFBcUIsVUFBVUMsR0FBVixFQUF3QkMsR0FBeEIsRUFBdUNDLElBQXZDLEVBQXFFO0FBQ3hGLFVBQU07QUFBRUMsTUFBQUEsUUFBRjtBQUFZQyxNQUFBQTtBQUFaLFFBQXlCSixHQUFHLENBQUNLLElBQW5DO0FBRUFULElBQUFBLElBQUksQ0FBQ1UsWUFBTCxDQUFrQkgsUUFBbEIsRUFBNEJDLFFBQTVCLEVBQXNDLE9BQU9HLEdBQVAsRUFBWUMsSUFBWixLQUFnRDtBQUNwRixVQUFJRCxHQUFKLEVBQVM7QUFDUCxjQUFNRSxTQUFTLEdBQUdGLEdBQUcsQ0FBQ0csT0FBSixHQUFjQyx1QkFBWUMsWUFBMUIsR0FBeUNELHVCQUFZRSxjQUF2RTtBQUNBWCxRQUFBQSxJQUFJLENBQUNZLGlCQUFVQyxPQUFWLENBQWtCTixTQUFsQixFQUE2QkYsR0FBRyxDQUFDRyxPQUFqQyxDQUFELENBQUo7QUFDRCxPQUhELE1BR087QUFDTFYsUUFBQUEsR0FBRyxDQUFDZ0IsV0FBSixHQUFrQlIsSUFBbEI7QUFDQSxjQUFNUyxjQUE4QixHQUFHLDRCQUFZcEIsTUFBWixFQUFvQnFCLEdBQXBCLENBQXdCQyxJQUEvRDtBQUNBbEIsUUFBQUEsR0FBRyxDQUFDbUIsR0FBSixDQUFRQyxtQkFBUUMsYUFBaEIsRUFBK0Isb0JBQS9CO0FBQ0FwQixRQUFBQSxJQUFJLENBQUM7QUFDSHFCLFVBQUFBLEtBQUssRUFBRSxNQUFNM0IsSUFBSSxDQUFDNEIsVUFBTCxDQUFnQmhCLElBQWhCLEVBQXNCUyxjQUF0QixDQURWO0FBRUhkLFVBQUFBLFFBQVEsRUFBRUgsR0FBRyxDQUFDZ0IsV0FBSixDQUFnQlM7QUFGdkIsU0FBRCxDQUFKO0FBSUQ7QUFDRixLQWJEO0FBY0QsR0FqQkQ7QUFtQkEzQixFQUFBQSxLQUFLLENBQUM0QixHQUFOLENBQVUsaUJBQVYsRUFBNkIsVUFBVTFCLEdBQVYsRUFBd0JDLEdBQXhCLEVBQXVDQyxJQUF2QyxFQUFxRTtBQUNoRyxRQUFJeUIsZ0JBQUVDLEtBQUYsQ0FBUTVCLEdBQUcsQ0FBQ2dCLFdBQUosQ0FBZ0JTLElBQXhCLENBQUosRUFBbUM7QUFDakN4QixNQUFBQSxHQUFHLENBQUM0QixNQUFKLENBQVdsQix1QkFBWUMsWUFBdkI7QUFDQSxhQUFPVixJQUFJLENBQUM7QUFDVjtBQUNBUSxRQUFBQSxPQUFPLEVBQUVvQixxQkFBVUM7QUFGVCxPQUFELENBQVg7QUFJRDs7QUFFRCxVQUFNO0FBQUUzQixNQUFBQTtBQUFGLFFBQWVKLEdBQUcsQ0FBQ0ssSUFBekI7QUFDQSxVQUFNO0FBQUVvQixNQUFBQTtBQUFGLFFBQVd6QixHQUFHLENBQUNnQixXQUFyQjs7QUFFQSxRQUFJLGlDQUFpQlosUUFBUSxDQUFDNEIsR0FBMUIsTUFBbUMsS0FBdkMsRUFBOEM7QUFDNUNwQyxNQUFBQSxJQUFJLENBQUNxQyxjQUFMLENBQW9CUixJQUFwQixFQUFvQ3JCLFFBQVEsQ0FBQzhCLEdBQTdDLEVBQWtEOUIsUUFBUSxDQUFDNEIsR0FBM0QsRUFBZ0UsQ0FBQ3pCLEdBQUQsRUFBTTRCLFNBQU4sS0FBMEI7QUFDeEYsWUFBSVIsZ0JBQUVDLEtBQUYsQ0FBUXJCLEdBQVIsS0FBZ0I0QixTQUFwQixFQUErQjtBQUM3QmpDLFVBQUFBLElBQUksQ0FBQztBQUNIa0MsWUFBQUEsRUFBRSxFQUFFO0FBREQsV0FBRCxDQUFKO0FBR0QsU0FKRCxNQUlPO0FBQ0wsaUJBQU9sQyxJQUFJLENBQUNZLGlCQUFVdUIsZ0JBQVYsQ0FBMkJQLHFCQUFVUSxxQkFBckMsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixPQVJEO0FBU0QsS0FWRCxNQVVPO0FBQ0wsYUFBT3BDLElBQUksQ0FBQ1ksaUJBQVVDLE9BQVYsQ0FBa0JKLHVCQUFZNEIsV0FBOUIsRUFBMkNDLHFCQUFVQyxtQkFBckQsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixHQXpCRDtBQTJCQSxTQUFPM0MsS0FBUDtBQUNEOztlQUVjSCxjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGV4cHJlc3MsIHsgUm91dGVyLCBSZXNwb25zZSwgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBKV1RTaWduT3B0aW9ucyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJQXV0aCwgJE5leHRGdW5jdGlvblZlciB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBnZXRTZWN1cml0eSwgdmFsaWRhdGVQYXNzd29yZCB9IGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoLXV0aWxzJztcblxuZnVuY3Rpb24gYWRkVXNlckF1dGhBcGkoYXV0aDogSUF1dGgsIGNvbmZpZzogQ29uZmlnKTogUm91dGVyIHtcbiAgY29uc3Qgcm91dGUgPSBSb3V0ZXIoKTsgLyogZXNsaW50IG5ldy1jYXA6IDAgKi9cbiAgcm91dGUucG9zdCgnL2xvZ2luJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0gPSByZXEuYm9keTtcblxuICAgIGF1dGguYXV0aGVudGljYXRlKHVzZXJuYW1lLCBwYXNzd29yZCwgYXN5bmMgKGVyciwgdXNlcjogUmVtb3RlVXNlcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubWVzc2FnZSA/IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCA6IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SO1xuICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG4gICAgICAgIGNvbnN0IGpXVFNpZ25PcHRpb25zOiBKV1RTaWduT3B0aW9ucyA9IGdldFNlY3VyaXR5KGNvbmZpZykud2ViLnNpZ247XG4gICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgIG5leHQoe1xuICAgICAgICAgIHRva2VuOiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQodXNlciwgaldUU2lnbk9wdGlvbnMpLFxuICAgICAgICAgIHVzZXJuYW1lOiByZXEucmVtb3RlX3VzZXIubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJvdXRlLnB1dCgnL3Jlc2V0X3Bhc3N3b3JkJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSkge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAvLyBGVVRVUkU6IHVwZGF0ZSB0byBhIG1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlXG4gICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgaWYgKHZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQubmV3KSA9PT0gZmFsc2UpIHtcbiAgICAgIGF1dGguY2hhbmdlUGFzc3dvcmQobmFtZSBhcyBzdHJpbmcsIHBhc3N3b3JkLm9sZCwgcGFzc3dvcmQubmV3LCAoZXJyLCBpc1VwZGF0ZWQpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSAmJiBpc1VwZGF0ZWQpIHtcbiAgICAgICAgICBuZXh0KHtcbiAgICAgICAgICAgIG9rOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNULCBBUFBfRVJST1IuUEFTU1dPUkRfVkFMSURBVElPTikpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRVc2VyQXV0aEFwaTtcbiJdfQ==
|
package/build/api/web/index.js
CHANGED
|
@@ -83,7 +83,9 @@ function _default(config, auth, storage) {
|
|
|
83
83
|
/* eslint new-cap:off */
|
|
84
84
|
|
|
85
85
|
|
|
86
|
-
const router = _express.default.Router();
|
|
86
|
+
const router = _express.default.Router(); // run in production mode by default, just in case
|
|
87
|
+
// it shouldn't make any difference anyway
|
|
88
|
+
|
|
87
89
|
|
|
88
90
|
router.use(auth.webUIJWTmiddleware());
|
|
89
91
|
router.use(setSecurityWebHeaders); // static assets
|
|
@@ -107,6 +109,7 @@ function _default(config, auth, storage) {
|
|
|
107
109
|
// Use POSIX version `path.posix.join` instead.
|
|
108
110
|
config.web.logo = _path.default.posix.join('/-/static/', _path.default.basename(config.web.logo));
|
|
109
111
|
router.get(config.web.logo, function (_req, res, next) {
|
|
112
|
+
// @ts-ignore
|
|
110
113
|
debug('serve custom logo web:%s - local:%s', config.web.logo, absoluteLocalFile);
|
|
111
114
|
res.sendFile(absoluteLocalFile, sendFileCallback(next));
|
|
112
115
|
});
|
|
@@ -133,4 +136,4 @@ function _default(config, auth, storage) {
|
|
|
133
136
|
});
|
|
134
137
|
return router;
|
|
135
138
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFD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WCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMscUJBQUQsQ0FBTDtBQUNELEdBSEQ7QUFLQXlCLEVBQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXLEdBQVgsRUFBZ0IsVUFBVUMsR0FBVixFQUFlQyxHQUFmLEVBQW9CaEIsSUFBcEIsRUFBMEI7QUFDeEMsNkJBQVdkLE1BQVgsRUFBbUJPLFFBQW5CLEVBQTZCQyxhQUE3QixFQUE0Q3FCLEdBQTVDLEVBQWlEQyxHQUFqRDtBQUNBaEMsSUFBQUEsS0FBSyxDQUFDLGFBQUQsQ0FBTDtBQUNELEdBSEQ7QUFLQSxTQUFPeUIsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IGxvYWRQbHVnaW4gZnJvbSAnLi4vLi4vbGliL3BsdWdpbi1sb2FkZXInO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgcmVuZGVySFRNTCBmcm9tICcuL2h0bWwvcmVuZGVySFRNTCc7XG5cbmNvbnN0IHsgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlJyk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGhlbWUoY29uZmlnKSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8uaGVhZChcbiAgICAgIGxvYWRQbHVnaW4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgICB7fSxcbiAgICAgICAgZnVuY3Rpb24gKHBsdWdpbikge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICAgIH0sXG4gICAgICAgICd2ZXJkYWNjaW8tdGhlbWUnXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuY29uc3Qgc2VuZEZpbGVDYWxsYmFjayA9IChuZXh0KSA9PiAoZXJyKSA9PiB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlcnIuc3RhdHVzID09PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChlcnIpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSB7XG4gIGxldCB7IHN0YXRpY1BhdGgsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzIH0gPSBsb2FkVGhlbWUoY29uZmlnKSB8fCByZXF1aXJlKCdAdmVyZGFjY2lvL3VpLXRoZW1lJykoKTtcbiAgZGVidWcoJ3N0YXRpYyBwYXRoICVvJywgc3RhdGljUGF0aCk7XG4gIFNlYXJjaC5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuXG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICByb3V0ZXIudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZXIudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG5cbiAgLy8gc3RhdGljIGFzc2V0c1xuICByb3V0ZXIuZ2V0KCcvLS9zdGF0aWMvKicsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVxLnBhcmFtc1swXTtcbiAgICBjb25zdCBmaWxlID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gO1xuICAgIGRlYnVnKCdyZW5kZXIgc3RhdGljIGZpbGUgJW8nLCBmaWxlKTtcbiAgICByZXMuc2VuZEZpbGUoZmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gIH0pO1xuXG4gIC8vIGxvZ29cbiAgaWYgKGNvbmZpZz8ud2ViPy5sb2dvICYmICFpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICAvLyBVUkkgcmVsYXRlZCB0byBhIGxvY2FsIGZpbGVcbiAgICBjb25zdCBhYnNvbHV0ZUxvY2FsRmlsZSA9IHBhdGgucG9zaXgucmVzb2x2ZShjb25maWcud2ViLmxvZ28pO1xuICAgIGRlYnVnKCdzZXJ2ZSBsb2NhbCBsb2dvICVzJywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhhYnNvbHV0ZUxvY2FsRmlsZSkgJiYgdHlwZW9mIGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUsIGZzLmNvbnN0YW50cy5SX09LKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gTm90ZTogYHBhdGguam9pbmAgd2lsbCBicmVhayBvbiBXaW5kb3dzLCBiZWNhdXNlIGl0IHRyYW5zZm9ybXMgYC9gIHRvIGBcXGBcbiAgICAgICAgLy8gVXNlIFBPU0lYIHZlcnNpb24gYHBhdGgucG9zaXguam9pbmAgaW5zdGVhZC5cbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gcGF0aC5wb3NpeC5qb2luKCcvLS9zdGF0aWMvJywgcGF0aC5iYXNlbmFtZShjb25maWcud2ViLmxvZ28pKTtcbiAgICAgICAgcm91dGVyLmdldChjb25maWcud2ViLmxvZ28sIGZ1bmN0aW9uIChfcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgICBkZWJ1Zygnc2VydmUgY3VzdG9tIGxvZ28gIHdlYjolcyAtIGxvY2FsOiVzJywgY29uZmlnLndlYi5sb2dvLCBhYnNvbHV0ZUxvY2FsRmlsZSk7XG4gICAgICAgICAgcmVzLnNlbmRGaWxlKGFic29sdXRlTG9jYWxGaWxlLCBzZW5kRmlsZUNhbGxiYWNrKG5leHQpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnKCdlbmFibGVkIGN1c3RvbSBsb2dvICVzJywgY29uZmlnLndlYi5sb2dvKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbG9nZ2VyLndhcm4oYHdlYiBsb2dvIGlzIHdyb25nLCBwYXRoICR7YWJzb2x1dGVMb2NhbEZpbGV9IGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCByZWFkYWJsZWApO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgY29uZmlnLndlYi5sb2dvID0gdW5kZWZpbmVkO1xuICAgICAgbG9nZ2VyLndhcm4oYHdlYiBsb2dvIGlzIHdyb25nLCBwYXRoICR7YWJzb2x1dGVMb2NhbEZpbGV9IGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCByZWFkYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIHJvdXRlci5nZXQoJy8tL3dlYi86c2VjdGlvbi8qJywgZnVuY3Rpb24gKHJlcSwgcmVzKSB7XG4gICAgcmVuZGVySFRNTChjb25maWcsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzLCByZXEsIHJlcyk7XG4gICAgZGVidWcoJ3JlbmRlciBodG1sIHNlY3Rpb24nKTtcbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnLycsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpO1xuICAgIGRlYnVnKCdyZW5kZXIgcm9vdCcpO1xuICB9KTtcblxuICByZXR1cm4gcm91dGVyO1xufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFD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RUFBb0I7QUFDbEQsNkJBQVc5QixNQUFYLEVBQW1CTyxRQUFuQixFQUE2QkMsYUFBN0IsRUFBNENxQixHQUE1QyxFQUFpREMsR0FBakQ7QUFDQWhDLElBQUFBLEtBQUssQ0FBQyxxQkFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBeUIsRUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVcsR0FBWCxFQUFnQixVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0JoQixJQUFwQixFQUEwQjtBQUN4Qyw2QkFBV2QsTUFBWCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMsYUFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBLFNBQU95QixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IGxvYWRQbHVnaW4gZnJvbSAnLi4vLi4vbGliL3BsdWdpbi1sb2FkZXInO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgcmVuZGVySFRNTCBmcm9tICcuL2h0bWwvcmVuZGVySFRNTCc7XG5cbmNvbnN0IHsgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlJyk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGhlbWUoY29uZmlnKSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8uaGVhZChcbiAgICAgIGxvYWRQbHVnaW4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgICB7fSxcbiAgICAgICAgZnVuY3Rpb24gKHBsdWdpbikge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICAgIH0sXG4gICAgICAgICd2ZXJkYWNjaW8tdGhlbWUnXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuY29uc3Qgc2VuZEZpbGVDYWxsYmFjayA9IChuZXh0KSA9PiAoZXJyKSA9PiB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlcnIuc3RhdHVzID09PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChlcnIpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnOiBDb25maWcsIGF1dGgsIHN0b3JhZ2UpIHtcbiAgbGV0IHsgc3RhdGljUGF0aCwgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMgfSA9IGxvYWRUaGVtZShjb25maWcpIHx8IHJlcXVpcmUoJ0B2ZXJkYWNjaW8vdWktdGhlbWUnKSgpO1xuICBkZWJ1Zygnc3RhdGljIHBhdGggJW8nLCBzdGF0aWNQYXRoKTtcbiAgU2VhcmNoLmNvbmZpZ3VyZVN0b3JhZ2Uoc3RvcmFnZSk7XG5cbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG4gIC8vIHJ1biBpbiBwcm9kdWN0aW9uIG1vZGUgYnkgZGVmYXVsdCwganVzdCBpbiBjYXNlXG4gIC8vIGl0IHNob3VsZG4ndCBtYWtlIGFueSBkaWZmZXJlbmNlIGFueXdheVxuICByb3V0ZXIudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZXIudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG5cbiAgLy8gc3RhdGljIGFzc2V0c1xuICByb3V0ZXIuZ2V0KCcvLS9zdGF0aWMvKicsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVxLnBhcmFtc1swXTtcbiAgICBjb25zdCBmaWxlID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gO1xuICAgIGRlYnVnKCdyZW5kZXIgc3RhdGljIGZpbGUgJW8nLCBmaWxlKTtcbiAgICByZXMuc2VuZEZpbGUoZmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gIH0pO1xuXG4gIC8vIGxvZ29cbiAgaWYgKGNvbmZpZz8ud2ViPy5sb2dvICYmICFpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICAvLyBVUkkgcmVsYXRlZCB0byBhIGxvY2FsIGZpbGVcbiAgICBjb25zdCBhYnNvbHV0ZUxvY2FsRmlsZSA9IHBhdGgucG9zaXgucmVzb2x2ZShjb25maWcud2ViLmxvZ28pO1xuICAgIGRlYnVnKCdzZXJ2ZSBsb2NhbCBsb2dvICVzJywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhhYnNvbHV0ZUxvY2FsRmlsZSkgJiYgdHlwZW9mIGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUsIGZzLmNvbnN0YW50cy5SX09LKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gTm90ZTogYHBhdGguam9pbmAgd2lsbCBicmVhayBvbiBXaW5kb3dzLCBiZWNhdXNlIGl0IHRyYW5zZm9ybXMgYC9gIHRvIGBcXGBcbiAgICAgICAgLy8gVXNlIFBPU0lYIHZlcnNpb24gYHBhdGgucG9zaXguam9pbmAgaW5zdGVhZC5cbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gcGF0aC5wb3NpeC5qb2luKCcvLS9zdGF0aWMvJywgcGF0aC5iYXNlbmFtZShjb25maWcud2ViLmxvZ28pKTtcbiAgICAgICAgcm91dGVyLmdldChjb25maWcud2ViLmxvZ28sIGZ1bmN0aW9uIChfcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgZGVidWcoJ3NlcnZlIGN1c3RvbSBsb2dvICB3ZWI6JXMgLSBsb2NhbDolcycsIGNvbmZpZy53ZWIubG9nbywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgICAgICAgIHJlcy5zZW5kRmlsZShhYnNvbHV0ZUxvY2FsRmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZWJ1ZygnZW5hYmxlZCBjdXN0b20gbG9nbyAlcycsIGNvbmZpZy53ZWIubG9nbyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25maWcud2ViLmxvZ28gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHVuZGVmaW5lZDtcbiAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICB9XG4gIH1cblxuICByb3V0ZXIuZ2V0KCcvLS93ZWIvOnNlY3Rpb24vKicsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpO1xuICAgIGRlYnVnKCdyZW5kZXIgaHRtbCBzZWN0aW9uJyk7XG4gIH0pO1xuXG4gIHJvdXRlci5nZXQoJy8nLCBmdW5jdGlvbiAocmVxLCByZXMsIG5leHQpIHtcbiAgICByZW5kZXJIVE1MKGNvbmZpZywgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMsIHJlcSwgcmVzKTtcbiAgICBkZWJ1ZygncmVuZGVyIHJvb3QnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcjtcbn1cbiJdfQ==
|
package/build/lib/auth-utils.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.buildUserBuffer = buildUserBuffer;
|
|
|
8
8
|
exports.createAnonymousRemoteUser = createAnonymousRemoteUser;
|
|
9
9
|
exports.createRemoteUser = createRemoteUser;
|
|
10
10
|
exports.createSessionToken = createSessionToken;
|
|
11
|
-
exports.expireReasons = exports.defaultSecurity = void 0;
|
|
11
|
+
exports.expireReasons = exports.defaultUserRateLimiting = exports.defaultSecurity = void 0;
|
|
12
12
|
exports.getApiToken = getApiToken;
|
|
13
13
|
exports.getAuthenticatedMessage = getAuthenticatedMessage;
|
|
14
14
|
exports.getDefaultPlugins = getDefaultPlugins;
|
|
@@ -153,14 +153,21 @@ function createSessionToken() {
|
|
|
153
153
|
|
|
154
154
|
const defaultWebTokenOptions = {
|
|
155
155
|
sign: {
|
|
156
|
-
// The expiration token for the website is
|
|
157
|
-
expiresIn: _constants.
|
|
156
|
+
// The expiration token for the website is 1 hour
|
|
157
|
+
expiresIn: _constants.TIME_EXPIRATION_1H
|
|
158
158
|
},
|
|
159
159
|
verify: {}
|
|
160
160
|
};
|
|
161
161
|
const defaultApiTokenConf = {
|
|
162
162
|
legacy: true
|
|
163
|
+
}; // we limit max 1000 request per 15 minutes on user endpoints
|
|
164
|
+
|
|
165
|
+
const defaultUserRateLimiting = {
|
|
166
|
+
windowMs: 15 * 60 * 1000,
|
|
167
|
+
// 15 minutes
|
|
168
|
+
max: 1000
|
|
163
169
|
};
|
|
170
|
+
exports.defaultUserRateLimiting = defaultUserRateLimiting;
|
|
164
171
|
const defaultSecurity = {
|
|
165
172
|
web: defaultWebTokenOptions,
|
|
166
173
|
api: defaultApiTokenConf
|
|
@@ -305,4 +312,4 @@ function getMiddlewareCredentials(security, secret, authorizationHeader) {
|
|
|
305
312
|
return verifyJWTPayload(token, secret);
|
|
306
313
|
}
|
|
307
314
|
}
|
|
308
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl83RCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0U2VjdXJpdHkiLCJ3ZWIiLCJhcGkiLCJnZXRTZWN1cml0eSIsImNvbmZpZyIsInNlY3VyaXR5IiwibWVyZ2UiLCJnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSIsImJ1aWxkVXNlckJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJpc0FFU0xlZ2FjeSIsImp3dCIsImdldEFwaVRva2VuIiwiYXV0aCIsInJlbW90ZVVzZXIiLCJhZXNQYXNzd29yZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWVzRW5jcnlwdCIsInRvU3RyaW5nIiwiand0RW5jcnlwdCIsInBhcnNlQXV0aFRva2VuSGVhZGVyIiwiYXV0aG9yaXphdGlvbkhlYWRlciIsInBhcnRzIiwic3BsaXQiLCJzY2hlbWUiLCJ0b2tlbiIsInBhcnNlQmFzaWNQYXlsb2FkIiwiY3JlZGVudGlhbHMiLCJpbmRleCIsImluZGV4T2YiLCJzbGljZSIsInBhcnNlQUVTQ3JlZGVudGlhbHMiLCJzZWNyZXQiLCJ0b1VwcGVyQ2FzZSIsIlRPS0VOX0JBU0lDIiwiVE9LRU5fQkVBUkVSIiwidG9rZW5Bc0J1ZmZlciIsImV4cGlyZVJlYXNvbnMiLCJ2ZXJpZnlKV1RQYXlsb2FkIiwicGF5bG9hZCIsImVycm9yIiwiZ2V0Q29kZSIsIkhUVFBfU1RBVFVTIiwiVU5BVVRIT1JJWkVEIiwibWVzc2FnZSIsImlzQXV0aEhlYWRlclZhbGlkIiwiYXV0aG9yaXphdGlvbiIsImdldE1pZGRsZXdhcmVDcmVkZW50aWFscyIsInBhcnNlZENyZWRlbnRpYWxzIiwiaXNTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsZ0JBQVQsQ0FDTEMsUUFESyxF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L0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSWxELGdCQUFFOEUsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZW1vdGVVc2VyLCBQYWNrYWdlLCBDYWxsYmFjaywgQ29uZmlnLCBTZWN1cml0eSwgQVBJVG9rZW5PcHRpb25zLCBKV1RPcHRpb25zLCBJUGx1Z2luQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQ29va2llU2Vzc2lvblRva2VuLCBJQXV0aFdlYlVJLCBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0LCBFcnJvckNvZGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fN0QsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIsIERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWVzRGVjcnlwdCwgdmVyaWZ5UGF5bG9hZCB9IGZyb20gJy4vY3J5cHRvLXV0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFzc3dvcmQoXG4gIHBhc3N3b3JkOiBzdHJpbmcsIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICBtaW5MZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycgJiYgcGFzc3dvcmQubGVuZ3RoID49IG1pbkxlbmd0aDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBSZW1vdGVVc2VyIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBwbHVnaW5Hcm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlVXNlcihuYW1lOiBzdHJpbmcsIHBsdWdpbkdyb3Vwczogc3RyaW5nW10pOiBSZW1vdGVVc2VyIHtcbiAgY29uc3QgaXNHcm91cFZhbGlkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShwbHVnaW5Hcm91cHMpO1xuICBjb25zdCBncm91cHMgPSAoaXNHcm91cFZhbGlkID8gcGx1Z2luR3JvdXBzIDogW10pLmNvbmNhdChbUk9MRVMuJEFMTCwgUk9MRVMuJEFVVEgsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FVVEgsIFJPTEVTLkFMTF0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBncm91cHMsXG4gICAgcmVhbF9ncm91cHM6IHBsdWdpbkdyb3VwcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5vbnltb3VzIHJlbW90ZSB1c2VyIGluIGNhc2Ugbm9uZSBpcyBsb2dnZWQgaW4uXG4gKiBAcmV0dXJuIHtPYmplY3R9IHsgbmFtZTogeHgsIGdyb3VwczogW10sIHJlYWxfZ3JvdXBzOiBbXSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk6IFJlbW90ZVVzZXIge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAvLyBncm91cHMgd2l0aG91dCAnJCcgYXJlIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgZXZlbnR1YWxseVxuICAgIGdyb3VwczogW1JPTEVTLiRBTEwsIFJPTEVTLiRBTk9OWU1PVVMsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FOT05ZTU9VU10sXG4gICAgcmVhbF9ncm91cHM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dfYWN0aW9uKGFjdGlvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHVzZXI6IFJlbW90ZVVzZXIsIHBrZzogUGFja2FnZSwgY2FsbGJhY2s6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IHVzZXI6ICVvJywgdXNlcj8ubmFtZSk7XG4gICAgY29uc3QgeyBuYW1lLCBncm91cHMgfSA9IHVzZXI7XG4gICAgY29uc3QgZ3JvdXBBY2Nlc3MgPSBwa2dbYWN0aW9uXTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZ3JvdXBBY2Nlc3Muc29tZSgoZ3JvdXApID0+IG5hbWUgPT09IGdyb3VwIHx8IGdyb3Vwcy5pbmNsdWRlcyhncm91cCkpO1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiBoYXNQZXJtaXNzaW9uPyAlb30gZm9yIHVzZXI6ICVvJywgaGFzUGVybWlzc2lvbiwgdXNlcj8ubmFtZSk7XG5cbiAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgbG9nZ2VyLmluZm8oeyByZW1vdGU6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oYHVzZXIgJHtuYW1lfSBpcyBub3QgYWxsb3dlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZChgYXV0aG9yaXphdGlvbiByZXF1aXJlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogSVBsdWdpbkF1dGg8Q29uZmlnPiB7XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgY2IoRXJyb3JDb2RlLmdldEZvcmJpZGRlbihBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIGFkZF91c2VyKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgcmV0dXJuIGNiKEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIC8vIEZJWE1FOiBhbGxvd19hY3Rpb24gYW5kIGFsbG93X3B1Ymxpc2ggc2hvdWxkIGJlIGluIHRoZSBAdmVyZGFjY2lvL3R5cGVzXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X2FjY2VzczogYWxsb3dfYWN0aW9uKCdhY2Nlc3MnLCBsb2dnZXIpLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19wdWJsaXNoOiBhbGxvd19hY3Rpb24oJ3B1Ymxpc2gnLCBsb2dnZXIpLFxuICAgIGFsbG93X3VucHVibGlzaDogaGFuZGxlU3BlY2lhbFVucHVibGlzaCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvblRva2VuKCk6IENvb2tpZVNlc3Npb25Ub2tlbiB7XG4gIGNvbnN0IHRlbkhvdXJzVGltZSA9IDEwICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBucG1qcy5vcmcgc2V0cyAxMGggZXhwaXJlXG4gICAgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIHRlbkhvdXJzVGltZSksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgNyBkYXlzXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fN0QsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UodXNlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQgYXMgJyR7dXNlcn0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlckJ1ZmZlcihuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oYCR7bmFtZX06JHtwYXNzd29yZH1gLCAndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oYXV0aDogSUF1dGhXZWJVSSwgY29uZmlnOiBDb25maWcsIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIGFlc1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuXG4gIGlmIChpc0FFU0xlZ2FjeShzZWN1cml0eSkpIHtcbiAgICAvLyBmYWxsYmFjayBhbGwgZ29lcyB0byBBRVMgZW5jcnlwdGlvblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk6IHZvaWQgPT4ge1xuICAgICAgcmVzb2x2ZShhdXRoLmFlc0VuY3J5cHQoYnVpbGRVc2VyQnVmZmVyKHJlbW90ZVVzZXIubmFtZSBhcyBzdHJpbmcsIGFlc1Bhc3N3b3JkKSkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICB9KTtcbiAgfVxuICAvLyBpIGFtIHdpbGluZyB0byB1c2UgaGVyZSBfLmlzTmlsIGJ1dCBmbG93IGRvZXMgbm90IGxpa2UgaXQgeWV0LlxuICBjb25zdCB7IGp3dCB9ID0gc2VjdXJpdHkuYXBpO1xuXG4gIGlmIChqd3QgJiYgand0LnNpZ24pIHtcbiAgICByZXR1cm4gYXdhaXQgYXV0aC5qd3RFbmNyeXB0KHJlbW90ZVVzZXIsIGp3dC5zaWduKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICByZXNvbHZlKGF1dGguYWVzRW5jcnlwdChidWlsZFVzZXJCdWZmZXIocmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZywgYWVzUGFzc3dvcmQpKS50b1N0cmluZygnYmFzZTY0JykpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZyk6IEF1dGhUb2tlbkhlYWRlciB7XG4gIGNvbnN0IHBhcnRzID0gYXV0aG9yaXphdGlvbkhlYWRlci5zcGxpdCgnICcpO1xuICBjb25zdCBbc2NoZW1lLCB0b2tlbl0gPSBwYXJ0cztcblxuICByZXR1cm4geyBzY2hlbWUsIHRva2VuIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJhc2ljUGF5bG9hZChjcmVkZW50aWFsczogc3RyaW5nKTogQmFzaWNQYXlsb2FkIHtcbiAgY29uc3QgaW5kZXggPSBjcmVkZW50aWFscy5pbmRleE9mKCc6Jyk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB1c2VyOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZSgwLCBpbmRleCk7XG4gIGNvbnN0IHBhc3N3b3JkOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiB7IHVzZXIsIHBhc3N3b3JkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFFU0NyZWRlbnRpYWxzKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZywgc2VjcmV0OiBzdHJpbmcpIHtcbiAgY29uc3QgeyBzY2hlbWUsIHRva2VuIH0gPSBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyKTtcblxuICAvLyBiYXNpYyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIGVuZm9yY2VkXG4gIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkFTSUMudG9VcHBlckNhc2UoKSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbikudG9TdHJpbmcoKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfSBlbHNlIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkVBUkVSLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCB0b2tlbkFzQnVmZmVyID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbik7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhZXNEZWNyeXB0KHRva2VuQXNCdWZmZXIsIHNlY3JldCkudG9TdHJpbmcoJ3V0ZjgnKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXhwaXJlUmVhc29uczogc3RyaW5nW10gPSBbJ0pzb25XZWJUb2tlbkVycm9yJywgJ1Rva2VuRXhwaXJlZEVycm9yJ107XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKTogUmVtb3RlVXNlciB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZDogUmVtb3RlVXNlciA9IHZlcmlmeVBheWxvYWQodG9rZW4sIHNlY3JldCk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyAjMTY4IHRoaXMgY2hlY2sgc2hvdWxkIGJlIHJlbW92ZWQgYXMgc29vbiBBRVMgZW5jcnlwdCBpcyByZW1vdmVkLlxuICAgIGlmIChleHBpcmVSZWFzb25zLmluY2x1ZGVzKGVycm9yLm5hbWUpKSB7XG4gICAgICAvLyBpdCBtaWdodCBiZSBwb3NzaWJsZSB0aGUgand0IGNvbmZpZ3VyYXRpb24gaXMgZW5hYmxlZCBhbmRcbiAgICAgIC8vIG9sZCB0b2tlbnMgZmFpbHMgc3RpbGwgcmVtYWlucyBpbiB1c2FnZSwgdGh1c1xuICAgICAgLy8gd2UgcmV0dXJuIGFuIGFub255bW91cyB1c2VyIHRvIGZvcmNlIGxvZyBpbi5cbiAgICAgIHJldHVybiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk7XG4gICAgfVxuICAgIHRocm93IEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCwgZXJyb3IubWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aEhlYWRlclZhbGlkKGF1dGhvcml6YXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gYXV0aG9yaXphdGlvbi5zcGxpdCgnICcpLmxlbmd0aCA9PT0gMjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pZGRsZXdhcmVDcmVkZW50aWFscyhzZWN1cml0eTogU2VjdXJpdHksIHNlY3JldDogc3RyaW5nLCBhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBBdXRoTWlkZGxld2FyZVBheWxvYWQge1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBwYXJzZUFFU0NyZWRlbnRpYWxzKGF1dGhvcml6YXRpb25IZWFkZXIsIHNlY3JldCk7XG4gICAgaWYgKCFjcmVkZW50aWFscykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZENyZWRlbnRpYWxzID0gcGFyc2VCYXNpY1BheWxvYWQoY3JlZGVudGlhbHMpO1xuICAgIGlmICghcGFyc2VkQ3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkQ3JlZGVudGlhbHM7XG4gIH1cbiAgY29uc3QgeyBzY2hlbWUsIHRva2VuIH0gPSBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyKTtcblxuICBpZiAoXy5pc1N0cmluZyh0b2tlbikgJiYgc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JFQVJFUi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgcmV0dXJuIHZlcmlmeUpXVFBheWxvYWQodG9rZW4sIHNlY3JldCk7XG4gIH1cbn1cbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl8xSCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0VXNlclJhdGVMaW1pdGluZyIsIndpbmRvd01zIiwibWF4IiwiZGVmYXVsdFNlY3VyaXR5Iiwid2ViIiwiYXBpIiwiZ2V0U2VjdXJpdHkiLCJjb25maWciLCJzZWN1cml0eSIsIm1lcmdlIiwiZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UiLCJidWlsZFVzZXJCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaXNBRVNMZWdhY3kiLCJqd3QiLCJnZXRBcGlUb2tlbiIsImF1dGgiLCJyZW1vdGVVc2VyIiwiYWVzUGFzc3dvcmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFlc0VuY3J5cHQiLCJ0b1N0cmluZyIsImp3dEVuY3J5cHQiLCJwYXJzZUF1dGhUb2tlbkhlYWRlciIsImF1dGhvcml6YXRpb25IZWFkZXIiLCJwYXJ0cyIsInNwbGl0Iiwic2NoZW1lIiwidG9rZW4iLCJwYXJzZUJhc2ljUGF5bG9hZCIsImNyZWRlbnRpYWxzIiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJwYXJzZUFFU0NyZWRlbnRpYWxzIiwic2VjcmV0IiwidG9VcHBlckNhc2UiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsInRva2VuQXNCdWZmZXIiLCJleHBpcmVSZWFzb25zIiwidmVyaWZ5SldUUGF5bG9hZCIsInBheWxvYWQiLCJlcnJvciIsImdldENvZGUiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIm1lc3NhZ2UiLCJpc0F1dGhIZWFkZXJWYWxpZCIsImF1dGhvcml6YXRpb24iLCJnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMiLCJwYXJzZWRDcmVkZW50aWFscyIsImlzU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcsb0JB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LENBQTJCQyxhQUEzQixFQUEyRDtBQUNoRSxTQUFPQSxhQUFhLENBQUN2QixLQUFkLENBQW9CLEdBQXBCLEVBQXlCN0YsTUFBekIsS0FBb0MsQ0FBM0M7QUFDRDs7QUFFTSxTQUFTcUgsd0JBQVQsQ0FBa0M1QyxRQUFsQyxFQUFzRDZCLE1BQXRELEVBQXNFWCxtQkFBdEUsRUFBMEg7QUFDL0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSXJELGdCQUFFaUYsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZW1vdGVVc2VyLCBQYWNrYWdlLCBDYWxsYmFjaywgQ29uZmlnLCBTZWN1cml0eSwgQVBJVG9rZW5PcHRpb25zLCBKV1RPcHRpb25zLCBJUGx1Z2luQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQ29va2llU2Vzc2lvblRva2VuLCBJQXV0aFdlYlVJLCBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0LCBFcnJvckNvZGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fMUgsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIsIERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWVzRGVjcnlwdCwgdmVyaWZ5UGF5bG9hZCB9IGZyb20gJy4vY3J5cHRvLXV0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFzc3dvcmQoXG4gIHBhc3N3b3JkOiBzdHJpbmcsIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICBtaW5MZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycgJiYgcGFzc3dvcmQubGVuZ3RoID49IG1pbkxlbmd0aDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBSZW1vdGVVc2VyIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBwbHVnaW5Hcm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlVXNlcihuYW1lOiBzdHJpbmcsIHBsdWdpbkdyb3Vwczogc3RyaW5nW10pOiBSZW1vdGVVc2VyIHtcbiAgY29uc3QgaXNHcm91cFZhbGlkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShwbHVnaW5Hcm91cHMpO1xuICBjb25zdCBncm91cHMgPSAoaXNHcm91cFZhbGlkID8gcGx1Z2luR3JvdXBzIDogW10pLmNvbmNhdChbUk9MRVMuJEFMTCwgUk9MRVMuJEFVVEgsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FVVEgsIFJPTEVTLkFMTF0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBncm91cHMsXG4gICAgcmVhbF9ncm91cHM6IHBsdWdpbkdyb3VwcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5vbnltb3VzIHJlbW90ZSB1c2VyIGluIGNhc2Ugbm9uZSBpcyBsb2dnZWQgaW4uXG4gKiBAcmV0dXJuIHtPYmplY3R9IHsgbmFtZTogeHgsIGdyb3VwczogW10sIHJlYWxfZ3JvdXBzOiBbXSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk6IFJlbW90ZVVzZXIge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAvLyBncm91cHMgd2l0aG91dCAnJCcgYXJlIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgZXZlbnR1YWxseVxuICAgIGdyb3VwczogW1JPTEVTLiRBTEwsIFJPTEVTLiRBTk9OWU1PVVMsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FOT05ZTU9VU10sXG4gICAgcmVhbF9ncm91cHM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dfYWN0aW9uKGFjdGlvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHVzZXI6IFJlbW90ZVVzZXIsIHBrZzogUGFja2FnZSwgY2FsbGJhY2s6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IHVzZXI6ICVvJywgdXNlcj8ubmFtZSk7XG4gICAgY29uc3QgeyBuYW1lLCBncm91cHMgfSA9IHVzZXI7XG4gICAgY29uc3QgZ3JvdXBBY2Nlc3MgPSBwa2dbYWN0aW9uXTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZ3JvdXBBY2Nlc3Muc29tZSgoZ3JvdXApID0+IG5hbWUgPT09IGdyb3VwIHx8IGdyb3Vwcy5pbmNsdWRlcyhncm91cCkpO1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiBoYXNQZXJtaXNzaW9uPyAlb30gZm9yIHVzZXI6ICVvJywgaGFzUGVybWlzc2lvbiwgdXNlcj8ubmFtZSk7XG5cbiAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgbG9nZ2VyLmluZm8oeyByZW1vdGU6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oYHVzZXIgJHtuYW1lfSBpcyBub3QgYWxsb3dlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZChgYXV0aG9yaXphdGlvbiByZXF1aXJlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogSVBsdWdpbkF1dGg8Q29uZmlnPiB7XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgY2IoRXJyb3JDb2RlLmdldEZvcmJpZGRlbihBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIGFkZF91c2VyKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgcmV0dXJuIGNiKEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIC8vIEZJWE1FOiBhbGxvd19hY3Rpb24gYW5kIGFsbG93X3B1Ymxpc2ggc2hvdWxkIGJlIGluIHRoZSBAdmVyZGFjY2lvL3R5cGVzXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X2FjY2VzczogYWxsb3dfYWN0aW9uKCdhY2Nlc3MnLCBsb2dnZXIpLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19wdWJsaXNoOiBhbGxvd19hY3Rpb24oJ3B1Ymxpc2gnLCBsb2dnZXIpLFxuICAgIGFsbG93X3VucHVibGlzaDogaGFuZGxlU3BlY2lhbFVucHVibGlzaCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvblRva2VuKCk6IENvb2tpZVNlc3Npb25Ub2tlbiB7XG4gIGNvbnN0IHRlbkhvdXJzVGltZSA9IDEwICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBucG1qcy5vcmcgc2V0cyAxMGggZXhwaXJlXG4gICAgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIHRlbkhvdXJzVGltZSksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgMSBob3VyXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fMUgsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbi8vIHdlIGxpbWl0IG1heCAxMDAwIHJlcXVlc3QgcGVyIDE1IG1pbnV0ZXMgb24gdXNlciBlbmRwb2ludHNcbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlclJhdGVMaW1pdGluZyA9IHtcbiAgd2luZG93TXM6IDE1ICogNjAgKiAxMDAwLCAvLyAxNSBtaW51dGVzXG4gIG1heDogMTAwMCxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UodXNlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQgYXMgJyR7dXNlcn0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlckJ1ZmZlcihuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oYCR7bmFtZX06JHtwYXNzd29yZH1gLCAndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oYXV0aDogSUF1dGhXZWJVSSwgY29uZmlnOiBDb25maWcsIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIGFlc1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgLy8gZmFsbGJhY2sgYWxsIGdvZXMgdG8gQUVTIGVuY3J5cHRpb25cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICAgIHJlc29sdmUoYXV0aC5hZXNFbmNyeXB0KGJ1aWxkVXNlckJ1ZmZlcihyZW1vdGVVc2VyLm5hbWUgYXMgc3RyaW5nLCBhZXNQYXNzd29yZCkpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgfSk7XG4gIH1cbiAgLy8gaSBhbSB3aWxpbmcgdG8gdXNlIGhlcmUgXy5pc05pbCBidXQgZmxvdyBkb2VzIG5vdCBsaWtlIGl0IHlldC5cbiAgY29uc3QgeyBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICBpZiAoand0ICYmIGp3dC5zaWduKSB7XG4gICAgcmV0dXJuIGF3YWl0IGF1dGguand0RW5jcnlwdChyZW1vdGVVc2VyLCBqd3Quc2lnbik7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgcmVzb2x2ZShhdXRoLmFlc0VuY3J5cHQoYnVpbGRVc2VyQnVmZmVyKHJlbW90ZVVzZXIubmFtZSBhcyBzdHJpbmcsIGFlc1Bhc3N3b3JkKSkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBBdXRoVG9rZW5IZWFkZXIge1xuICBjb25zdCBwYXJ0cyA9IGF1dGhvcml6YXRpb25IZWFkZXIuc3BsaXQoJyAnKTtcbiAgY29uc3QgW3NjaGVtZSwgdG9rZW5dID0gcGFydHM7XG5cbiAgcmV0dXJuIHsgc2NoZW1lLCB0b2tlbiB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCYXNpY1BheWxvYWQoY3JlZGVudGlhbHM6IHN0cmluZyk6IEJhc2ljUGF5bG9hZCB7XG4gIGNvbnN0IGluZGV4ID0gY3JlZGVudGlhbHMuaW5kZXhPZignOicpO1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdXNlcjogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoMCwgaW5kZXgpO1xuICBjb25zdCBwYXNzd29yZDogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4geyB1c2VyLCBwYXNzd29yZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKSB7XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgLy8gYmFzaWMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBlbmZvcmNlZFxuICBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JBU0lDLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pLnRvU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH0gZWxzZSBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JFQVJFUi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgY29uc3QgdG9rZW5Bc0J1ZmZlciA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYWVzRGVjcnlwdCh0b2tlbkFzQnVmZmVyLCBzZWNyZXQpLnRvU3RyaW5nKCd1dGY4Jyk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGV4cGlyZVJlYXNvbnM6IHN0cmluZ1tdID0gWydKc29uV2ViVG9rZW5FcnJvcicsICdUb2tlbkV4cGlyZWRFcnJvciddO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5SldUUGF5bG9hZCh0b2tlbjogc3RyaW5nLCBzZWNyZXQ6IHN0cmluZyk6IFJlbW90ZVVzZXIge1xuICB0cnkge1xuICAgIGNvbnN0IHBheWxvYWQ6IFJlbW90ZVVzZXIgPSB2ZXJpZnlQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gIzE2OCB0aGlzIGNoZWNrIHNob3VsZCBiZSByZW1vdmVkIGFzIHNvb24gQUVTIGVuY3J5cHQgaXMgcmVtb3ZlZC5cbiAgICBpZiAoZXhwaXJlUmVhc29ucy5pbmNsdWRlcyhlcnJvci5uYW1lKSkge1xuICAgICAgLy8gaXQgbWlnaHQgYmUgcG9zc2libGUgdGhlIGp3dCBjb25maWd1cmF0aW9uIGlzIGVuYWJsZWQgYW5kXG4gICAgICAvLyBvbGQgdG9rZW5zIGZhaWxzIHN0aWxsIHJlbWFpbnMgaW4gdXNhZ2UsIHRodXNcbiAgICAgIC8vIHdlIHJldHVybiBhbiBhbm9ueW1vdXMgdXNlciB0byBmb3JjZSBsb2cgaW4uXG4gICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlcigpO1xuICAgIH1cbiAgICB0aHJvdyBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQsIGVycm9yLm1lc3NhZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhIZWFkZXJWYWxpZChhdXRob3JpemF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGF1dGhvcml6YXRpb24uc3BsaXQoJyAnKS5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMoc2VjdXJpdHk6IFNlY3VyaXR5LCBzZWNyZXQ6IHN0cmluZywgYXV0aG9yaXphdGlvbkhlYWRlcjogc3RyaW5nKTogQXV0aE1pZGRsZXdhcmVQYXlsb2FkIHtcbiAgaWYgKGlzQUVTTGVnYWN5KHNlY3VyaXR5KSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyLCBzZWNyZXQpO1xuICAgIGlmICghY3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWRDcmVkZW50aWFscyA9IHBhcnNlQmFzaWNQYXlsb2FkKGNyZWRlbnRpYWxzKTtcbiAgICBpZiAoIXBhcnNlZENyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZENyZWRlbnRpYWxzO1xuICB9XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgaWYgKF8uaXNTdHJpbmcodG9rZW4pICYmIHNjaGVtZS50b1VwcGVyQ2FzZSgpID09PSBUT0tFTl9CRUFSRVIudG9VcHBlckNhc2UoKSkge1xuICAgIHJldHVybiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuICB9XG59XG4iXX0=
|
package/build/lib/config.js
CHANGED
|
@@ -17,8 +17,14 @@ var _utils = require("./utils");
|
|
|
17
17
|
|
|
18
18
|
var _constants = require("./constants");
|
|
19
19
|
|
|
20
|
+
var _authUtils = require("./auth-utils");
|
|
21
|
+
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
23
|
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
+
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
|
+
|
|
22
28
|
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; }
|
|
23
29
|
|
|
24
30
|
const LoggerApi = require('./logger');
|
|
@@ -30,6 +36,7 @@ const allowedEnvConfig = ['http_proxy', 'https_proxy', 'no_proxy'];
|
|
|
30
36
|
*/
|
|
31
37
|
|
|
32
38
|
class Config {
|
|
39
|
+
// @ts-ignore
|
|
33
40
|
// @ts-ignore
|
|
34
41
|
// @ts-ignore
|
|
35
42
|
constructor(config) {
|
|
@@ -45,6 +52,8 @@ class Config {
|
|
|
45
52
|
|
|
46
53
|
_defineProperty(this, "users", void 0);
|
|
47
54
|
|
|
55
|
+
_defineProperty(this, "userRateLimit", void 0);
|
|
56
|
+
|
|
48
57
|
_defineProperty(this, "server_id", void 0);
|
|
49
58
|
|
|
50
59
|
_defineProperty(this, "self_path", void 0);
|
|
@@ -65,13 +74,13 @@ class Config {
|
|
|
65
74
|
if (self[configProp] == null) {
|
|
66
75
|
self[configProp] = config[configProp];
|
|
67
76
|
}
|
|
68
|
-
}
|
|
69
|
-
|
|
77
|
+
}
|
|
70
78
|
|
|
71
|
-
if (
|
|
72
|
-
this.user_agent = (0, _utils.getUserAgent)();
|
|
73
|
-
}
|
|
79
|
+
if (config !== null && config !== void 0 && config.user_agent) {
|
|
80
|
+
this.user_agent = (0, _utils.getUserAgent)(config === null || config === void 0 ? void 0 : config.user_agent);
|
|
81
|
+
}
|
|
74
82
|
|
|
83
|
+
this.userRateLimit = _objectSpread(_objectSpread({}, _authUtils.defaultUserRateLimiting), config === null || config === void 0 ? void 0 : config.userRateLimit); // some weird shell scripts are valid yaml files parsed as string
|
|
75
84
|
|
|
76
85
|
(0, _assert.default)(_lodash.default.isObject(config), _constants.APP_ERROR.CONFIG_NOT_VALID); // sanity check for strategic config properties
|
|
77
86
|
|
|
@@ -131,4 +140,4 @@ class Config {
|
|
|
131
140
|
|
|
132
141
|
var _default = Config;
|
|
133
142
|
exports.default = _default;
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29uZmlnLnRzIl0sIm5hbWVzIjpbIkxvZ2dlckFwaSIsInJlcXVpcmUiLCJzdHJhdGVnaWNDb25maWdQcm9wcyIsImFsbG93ZWRFbnZDb25maWciLCJDb25maWciLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInNlbGYiLCJsb2dnZXIiLCJzZWxmX3BhdGgiLCJzdG9yYWdlIiwicGx1Z2lucyIsImNvbmZpZ1Byb3AiLCJ1c2VyX2FnZW50IiwidXNlclJhdGVMaW1pdCIsImRlZmF1bHRVc2VyUmF0ZUxpbWl0aW5nIiwiXyIsImlzT2JqZWN0IiwiQVBQX0VSUk9SIiwiQ09ORklHX05PVF9WQUxJRCIsImZvckVhY2giLCJ4IiwidXBsaW5rcyIsImlzTmlsIiwidXNlcnMiLCJ3YXJuIiwicGFja2FnZXMiLCJlbnZDb25mIiwicHJvY2VzcyIsImVudiIsInRvVXBwZXJDYXNlIiwic2VydmVyX2lkIiwiZ2V0TWF0Y2hlZFBhY2thZ2VzU3BlYyIsInBrZ05hbWUiLCJjaGVja1NlY3JldEtleSIsInNlY3JldCIsImlzU3RyaW5nIiwiaXNFbXB0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUlBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxDQUFDLFNBQUQsRUFBWSxVQUFaLENBQTdCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxZQUFELEVBQWUsYUFBZixFQUE4QixVQUE5QixDQUF6QjtBQUVBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxNQUFOLENBQWtDO0FBRWhDO0FBRUE7QUFVQTtBQUdPQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBd0I7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFDeEMs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LDBDQUF3QixFQUF4QixDQUFkO0FBQ0EsV0FBTyxLQUFLQSxNQUFaO0FBQ0Q7O0FBMUYrQjs7ZUE2Rm5CL0IsTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IFBhY2thZ2VMaXN0LCBDb25maWcgYXMgQXBwQ29uZmlnLCBTZWN1cml0eSwgTG9nZ2VyLCBSYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IE1hdGNoZWRQYWNrYWdlLCBTdGFydFVwQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21IZXhTdHJpbmcgfSBmcm9tICcuL2NyeXB0by11dGlscyc7XG5pbXBvcnQgeyBnZXRNYXRjaGVkUGFja2FnZXNTcGVjLCBub3JtYWxpc2VQYWNrYWdlQWNjZXNzLCBzYW5pdHlDaGVja1VwbGlua3NQcm9wcywgdXBsaW5rU2FuaXR5Q2hlY2sgfSBmcm9tICcuL2NvbmZpZy11dGlscyc7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnQsIGlzT2JqZWN0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBUFBfRVJST1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkZWZhdWx0VXNlclJhdGVMaW1pdGluZyB9IGZyb20gJy4vYXV0aC11dGlscyc7XG5cbmNvbnN0IExvZ2dlckFwaSA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5jb25zdCBzdHJhdGVnaWNDb25maWdQcm9wcyA9IFsndXBsaW5rcycsICdwYWNrYWdlcyddO1xuY29uc3QgYWxsb3dlZEVudkNvbmZpZyA9IFsnaHR0cF9wcm94eScsICdodHRwc19wcm94eScsICdub19wcm94eSddO1xuXG4vKipcbiAqIENvb3JkaW5hdGVzIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIENvbmZpZyBpbXBsZW1lbnRzIEFwcENvbmZpZyB7XG4gIHB1YmxpYyBsb2dnZXI6IExvZ2dlcjtcbiAgLy8gQHRzLWlnbm9yZVxuICBwdWJsaWMgdXNlcl9hZ2VudDogYm9vbGVhbiB8IHN0cmluZztcbiAgLy8gQHRzLWlnbm9yZVxuICBwdWJsaWMgc2VjcmV0OiBzdHJpbmc7XG4gIHB1YmxpYyB1cGxpbmtzOiBhbnk7XG4gIHB1YmxpYyBwYWNrYWdlczogUGFja2FnZUxpc3Q7XG4gIHB1YmxpYyB1c2VyczogYW55O1xuICBwdWJsaWMgdXNlclJhdGVMaW1pdDogUmF0ZUxpbWl0O1xuICBwdWJsaWMgc2VydmVyX2lkOiBzdHJpbmc7XG4gIHB1YmxpYyBzZWxmX3BhdGg6IHN0cmluZztcbiAgcHVibGljIHN0b3JhZ2U6IHN0cmluZyB8IHZvaWQ7XG4gIHB1YmxpYyBwbHVnaW5zOiBzdHJpbmcgfCB2b2lkO1xuICAvLyBAdHMtaWdub3JlXG4gIHB1YmxpYyBzZWN1cml0eTogU2VjdXJpdHk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZzogU3RhcnRVcENvbmZpZykge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyQXBpLmxvZ2dlcjtcbiAgICB0aGlzLnNlbGZfcGF0aCA9IGNvbmZpZy5zZWxmX3BhdGg7XG4gICAgdGhpcy5zdG9yYWdlID0gY29uZmlnLnN0b3JhZ2U7XG4gICAgdGhpcy5wbHVnaW5zID0gY29uZmlnLnBsdWdpbnM7XG5cbiAgICBmb3IgKGNvbnN0IGNvbmZpZ1Byb3AgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoc2VsZltjb25maWdQcm9wXSA9PSBudWxsKSB7XG4gICAgICAgIHNlbGZbY29uZmlnUHJvcF0gPSBjb25maWdbY29uZmlnUHJvcF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZz8udXNlcl9hZ2VudCkge1xuICAgICAgdGhpcy51c2VyX2FnZW50ID0gZ2V0VXNlckFnZW50KGNvbmZpZz8udXNlcl9hZ2VudCk7XG4gICAgfVxuXG4gICAgdGhpcy51c2VyUmF0ZUxpbWl0ID0geyAuLi5kZWZhdWx0VXNlclJhdGVMaW1pdGluZywgLi4uY29uZmlnPy51c2VyUmF0ZUxpbWl0IH07XG5cbiAgICAvLyBzb21lIHdlaXJkIHNoZWxsIHNjcmlwdHMgYXJlIHZhbGlkIHlhbWwgZmlsZXMgcGFyc2VkIGFzIHN0cmluZ1xuICAgIGFzc2VydChfLmlzT2JqZWN0KGNvbmZpZyksIEFQUF9FUlJPUi5DT05GSUdfTk9UX1ZBTElEKTtcblxuICAgIC8vIHNhbml0eSBjaGVjayBmb3Igc3RyYXRlZ2ljIGNvbmZpZyBwcm9wZXJ0aWVzXG4gICAgc3RyYXRlZ2ljQ29uZmlnUHJvcHMuZm9yRWFjaChmdW5jdGlvbiAoeCk6IHZvaWQge1xuICAgICAgaWYgKHNlbGZbeF0gPT0gbnVsbCkge1xuICAgICAgICBzZWxmW3hdID0ge307XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChpc09iamVjdChzZWxmW3hdKSwgYENPTkZJRzogYmFkIFwiJHt4fVwiIHZhbHVlIChvYmplY3QgZXhwZWN0ZWQpYCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbGlua3MgPSBzYW5pdHlDaGVja1VwbGlua3NQcm9wcyh1cGxpbmtTYW5pdHlDaGVjayh0aGlzLnVwbGlua3MpKTtcblxuICAgIGlmIChfLmlzTmlsKHRoaXMudXNlcnMpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgW3VzZXJzXTogcHJvcGVydHkgb24gY29uZmlndXJhdGlvbiBmaWxlXG4gICAgICBpcyBub3QgbG9uZ2VyIHN1cHBvcnRlZCwgcHJvcGVydHkgYmVpbmcgaWdub3JlZGApO1xuICAgIH1cblxuICAgIHRoaXMucGFja2FnZXMgPSBub3JtYWxpc2VQYWNrYWdlQWNjZXNzKHNlbGYucGFja2FnZXMpO1xuXG4gICAgLy8gbG9hZGluZyB0aGVzZSBmcm9tIEVOViBpZiBhcmVuJ3QgaW4gY29uZmlnXG4gICAgYWxsb3dlZEVudkNvbmZpZy5mb3JFYWNoKChlbnZDb25mKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIShlbnZDb25mIGluIHNlbGYpKSB7XG4gICAgICAgIHNlbGZbZW52Q29uZl0gPSBwcm9jZXNzLmVudltlbnZDb25mXSB8fCBwcm9jZXNzLmVudltlbnZDb25mLnRvVXBwZXJDYXNlKCldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gdW5pcXVlIGlkZW50aWZpZXIgb2Ygc2VsZiBzZXJ2ZXIgKG9yIGEgY2x1c3RlciksIHVzZWQgdG8gYXZvaWQgbG9vcHNcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCF0aGlzLnNlcnZlcl9pZCkge1xuICAgICAgdGhpcy5zZXJ2ZXJfaWQgPSBnZW5lcmF0ZVJhbmRvbUhleFN0cmluZyg2KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgZm9yIHBhY2thZ2Ugc3BlY1xuICAgKi9cbiAgcHVibGljIGdldE1hdGNoZWRQYWNrYWdlc1NwZWMocGtnTmFtZTogc3RyaW5nKTogTWF0Y2hlZFBhY2thZ2Uge1xuICAgIHJldHVybiBnZXRNYXRjaGVkUGFja2FnZXNTcGVjKHBrZ05hbWUsIHRoaXMucGFja2FnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yIGNyZWF0ZSB3aGV0aGVyIHJlY2VpdmUgYSBzZWNyZXQga2V5XG4gICAqL1xuICBwdWJsaWMgY2hlY2tTZWNyZXRLZXkoc2VjcmV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChfLmlzU3RyaW5nKHNlY3JldCkgJiYgXy5pc0VtcHR5KHNlY3JldCkgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNlY3JldCA9IHNlY3JldDtcbiAgICAgIHJldHVybiBzZWNyZXQ7XG4gICAgfVxuICAgIC8vIGl0IGdlbmVyYXRlcyBhIHNlY3JldCBrZXlcbiAgICAvLyBGVVRVUkU6IHRoaXMgbWlnaHQgYmUgYW4gZXh0ZXJuYWwgc2VjcmV0IGtleSwgcGVyaGFwcyB3aXRoaW4gY29uZmlnIGZpbGU/XG4gICAgdGhpcy5zZWNyZXQgPSBnZW5lcmF0ZVJhbmRvbUhleFN0cmluZygzMik7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbmZpZztcbiJdfQ==
|