verdaccio 5.4.0 → 5.6.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 +56 -0
- package/CODE_OF_CONDUCT.md +10 -10
- package/CONTRIBUTING.md +28 -27
- package/SECURITY.md +8 -9
- package/build/api/debug/index.js +1 -1
- package/build/api/endpoint/api/dist-tags.js +4 -4
- package/build/api/endpoint/api/package.js +3 -3
- package/build/api/endpoint/api/ping.js +1 -1
- package/build/api/endpoint/api/publish.js +11 -11
- package/build/api/endpoint/api/star.js +5 -5
- package/build/api/endpoint/api/stars.js +1 -1
- package/build/api/endpoint/api/user.js +6 -6
- package/build/api/endpoint/api/v1/index.js +1 -1
- package/build/api/endpoint/api/v1/profile.js +4 -4
- package/build/api/endpoint/api/v1/search.js +4 -4
- package/build/api/endpoint/api/v1/token.js +8 -8
- package/build/api/endpoint/api/whoami.js +1 -1
- package/build/api/endpoint/index.js +9 -9
- package/build/api/index.js +13 -13
- package/build/api/middleware.js +6 -6
- package/build/api/rate-limiter.js +3 -3
- package/build/api/web/api.js +3 -3
- package/build/api/web/endpoint/index.js +10 -4
- package/build/api/web/endpoint/package.js +9 -9
- package/build/api/web/endpoint/search.js +3 -3
- package/build/api/web/endpoint/user.js +4 -4
- package/build/api/web/html/renderHTML.js +13 -9
- package/build/api/web/html/template.js +1 -1
- package/build/api/web/index.js +10 -10
- package/build/config/env.js +1 -1
- package/build/index.js +1 -1
- package/build/lib/auth-utils.js +5 -5
- package/build/lib/auth.js +7 -17
- package/build/lib/bootstrap.js +8 -8
- package/build/lib/cli/cli.js +3 -3
- package/build/lib/cli/commands/info.js +3 -3
- package/build/lib/cli/commands/init.js +3 -3
- package/build/lib/cli/commands/version.js +1 -1
- package/build/lib/cli/utils.js +3 -3
- package/build/lib/config-path.js +3 -3
- package/build/lib/config-utils.js +3 -3
- package/build/lib/config.js +8 -32
- package/build/lib/crypto-utils.js +3 -3
- package/build/lib/local-storage.js +7 -15
- package/build/lib/logger/formatter/index.js +1 -1
- package/build/lib/logger/formatter/prettifier.js +3 -3
- package/build/lib/logger/levels.js +1 -1
- package/build/lib/logger/logger.js +10 -6
- package/build/lib/logger/utils.js +1 -1
- package/build/lib/metadata-utils.js +3 -3
- package/build/lib/notify/index.js +3 -3
- package/build/lib/notify/notify-request.js +5 -5
- package/build/lib/plugin-loader.js +4 -4
- package/build/lib/search.js +2 -6
- package/build/lib/storage-utils.js +3 -3
- package/build/lib/storage.js +10 -22
- package/build/lib/up-storage.js +9 -43
- package/build/lib/uplink-util.js +1 -1
- package/build/lib/utils.js +22 -13
- package/build/utils/user.js +1 -1
- package/conf/README.md +3 -3
- package/eslintrc.js +92 -92
- package/index.js +1 -1
- package/package.json +64 -63
- package/prettier.config.js +15 -0
- package/tsconfig.json +3 -10
- package/yarn-plugins/plugin-postinstall.js +10 -10
|
@@ -7,20 +7,20 @@ exports.default = renderHTML;
|
|
|
7
7
|
exports.resolveLogo = resolveLogo;
|
|
8
8
|
exports.validatePrimaryColor = validatePrimaryColor;
|
|
9
9
|
|
|
10
|
-
var _url = require("url");
|
|
11
|
-
|
|
12
|
-
var _path = _interopRequireDefault(require("path"));
|
|
13
|
-
|
|
14
10
|
var _debug = _interopRequireDefault(require("debug"));
|
|
15
11
|
|
|
16
12
|
var _lruCache = _interopRequireDefault(require("lru-cache"));
|
|
17
13
|
|
|
18
|
-
var
|
|
14
|
+
var _path = _interopRequireDefault(require("path"));
|
|
19
15
|
|
|
20
|
-
var
|
|
16
|
+
var _url = require("url");
|
|
17
|
+
|
|
18
|
+
var _commonsApi = require("@verdaccio/commons-api");
|
|
21
19
|
|
|
22
20
|
var _constants = require("../../../lib/constants");
|
|
23
21
|
|
|
22
|
+
var _utils = require("../../../lib/utils");
|
|
23
|
+
|
|
24
24
|
var _template = _interopRequireDefault(require("./template"));
|
|
25
25
|
|
|
26
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -68,7 +68,7 @@ function resolveLogo(config, req) {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
function renderHTML(config, manifest, manifestFiles, req, res) {
|
|
71
|
-
var _config$i18n$web, _config$i18n, _config$web$darkMode, _config$web6, _config$web$title, _config$web7, _config$web$scope, _config$web8, _validatePrimaryColor, _config$
|
|
71
|
+
var _config$i18n$web, _config$i18n, _config$web$darkMode, _config$web6, _config$web$title, _config$web7, _config$web$scope, _config$web8, _config$web$pkgManage, _config$web9, _validatePrimaryColor, _config$web10;
|
|
72
72
|
|
|
73
73
|
const {
|
|
74
74
|
url_prefix
|
|
@@ -79,9 +79,11 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
|
|
|
79
79
|
const darkMode = (_config$web$darkMode = config === null || config === void 0 ? void 0 : (_config$web6 = config.web) === null || _config$web6 === void 0 ? void 0 : _config$web6.darkMode) !== null && _config$web$darkMode !== void 0 ? _config$web$darkMode : false;
|
|
80
80
|
const title = (_config$web$title = config === null || config === void 0 ? void 0 : (_config$web7 = config.web) === null || _config$web7 === void 0 ? void 0 : _config$web7.title) !== null && _config$web$title !== void 0 ? _config$web$title : _constants.WEB_TITLE;
|
|
81
81
|
const scope = (_config$web$scope = config === null || config === void 0 ? void 0 : (_config$web8 = config.web) === null || _config$web8 === void 0 ? void 0 : _config$web8.scope) !== null && _config$web$scope !== void 0 ? _config$web$scope : '';
|
|
82
|
+
const login = (0, _utils.hasLogin)(config);
|
|
82
83
|
const logoURI = resolveLogo(config, req);
|
|
84
|
+
const pkgManagers = (_config$web$pkgManage = config === null || config === void 0 ? void 0 : (_config$web9 = config.web) === null || _config$web9 === void 0 ? void 0 : _config$web9.pkgManagers) !== null && _config$web$pkgManage !== void 0 ? _config$web$pkgManage : ['yarn', 'pnpm', 'npm'];
|
|
83
85
|
const version = pkgJSON.version;
|
|
84
|
-
const primaryColor = (_validatePrimaryColor = validatePrimaryColor(config === null || config === void 0 ? void 0 : (_config$
|
|
86
|
+
const primaryColor = (_validatePrimaryColor = validatePrimaryColor(config === null || config === void 0 ? void 0 : (_config$web10 = config.web) === null || _config$web10 === void 0 ? void 0 : _config$web10.primary_color)) !== null && _validatePrimaryColor !== void 0 ? _validatePrimaryColor : '#4b5e40';
|
|
85
87
|
const {
|
|
86
88
|
scriptsBodyAfter,
|
|
87
89
|
metaScripts,
|
|
@@ -98,6 +100,8 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
|
|
|
98
100
|
base,
|
|
99
101
|
primaryColor,
|
|
100
102
|
version,
|
|
103
|
+
pkgManagers,
|
|
104
|
+
login,
|
|
101
105
|
logo: logoURI,
|
|
102
106
|
title,
|
|
103
107
|
scope,
|
|
@@ -132,4 +136,4 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
|
|
|
132
136
|
res.send(webPage);
|
|
133
137
|
debug('render web');
|
|
134
138
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2h0bWwvcmVuZGVySFRNTC50cyJdLCJuYW1lcyI6WyJwa2dKU09OIiwicmVxdWlyZSIsIkRFRkFVTFRfTEFOR1VBR0UiLCJjYWNoZSIsIkxSVSIsIm1heCIsIm1heEFnZSIsImRlYnVnIiwiZGVmYXVsdE1hbmlmZXN0RmlsZXMiLCJqcyIsImljbyIsInZhbGlkYXRlUHJpbWFyeUNvbG9yIiwicHJpbWFyeUNvbG9yIiwiaXNIZXgiLCJ0ZXN0IiwicmVzb2x2ZUxvZ28iLCJjb25maWciLCJyZXEiLCJpc0xvY2FsRmlsZSIsIndlYiIsImxvZ28iLCJ1cmxfcHJlZml4IiwicGF0aCIsImJhc2VuYW1lIiwicmVuZGVySFRNTCIsIm1hbmlmZXN0IiwibWFuaWZlc3RGaWxlcyIsInJlcyIsImJhc2UiLCJVUkwiLCJwYXRobmFtZSIsImxhbmd1YWdlIiwiaTE4biIsImRhcmtNb2RlIiwidGl0bGUiLCJXRUJfVElUTEUiLCJzY29wZSIsImxvZ29VUkkiLCJ2ZXJzaW9uIiwicHJpbWFyeV9jb2xvciIsInNjcmlwdHNCb2R5QWZ0ZXIiLCJtZXRhU2NyaXB0cyIsInNjcmlwdHNib2R5QmVmb3JlIiwiT2JqZWN0IiwiYXNzaWduIiwiYm9keUJlZm9yZSIsIm9wdGlvbnMiLCJ3ZWJQYWdlIiwiZ2V0Iiwic2V0IiwiZXJyb3IiLCJFcnJvciIsInN0YWNrIiwic2V0SGVhZGVyIiwiSEVBREVSUyIsIlRFWFRfSFRNTCIsInNlbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsMEJBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsT0FBekI7QUFDQSxNQUFNQyxLQUFLLEdBQUcsSUFBSUMsaUJBQUosQ0FBUTtBQUFFQyxFQUFBQSxHQUFHLEVBQUUsR0FBUDtBQUFZQyxFQUFBQSxNQUFNLEVBQUUsT0FBTyxFQUFQLEdBQVk7QUFBaEMsQ0FBUixDQUFkO0FBRUEsTUFBTUMsS0FBSyxHQUFHLG9CQUFXLFdBQVgsQ0FBZDtBQUVBLE1BQU1DLG9CQUFvQixHQUFHO0FBQzNCQyxFQUFBQSxFQUFFLEVBQUUsQ0FBQyxZQUFELEVBQWUsWUFBZixFQUE2QixTQUE3QixDQUR1QjtBQUUzQkMsRUFBQUEsR0FBRyxFQUFFO0FBRnNCLENBQTdCOztBQUtPLFNBQVNDLG9CQUFULENBQThCQyxZQUE5QixFQUE0QztBQUNqRCxRQUFNQyxLQUFLLEdBQUcsdUNBQXVDQyxJQUF2QyxDQUE0Q0YsWUFBNUMsQ0FBZDs7QUFDQSxNQUFJLENBQUNDLEtBQUwsRUFBWTtBQUNWTixJQUFBQSxLQUFLLENBQUMsMEJBQUQsRUFBNkJLLFlBQTdCLENBQUw7QUFDQTtBQUNEOztBQUVELFNBQU9BLFlBQVA7QUFDRDs7QUFFTSxTQUFTRyxXQUFULENBQXFCQyxNQUFyQixFQUE2QkMsR0FBN0IsRUFBa0M7QUFBQTs7QUFDdkMsUUFBTUMsV0FBVyxHQUFHLENBQUFGLE1BQU0sU0FBTixJQUFBQSxNQUFNLFdBQU4sMkJBQUFBLE1BQU0sQ0FBRUcsR0FBUiw0REFBYUMsSUFBYixLQUFxQixDQUFDLDJCQUFlSixNQUFmLGFBQWVBLE1BQWYsdUNBQWVBLE1BQU0sQ0FBRUcsR0FBdkIsaURBQWUsYUFBYUMsSUFBNUIsQ0FBMUM7O0FBRUEsTUFBSUYsV0FBSixFQUFpQjtBQUFBOztBQUNmLFdBQVEsR0FBRSx5QkFBYUYsTUFBYixhQUFhQSxNQUFiLHVCQUFhQSxNQUFNLENBQUVLLFVBQXJCLEVBQWlDSixHQUFqQyxDQUFzQyxZQUFXSyxjQUFLQyxRQUFMLENBQWNQLE1BQWQsYUFBY0EsTUFBZCx1Q0FBY0EsTUFBTSxDQUFFRyxHQUF0QixpREFBYyxhQUFhQyxJQUEzQixDQUFpQyxFQUE1RjtBQUNELEdBRkQsTUFFTyxJQUFJLDJCQUFlSixNQUFmLGFBQWVBLE1BQWYsdUNBQWVBLE1BQU0sQ0FBRUcsR0FBdkIsaURBQWUsYUFBYUMsSUFBNUIsQ0FBSixFQUF1QztBQUFBOztBQUM1QyxXQUFPSixNQUFQLGFBQU9BLE1BQVAsdUNBQU9BLE1BQU0sQ0FBRUcsR0FBZixpREFBTyxhQUFhQyxJQUFwQjtBQUNELEdBRk0sTUFFQTtBQUNMLFdBQU8sRUFBUDtBQUNEO0FBQ0Y7O0FBRWMsU0FBU0ksVUFBVCxDQUFvQlIsTUFBcEIsRUFBNEJTLFFBQTVCLEVBQXNDQyxhQUF0QyxFQUFxRFQsR0FBckQsRUFBMERVLEdBQTFELEVBQStEO0FBQUE7O0FBQzVFLFFBQU07QUFBRU4sSUFBQUE7QUFBRixNQUFpQkwsTUFBdkI7QUFDQSxRQUFNWSxJQUFJLEdBQUcseUJBQWFaLE1BQWIsYUFBYUEsTUFBYix1QkFBYUEsTUFBTSxDQUFFSyxVQUFyQixFQUFpQ0osR0FBakMsQ0FBYjtBQUNBLFFBQU1NLFFBQVEsR0FBRyxJQUFJTSxRQUFKLENBQVFELElBQVIsRUFBY0UsUUFBL0I7QUFDQSxRQUFNQyxRQUFRLHVCQUFHZixNQUFILGFBQUdBLE1BQUgsdUNBQUdBLE1BQU0sQ0FBRWdCLElBQVgsaURBQUcsYUFBY2IsR0FBakIsK0RBQXdCakIsZ0JBQXRDO0FBQ0EsUUFBTStCLFFBQVEsMkJBQUdqQixNQUFILGFBQUdBLE1BQUgsdUNBQUdBLE1BQU0sQ0FBRUcsR0FBWCxpREFBRyxhQUFhYyxRQUFoQix1RUFBNEIsS0FBMUM7QUFDQSxRQUFNQyxLQUFLLHdCQUFHbEIsTUFBSCxhQUFHQSxNQUFILHVDQUFHQSxNQUFNLENBQUVHLEdBQVgsaURBQUcsYUFBYWUsS0FBaEIsaUVBQXlCQyxvQkFBcEM7QUFDQSxRQUFNQyxLQUFLLHdCQUFHcEIsTUFBSCxhQUFHQSxNQUFILHVDQUFHQSxNQUFNLENBQUVHLEdBQVgsaURBQUcsYUFBYWlCLEtBQWhCLGlFQUF5QixFQUFwQztBQUNBLFFBQU1DLE9BQU8sR0FBR3RCLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxHQUFULENBQTNCO0FBQ0EsUUFBTXFCLE9BQU8sR0FBR3RDLE9BQU8sQ0FBQ3NDLE9BQXhCO0FBQ0EsUUFBTTFCLFlBQVksNEJBQUdELG9CQUFvQixDQUFDSyxNQUFELGFBQUNBLE1BQUQsdUNBQUNBLE1BQU0sQ0FBRUcsR0FBVCxpREFBQyxhQUFhb0IsYUFBZCxDQUF2Qix5RUFBdUQsU0FBekU7QUFDQSxRQUFNO0FBQUVDLElBQUFBLGdCQUFGO0FBQW9CQyxJQUFBQSxXQUFwQjtBQUFpQ0MsSUFBQUE7QUFBakMsTUFBdURDLE1BQU0sQ0FBQ0MsTUFBUCxDQUMzRCxFQUQyRCxFQUUzRDtBQUNFSixJQUFBQSxnQkFBZ0IsRUFBRSxFQURwQjtBQUVFSyxJQUFBQSxVQUFVLEVBQUUsRUFGZDtBQUdFSixJQUFBQSxXQUFXLEVBQUU7QUFIZixHQUYyRCxFQU8zRHpCLE1BUDJELGFBTzNEQSxNQVAyRCx1QkFPM0RBLE1BQU0sQ0FBRUcsR0FQbUQsQ0FBN0Q7QUFTQSxRQUFNMkIsT0FBTyxHQUFHO0FBQ2RiLElBQUFBLFFBRGM7QUFFZFosSUFBQUEsVUFGYztBQUdkRSxJQUFBQSxRQUhjO0FBSWRLLElBQUFBLElBSmM7QUFLZGhCLElBQUFBLFlBTGM7QUFNZDBCLElBQUFBLE9BTmM7QUFPZGxCLElBQUFBLElBQUksRUFBRWlCLE9BUFE7QUFRZEgsSUFBQUEsS0FSYztBQVNkRSxJQUFBQSxLQVRjO0FBVWRMLElBQUFBO0FBVmMsR0FBaEI7QUFhQSxNQUFJZ0IsT0FBSjs7QUFFQSxNQUFJO0FBQ0ZBLElBQUFBLE9BQU8sR0FBRzVDLEtBQUssQ0FBQzZDLEdBQU4sQ0FBVSxVQUFWLENBQVY7O0FBRUEsUUFBSSxDQUFDRCxPQUFMLEVBQWM7QUFDWnhDLE1BQUFBLEtBQUssQ0FBQyxnQkFBRCxFQUFtQnVDLE9BQW5CLENBQUw7QUFDQXZDLE1BQUFBLEtBQUssQ0FBQyxzQkFBRCxFQUF5Qm1CLGFBQXpCLENBQUw7QUFDQXFCLE1BQUFBLE9BQU8sR0FBRyx1QkFDUjtBQUNFdEIsUUFBQUEsUUFBUSxFQUFFQyxhQUFGLGFBQUVBLGFBQUYsY0FBRUEsYUFBRixHQUFtQmxCLG9CQUQ3QjtBQUVFc0MsUUFBQUEsT0FGRjtBQUdFTixRQUFBQSxnQkFIRjtBQUlFQyxRQUFBQSxXQUpGO0FBS0VDLFFBQUFBO0FBTEYsT0FEUSxFQVFSakIsUUFSUSxDQUFWO0FBVUFsQixNQUFBQSxLQUFLLENBQUMsZ0JBQUQsRUFBbUJ3QyxPQUFuQixDQUFMO0FBQ0E1QyxNQUFBQSxLQUFLLENBQUM4QyxHQUFOLENBQVUsVUFBVixFQUFzQkYsT0FBdEI7QUFDQXhDLE1BQUFBLEtBQUssQ0FBQyxvQkFBRCxDQUFMO0FBQ0QsS0FoQkQsTUFnQk87QUFDTEEsTUFBQUEsS0FBSyxDQUFDLHNCQUFELENBQUw7QUFDRDtBQUNGLEdBdEJELENBc0JFLE9BQU8yQyxLQUFQLEVBQWM7QUFDZCxVQUFNLElBQUlDLEtBQUosQ0FBVyxrQ0FBaUNELEtBQUssQ0FBQ0UsS0FBTSxFQUF4RCxDQUFOO0FBQ0Q7O0FBQ0R6QixFQUFBQSxHQUFHLENBQUMwQixTQUFKLENBQWMsY0FBZCxFQUE4QkMsb0JBQVFDLFNBQXRDO0FBQ0E1QixFQUFBQSxHQUFHLENBQUM2QixJQUFKLENBQVNULE9BQVQ7QUFDQXhDLEVBQUFBLEtBQUssQ0FBQyxZQUFELENBQUw7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBMUlUgZnJvbSAnbHJ1LWNhY2hlJztcbmltcG9ydCB7IEhFQURFUlMgfSBmcm9tICdAdmVyZGFjY2lvL2NvbW1vbnMtYXBpJztcblxuaW1wb3J0IHsgZ2V0UHVibGljVXJsLCBpc0hUVFBQcm90b2NvbCB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBXRUJfVElUTEUgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCByZW5kZXJUZW1wbGF0ZSBmcm9tICcuL3RlbXBsYXRlJztcblxuY29uc3QgcGtnSlNPTiA9IHJlcXVpcmUoJy4uLy4uLy4uLy4uL3BhY2thZ2UuanNvbicpO1xuY29uc3QgREVGQVVMVF9MQU5HVUFHRSA9ICdlcy1VUyc7XG5jb25zdCBjYWNoZSA9IG5ldyBMUlUoeyBtYXg6IDUwMCwgbWF4QWdlOiAxMDAwICogNjAgKiA2MCB9KTtcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuY29uc3QgZGVmYXVsdE1hbmlmZXN0RmlsZXMgPSB7XG4gIGpzOiBbJ3J1bnRpbWUuanMnLCAndmVuZG9ycy5qcycsICdtYWluLmpzJ10sXG4gIGljbzogJ2Zhdmljb24uaWNvJyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByaW1hcnlDb2xvcihwcmltYXJ5Q29sb3IpIHtcbiAgY29uc3QgaXNIZXggPSAvXiMrKFthLWZBLUYwLTldezZ9fFthLWZBLUYwLTldezN9KSQvaS50ZXN0KHByaW1hcnlDb2xvcik7XG4gIGlmICghaXNIZXgpIHtcbiAgICBkZWJ1ZygnaW52YWxpZCBwcmltYXJ5IGNvbG9yICVvJywgcHJpbWFyeUNvbG9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXR1cm4gcHJpbWFyeUNvbG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUxvZ28oY29uZmlnLCByZXEpIHtcbiAgY29uc3QgaXNMb2NhbEZpbGUgPSBjb25maWc/LndlYj8ubG9nbyAmJiAhaXNIVFRQUHJvdG9jb2woY29uZmlnPy53ZWI/LmxvZ28pO1xuXG4gIGlmIChpc0xvY2FsRmlsZSkge1xuICAgIHJldHVybiBgJHtnZXRQdWJsaWNVcmwoY29uZmlnPy51cmxfcHJlZml4LCByZXEpfS0vc3RhdGljLyR7cGF0aC5iYXNlbmFtZShjb25maWc/LndlYj8ubG9nbyl9YDtcbiAgfSBlbHNlIGlmIChpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICByZXR1cm4gY29uZmlnPy53ZWI/LmxvZ287XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpIHtcbiAgY29uc3QgeyB1cmxfcHJlZml4IH0gPSBjb25maWc7XG4gIGNvbnN0IGJhc2UgPSBnZXRQdWJsaWNVcmwoY29uZmlnPy51cmxfcHJlZml4LCByZXEpO1xuICBjb25zdCBiYXNlbmFtZSA9IG5ldyBVUkwoYmFzZSkucGF0aG5hbWU7XG4gIGNvbnN0IGxhbmd1YWdlID0gY29uZmlnPy5pMThuPy53ZWIgPz8gREVGQVVMVF9MQU5HVUFHRTtcbiAgY29uc3QgZGFya01vZGUgPSBjb25maWc/LndlYj8uZGFya01vZGUgPz8gZmFsc2U7XG4gIGNvbnN0IHRpdGxlID0gY29uZmlnPy53ZWI/LnRpdGxlID8/IFdFQl9USVRMRTtcbiAgY29uc3Qgc2NvcGUgPSBjb25maWc/LndlYj8uc2NvcGUgPz8gJyc7XG4gIGNvbnN0IGxvZ29VUkkgPSByZXNvbHZlTG9nbyhjb25maWcsIHJlcSk7XG4gIGNvbnN0IHZlcnNpb24gPSBwa2dKU09OLnZlcnNpb247XG4gIGNvbnN0IHByaW1hcnlDb2xvciA9IHZhbGlkYXRlUHJpbWFyeUNvbG9yKGNvbmZpZz8ud2ViPy5wcmltYXJ5X2NvbG9yKSA/PyAnIzRiNWU0MCc7XG4gIGNvbnN0IHsgc2NyaXB0c0JvZHlBZnRlciwgbWV0YVNjcmlwdHMsIHNjcmlwdHNib2R5QmVmb3JlIH0gPSBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIHtcbiAgICAgIHNjcmlwdHNCb2R5QWZ0ZXI6IFtdLFxuICAgICAgYm9keUJlZm9yZTogW10sXG4gICAgICBtZXRhU2NyaXB0czogW10sXG4gICAgfSxcbiAgICBjb25maWc/LndlYlxuICApO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIGRhcmtNb2RlLFxuICAgIHVybF9wcmVmaXgsXG4gICAgYmFzZW5hbWUsXG4gICAgYmFzZSxcbiAgICBwcmltYXJ5Q29sb3IsXG4gICAgdmVyc2lvbixcbiAgICBsb2dvOiBsb2dvVVJJLFxuICAgIHRpdGxlLFxuICAgIHNjb3BlLFxuICAgIGxhbmd1YWdlLFxuICB9O1xuXG4gIGxldCB3ZWJQYWdlO1xuXG4gIHRyeSB7XG4gICAgd2ViUGFnZSA9IGNhY2hlLmdldCgndGVtcGxhdGUnKTtcblxuICAgIGlmICghd2ViUGFnZSkge1xuICAgICAgZGVidWcoJ3dlYiBvcHRpb25zICVvJywgb3B0aW9ucyk7XG4gICAgICBkZWJ1Zygnd2ViIG1hbmlmZXN0RmlsZXMgJW8nLCBtYW5pZmVzdEZpbGVzKTtcbiAgICAgIHdlYlBhZ2UgPSByZW5kZXJUZW1wbGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIG1hbmlmZXN0OiBtYW5pZmVzdEZpbGVzID8/IGRlZmF1bHRNYW5pZmVzdEZpbGVzLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgc2NyaXB0c0JvZHlBZnRlcixcbiAgICAgICAgICBtZXRhU2NyaXB0cyxcbiAgICAgICAgICBzY3JpcHRzYm9keUJlZm9yZSxcbiAgICAgICAgfSxcbiAgICAgICAgbWFuaWZlc3RcbiAgICAgICk7XG4gICAgICBkZWJ1ZygndGVtcGxhdGUgOjogJW8nLCB3ZWJQYWdlKTtcbiAgICAgIGNhY2hlLnNldCgndGVtcGxhdGUnLCB3ZWJQYWdlKTtcbiAgICAgIGRlYnVnKCdzZXQgdGVtcGxhdGUgY2FjaGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3JldXNlIHRlbXBsYXRlIGNhY2hlJyk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgdGhlbWUgY291bGQgbm90IGJlIGxvYWQsIHN0YWNrICR7ZXJyb3Iuc3RhY2t9YCk7XG4gIH1cbiAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgSEVBREVSUy5URVhUX0hUTUwpO1xuICByZXMuc2VuZCh3ZWJQYWdlKTtcbiAgZGVidWcoJ3JlbmRlciB3ZWInKTtcbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2h0bWwvcmVuZGVySFRNTC50cyJdLCJuYW1lcyI6WyJwa2dKU09OIiwicmVxdWlyZSIsIkRFRkFVTFRfTEFOR1VBR0UiLCJjYWNoZSIsIkxSVSIsIm1heCIsIm1heEFnZSIsImRlYnVnIiwiZGVmYXVsdE1hbmlmZXN0RmlsZXMiLCJqcyIsImljbyIsInZhbGlkYXRlUHJpbWFyeUNvbG9yIiwicHJpbWFyeUNvbG9yIiwiaXNIZXgiLCJ0ZXN0IiwicmVzb2x2ZUxvZ28iLCJjb25maWciLCJyZXEiLCJpc0xvY2FsRmlsZSIsIndlYiIsImxvZ28iLCJ1cmxfcHJlZml4IiwicGF0aCIsImJhc2VuYW1lIiwicmVuZGVySFRNTCIsIm1hbmlmZXN0IiwibWFuaWZlc3RGaWxlcyIsInJlcyIsImJhc2UiLCJVUkwiLCJwYXRobmFtZSIsImxhbmd1YWdlIiwiaTE4biIsImRhcmtNb2RlIiwidGl0bGUiLCJXRUJfVElUTEUiLCJzY29wZSIsImxvZ2luIiwibG9nb1VSSSIsInBrZ01hbmFnZXJzIiwidmVyc2lvbiIsInByaW1hcnlfY29sb3IiLCJzY3JpcHRzQm9keUFmdGVyIiwibWV0YVNjcmlwdHMiLCJzY3JpcHRzYm9keUJlZm9yZSIsIk9iamVjdCIsImFzc2lnbiIsImJvZHlCZWZvcmUiLCJvcHRpb25zIiwid2ViUGFnZSIsImdldCIsInNldCIsImVycm9yIiwiRXJyb3IiLCJzdGFjayIsInNldEhlYWRlciIsIkhFQURFUlMiLCJURVhUX0hUTUwiLCJzZW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXZCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLE9BQXpCO0FBQ0EsTUFBTUMsS0FBSyxHQUFHLElBQUlDLGlCQUFKLENBQVE7QUFBRUMsRUFBQUEsR0FBRyxFQUFF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O0FBQ1oxQyxNQUFBQSxLQUFLLENBQUMsZ0JBQUQsRUFBbUJ5QyxPQUFuQixDQUFMO0FBQ0F6QyxNQUFBQSxLQUFLLENBQUMsc0JBQUQsRUFBeUJtQixhQUF6QixDQUFMO0FBQ0F1QixNQUFBQSxPQUFPLEdBQUcsdUJBQ1I7QUFDRXhCLFFBQUFBLFFBQVEsRUFBRUMsYUFBRixhQUFFQSxhQUFGLGNBQUVBLGFBQUYsR0FBbUJsQixvQkFEN0I7QUFFRXdDLFFBQUFBLE9BRkY7QUFHRU4sUUFBQUEsZ0JBSEY7QUFJRUMsUUFBQUEsV0FKRjtBQUtFQyxRQUFBQTtBQUxGLE9BRFEsRUFRUm5CLFFBUlEsQ0FBVjtBQVVBbEIsTUFBQUEsS0FBSyxDQUFDLGdCQUFELEVBQW1CMEMsT0FBbkIsQ0FBTDtBQUNBOUMsTUFBQUEsS0FBSyxDQUFDZ0QsR0FBTixDQUFVLFVBQVYsRUFBc0JGLE9BQXRCO0FBQ0ExQyxNQUFBQSxLQUFLLENBQUMsb0JBQUQsQ0FBTDtBQUNELEtBaEJELE1BZ0JPO0FBQ0xBLE1BQUFBLEtBQUssQ0FBQyxzQkFBRCxDQUFMO0FBQ0Q7QUFDRixHQXRCRCxDQXNCRSxPQUFPNkMsS0FBUCxFQUFjO0FBQ2QsVUFBTSxJQUFJQyxLQUFKLENBQVcsa0NBQWlDRCxLQUFLLENBQUNFLEtBQU0sRUFBeEQsQ0FBTjtBQUNEOztBQUNEM0IsRUFBQUEsR0FBRyxDQUFDNEIsU0FBSixDQUFjLGNBQWQsRUFBOEJDLG9CQUFRQyxTQUF0QztBQUNBOUIsRUFBQUEsR0FBRyxDQUFDK0IsSUFBSixDQUFTVCxPQUFUO0FBQ0ExQyxFQUFBQSxLQUFLLENBQUMsWUFBRCxDQUFMO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTFJVIGZyb20gJ2xydS1jYWNoZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7IEhFQURFUlMgfSBmcm9tICdAdmVyZGFjY2lvL2NvbW1vbnMtYXBpJztcblxuaW1wb3J0IHsgV0VCX1RJVExFIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQdWJsaWNVcmwsIGhhc0xvZ2luLCBpc0hUVFBQcm90b2NvbCB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgcmVuZGVyVGVtcGxhdGUgZnJvbSAnLi90ZW1wbGF0ZSc7XG5cbmNvbnN0IHBrZ0pTT04gPSByZXF1aXJlKCcuLi8uLi8uLi8uLi9wYWNrYWdlLmpzb24nKTtcbmNvbnN0IERFRkFVTFRfTEFOR1VBR0UgPSAnZXMtVVMnO1xuY29uc3QgY2FjaGUgPSBuZXcgTFJVKHsgbWF4OiA1MDAsIG1heEFnZTogMTAwMCAqIDYwICogNjAgfSk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmNvbnN0IGRlZmF1bHRNYW5pZmVzdEZpbGVzID0ge1xuICBqczogWydydW50aW1lLmpzJywgJ3ZlbmRvcnMuanMnLCAnbWFpbi5qcyddLFxuICBpY286ICdmYXZpY29uLmljbycsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMb2dvKGNvbmZpZywgcmVxKSB7XG4gIGNvbnN0IGlzTG9jYWxGaWxlID0gY29uZmlnPy53ZWI/LmxvZ28gJiYgIWlzSFRUUFByb3RvY29sKGNvbmZpZz8ud2ViPy5sb2dvKTtcblxuICBpZiAoaXNMb2NhbEZpbGUpIHtcbiAgICByZXR1cm4gYCR7Z2V0UHVibGljVXJsKGNvbmZpZz8udXJsX3ByZWZpeCwgcmVxKX0tL3N0YXRpYy8ke3BhdGguYmFzZW5hbWUoY29uZmlnPy53ZWI/LmxvZ28pfWA7XG4gIH0gZWxzZSBpZiAoaXNIVFRQUHJvdG9jb2woY29uZmlnPy53ZWI/LmxvZ28pKSB7XG4gICAgcmV0dXJuIGNvbmZpZz8ud2ViPy5sb2dvO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW5kZXJIVE1MKGNvbmZpZywgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMsIHJlcSwgcmVzKSB7XG4gIGNvbnN0IHsgdXJsX3ByZWZpeCB9ID0gY29uZmlnO1xuICBjb25zdCBiYXNlID0gZ2V0UHVibGljVXJsKGNvbmZpZz8udXJsX3ByZWZpeCwgcmVxKTtcbiAgY29uc3QgYmFzZW5hbWUgPSBuZXcgVVJMKGJhc2UpLnBhdGhuYW1lO1xuICBjb25zdCBsYW5ndWFnZSA9IGNvbmZpZz8uaTE4bj8ud2ViID8/IERFRkFVTFRfTEFOR1VBR0U7XG4gIGNvbnN0IGRhcmtNb2RlID0gY29uZmlnPy53ZWI/LmRhcmtNb2RlID8/IGZhbHNlO1xuICBjb25zdCB0aXRsZSA9IGNvbmZpZz8ud2ViPy50aXRsZSA/PyBXRUJfVElUTEU7XG4gIGNvbnN0IHNjb3BlID0gY29uZmlnPy53ZWI/LnNjb3BlID8/ICcnO1xuICBjb25zdCBsb2dpbiA9IGhhc0xvZ2luKGNvbmZpZyk7XG4gIGNvbnN0IGxvZ29VUkkgPSByZXNvbHZlTG9nbyhjb25maWcsIHJlcSk7XG4gIGNvbnN0IHBrZ01hbmFnZXJzID0gY29uZmlnPy53ZWI/LnBrZ01hbmFnZXJzID8/IFsneWFybicsICdwbnBtJywgJ25wbSddO1xuICBjb25zdCB2ZXJzaW9uID0gcGtnSlNPTi52ZXJzaW9uO1xuICBjb25zdCBwcmltYXJ5Q29sb3IgPSB2YWxpZGF0ZVByaW1hcnlDb2xvcihjb25maWc/LndlYj8ucHJpbWFyeV9jb2xvcikgPz8gJyM0YjVlNDAnO1xuICBjb25zdCB7IHNjcmlwdHNCb2R5QWZ0ZXIsIG1ldGFTY3JpcHRzLCBzY3JpcHRzYm9keUJlZm9yZSB9ID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICB7XG4gICAgICBzY3JpcHRzQm9keUFmdGVyOiBbXSxcbiAgICAgIGJvZHlCZWZvcmU6IFtdLFxuICAgICAgbWV0YVNjcmlwdHM6IFtdLFxuICAgIH0sXG4gICAgY29uZmlnPy53ZWJcbiAgKTtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBkYXJrTW9kZSxcbiAgICB1cmxfcHJlZml4LFxuICAgIGJhc2VuYW1lLFxuICAgIGJhc2UsXG4gICAgcHJpbWFyeUNvbG9yLFxuICAgIHZlcnNpb24sXG4gICAgcGtnTWFuYWdlcnMsXG4gICAgbG9naW4sXG4gICAgbG9nbzogbG9nb1VSSSxcbiAgICB0aXRsZSxcbiAgICBzY29wZSxcbiAgICBsYW5ndWFnZSxcbiAgfTtcblxuICBsZXQgd2ViUGFnZTtcblxuICB0cnkge1xuICAgIHdlYlBhZ2UgPSBjYWNoZS5nZXQoJ3RlbXBsYXRlJyk7XG5cbiAgICBpZiAoIXdlYlBhZ2UpIHtcbiAgICAgIGRlYnVnKCd3ZWIgb3B0aW9ucyAlbycsIG9wdGlvbnMpO1xuICAgICAgZGVidWcoJ3dlYiBtYW5pZmVzdEZpbGVzICVvJywgbWFuaWZlc3RGaWxlcyk7XG4gICAgICB3ZWJQYWdlID0gcmVuZGVyVGVtcGxhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBtYW5pZmVzdDogbWFuaWZlc3RGaWxlcyA/PyBkZWZhdWx0TWFuaWZlc3RGaWxlcyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHNjcmlwdHNCb2R5QWZ0ZXIsXG4gICAgICAgICAgbWV0YVNjcmlwdHMsXG4gICAgICAgICAgc2NyaXB0c2JvZHlCZWZvcmUsXG4gICAgICAgIH0sXG4gICAgICAgIG1hbmlmZXN0XG4gICAgICApO1xuICAgICAgZGVidWcoJ3RlbXBsYXRlIDo6ICVvJywgd2ViUGFnZSk7XG4gICAgICBjYWNoZS5zZXQoJ3RlbXBsYXRlJywgd2ViUGFnZSk7XG4gICAgICBkZWJ1Zygnc2V0IHRlbXBsYXRlIGNhY2hlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdyZXVzZSB0ZW1wbGF0ZSBjYWNoZScpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRoZW1lIGNvdWxkIG5vdCBiZSBsb2FkLCBzdGFjayAke2Vycm9yLnN0YWNrfWApO1xuICB9XG4gIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIEhFQURFUlMuVEVYVF9IVE1MKTtcbiAgcmVzLnNlbmQod2ViUGFnZSk7XG4gIGRlYnVnKCdyZW5kZXIgd2ViJyk7XG59XG4iXX0=
|
|
@@ -41,4 +41,4 @@ function renderTemplate(template, manifest) {
|
|
|
41
41
|
</html>
|
|
42
42
|
`;
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2h0bWwvdGVtcGxhdGUudHMiXSwibmFtZXMiOlsiZGVidWciLCJyZW5kZXJUZW1wbGF0ZSIsInRlbXBsYXRlIiwibWFuaWZlc3QiLCJvcHRpb25zIiwiYmFzZSIsInRpdGxlIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1ldGFTY3JpcHRzIiwiam9pbiIsInNjcmlwdHNib2R5QmVmb3JlIiwianMiLCJtYXAiLCJpdGVtIiwic2NyaXB0c0JvZHlBZnRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOzs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLG9CQUFXLFdBQVgsQ0FBZDs7QUE4QmUsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBNENDLFFBQTVDLEVBQXVFO0FBQUE7O0FBQ3BGSCxFQUFBQSxLQUFLLENBQUMsYUFBRCxFQUFnQkUsUUFBaEIsQ0FBTDtBQUNBRixFQUFBQSxLQUFLLENBQUMsYUFBRCxFQUFnQkcsUUFBaEIsQ0FBTDtBQUVBLFNBQVE7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQkQsUUFMYixhQUthQSxRQUxiLHVCQUthQSxRQUFRLENBQUVFLE9BQVYsQ0FBa0JDLElBQUs7QUFDN0MsaUJBTlMseUJBTVFILFFBTlIsYUFNUUEsUUFOUiw0Q0FNUUEsUUFBUSxDQUFFRSxPQU5sQixzREFNUSxrQkFBbUJFLEtBTjNCLHlFQU1vQyxFQUFHO0FBQ2hELGlDQUFpQ0osUUFQeEIsYUFPd0JBLFFBUHhCLHVCQU93QkEsUUFBUSxDQUFFRSxPQUFWLENBQWtCQyxJQUFLO0FBQ3hEO0FBQ0E7QUFDQSxxREFBcURFLElBQUksQ0FBQ0MsU0FBTCxDQUFlTixRQUFRLENBQUNFLE9BQXhCLENBQWlDO0FBQ3RGO0FBQ0EsVUFBVUYsUUFBUSxTQUFSLElBQUFBLFFBQVEsV0FBUixJQUFBQSxRQUFRLENBQUVPLFdBQVYsR0FBd0JQLFFBQVEsQ0FBQ08sV0FBVCxDQUFxQkMsSUFBckIsQ0FBMEIsRUFBMUIsQ0FBeEIsR0FBd0QsRUFBRztBQUNyRTtBQUNBO0FBQ0EsUUFBUVIsUUFBUSxTQUFSLElBQUFBLFFBQVEsV0FBUixJQUFBQSxRQUFRLENBQUVTLGlCQUFWLEdBQThCVCxRQUFRLENBQUNTLGlCQUFULENBQTJCRCxJQUEzQixDQUFnQyxFQUFoQyxDQUE5QixHQUFvRSxFQUFHO0FBQy9FO0FBQ0EsVUFBVSxnQ0FBaUJSLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQlMsRUFBbkMsRUFBdUNULFFBQXZDLEVBQWlERCxRQUFqRCxhQUFpREEsUUFBakQsdUJBQWlEQSxRQUFRLENBQUVFLE9BQVYsQ0FBa0JDLElBQW5FLEVBQ0NRLEdBREQsQ0FDTUMsSUFBRCxJQUFXLDhCQUE2QkEsSUFBSyxhQURsRCxFQUVDSixJQUZELENBRU0sRUFGTixDQUVVO0FBQ3BCLFVBQVVSLFFBQVEsU0FBUixJQUFBQSxRQUFRLFdBQVIsSUFBQUEsUUFBUSxDQUFFYSxnQkFBVixHQUE2QmIsUUFBUSxDQUFDYSxnQkFBVCxDQUEwQkwsSUFBMUIsQ0FBK0IsRUFBL0IsQ0FBN0IsR0FBa0UsRUFBRztBQUMvRTtBQUNBO0FBQ0EsR0F2QkU7QUF3QkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCB7IE1hbmlmZXN0LCBnZXRNYW5pZmVzdFZhbHVlIH0gZnJvbSAnLi9tYW5pZmVzdCc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCB0eXBlIFRlbXBsYXRlVUlPcHRpb25zID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgdXJpPzogc3RyaW5nO1xuICBkYXJrTW9kZT86IGJvb2xlYW47XG4gIHByb3RvY29sPzogc3RyaW5nO1xuICBob3N0Pzogc3RyaW5nO1xuICB1cmxfcHJlZml4Pzogc3RyaW5nO1xuICBiYXNlOiBzdHJpbmc7XG4gIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgbG9nb1VSST86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIGxhbmd1YWdlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGUgPSB7XG4gIG1hbmlmZXN0OiBNYW5pZmVzdDtcbiAgb3B0aW9uczogVGVtcGxhdGVVSU9wdGlvbnM7XG4gIG1ldGFTY3JpcHRzPzogc3RyaW5nW107XG4gIHNjcmlwdHNCb2R5QWZ0ZXI/OiBzdHJpbmdbXTtcbiAgc2NyaXB0c2JvZHlCZWZvcmU/OiBzdHJpbmdbXTtcbn07XG5cbi8vIHRoZSBvdXRjb21lIG9mIHRoZSBXZWJwYWNrIE1hbmlmZXN0IFBsdWdpblxuZXhwb3J0IGludGVyZmFjZSBXZWJwYWNrTWFuaWZlc3Qge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSwgbWFuaWZlc3Q6IFdlYnBhY2tNYW5pZmVzdCkge1xuICBkZWJ1ZygndGVtcGxhdGUgJW8nLCB0ZW1wbGF0ZSk7XG4gIGRlYnVnKCdtYW5pZmVzdCAlbycsIG1hbmlmZXN0KTtcblxuICByZXR1cm4gYFxuICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgPGh0bWwgbGFuZz1cImVuLXVzXCI+IFxuICAgICAgPGhlYWQ+XG4gICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPlxuICAgICAgICA8YmFzZSBocmVmPVwiJHt0ZW1wbGF0ZT8ub3B0aW9ucy5iYXNlfVwiPlxuICAgICAgICA8dGl0bGU+JHt0ZW1wbGF0ZT8ub3B0aW9ucz8udGl0bGUgPz8gJyd9PC90aXRsZT4gICAgICAgIFxuICAgICAgICA8bGluayByZWw9XCJpY29uXCIgaHJlZj1cIiR7dGVtcGxhdGU/Lm9wdGlvbnMuYmFzZX0tL3N0YXRpYy9mYXZpY29uLmljb1wiLz5cbiAgICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIgLz4gXG4gICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgICB3aW5kb3cuX19WRVJEQUNDSU9fQkFTRU5BTUVfVUlfT1BUSU9OUz0ke0pTT04uc3RyaW5naWZ5KHRlbXBsYXRlLm9wdGlvbnMpfVxuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgJHt0ZW1wbGF0ZT8ubWV0YVNjcmlwdHMgPyB0ZW1wbGF0ZS5tZXRhU2NyaXB0cy5qb2luKCcnKSA6ICcnfVxuICAgICAgPC9oZWFkPiAgICBcbiAgICAgIDxib2R5IGNsYXNzPVwiYm9keVwiPlxuICAgICAgJHt0ZW1wbGF0ZT8uc2NyaXB0c2JvZHlCZWZvcmUgPyB0ZW1wbGF0ZS5zY3JpcHRzYm9keUJlZm9yZS5qb2luKCcnKSA6ICcnfVxuICAgICAgICA8ZGl2IGlkPVwicm9vdFwiPjwvZGl2PlxuICAgICAgICAke2dldE1hbmlmZXN0VmFsdWUodGVtcGxhdGUubWFuaWZlc3QuanMsIG1hbmlmZXN0LCB0ZW1wbGF0ZT8ub3B0aW9ucy5iYXNlKVxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGA8c2NyaXB0IGRlZmVyPVwiZGVmZXJcIiBzcmM9XCIke2l0ZW19XCI+PC9zY3JpcHQ+YClcbiAgICAgICAgICAuam9pbignJyl9XG4gICAgICAgICR7dGVtcGxhdGU/LnNjcmlwdHNCb2R5QWZ0ZXIgPyB0ZW1wbGF0ZS5zY3JpcHRzQm9keUFmdGVyLmpvaW4oJycpIDogJyd9XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICBgO1xufVxuIl19
|
package/build/api/web/index.js
CHANGED
|
@@ -7,25 +7,25 @@ exports.default = _default;
|
|
|
7
7
|
exports.loadTheme = loadTheme;
|
|
8
8
|
exports.validatePrimaryColor = validatePrimaryColor;
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _path = _interopRequireDefault(require("path"));
|
|
13
|
-
|
|
14
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
15
11
|
|
|
16
12
|
var _express = _interopRequireDefault(require("express"));
|
|
17
13
|
|
|
18
|
-
var
|
|
14
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
19
15
|
|
|
20
|
-
var
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
17
|
+
|
|
18
|
+
var _path = _interopRequireDefault(require("path"));
|
|
21
19
|
|
|
22
20
|
var _constants = require("../../lib/constants");
|
|
23
21
|
|
|
22
|
+
var _logger = require("../../lib/logger");
|
|
23
|
+
|
|
24
24
|
var _pluginLoader = _interopRequireDefault(require("../../lib/plugin-loader"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _search = _interopRequireDefault(require("../../lib/search"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _utils = require("../../lib/utils");
|
|
29
29
|
|
|
30
30
|
var _renderHTML = _interopRequireDefault(require("./html/renderHTML"));
|
|
31
31
|
|
|
@@ -136,4 +136,4 @@ function _default(config, auth, storage) {
|
|
|
136
136
|
});
|
|
137
137
|
return router;
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFDRyxLQUFmLE1BQTBCLEtBQTlCLEVBQXFDO0FBQ25DLFdBQU9GLGdCQUFFRyxJQUFGLENBQ0wsMkJBQ0VKLE1BREYsRUFFRUEsTUFBTSxDQUFDRyxLQUZULEVBR0UsRUFIRixFQUlFLFVBQVVFLE1BQVYsRUFBa0I7QUFDaEIsYUFBT0EsTUFBTSxDQUFDQyxVQUFQLElBQXFCRCxNQUFNLENBQUNFLFFBQTVCLElBQXdDRixNQUFNLENBQUNHLGFBQXREO0FBQ0QsS0FOSCxFQU9FLGlCQVBGLENBREssQ0FBUDtBQVdEO0FBQ0Y7O0FBRU0sU0FBU0Msb0JBQVQsQ0FBOEJDLFlBQTlCLEVBQTRDO0FBQ2pELFFBQU1DLEtBQUssR0FBRyx1Q0FBdUNDLElBQXZDLENBQTRDRixZQUE1QyxDQUFkOztBQUNBLE1BQUksQ0FBQ0MsS0FBTCxFQUFZO0FBQ1ZiLElBQUFBLEtBQUssQ0FBQywwQkFBRCxFQUE2QlksWUFBN0IsQ0FBTDtBQUNBO0FBQ0Q7O0FBRUQsU0FBT0EsWUFBUDtBQUNEOztBQUVELE1BQU1HLGdCQUFnQixHQUFJQyxJQUFELElBQVdDLEdBQUQsSUFBUztBQUMxQyxNQUFJLENBQUNBLEdBQUwsRUFBVTtBQUNSO0FBQ0Q7O0FBQ0QsTUFBSUEsR0FBRyxDQUFDQyxNQUFKLEtBQWVDLHVCQUFZQyxTQUEvQixFQUEwQztBQUN4Q0osSUFBQUEsSUFBSTtBQUNMLEdBRkQsTUFFTztBQUNMQSxJQUFBQSxJQUFJLENBQUNDLEdBQUQsQ0FBSjtBQUNEO0FBQ0YsQ0FURDs7QUFXZSxrQkFBVWYsTUFBVixFQUEwQm1CLElBQTFCLEVBQWdDQyxPQUFoQyxFQUF5QztBQUFBOztBQUN0RCxNQUFJO0FBQUVkLElBQUFBLFVBQUY7QUFBY0MsSUFBQUEsUUFBZDtBQUF3QkMsSUFBQUE7QUFBeEIsTUFBMENULFNBQVMsQ0FBQ0MsTUFBRCxDQUFULElBQXFCSCxPQUFPLENBQUMscUJBQUQsQ0FBUCxFQUFuRTs7QUFDQUMsRUFBQUEsS0FBSyxDQUFDLGdCQUFELEVBQW1CUSxVQUFuQixDQUFMOztBQUNBZSxrQkFBT0MsZ0JBQVAsQ0FBd0JGLE9BQXhCO0FBRUE7OztBQUNBLFFBQU1HLE1BQU0sR0FBR0MsaUJBQVFDLE1BQVIsRUFBZixDQU5zRCxDQU90RDtBQUNBOzs7QUFDQUYsRUFBQUEsTUFBTSxDQUFDRyxHQUFQLENBQVdQLElBQUksQ0FBQ1Esa0JBQUwsRUFBWDtBQUNBSixFQUFBQSxNQUFNLENBQUNHLEdBQVAsQ0FBVzlCLHFCQUFYLEVBVnNELENBWXREOztBQUNBMkIsRUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVcsYUFBWCxFQUEwQixVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0JoQixJQUFwQixFQUEwQjtBQUNsRCxVQUFNaUIsUUFBUSxHQUFHRixHQUFHLENBQUNHLE1BQUosQ0FBVyxDQUFYLENBQWpCO0FBQ0EsVUFBTUMsSUFBSSxHQUFJLEdBQUUzQixVQUFXLElBQUd5QixRQUFTLEVBQXZDO0FBQ0FqQyxJQUFBQSxLQUFLLENBQUMsdUJBQUQsRUFBMEJtQyxJQUExQixDQUFMO0FBQ0FILElBQUFBLEdBQUcsQ0FBQ0ksUUFBSixDQUFhRCxJQUFiLEVBQW1CcEIsZ0JBQWdCLENBQUNDLElBQUQsQ0FBbkM7QUFDRCxHQUxELEVBYnNELENBb0J0RDs7QUFDQSxNQUFJZCxNQUFNLFNBQU4sSUFBQUEsTUFBTSxXQUFOLG1CQUFBQSxNQUFNLENBQUVtQyxHQUFSLG9EQUFhQyxJQUFiLElBQXFCLENBQUMsMkJBQWVwQyxNQUFmLGFBQWVBLE1BQWYsdUNBQWVBLE1BQU0sQ0FBRW1DLEdBQXZCLGlEQUFlLGFBQWFDLElBQTVCLENBQTFCLEVBQTZEO0FBQzNEO0FBQ0EsVUFBTUMsaUJBQWlCLEdBQUdDLGNBQUtDLEtBQUwsQ0FBV0MsT0FBWCxDQUFtQnhDLE1BQU0sQ0FBQ21DLEdBQVAsQ0FBV0MsSUFBOUIsQ0FBMUI7O0FBQ0F0QyxJQUFBQSxLQUFLLENBQUMscUJBQUQsRUFBd0J1QyxpQkFBeEIsQ0FBTDs7QUFDQSxRQUFJO0FBQ0YsVUFBSUksWUFBR0MsVUFBSCxDQUFjTCxpQkFBZCxLQUFvQyxPQUFPSSxZQUFHRSxVQUFILENBQWNOLGlCQUFkLEVBQWlDSSxZQUFHRyxTQUFILENBQWFDLElBQTlDLENBQVAsS0FBK0QsV0FBdkcsRUFBb0g7QUFDbEg7QUFDQTtBQUNBN0MsUUFBQUEsTUFBTSxDQUFDbUMsR0FBUCxDQUFXQyxJQUFYLEdBQWtCRSxjQUFLQyxLQUFMLENBQVdPLElBQVgsQ0FBZ0IsWUFBaEIsRUFBOEJSLGNBQUtTLFFBQUwsQ0FBYy9DLE1BQU0sQ0FBQ21DLEdBQVAsQ0FBV0MsSUFBekIsQ0FBOUIsQ0FBbEI7QUFDQWIsUUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVc1QixNQUFNLENBQUNtQyxHQUFQLENBQVdDLElBQXRCLEVBQTRCLFVBQVVZLElBQVYsRUFBZ0JsQixHQUFoQixFQUFxQmhCLElBQXJCLEVBQTJCO0FBQ3JEO0FBQ0FoQixVQUFBQSxLQUFLLENBQUMsc0NBQUQsRUFBeUNFLE1BQU0sQ0FBQ21DLEdBQVAsQ0FBV0MsSUFBcEQsRUFBMERDLGlCQUExRCxDQUFMO0FBQ0FQLFVBQUFBLEdBQUcsQ0FBQ0ksUUFBSixDQUFhRyxpQkFBYixFQUFnQ3hCLGdCQUFnQixDQUFDQyxJQUFELENBQWhEO0FBQ0QsU0FKRDtBQUtBaEIsUUFBQUEsS0FBSyxDQUFDLHdCQUFELEVBQTJCRSxNQUFNLENBQUNtQyxHQUFQLENBQVdDLElBQXRDLENBQUw7QUFDRCxPQVZELE1BVU87QUFDTHBDLFFBQUFBLE1BQU0sQ0FBQ21DLEdBQVAsQ0FBV0MsSUFBWCxHQUFrQmEsU0FBbEI7O0FBQ0FDLHVCQUFPQyxJQUFQLENBQWEsMkJBQTBCZCxpQkFBa0Isb0NBQXpEO0FBQ0Q7QUFDRixLQWZELENBZUUsTUFBTTtBQUNOckMsTUFBQUEsTUFBTSxDQUFDbUMsR0FBUCxDQUFXQyxJQUFYLEdBQWtCYSxTQUFsQjs7QUFDQUMscUJBQU9DLElBQVAsQ0FBYSwyQkFBMEJkLGlCQUFrQixvQ0FBekQ7QUFDRDtBQUNGOztBQUVEZCxFQUFBQSxNQUFNLENBQUNLLEdBQVAsQ0FBVyxtQkFBWCxFQUFnQyxVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0I7QUFDbEQsNkJBQVc5QixNQUFYLEVBQW1CTyxRQUFuQixFQUE2QkMsYUFBN0IsRUFBNENxQixHQUE1QyxFQUFpREMsR0FBakQ7QUFDQWhDLElBQUFBLEtBQUssQ0FBQyxxQkFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBeUIsRUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVcsR0FBWCxFQUFnQixVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0JoQixJQUFwQixFQUEwQjtBQUN4Qyw2QkFBV2QsTUFBWCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMsYUFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBLFNBQU95QixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IGxvYWRQbHVnaW4gZnJvbSAnLi4vLi4vbGliL3BsdWdpbi1sb2FkZXInO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgcmVuZGVySFRNTCBmcm9tICcuL2h0bWwvcmVuZGVySFRNTCc7XG5cbmNvbnN0IHsgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlJyk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGhlbWUoY29uZmlnKSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8uaGVhZChcbiAgICAgIGxvYWRQbHVnaW4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgICB7fSxcbiAgICAgICAgZnVuY3Rpb24gKHBsdWdpbikge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICAgIH0sXG4gICAgICAgICd2ZXJkYWNjaW8tdGhlbWUnXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuY29uc3Qgc2VuZEZpbGVDYWxsYmFjayA9IChuZXh0KSA9PiAoZXJyKSA9PiB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlcnIuc3RhdHVzID09PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChlcnIpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnOiBDb25maWcsIGF1dGgsIHN0b3JhZ2UpIHtcbiAgbGV0IHsgc3RhdGljUGF0aCwgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMgfSA9IGxvYWRUaGVtZShjb25maWcpIHx8IHJlcXVpcmUoJ0B2ZXJkYWNjaW8vdWktdGhlbWUnKSgpO1xuICBkZWJ1Zygnc3RhdGljIHBhdGggJW8nLCBzdGF0aWNQYXRoKTtcbiAgU2VhcmNoLmNvbmZpZ3VyZVN0b3JhZ2Uoc3RvcmFnZSk7XG5cbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG4gIC8vIHJ1biBpbiBwcm9kdWN0aW9uIG1vZGUgYnkgZGVmYXVsdCwganVzdCBpbiBjYXNlXG4gIC8vIGl0IHNob3VsZG4ndCBtYWtlIGFueSBkaWZmZXJlbmNlIGFueXdheVxuICByb3V0ZXIudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZXIudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG5cbiAgLy8gc3RhdGljIGFzc2V0c1xuICByb3V0ZXIuZ2V0KCcvLS9zdGF0aWMvKicsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVxLnBhcmFtc1swXTtcbiAgICBjb25zdCBmaWxlID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gO1xuICAgIGRlYnVnKCdyZW5kZXIgc3RhdGljIGZpbGUgJW8nLCBmaWxlKTtcbiAgICByZXMuc2VuZEZpbGUoZmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gIH0pO1xuXG4gIC8vIGxvZ29cbiAgaWYgKGNvbmZpZz8ud2ViPy5sb2dvICYmICFpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICAvLyBVUkkgcmVsYXRlZCB0byBhIGxvY2FsIGZpbGVcbiAgICBjb25zdCBhYnNvbHV0ZUxvY2FsRmlsZSA9IHBhdGgucG9zaXgucmVzb2x2ZShjb25maWcud2ViLmxvZ28pO1xuICAgIGRlYnVnKCdzZXJ2ZSBsb2NhbCBsb2dvICVzJywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhhYnNvbHV0ZUxvY2FsRmlsZSkgJiYgdHlwZW9mIGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUsIGZzLmNvbnN0YW50cy5SX09LKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gTm90ZTogYHBhdGguam9pbmAgd2lsbCBicmVhayBvbiBXaW5kb3dzLCBiZWNhdXNlIGl0IHRyYW5zZm9ybXMgYC9gIHRvIGBcXGBcbiAgICAgICAgLy8gVXNlIFBPU0lYIHZlcnNpb24gYHBhdGgucG9zaXguam9pbmAgaW5zdGVhZC5cbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gcGF0aC5wb3NpeC5qb2luKCcvLS9zdGF0aWMvJywgcGF0aC5iYXNlbmFtZShjb25maWcud2ViLmxvZ28pKTtcbiAgICAgICAgcm91dGVyLmdldChjb25maWcud2ViLmxvZ28sIGZ1bmN0aW9uIChfcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgZGVidWcoJ3NlcnZlIGN1c3RvbSBsb2dvICB3ZWI6JXMgLSBsb2NhbDolcycsIGNvbmZpZy53ZWIubG9nbywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgICAgICAgIHJlcy5zZW5kRmlsZShhYnNvbHV0ZUxvY2FsRmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZWJ1ZygnZW5hYmxlZCBjdXN0b20gbG9nbyAlcycsIGNvbmZpZy53ZWIubG9nbyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25maWcud2ViLmxvZ28gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHVuZGVmaW5lZDtcbiAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICB9XG4gIH1cblxuICByb3V0ZXIuZ2V0KCcvLS93ZWIvOnNlY3Rpb24vKicsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpO1xuICAgIGRlYnVnKCdyZW5kZXIgaHRtbCBzZWN0aW9uJyk7XG4gIH0pO1xuXG4gIHJvdXRlci5nZXQoJy8nLCBmdW5jdGlvbiAocmVxLCByZXMsIG5leHQpIHtcbiAgICByZW5kZXJIVE1MKGNvbmZpZywgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMsIHJlcSwgcmVzKTtcbiAgICBkZWJ1ZygncmVuZGVyIHJvb3QnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcjtcbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFD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RUFBb0I7QUFDbEQsNkJBQVc5QixNQUFYLEVBQW1CTyxRQUFuQixFQUE2QkMsYUFBN0IsRUFBNENxQixHQUE1QyxFQUFpREMsR0FBakQ7QUFDQWhDLElBQUFBLEtBQUssQ0FBQyxxQkFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBeUIsRUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVcsR0FBWCxFQUFnQixVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0JoQixJQUFwQixFQUEwQjtBQUN4Qyw2QkFBV2QsTUFBWCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMsYUFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBLFNBQU95QixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgbG9hZFBsdWdpbiBmcm9tICcuLi8uLi9saWIvcGx1Z2luLWxvYWRlcic7XG5pbXBvcnQgU2VhcmNoIGZyb20gJy4uLy4uL2xpYi9zZWFyY2gnO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHJlbmRlckhUTUwgZnJvbSAnLi9odG1sL3JlbmRlckhUTUwnO1xuXG5jb25zdCB7IHNldFNlY3VyaXR5V2ViSGVhZGVycyB9ID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZScpO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbycpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFRoZW1lKGNvbmZpZykge1xuICBpZiAoXy5pc05pbChjb25maWcudGhlbWUpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBfLmhlYWQoXG4gICAgICBsb2FkUGx1Z2luKFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGNvbmZpZy50aGVtZSxcbiAgICAgICAge30sXG4gICAgICAgIGZ1bmN0aW9uIChwbHVnaW4pIHtcbiAgICAgICAgICByZXR1cm4gcGx1Z2luLnN0YXRpY1BhdGggJiYgcGx1Z2luLm1hbmlmZXN0ICYmIHBsdWdpbi5tYW5pZmVzdEZpbGVzO1xuICAgICAgICB9LFxuICAgICAgICAndmVyZGFjY2lvLXRoZW1lJ1xuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHJpbWFyeUNvbG9yKHByaW1hcnlDb2xvcikge1xuICBjb25zdCBpc0hleCA9IC9eIysoW2EtZkEtRjAtOV17Nn18W2EtZkEtRjAtOV17M30pJC9pLnRlc3QocHJpbWFyeUNvbG9yKTtcbiAgaWYgKCFpc0hleCkge1xuICAgIGRlYnVnKCdpbnZhbGlkIHByaW1hcnkgY29sb3IgJW8nLCBwcmltYXJ5Q29sb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBwcmltYXJ5Q29sb3I7XG59XG5cbmNvbnN0IHNlbmRGaWxlQ2FsbGJhY2sgPSAobmV4dCkgPT4gKGVycikgPT4ge1xuICBpZiAoIWVycikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZXJyLnN0YXR1cyA9PT0gSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKSB7XG4gICAgbmV4dCgpO1xuICB9IGVsc2Uge1xuICAgIG5leHQoZXJyKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoLCBzdG9yYWdlKSB7XG4gIGxldCB7IHN0YXRpY1BhdGgsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzIH0gPSBsb2FkVGhlbWUoY29uZmlnKSB8fCByZXF1aXJlKCdAdmVyZGFjY2lvL3VpLXRoZW1lJykoKTtcbiAgZGVidWcoJ3N0YXRpYyBwYXRoICVvJywgc3RhdGljUGF0aCk7XG4gIFNlYXJjaC5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuXG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICAvLyBydW4gaW4gcHJvZHVjdGlvbiBtb2RlIGJ5IGRlZmF1bHQsIGp1c3QgaW4gY2FzZVxuICAvLyBpdCBzaG91bGRuJ3QgbWFrZSBhbnkgZGlmZmVyZW5jZSBhbnl3YXlcbiAgcm91dGVyLnVzZShhdXRoLndlYlVJSldUbWlkZGxld2FyZSgpKTtcbiAgcm91dGVyLnVzZShzZXRTZWN1cml0eVdlYkhlYWRlcnMpO1xuXG4gIC8vIHN0YXRpYyBhc3NldHNcbiAgcm91dGVyLmdldCgnLy0vc3RhdGljLyonLCBmdW5jdGlvbiAocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHJlcS5wYXJhbXNbMF07XG4gICAgY29uc3QgZmlsZSA9IGAke3N0YXRpY1BhdGh9LyR7ZmlsZW5hbWV9YDtcbiAgICBkZWJ1ZygncmVuZGVyIHN0YXRpYyBmaWxlICVvJywgZmlsZSk7XG4gICAgcmVzLnNlbmRGaWxlKGZpbGUsIHNlbmRGaWxlQ2FsbGJhY2sobmV4dCkpO1xuICB9KTtcblxuICAvLyBsb2dvXG4gIGlmIChjb25maWc/LndlYj8ubG9nbyAmJiAhaXNIVFRQUHJvdG9jb2woY29uZmlnPy53ZWI/LmxvZ28pKSB7XG4gICAgLy8gVVJJIHJlbGF0ZWQgdG8gYSBsb2NhbCBmaWxlXG4gICAgY29uc3QgYWJzb2x1dGVMb2NhbEZpbGUgPSBwYXRoLnBvc2l4LnJlc29sdmUoY29uZmlnLndlYi5sb2dvKTtcbiAgICBkZWJ1Zygnc2VydmUgbG9jYWwgbG9nbyAlcycsIGFic29sdXRlTG9jYWxGaWxlKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUpICYmIHR5cGVvZiBmcy5hY2Nlc3NTeW5jKGFic29sdXRlTG9jYWxGaWxlLCBmcy5jb25zdGFudHMuUl9PSykgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIE5vdGU6IGBwYXRoLmpvaW5gIHdpbGwgYnJlYWsgb24gV2luZG93cywgYmVjYXVzZSBpdCB0cmFuc2Zvcm1zIGAvYCB0byBgXFxgXG4gICAgICAgIC8vIFVzZSBQT1NJWCB2ZXJzaW9uIGBwYXRoLnBvc2l4LmpvaW5gIGluc3RlYWQuXG4gICAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHBhdGgucG9zaXguam9pbignLy0vc3RhdGljLycsIHBhdGguYmFzZW5hbWUoY29uZmlnLndlYi5sb2dvKSk7XG4gICAgICAgIHJvdXRlci5nZXQoY29uZmlnLndlYi5sb2dvLCBmdW5jdGlvbiAoX3JlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGRlYnVnKCdzZXJ2ZSBjdXN0b20gbG9nbyAgd2ViOiVzIC0gbG9jYWw6JXMnLCBjb25maWcud2ViLmxvZ28sIGFic29sdXRlTG9jYWxGaWxlKTtcbiAgICAgICAgICByZXMuc2VuZEZpbGUoYWJzb2x1dGVMb2NhbEZpbGUsIHNlbmRGaWxlQ2FsbGJhY2sobmV4dCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgZGVidWcoJ2VuYWJsZWQgY3VzdG9tIGxvZ28gJXMnLCBjb25maWcud2ViLmxvZ28pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gdW5kZWZpbmVkO1xuICAgICAgICBsb2dnZXIud2Fybihgd2ViIGxvZ28gaXMgd3JvbmcsIHBhdGggJHthYnNvbHV0ZUxvY2FsRmlsZX0gZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IHJlYWRhYmxlYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25maWcud2ViLmxvZ28gPSB1bmRlZmluZWQ7XG4gICAgICBsb2dnZXIud2Fybihgd2ViIGxvZ28gaXMgd3JvbmcsIHBhdGggJHthYnNvbHV0ZUxvY2FsRmlsZX0gZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IHJlYWRhYmxlYCk7XG4gICAgfVxuICB9XG5cbiAgcm91dGVyLmdldCgnLy0vd2ViLzpzZWN0aW9uLyonLCBmdW5jdGlvbiAocmVxLCByZXMpIHtcbiAgICByZW5kZXJIVE1MKGNvbmZpZywgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMsIHJlcSwgcmVzKTtcbiAgICBkZWJ1ZygncmVuZGVyIGh0bWwgc2VjdGlvbicpO1xuICB9KTtcblxuICByb3V0ZXIuZ2V0KCcvJywgZnVuY3Rpb24gKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVuZGVySFRNTChjb25maWcsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzLCByZXEsIHJlcyk7XG4gICAgZGVidWcoJ3JlbmRlciByb290Jyk7XG4gIH0pO1xuXG4gIHJldHVybiByb3V0ZXI7XG59XG4iXX0=
|
package/build/config/env.js
CHANGED
|
@@ -11,4 +11,4 @@ module.exports = {
|
|
|
11
11
|
SRC_ROOT: path.resolve(APP_ROOT, 'src/'),
|
|
12
12
|
DIST_PATH: path.resolve(APP_ROOT, 'static/')
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvZW52LnRzIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiQVBQX1JPT1QiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwibW9kdWxlIiwiZXhwb3J0cyIsIlNSQ19ST09UIiwiRElTVF9QQVRIIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBRUEsTUFBTUMsUUFBUSxHQUFHRixJQUFJLENBQUNHLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixRQUF4QixDQUFqQjtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZkosRUFBQUEsUUFEZTtBQUVmSyxFQUFBQSxRQUFRLEVBQUVQLElBQUksQ0FBQ0csT0FBTCxDQUFhRCxRQUFiLEVBQXVCLE1BQXZCLENBRks7QUFHZk0sRUFBQUEsU0FBUyxFQUFFUixJQUFJLENBQUNHLE9BQUwsQ0FBYUQsUUFBYixFQUF1QixTQUF2QjtBQUhJLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5jb25zdCBBUFBfUk9PVCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEFQUF9ST09ULFxuICBTUkNfUk9PVDogcGF0aC5yZXNvbHZlKEFQUF9ST09ULCAnc3JjLycpLFxuICBESVNUX1BBVEg6IHBhdGgucmVzb2x2ZShBUFBfUk9PVCwgJ3N0YXRpYy8nKSxcbn07XG4iXX0=
|
package/build/index.js
CHANGED
|
@@ -10,4 +10,4 @@ var _bootstrap = require("./lib/bootstrap");
|
|
|
10
10
|
// @flow
|
|
11
11
|
var _default = _bootstrap.startVerdaccio;
|
|
12
12
|
exports.default = _default;
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJzdGFydFZlcmRhY2NpbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQURBO2VBR2VBLHlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbmltcG9ydCB7IHN0YXJ0VmVyZGFjY2lvIH0gZnJvbSAnLi9saWIvYm9vdHN0cmFwJztcblxuZXhwb3J0IGRlZmF1bHQgc3RhcnRWZXJkYWNjaW87XG4iXX0=
|
package/build/lib/auth-utils.js
CHANGED
|
@@ -23,18 +23,18 @@ exports.parseBasicPayload = parseBasicPayload;
|
|
|
23
23
|
exports.validatePassword = validatePassword;
|
|
24
24
|
exports.verifyJWTPayload = verifyJWTPayload;
|
|
25
25
|
|
|
26
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
27
|
-
|
|
28
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
29
27
|
|
|
30
|
-
var
|
|
28
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
31
29
|
|
|
32
|
-
var
|
|
30
|
+
var _logger = require("../lib/logger");
|
|
33
31
|
|
|
34
32
|
var _constants = require("./constants");
|
|
35
33
|
|
|
36
34
|
var _cryptoUtils = require("./crypto-utils");
|
|
37
35
|
|
|
36
|
+
var _utils = require("./utils");
|
|
37
|
+
|
|
38
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
39
|
|
|
40
40
|
const debug = (0, _debug.default)('verdaccio');
|
|
@@ -312,4 +312,4 @@ function getMiddlewareCredentials(security, secret, authorizationHeader) {
|
|
|
312
312
|
return verifyJWTPayload(token, secret);
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl8xSCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0VXNlclJhdGVMaW1pdGluZyIsIndpbmRvd01zIiwibWF4IiwiZGVmYXVsdFNlY3VyaXR5Iiwid2ViIiwiYXBpIiwiZ2V0U2VjdXJpdHkiLCJjb25maWciLCJzZWN1cml0eSIsIm1lcmdlIiwiZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UiLCJidWlsZFVzZXJCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaXNBRVNMZWdhY3kiLCJqd3QiLCJnZXRBcGlUb2tlbiIsImF1dGgiLCJyZW1vdGVVc2VyIiwiYWVzUGFzc3dvcmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFlc0VuY3J5cHQiLCJ0b1N0cmluZyIsImp3dEVuY3J5cHQiLCJwYXJzZUF1dGhUb2tlbkhlYWRlciIsImF1dGhvcml6YXRpb25IZWFkZXIiLCJwYXJ0cyIsInNwbGl0Iiwic2NoZW1lIiwidG9rZW4iLCJwYXJzZUJhc2ljUGF5bG9hZCIsImNyZWRlbnRpYWxzIiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJwYXJzZUFFU0NyZWRlbnRpYWxzIiwic2VjcmV0IiwidG9VcHBlckNhc2UiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsInRva2VuQXNCdWZmZXIiLCJleHBpcmVSZWFzb25zIiwidmVyaWZ5SldUUGF5bG9hZCIsInBheWxvYWQiLCJlcnJvciIsImdldENvZGUiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIm1lc3NhZ2UiLCJpc0F1dGhIZWFkZXJWYWxpZCIsImF1dGhvcml6YXRpb24iLCJnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMiLCJwYXJzZWRDcmVkZW50aWFscyIsImlzU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcsb0JB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LENBQTJCQyxhQUEzQixFQUEyRDtBQUNoRSxTQUFPQSxhQUFhLENBQUN2QixLQUFkLENBQW9CLEdBQXBCLEVBQXlCN0YsTUFBekIsS0FBb0MsQ0FBM0M7QUFDRDs7QUFFTSxTQUFTcUgsd0JBQVQsQ0FBa0M1QyxRQUFsQyxFQUFzRDZCLE1BQXRELEVBQXNFWCxtQkFBdEUsRUFBMEg7QUFDL0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSXJELGdCQUFFaUYsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZW1vdGVVc2VyLCBQYWNrYWdlLCBDYWxsYmFjaywgQ29uZmlnLCBTZWN1cml0eSwgQVBJVG9rZW5PcHRpb25zLCBKV1RPcHRpb25zLCBJUGx1Z2luQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQ29va2llU2Vzc2lvblRva2VuLCBJQXV0aFdlYlVJLCBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0LCBFcnJvckNvZGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fMUgsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIsIERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWVzRGVjcnlwdCwgdmVyaWZ5UGF5bG9hZCB9IGZyb20gJy4vY3J5cHRvLXV0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFzc3dvcmQoXG4gIHBhc3N3b3JkOiBzdHJpbmcsIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICBtaW5MZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycgJiYgcGFzc3dvcmQubGVuZ3RoID49IG1pbkxlbmd0aDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBSZW1vdGVVc2VyIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBwbHVnaW5Hcm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlVXNlcihuYW1lOiBzdHJpbmcsIHBsdWdpbkdyb3Vwczogc3RyaW5nW10pOiBSZW1vdGVVc2VyIHtcbiAgY29uc3QgaXNHcm91cFZhbGlkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShwbHVnaW5Hcm91cHMpO1xuICBjb25zdCBncm91cHMgPSAoaXNHcm91cFZhbGlkID8gcGx1Z2luR3JvdXBzIDogW10pLmNvbmNhdChbUk9MRVMuJEFMTCwgUk9MRVMuJEFVVEgsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FVVEgsIFJPTEVTLkFMTF0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBncm91cHMsXG4gICAgcmVhbF9ncm91cHM6IHBsdWdpbkdyb3VwcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5vbnltb3VzIHJlbW90ZSB1c2VyIGluIGNhc2Ugbm9uZSBpcyBsb2dnZWQgaW4uXG4gKiBAcmV0dXJuIHtPYmplY3R9IHsgbmFtZTogeHgsIGdyb3VwczogW10sIHJlYWxfZ3JvdXBzOiBbXSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk6IFJlbW90ZVVzZXIge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAvLyBncm91cHMgd2l0aG91dCAnJCcgYXJlIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgZXZlbnR1YWxseVxuICAgIGdyb3VwczogW1JPTEVTLiRBTEwsIFJPTEVTLiRBTk9OWU1PVVMsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FOT05ZTU9VU10sXG4gICAgcmVhbF9ncm91cHM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dfYWN0aW9uKGFjdGlvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHVzZXI6IFJlbW90ZVVzZXIsIHBrZzogUGFja2FnZSwgY2FsbGJhY2s6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IHVzZXI6ICVvJywgdXNlcj8ubmFtZSk7XG4gICAgY29uc3QgeyBuYW1lLCBncm91cHMgfSA9IHVzZXI7XG4gICAgY29uc3QgZ3JvdXBBY2Nlc3MgPSBwa2dbYWN0aW9uXTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZ3JvdXBBY2Nlc3Muc29tZSgoZ3JvdXApID0+IG5hbWUgPT09IGdyb3VwIHx8IGdyb3Vwcy5pbmNsdWRlcyhncm91cCkpO1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiBoYXNQZXJtaXNzaW9uPyAlb30gZm9yIHVzZXI6ICVvJywgaGFzUGVybWlzc2lvbiwgdXNlcj8ubmFtZSk7XG5cbiAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgbG9nZ2VyLmluZm8oeyByZW1vdGU6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oYHVzZXIgJHtuYW1lfSBpcyBub3QgYWxsb3dlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZChgYXV0aG9yaXphdGlvbiByZXF1aXJlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogSVBsdWdpbkF1dGg8Q29uZmlnPiB7XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgY2IoRXJyb3JDb2RlLmdldEZvcmJpZGRlbihBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIGFkZF91c2VyKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgcmV0dXJuIGNiKEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIC8vIEZJWE1FOiBhbGxvd19hY3Rpb24gYW5kIGFsbG93X3B1Ymxpc2ggc2hvdWxkIGJlIGluIHRoZSBAdmVyZGFjY2lvL3R5cGVzXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X2FjY2VzczogYWxsb3dfYWN0aW9uKCdhY2Nlc3MnLCBsb2dnZXIpLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19wdWJsaXNoOiBhbGxvd19hY3Rpb24oJ3B1Ymxpc2gnLCBsb2dnZXIpLFxuICAgIGFsbG93X3VucHVibGlzaDogaGFuZGxlU3BlY2lhbFVucHVibGlzaCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvblRva2VuKCk6IENvb2tpZVNlc3Npb25Ub2tlbiB7XG4gIGNvbnN0IHRlbkhvdXJzVGltZSA9IDEwICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBucG1qcy5vcmcgc2V0cyAxMGggZXhwaXJlXG4gICAgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIHRlbkhvdXJzVGltZSksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgMSBob3VyXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fMUgsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbi8vIHdlIGxpbWl0IG1heCAxMDAwIHJlcXVlc3QgcGVyIDE1IG1pbnV0ZXMgb24gdXNlciBlbmRwb2ludHNcbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlclJhdGVMaW1pdGluZyA9IHtcbiAgd2luZG93TXM6IDE1ICogNjAgKiAxMDAwLCAvLyAxNSBtaW51dGVzXG4gIG1heDogMTAwMCxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UodXNlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQgYXMgJyR7dXNlcn0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlckJ1ZmZlcihuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oYCR7bmFtZX06JHtwYXNzd29yZH1gLCAndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oYXV0aDogSUF1dGhXZWJVSSwgY29uZmlnOiBDb25maWcsIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIGFlc1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgLy8gZmFsbGJhY2sgYWxsIGdvZXMgdG8gQUVTIGVuY3J5cHRpb25cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICAgIHJlc29sdmUoYXV0aC5hZXNFbmNyeXB0KGJ1aWxkVXNlckJ1ZmZlcihyZW1vdGVVc2VyLm5hbWUgYXMgc3RyaW5nLCBhZXNQYXNzd29yZCkpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgfSk7XG4gIH1cbiAgLy8gaSBhbSB3aWxpbmcgdG8gdXNlIGhlcmUgXy5pc05pbCBidXQgZmxvdyBkb2VzIG5vdCBsaWtlIGl0IHlldC5cbiAgY29uc3QgeyBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICBpZiAoand0ICYmIGp3dC5zaWduKSB7XG4gICAgcmV0dXJuIGF3YWl0IGF1dGguand0RW5jcnlwdChyZW1vdGVVc2VyLCBqd3Quc2lnbik7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgcmVzb2x2ZShhdXRoLmFlc0VuY3J5cHQoYnVpbGRVc2VyQnVmZmVyKHJlbW90ZVVzZXIubmFtZSBhcyBzdHJpbmcsIGFlc1Bhc3N3b3JkKSkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBBdXRoVG9rZW5IZWFkZXIge1xuICBjb25zdCBwYXJ0cyA9IGF1dGhvcml6YXRpb25IZWFkZXIuc3BsaXQoJyAnKTtcbiAgY29uc3QgW3NjaGVtZSwgdG9rZW5dID0gcGFydHM7XG5cbiAgcmV0dXJuIHsgc2NoZW1lLCB0b2tlbiB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCYXNpY1BheWxvYWQoY3JlZGVudGlhbHM6IHN0cmluZyk6IEJhc2ljUGF5bG9hZCB7XG4gIGNvbnN0IGluZGV4ID0gY3JlZGVudGlhbHMuaW5kZXhPZignOicpO1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdXNlcjogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoMCwgaW5kZXgpO1xuICBjb25zdCBwYXNzd29yZDogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4geyB1c2VyLCBwYXNzd29yZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKSB7XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgLy8gYmFzaWMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBlbmZvcmNlZFxuICBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JBU0lDLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pLnRvU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH0gZWxzZSBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JFQVJFUi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgY29uc3QgdG9rZW5Bc0J1ZmZlciA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYWVzRGVjcnlwdCh0b2tlbkFzQnVmZmVyLCBzZWNyZXQpLnRvU3RyaW5nKCd1dGY4Jyk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGV4cGlyZVJlYXNvbnM6IHN0cmluZ1tdID0gWydKc29uV2ViVG9rZW5FcnJvcicsICdUb2tlbkV4cGlyZWRFcnJvciddO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5SldUUGF5bG9hZCh0b2tlbjogc3RyaW5nLCBzZWNyZXQ6IHN0cmluZyk6IFJlbW90ZVVzZXIge1xuICB0cnkge1xuICAgIGNvbnN0IHBheWxvYWQ6IFJlbW90ZVVzZXIgPSB2ZXJpZnlQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gIzE2OCB0aGlzIGNoZWNrIHNob3VsZCBiZSByZW1vdmVkIGFzIHNvb24gQUVTIGVuY3J5cHQgaXMgcmVtb3ZlZC5cbiAgICBpZiAoZXhwaXJlUmVhc29ucy5pbmNsdWRlcyhlcnJvci5uYW1lKSkge1xuICAgICAgLy8gaXQgbWlnaHQgYmUgcG9zc2libGUgdGhlIGp3dCBjb25maWd1cmF0aW9uIGlzIGVuYWJsZWQgYW5kXG4gICAgICAvLyBvbGQgdG9rZW5zIGZhaWxzIHN0aWxsIHJlbWFpbnMgaW4gdXNhZ2UsIHRodXNcbiAgICAgIC8vIHdlIHJldHVybiBhbiBhbm9ueW1vdXMgdXNlciB0byBmb3JjZSBsb2cgaW4uXG4gICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlcigpO1xuICAgIH1cbiAgICB0aHJvdyBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQsIGVycm9yLm1lc3NhZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhIZWFkZXJWYWxpZChhdXRob3JpemF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGF1dGhvcml6YXRpb24uc3BsaXQoJyAnKS5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMoc2VjdXJpdHk6IFNlY3VyaXR5LCBzZWNyZXQ6IHN0cmluZywgYXV0aG9yaXphdGlvbkhlYWRlcjogc3RyaW5nKTogQXV0aE1pZGRsZXdhcmVQYXlsb2FkIHtcbiAgaWYgKGlzQUVTTGVnYWN5KHNlY3VyaXR5KSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyLCBzZWNyZXQpO1xuICAgIGlmICghY3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWRDcmVkZW50aWFscyA9IHBhcnNlQmFzaWNQYXlsb2FkKGNyZWRlbnRpYWxzKTtcbiAgICBpZiAoIXBhcnNlZENyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZENyZWRlbnRpYWxzO1xuICB9XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgaWYgKF8uaXNTdHJpbmcodG9rZW4pICYmIHNjaGVtZS50b1VwcGVyQ2FzZSgpID09PSBUT0tFTl9CRUFSRVIudG9VcHBlckNhc2UoKSkge1xuICAgIHJldHVybiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuICB9XG59XG4iXX0=
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl8xSCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0VXNlclJhdGVMaW1pdGluZyIsIndpbmRvd01zIiwibWF4IiwiZGVmYXVsdFNlY3VyaXR5Iiwid2ViIiwiYXBpIiwiZ2V0U2VjdXJpdHkiLCJjb25maWciLCJzZWN1cml0eSIsIm1lcmdlIiwiZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UiLCJidWlsZFVzZXJCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaXNBRVNMZWdhY3kiLCJqd3QiLCJnZXRBcGlUb2tlbiIsImF1dGgiLCJyZW1vdGVVc2VyIiwiYWVzUGFzc3dvcmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFlc0VuY3J5cHQiLCJ0b1N0cmluZyIsImp3dEVuY3J5cHQiLCJwYXJzZUF1dGhUb2tlbkhlYWRlciIsImF1dGhvcml6YXRpb25IZWFkZXIiLCJwYXJ0cyIsInNwbGl0Iiwic2NoZW1lIiwidG9rZW4iLCJwYXJzZUJhc2ljUGF5bG9hZCIsImNyZWRlbnRpYWxzIiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJwYXJzZUFFU0NyZWRlbnRpYWxzIiwic2VjcmV0IiwidG9VcHBlckNhc2UiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsInRva2VuQXNCdWZmZXIiLCJleHBpcmVSZWFzb25zIiwidmVyaWZ5SldUUGF5bG9hZCIsInBheWxvYWQiLCJlcnJvciIsImdldENvZGUiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIm1lc3NhZ2UiLCJpc0F1dGhIZWFkZXJWYWxpZCIsImF1dGhvcml6YXRpb24iLCJnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMiLCJwYXJzZWRDcmVkZW50aWFscyIsImlzU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcsb0JB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LENBQTJCQyxhQUEzQixFQUEyRDtBQUNoRSxTQUFPQSxhQUFhLENBQUN2QixLQUFkLENBQW9CLEdBQXBCLEVBQXlCN0YsTUFBekIsS0FBb0MsQ0FBM0M7QUFDRDs7QUFFTSxTQUFTcUgsd0JBQVQsQ0FBa0M1QyxRQUFsQyxFQUFzRDZCLE1BQXRELEVBQXNFWCxtQkFBdEUsRUFBMEg7QUFDL0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSXJELGdCQUFFaUYsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFQSVRva2VuT3B0aW9ucywgQ2FsbGJhY2ssIENvbmZpZywgSVBsdWdpbkF1dGgsIEpXVE9wdGlvbnMsIFBhY2thZ2UsIFJlbW90ZVVzZXIsIFNlY3VyaXR5IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhNaWRkbGV3YXJlUGF5bG9hZCwgQXV0aFRva2VuSGVhZGVyLCBCYXNpY1BheWxvYWQsIENvb2tpZVNlc3Npb25Ub2tlbiwgSUF1dGhXZWJVSSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fMUgsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhZXNEZWNyeXB0LCB2ZXJpZnlQYXlsb2FkIH0gZnJvbSAnLi9jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0IH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhc3N3b3JkKFxuICBwYXNzd29yZDogc3RyaW5nLCAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiAgbWluTGVuZ3RoOiBudW1iZXIgPSBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnICYmIHBhc3N3b3JkLmxlbmd0aCA+PSBtaW5MZW5ndGg7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgUmVtb3RlVXNlciBvYmplY3RcbiAqIEByZXR1cm4ge09iamVjdH0geyBuYW1lOiB4eCwgcGx1Z2luR3JvdXBzOiBbXSwgcmVhbF9ncm91cHM6IFtdIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbW90ZVVzZXIobmFtZTogc3RyaW5nLCBwbHVnaW5Hcm91cHM6IHN0cmluZ1tdKTogUmVtb3RlVXNlciB7XG4gIGNvbnN0IGlzR3JvdXBWYWxpZDogYm9vbGVhbiA9IEFycmF5LmlzQXJyYXkocGx1Z2luR3JvdXBzKTtcbiAgY29uc3QgZ3JvdXBzID0gKGlzR3JvdXBWYWxpZCA/IHBsdWdpbkdyb3VwcyA6IFtdKS5jb25jYXQoW1JPTEVTLiRBTEwsIFJPTEVTLiRBVVRILCBST0xFUy5ERVBSRUNBVEVEX0FMTCwgUk9MRVMuREVQUkVDQVRFRF9BVVRILCBST0xFUy5BTExdKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgZ3JvdXBzLFxuICAgIHJlYWxfZ3JvdXBzOiBwbHVnaW5Hcm91cHMsXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGRzIGFuIGFub255bW91cyByZW1vdGUgdXNlciBpbiBjYXNlIG5vbmUgaXMgbG9nZ2VkIGluLlxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBncm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlcigpOiBSZW1vdGVVc2VyIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB1bmRlZmluZWQsXG4gICAgLy8gZ3JvdXBzIHdpdGhvdXQgJyQnIGFyZSBnb2luZyB0byBiZSBkZXByZWNhdGVkIGV2ZW50dWFsbHlcbiAgICBncm91cHM6IFtST0xFUy4kQUxMLCBST0xFUy4kQU5PTllNT1VTLCBST0xFUy5ERVBSRUNBVEVEX0FMTCwgUk9MRVMuREVQUkVDQVRFRF9BTk9OWU1PVVNdLFxuICAgIHJlYWxfZ3JvdXBzOiBbXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFsbG93X2FjdGlvbihhY3Rpb246IHN0cmluZyk6IEZ1bmN0aW9uIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiB1c2VyOiAlbycsIHVzZXI/Lm5hbWUpO1xuICAgIGNvbnN0IHsgbmFtZSwgZ3JvdXBzIH0gPSB1c2VyO1xuICAgIGNvbnN0IGdyb3VwQWNjZXNzID0gcGtnW2FjdGlvbl07XG4gICAgY29uc3QgaGFzUGVybWlzc2lvbiA9IGdyb3VwQWNjZXNzLnNvbWUoKGdyb3VwKSA9PiBuYW1lID09PSBncm91cCB8fCBncm91cHMuaW5jbHVkZXMoZ3JvdXApKTtcbiAgICBkZWJ1ZygnW2F1dGgvYWxsb3dfYWN0aW9uXTogaGFzUGVybWlzc2lvbj8gJW99IGZvciB1c2VyOiAlbycsIGhhc1Blcm1pc3Npb24sIHVzZXI/Lm5hbWUpO1xuXG4gICAgaWYgKGhhc1Blcm1pc3Npb24pIHtcbiAgICAgIGxvZ2dlci5pbmZvKHsgcmVtb3RlOiB1c2VyLm5hbWUgfSwgYGF1dGgvYWxsb3dfYWN0aW9uOiBhY2Nlc3MgZ3JhbnRlZCB0bzogQHt1c2VyfWApO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuICAgIH1cblxuICAgIGlmIChuYW1lKSB7XG4gICAgICBjYWxsYmFjayhFcnJvckNvZGUuZ2V0Rm9yYmlkZGVuKGB1c2VyICR7bmFtZX0gaXMgbm90IGFsbG93ZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRVbmF1dGhvcml6ZWQoYGF1dGhvcml6YXRpb24gcmVxdWlyZWQgdG8gJHthY3Rpb259IHBhY2thZ2UgJHtwa2cubmFtZX1gKSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTcGVjaWFsVW5wdWJsaXNoKCk6IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiAodXNlcjogUmVtb3RlVXNlciwgcGtnOiBQYWNrYWdlLCBjYWxsYmFjazogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb24gPSAndW5wdWJsaXNoJztcbiAgICAvLyB2ZXJpZnkgd2hldGhlciB0aGUgdW5wdWJsaXNoIHByb3AgaGFzIGJlZW4gZGVmaW5lZFxuICAgIGNvbnN0IGlzVW5wdWJsaXNoTWlzc2luZzogYm9vbGVhbiA9IF8uaXNOaWwocGtnW2FjdGlvbl0pO1xuICAgIGNvbnN0IGhhc0dyb3VwczogYm9vbGVhbiA9IGlzVW5wdWJsaXNoTWlzc2luZyA/IGZhbHNlIDogcGtnW2FjdGlvbl0ubGVuZ3RoID4gMDtcbiAgICBkZWJ1ZygnZmFsbGJhY2sgdW5wdWJsaXNoIGZvciBAe25hbWV9IGhhcyBncm91cHM6ICVvIGZvciAlbycsIGhhc0dyb3VwcywgdXNlcj8ubmFtZSk7XG4gICAgaWYgKGlzVW5wdWJsaXNoTWlzc2luZyB8fCBoYXNHcm91cHMgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgZGVidWcoJ2FsbG93X2FjdGlvbiBmb3IgJW8gZm9yICVvIGhhcyBncm91cHM6ICVvIGZvciAlbycsIGFjdGlvbiwgdXNlcj8ubmFtZSwgaGFzR3JvdXBzLCB1c2VyKTtcbiAgICByZXR1cm4gYWxsb3dfYWN0aW9uKGFjdGlvbikodXNlciwgcGtnLCBjYWxsYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UGx1Z2lucyhsb2dnZXI6IGFueSk6IElQbHVnaW5BdXRoPENvbmZpZz4ge1xuICByZXR1cm4ge1xuICAgIGF1dGhlbnRpY2F0ZShfdXNlcjogc3RyaW5nLCBfcGFzc3dvcmQ6IHN0cmluZywgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiAgICAgIGNiKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oQVBJX0VSUk9SLkJBRF9VU0VSTkFNRV9QQVNTV09SRCkpO1xuICAgIH0sXG5cbiAgICBhZGRfdXNlcihfdXNlcjogc3RyaW5nLCBfcGFzc3dvcmQ6IHN0cmluZywgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiAgICAgIHJldHVybiBjYihFcnJvckNvZGUuZ2V0Q29uZmxpY3QoQVBJX0VSUk9SLkJBRF9VU0VSTkFNRV9QQVNTV09SRCkpO1xuICAgIH0sXG5cbiAgICAvLyBGSVhNRTogYWxsb3dfYWN0aW9uIGFuZCBhbGxvd19wdWJsaXNoIHNob3VsZCBiZSBpbiB0aGUgQHZlcmRhY2Npby90eXBlc1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19hY2Nlc3M6IGFsbG93X2FjdGlvbignYWNjZXNzJywgbG9nZ2VyKSxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgYWxsb3dfcHVibGlzaDogYWxsb3dfYWN0aW9uKCdwdWJsaXNoJywgbG9nZ2VyKSxcbiAgICBhbGxvd191bnB1Ymxpc2g6IGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlc3Npb25Ub2tlbigpOiBDb29raWVTZXNzaW9uVG9rZW4ge1xuICBjb25zdCB0ZW5Ib3Vyc1RpbWUgPSAxMCAqIDYwICogNjAgKiAxMDAwO1xuXG4gIHJldHVybiB7XG4gICAgLy8gbnBtanMub3JnIHNldHMgMTBoIGV4cGlyZVxuICAgIGV4cGlyZXM6IG5ldyBEYXRlKERhdGUubm93KCkgKyB0ZW5Ib3Vyc1RpbWUpLFxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0V2ViVG9rZW5PcHRpb25zOiBKV1RPcHRpb25zID0ge1xuICBzaWduOiB7XG4gICAgLy8gVGhlIGV4cGlyYXRpb24gdG9rZW4gZm9yIHRoZSB3ZWJzaXRlIGlzIDEgaG91clxuICAgIGV4cGlyZXNJbjogVElNRV9FWFBJUkFUSU9OXzFILFxuICB9LFxuICB2ZXJpZnk6IHt9LFxufTtcblxuY29uc3QgZGVmYXVsdEFwaVRva2VuQ29uZjogQVBJVG9rZW5PcHRpb25zID0ge1xuICBsZWdhY3k6IHRydWUsXG59O1xuXG4vLyB3ZSBsaW1pdCBtYXggMTAwMCByZXF1ZXN0IHBlciAxNSBtaW51dGVzIG9uIHVzZXIgZW5kcG9pbnRzXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJSYXRlTGltaXRpbmcgPSB7XG4gIHdpbmRvd01zOiAxNSAqIDYwICogMTAwMCwgLy8gMTUgbWludXRlc1xuICBtYXg6IDEwMDAsXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFNlY3VyaXR5OiBTZWN1cml0eSA9IHtcbiAgd2ViOiBkZWZhdWx0V2ViVG9rZW5PcHRpb25zLFxuICBhcGk6IGRlZmF1bHRBcGlUb2tlbkNvbmYsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VjdXJpdHkoY29uZmlnOiBDb25maWcpOiBTZWN1cml0eSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy5zZWN1cml0eSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8ubWVyZ2UoZGVmYXVsdFNlY3VyaXR5LCBjb25maWcuc2VjdXJpdHkpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRTZWN1cml0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlKHVzZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgeW91IGFyZSBhdXRoZW50aWNhdGVkIGFzICcke3VzZXJ9J2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVzZXJCdWZmZXIobmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGAke25hbWV9OiR7cGFzc3dvcmR9YCwgJ3V0ZjgnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQUVTTGVnYWN5KHNlY3VyaXR5OiBTZWN1cml0eSk6IGJvb2xlYW4ge1xuICBjb25zdCB7IGxlZ2FjeSwgand0IH0gPSBzZWN1cml0eS5hcGk7XG5cbiAgcmV0dXJuIF8uaXNOaWwobGVnYWN5KSA9PT0gZmFsc2UgJiYgXy5pc05pbChqd3QpICYmIGxlZ2FjeSA9PT0gdHJ1ZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFwaVRva2VuKGF1dGg6IElBdXRoV2ViVUksIGNvbmZpZzogQ29uZmlnLCByZW1vdGVVc2VyOiBSZW1vdGVVc2VyLCBhZXNQYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgc2VjdXJpdHk6IFNlY3VyaXR5ID0gZ2V0U2VjdXJpdHkoY29uZmlnKTtcbiAgaWYgKGlzQUVTTGVnYWN5KHNlY3VyaXR5KSkge1xuICAgIC8vIGZhbGxiYWNrIGFsbCBnb2VzIHRvIEFFUyBlbmNyeXB0aW9uXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgICByZXNvbHZlKGF1dGguYWVzRW5jcnlwdChidWlsZFVzZXJCdWZmZXIocmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZywgYWVzUGFzc3dvcmQpKS50b1N0cmluZygnYmFzZTY0JykpO1xuICAgIH0pO1xuICB9XG4gIC8vIGkgYW0gd2lsaW5nIHRvIHVzZSBoZXJlIF8uaXNOaWwgYnV0IGZsb3cgZG9lcyBub3QgbGlrZSBpdCB5ZXQuXG4gIGNvbnN0IHsgand0IH0gPSBzZWN1cml0eS5hcGk7XG5cbiAgaWYgKGp3dCAmJiBqd3Quc2lnbikge1xuICAgIHJldHVybiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQocmVtb3RlVXNlciwgand0LnNpZ24pO1xuICB9XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk6IHZvaWQgPT4ge1xuICAgIHJlc29sdmUoYXV0aC5hZXNFbmNyeXB0KGJ1aWxkVXNlckJ1ZmZlcihyZW1vdGVVc2VyLm5hbWUgYXMgc3RyaW5nLCBhZXNQYXNzd29yZCkpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcjogc3RyaW5nKTogQXV0aFRva2VuSGVhZGVyIHtcbiAgY29uc3QgcGFydHMgPSBhdXRob3JpemF0aW9uSGVhZGVyLnNwbGl0KCcgJyk7XG4gIGNvbnN0IFtzY2hlbWUsIHRva2VuXSA9IHBhcnRzO1xuXG4gIHJldHVybiB7IHNjaGVtZSwgdG9rZW4gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQmFzaWNQYXlsb2FkKGNyZWRlbnRpYWxzOiBzdHJpbmcpOiBCYXNpY1BheWxvYWQge1xuICBjb25zdCBpbmRleCA9IGNyZWRlbnRpYWxzLmluZGV4T2YoJzonKTtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHVzZXI6IHN0cmluZyA9IGNyZWRlbnRpYWxzLnNsaWNlKDAsIGluZGV4KTtcbiAgY29uc3QgcGFzc3dvcmQ6IHN0cmluZyA9IGNyZWRlbnRpYWxzLnNsaWNlKGluZGV4ICsgMSk7XG5cbiAgcmV0dXJuIHsgdXNlciwgcGFzc3dvcmQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQUVTQ3JlZGVudGlhbHMoYXV0aG9yaXphdGlvbkhlYWRlcjogc3RyaW5nLCBzZWNyZXQ6IHN0cmluZykge1xuICBjb25zdCB7IHNjaGVtZSwgdG9rZW4gfSA9IHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXIpO1xuXG4gIC8vIGJhc2ljIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgZW5mb3JjZWRcbiAgaWYgKHNjaGVtZS50b1VwcGVyQ2FzZSgpID09PSBUT0tFTl9CQVNJQy50b1VwcGVyQ2FzZSgpKSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0KHRva2VuKS50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9IGVsc2UgaWYgKHNjaGVtZS50b1VwcGVyQ2FzZSgpID09PSBUT0tFTl9CRUFSRVIudG9VcHBlckNhc2UoKSkge1xuICAgIGNvbnN0IHRva2VuQXNCdWZmZXIgPSBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0KHRva2VuKTtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGFlc0RlY3J5cHQodG9rZW5Bc0J1ZmZlciwgc2VjcmV0KS50b1N0cmluZygndXRmOCcpO1xuXG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBleHBpcmVSZWFzb25zOiBzdHJpbmdbXSA9IFsnSnNvbldlYlRva2VuRXJyb3InLCAnVG9rZW5FeHBpcmVkRXJyb3InXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUpXVFBheWxvYWQodG9rZW46IHN0cmluZywgc2VjcmV0OiBzdHJpbmcpOiBSZW1vdGVVc2VyIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXlsb2FkOiBSZW1vdGVVc2VyID0gdmVyaWZ5UGF5bG9hZCh0b2tlbiwgc2VjcmV0KTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICMxNjggdGhpcyBjaGVjayBzaG91bGQgYmUgcmVtb3ZlZCBhcyBzb29uIEFFUyBlbmNyeXB0IGlzIHJlbW92ZWQuXG4gICAgaWYgKGV4cGlyZVJlYXNvbnMuaW5jbHVkZXMoZXJyb3IubmFtZSkpIHtcbiAgICAgIC8vIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRoZSBqd3QgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkIGFuZFxuICAgICAgLy8gb2xkIHRva2VucyBmYWlscyBzdGlsbCByZW1haW5zIGluIHVzYWdlLCB0aHVzXG4gICAgICAvLyB3ZSByZXR1cm4gYW4gYW5vbnltb3VzIHVzZXIgdG8gZm9yY2UgbG9nIGluLlxuICAgICAgcmV0dXJuIGNyZWF0ZUFub255bW91c1JlbW90ZVVzZXIoKTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBlcnJvci5tZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoSGVhZGVyVmFsaWQoYXV0aG9yaXphdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBhdXRob3JpemF0aW9uLnNwbGl0KCcgJykubGVuZ3RoID09PSAyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWlkZGxld2FyZUNyZWRlbnRpYWxzKHNlY3VyaXR5OiBTZWN1cml0eSwgc2VjcmV0OiBzdHJpbmcsIGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZyk6IEF1dGhNaWRkbGV3YXJlUGF5bG9hZCB7XG4gIGlmIChpc0FFU0xlZ2FjeShzZWN1cml0eSkpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHBhcnNlQUVTQ3JlZGVudGlhbHMoYXV0aG9yaXphdGlvbkhlYWRlciwgc2VjcmV0KTtcbiAgICBpZiAoIWNyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkQ3JlZGVudGlhbHMgPSBwYXJzZUJhc2ljUGF5bG9hZChjcmVkZW50aWFscyk7XG4gICAgaWYgKCFwYXJzZWRDcmVkZW50aWFscykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRDcmVkZW50aWFscztcbiAgfVxuICBjb25zdCB7IHNjaGVtZSwgdG9rZW4gfSA9IHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXIpO1xuXG4gIGlmIChfLmlzU3RyaW5nKHRva2VuKSAmJiBzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkVBUkVSLnRvVXBwZXJDYXNlKCkpIHtcbiAgICByZXR1cm4gdmVyaWZ5SldUUGF5bG9hZCh0b2tlbiwgc2VjcmV0KTtcbiAgfVxufVxuIl19
|