verdaccio 5.26.2 → 5.26.3
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/build/api/endpoint/api/publish.js +3 -3
- package/build/api/endpoint/api/star.js +3 -3
- package/build/api/endpoint/api/v1/token.js +3 -3
- package/build/api/web/api/index.js +3 -3
- package/build/api/web/api/package.js +3 -3
- package/build/lib/auth.js +3 -3
- package/build/lib/bootstrap.js +3 -3
- package/build/lib/cli/commands/init.js +3 -3
- package/build/lib/notify/index.js +3 -3
- package/build/lib/run-server.js +3 -3
- package/build/lib/storage-utils.js +3 -3
- package/build/lib/utils.js +3 -3
- package/package.json +42 -42
package/build/lib/run-server.js
CHANGED
|
@@ -21,8 +21,8 @@ var _utils2 = require("./utils");
|
|
|
21
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
function ownKeys(
|
|
25
|
-
function _objectSpread(
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
26
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
27
27
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
28
28
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -149,4 +149,4 @@ function unlinkAddressPath(addr) {
|
|
|
149
149
|
_fs.default.unlinkSync(addr.path);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9wYXRoIiwiX2luZGV4IiwiX3V0aWxzIiwiX2NvbmZpZ1BhdGgiLCJfY29uc3RhbnRzMiIsIl91dGlsczIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJsb2dnZXIiLCJkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IiwiZmxhZ3MiLCJleHBlcmltZW50TGlzdCIsIndhcm4iLCJleHBlcmltZW50IiwiaW5mbyIsInJ1blNlcnZlciIsImNvbmZpZyIsImNvbmZpZ3VyYXRpb25QYXJzZWQiLCJjb25maWdQYXRoTG9jYXRpb24iLCJmaW5kQ29uZmlnRmlsZSIsInBhcnNlQ29uZmlnRmlsZSIsInNlbGZfcGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiXyIsImlzT2JqZWN0IiwiRXJyb3IiLCJBUElfRVJST1IiLCJDT05GSUdfQkFEX0ZPUk1BVCIsImFkZHJlc3NlcyIsImdldExpc3RMaXN0ZW5BZGRyZXNzZXMiLCJsaXN0ZW4iLCJwcm9jZXNzIiwiZW1pdFdhcm5pbmciLCJhcHAiLCJlbmRQb2ludEFQSSIsImNyZWF0ZVNlcnZlckZhY3RvcnkiLCJhZGRyIiwic2VydmVyRmFjdG9yeSIsInByb3RvIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsImNlcnQiLCJwZngiLCJwYXNzcGhyYXNlIiwiYXNzaWduIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJjYSIsImNyZWF0ZVNlcnZlciIsImVyciIsIm1lc3NhZ2UiLCJodHRwIiwic2VydmVyIiwia2VlcEFsaXZlVGltZW91dCIsInVubGlua0FkZHJlc3NQYXRoIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3J1bi1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnN0YW50cyBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBfLCB7IGFzc2lnbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29uZmlnLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzIH0gZnJvbSAnLi9jbGkvdXRpbHMnO1xuaW1wb3J0IGZpbmRDb25maWdGaWxlIGZyb20gJy4vY29uZmlnLXBhdGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgcGFyc2VDb25maWdGaWxlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94KGZsYWdzKSB7XG4gIGlmICghZmxhZ3MpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBleHBlcmltZW50TGlzdCA9IE9iamVjdC5rZXlzKGZsYWdzKTtcbiAgaWYgKGV4cGVyaW1lbnRMaXN0Lmxlbmd0aCA+PSAxKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgYGV4cGVyaW1lbnRzIGFyZSBlbmFibGVkLCBpdCBpcyByZWNvbW1lbmRlZCBkbyBub3QgdXNlIGV4cGVyaW1lbnRzIGluIHByb2R1Y3Rpb24gY29tbWVudCBvdXQgdGhpcyBzZWN0aW9uIHRvIGRpc2FibGUgaXRgXG4gICAgKTtcbiAgICBleHBlcmltZW50TGlzdC5mb3JFYWNoKChleHBlcmltZW50KSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBzdXBwb3J0IGZvciBleHBlcmltZW50IFske2V4cGVyaW1lbnR9XSAke1xuICAgICAgICAgIGZsYWdzW2V4cGVyaW1lbnRdID8gJ2lzIGVuYWJsZWQnIDogJyBpcyBkaXNhYmxlZCdcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBvc2VzIGEgc2VydmVyIGZhY3RvcnkgdG8gYmUgaW5zdGFudGlhdGVkIHByb2dyYW1tYXRpY2FsbHkuXG4gKlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcigpOyAvLyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoJy4vY29uZmlnL2NvbmZpZy55YW1sJyk7XG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKHsgY29uZmlndXJhdGlvbiB9KTtcbiAgICBhcHAubGlzdGVuKDQwMDAsIChldmVudCkgPT4ge1xuICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgfSk7XG4gKiBAcGFyYW0gY29uZmlnXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TZXJ2ZXIoY29uZmlnPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgbGV0IGNvbmZpZ3VyYXRpb25QYXJzZWQ6IFJldHVyblR5cGU8YW55PjtcbiAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgY29uZmlnUGF0aExvY2F0aW9uID0gZmluZENvbmZpZ0ZpbGUoY29uZmlnKTtcbiAgICBjb25maWd1cmF0aW9uUGFyc2VkID0gcGFyc2VDb25maWdGaWxlKGNvbmZpZ1BhdGhMb2NhdGlvbik7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uUGFyc2VkLnNlbGZfcGF0aCkge1xuICAgICAgY29uZmlndXJhdGlvblBhcnNlZC5zZWxmX3BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnUGF0aExvY2F0aW9uKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXy5pc09iamVjdChjb25maWcpKSB7XG4gICAgY29uZmlndXJhdGlvblBhcnNlZCA9IGNvbmZpZztcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25QYXJzZWQuc2VsZl9wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlbGZfcGF0aCBpcyByZXF1aXJlZCwgcGxlYXNlIHByb3ZpZGUgYSB2YWxpZCByb290IHBhdGggZm9yIHN0b3JhZ2UnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEFQSV9FUlJPUi5DT05GSUdfQkFEX0ZPUk1BVCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzZXMgPSBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzKHVuZGVmaW5lZCwgY29uZmlndXJhdGlvblBhcnNlZC5saXN0ZW4pO1xuICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA+IDEpIHtcbiAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICAgJ1lvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBsaXN0ZW4gYWRkcmVzc2VzLCB1c2luZyB0aGlzIG1ldGhvZCBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHVzZWQnXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFwcCA9IGF3YWl0IGVuZFBvaW50QVBJKGNvbmZpZ3VyYXRpb25QYXJzZWQpO1xuICByZXR1cm4gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWd1cmF0aW9uUGFyc2VkLCBhZGRyZXNzZXNbMF0sIGFwcCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbmF0aXZlIEhUVFAvSFRUUFMgc2VydmVyIGluc3RhbmNlXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRkclxuICogQHBhcmFtIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWc6IENvbmZpZywgYWRkciwgYXBwKSB7XG4gIGxldCBzZXJ2ZXJGYWN0b3J5O1xuICBpZiAoYWRkci5wcm90byA9PT0gJ2h0dHBzJykge1xuICAgIGRlYnVnKCdodHRwcyBlbmFibGVkJyk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBodHRwc09wdGlvbnMgPSB7XG4gICAgICAgIC8vIGRpc2FibGUgaW5zZWN1cmUgU1NMdjIgYW5kIFNTTHYzXG4gICAgICAgIHNlY3VyZU9wdGlvbnM6IGNvbnN0YW50cy5TU0xfT1BfTk9fU1NMdjIgfCBjb25zdGFudHMuU1NMX09QX05PX1NTTHYzLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5Q2VydENvbmZpZyA9IGNvbmZpZy5odHRwcyBhcyBIdHRwc0NvbmZLZXlDZXJ0O1xuICAgICAgY29uc3QgcGZ4Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZlBmeDtcblxuICAgICAgLy8gaHR0cHMgbXVzdCBlaXRoZXIgaGF2ZSBrZXkgYW5kIGNlcnQgb3IgYSBwZnggYW5kIChvcHRpb25hbGx5KSBhIHBhc3NwaHJhc2VcbiAgICAgIGlmICghKChrZXlDZXJ0Q29uZmlnLmtleSAmJiBrZXlDZXJ0Q29uZmlnLmNlcnQpIHx8IHBmeENvbmZpZy5wZngpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdiYWQgZm9ybWF0IGh0dHBzIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBmeENvbmZpZy5wZngpIHtcbiAgICAgICAgY29uc3QgeyBwZngsIHBhc3NwaHJhc2UgfSA9IHBmeENvbmZpZztcbiAgICAgICAgaHR0cHNPcHRpb25zID0gYXNzaWduKGh0dHBzT3B0aW9ucywge1xuICAgICAgICAgIHBmeDogZnMucmVhZEZpbGVTeW5jKHBmeCksXG4gICAgICAgICAgcGFzc3BocmFzZTogcGFzc3BocmFzZSB8fCAnJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGtleSwgY2VydCwgY2EgfSA9IGtleUNlcnRDb25maWc7XG4gICAgICAgIGh0dHBzT3B0aW9ucyA9IGFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBrZXk6IGZzLnJlYWRGaWxlU3luYyhrZXkpLFxuICAgICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgICAuLi4oY2EgJiYge1xuICAgICAgICAgICAgY2E6IGZzLnJlYWRGaWxlU3luYyhjYSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogZW5hYmxlIGh0dHAyIGFzIGZlYXR1cmVcbiAgICAgIC8vIGlmIChjb25maWcuc2VydmVyLmh0dHAyKSA8LS0gY2hlY2sgaWYgZm9yY2UgaHR0cDJcbiAgICAgIHNlcnZlckZhY3RvcnkgPSBodHRwcy5jcmVhdGVTZXJ2ZXIoaHR0cHNPcHRpb25zLCBhcHApO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBjcmVhdGUgaHR0cHMgc2VydmVyOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBodHRwXG4gICAgZGVidWcoJ2h0dHAgZW5hYmxlZCcpO1xuICAgIHNlcnZlckZhY3RvcnkgPSBodHRwLmNyZWF0ZVNlcnZlcihhcHApO1xuICB9XG5cbiAgaWYgKFxuICAgIGNvbmZpZy5zZXJ2ZXIgJiZcbiAgICB0eXBlb2YgY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgIT09ICdudWxsJ1xuICApIHtcbiAgICAvLyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIG5vZGUgaXMgbm90IHVwIHRvIGRhdGUgKGRvZXNuJ3QgY29udGFpbiByZWNlbnQgOC4wIGNoYW5nZXMpXG4gICAgc2VydmVyRmFjdG9yeS5rZWVwQWxpdmVUaW1lb3V0ID0gY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICogMTAwMDtcbiAgfVxuICAvLyBGSVhFOiBJIGNvdWxkIG5vdCBmaW5kIHRoZSByZWFzb24gb2YgdGhpcyBjb2RlLlxuICB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKTtcblxuICByZXR1cm4gc2VydmVyRmFjdG9yeTtcbn1cblxuZnVuY3Rpb24gdW5saW5rQWRkcmVzc1BhdGgoYWRkcikge1xuICBpZiAoYWRkci5wYXRoICYmIGZzLmV4aXN0c1N5bmMoYWRkci5wYXRoKSkge1xuICAgIGZzLnVubGlua1N5bmMoYWRkci5wYXRoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUlBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFdBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUEwQyxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBUix3QkFBQVks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
|
|
152
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9wYXRoIiwiX2luZGV4IiwiX3V0aWxzIiwiX2NvbmZpZ1BhdGgiLCJfY29uc3RhbnRzMiIsIl91dGlsczIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJkZWJ1ZyIsImJ1aWxkRGVidWciLCJsb2dnZXIiLCJkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IiwiZmxhZ3MiLCJleHBlcmltZW50TGlzdCIsIndhcm4iLCJleHBlcmltZW50IiwiaW5mbyIsInJ1blNlcnZlciIsImNvbmZpZyIsImNvbmZpZ3VyYXRpb25QYXJzZWQiLCJjb25maWdQYXRoTG9jYXRpb24iLCJmaW5kQ29uZmlnRmlsZSIsInBhcnNlQ29uZmlnRmlsZSIsInNlbGZfcGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiXyIsImlzT2JqZWN0IiwiRXJyb3IiLCJBUElfRVJST1IiLCJDT05GSUdfQkFEX0ZPUk1BVCIsImFkZHJlc3NlcyIsImdldExpc3RMaXN0ZW5BZGRyZXNzZXMiLCJsaXN0ZW4iLCJwcm9jZXNzIiwiZW1pdFdhcm5pbmciLCJhcHAiLCJlbmRQb2ludEFQSSIsImNyZWF0ZVNlcnZlckZhY3RvcnkiLCJhZGRyIiwic2VydmVyRmFjdG9yeSIsInByb3RvIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsImNlcnQiLCJwZngiLCJwYXNzcGhyYXNlIiwiYXNzaWduIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJjYSIsImNyZWF0ZVNlcnZlciIsImVyciIsIm1lc3NhZ2UiLCJodHRwIiwic2VydmVyIiwia2VlcEFsaXZlVGltZW91dCIsInVubGlua0FkZHJlc3NQYXRoIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3J1bi1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnN0YW50cyBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBfLCB7IGFzc2lnbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29uZmlnLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzIH0gZnJvbSAnLi9jbGkvdXRpbHMnO1xuaW1wb3J0IGZpbmRDb25maWdGaWxlIGZyb20gJy4vY29uZmlnLXBhdGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgcGFyc2VDb25maWdGaWxlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94KGZsYWdzKSB7XG4gIGlmICghZmxhZ3MpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBleHBlcmltZW50TGlzdCA9IE9iamVjdC5rZXlzKGZsYWdzKTtcbiAgaWYgKGV4cGVyaW1lbnRMaXN0Lmxlbmd0aCA+PSAxKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgYGV4cGVyaW1lbnRzIGFyZSBlbmFibGVkLCBpdCBpcyByZWNvbW1lbmRlZCBkbyBub3QgdXNlIGV4cGVyaW1lbnRzIGluIHByb2R1Y3Rpb24gY29tbWVudCBvdXQgdGhpcyBzZWN0aW9uIHRvIGRpc2FibGUgaXRgXG4gICAgKTtcbiAgICBleHBlcmltZW50TGlzdC5mb3JFYWNoKChleHBlcmltZW50KSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBzdXBwb3J0IGZvciBleHBlcmltZW50IFske2V4cGVyaW1lbnR9XSAke1xuICAgICAgICAgIGZsYWdzW2V4cGVyaW1lbnRdID8gJ2lzIGVuYWJsZWQnIDogJyBpcyBkaXNhYmxlZCdcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBvc2VzIGEgc2VydmVyIGZhY3RvcnkgdG8gYmUgaW5zdGFudGlhdGVkIHByb2dyYW1tYXRpY2FsbHkuXG4gKlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcigpOyAvLyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoJy4vY29uZmlnL2NvbmZpZy55YW1sJyk7XG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKHsgY29uZmlndXJhdGlvbiB9KTtcbiAgICBhcHAubGlzdGVuKDQwMDAsIChldmVudCkgPT4ge1xuICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgfSk7XG4gKiBAcGFyYW0gY29uZmlnXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TZXJ2ZXIoY29uZmlnPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgbGV0IGNvbmZpZ3VyYXRpb25QYXJzZWQ6IFJldHVyblR5cGU8YW55PjtcbiAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgY29uZmlnUGF0aExvY2F0aW9uID0gZmluZENvbmZpZ0ZpbGUoY29uZmlnKTtcbiAgICBjb25maWd1cmF0aW9uUGFyc2VkID0gcGFyc2VDb25maWdGaWxlKGNvbmZpZ1BhdGhMb2NhdGlvbik7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uUGFyc2VkLnNlbGZfcGF0aCkge1xuICAgICAgY29uZmlndXJhdGlvblBhcnNlZC5zZWxmX3BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnUGF0aExvY2F0aW9uKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXy5pc09iamVjdChjb25maWcpKSB7XG4gICAgY29uZmlndXJhdGlvblBhcnNlZCA9IGNvbmZpZztcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25QYXJzZWQuc2VsZl9wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlbGZfcGF0aCBpcyByZXF1aXJlZCwgcGxlYXNlIHByb3ZpZGUgYSB2YWxpZCByb290IHBhdGggZm9yIHN0b3JhZ2UnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEFQSV9FUlJPUi5DT05GSUdfQkFEX0ZPUk1BVCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzZXMgPSBnZXRMaXN0TGlzdGVuQWRkcmVzc2VzKHVuZGVmaW5lZCwgY29uZmlndXJhdGlvblBhcnNlZC5saXN0ZW4pO1xuICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA+IDEpIHtcbiAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICAgJ1lvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBsaXN0ZW4gYWRkcmVzc2VzLCB1c2luZyB0aGlzIG1ldGhvZCBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHVzZWQnXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFwcCA9IGF3YWl0IGVuZFBvaW50QVBJKGNvbmZpZ3VyYXRpb25QYXJzZWQpO1xuICByZXR1cm4gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWd1cmF0aW9uUGFyc2VkLCBhZGRyZXNzZXNbMF0sIGFwcCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbmF0aXZlIEhUVFAvSFRUUFMgc2VydmVyIGluc3RhbmNlXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRkclxuICogQHBhcmFtIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWc6IENvbmZpZywgYWRkciwgYXBwKSB7XG4gIGxldCBzZXJ2ZXJGYWN0b3J5O1xuICBpZiAoYWRkci5wcm90byA9PT0gJ2h0dHBzJykge1xuICAgIGRlYnVnKCdodHRwcyBlbmFibGVkJyk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBodHRwc09wdGlvbnMgPSB7XG4gICAgICAgIC8vIGRpc2FibGUgaW5zZWN1cmUgU1NMdjIgYW5kIFNTTHYzXG4gICAgICAgIHNlY3VyZU9wdGlvbnM6IGNvbnN0YW50cy5TU0xfT1BfTk9fU1NMdjIgfCBjb25zdGFudHMuU1NMX09QX05PX1NTTHYzLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5Q2VydENvbmZpZyA9IGNvbmZpZy5odHRwcyBhcyBIdHRwc0NvbmZLZXlDZXJ0O1xuICAgICAgY29uc3QgcGZ4Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZlBmeDtcblxuICAgICAgLy8gaHR0cHMgbXVzdCBlaXRoZXIgaGF2ZSBrZXkgYW5kIGNlcnQgb3IgYSBwZnggYW5kIChvcHRpb25hbGx5KSBhIHBhc3NwaHJhc2VcbiAgICAgIGlmICghKChrZXlDZXJ0Q29uZmlnLmtleSAmJiBrZXlDZXJ0Q29uZmlnLmNlcnQpIHx8IHBmeENvbmZpZy5wZngpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdiYWQgZm9ybWF0IGh0dHBzIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBmeENvbmZpZy5wZngpIHtcbiAgICAgICAgY29uc3QgeyBwZngsIHBhc3NwaHJhc2UgfSA9IHBmeENvbmZpZztcbiAgICAgICAgaHR0cHNPcHRpb25zID0gYXNzaWduKGh0dHBzT3B0aW9ucywge1xuICAgICAgICAgIHBmeDogZnMucmVhZEZpbGVTeW5jKHBmeCksXG4gICAgICAgICAgcGFzc3BocmFzZTogcGFzc3BocmFzZSB8fCAnJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGtleSwgY2VydCwgY2EgfSA9IGtleUNlcnRDb25maWc7XG4gICAgICAgIGh0dHBzT3B0aW9ucyA9IGFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBrZXk6IGZzLnJlYWRGaWxlU3luYyhrZXkpLFxuICAgICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgICAuLi4oY2EgJiYge1xuICAgICAgICAgICAgY2E6IGZzLnJlYWRGaWxlU3luYyhjYSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogZW5hYmxlIGh0dHAyIGFzIGZlYXR1cmVcbiAgICAgIC8vIGlmIChjb25maWcuc2VydmVyLmh0dHAyKSA8LS0gY2hlY2sgaWYgZm9yY2UgaHR0cDJcbiAgICAgIHNlcnZlckZhY3RvcnkgPSBodHRwcy5jcmVhdGVTZXJ2ZXIoaHR0cHNPcHRpb25zLCBhcHApO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBjcmVhdGUgaHR0cHMgc2VydmVyOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBodHRwXG4gICAgZGVidWcoJ2h0dHAgZW5hYmxlZCcpO1xuICAgIHNlcnZlckZhY3RvcnkgPSBodHRwLmNyZWF0ZVNlcnZlcihhcHApO1xuICB9XG5cbiAgaWYgKFxuICAgIGNvbmZpZy5zZXJ2ZXIgJiZcbiAgICB0eXBlb2YgY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgIT09ICdudWxsJ1xuICApIHtcbiAgICAvLyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIG5vZGUgaXMgbm90IHVwIHRvIGRhdGUgKGRvZXNuJ3QgY29udGFpbiByZWNlbnQgOC4wIGNoYW5nZXMpXG4gICAgc2VydmVyRmFjdG9yeS5rZWVwQWxpdmVUaW1lb3V0ID0gY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICogMTAwMDtcbiAgfVxuICAvLyBGSVhFOiBJIGNvdWxkIG5vdCBmaW5kIHRoZSByZWFzb24gb2YgdGhpcyBjb2RlLlxuICB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKTtcblxuICByZXR1cm4gc2VydmVyRmFjdG9yeTtcbn1cblxuZnVuY3Rpb24gdW5saW5rQWRkcmVzc1BhdGgoYWRkcikge1xuICBpZiAoYWRkci5wYXRoICYmIGZzLmV4aXN0c1N5bmMoYWRkci5wYXRoKSkge1xuICAgIGZzLnVubGlua1N5bmMoYWRkci5wYXRoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUlBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFdBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUEwQyxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBUix3QkFBQVksR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFB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
|
|
@@ -26,8 +26,8 @@ var _constants = require("./constants");
|
|
|
26
26
|
var _logger = require("./logger");
|
|
27
27
|
var _utils2 = require("./utils");
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
-
function ownKeys(
|
|
30
|
-
function _objectSpread(
|
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
31
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
32
32
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
33
33
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -279,4 +279,4 @@ function convertAbbreviatedManifest(manifest) {
|
|
|
279
279
|
// @ts-ignore
|
|
280
280
|
return convertedManifest;
|
|
281
281
|
}
|
|
282
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9zZWFyY2giLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiZ2VuZXJhdGVQYWNrYWdlVGVtcGxhdGUiLCJuYW1lIiwidmVyc2lvbnMiLCJ0aW1lIiwiVVNFUlMiLCJESVNUX1RBR1MiLCJfdXBsaW5rcyIsIl9kaXN0ZmlsZXMiLCJfYXR0YWNobWVudHMiLCJfcmV2Iiwibm9ybWFsaXplUGFja2FnZSIsInBrZyIsInBrZ1Byb3BlcnRpZXMiLCJwa2dQcm9wIiwiXyIsImlzTmlsIiwiaXNPYmplY3QiLCJpc1N0cmluZyIsIlNUT1JBR0UiLCJERUZBVUxUX1JFVklTSU9OIiwiX2lkIiwibm9ybWFsaXplRGlzdFRhZ3MiLCJnZW5lcmF0ZVJldmlzaW9uIiwicmV2Iiwic3BsaXQiLCJnZW5lcmF0ZVJhbmRvbUhleFN0cmluZyIsImdldExhdGVzdFJlYWRtZSIsImRpc3RUYWdzIiwibGF0ZXN0VmVyc2lvbiIsInJlYWRtZSIsInRyaW0iLCJyZWFkbWVEaXN0VGFnc1ByaW9yaXR5IiwibWFwIiwidGFnIiwidmVyc2lvbiIsImNsZWFuVXBSZWFkbWUiLCJXSElURUxJU1QiLCJleHBvcnRzIiwiY2xlYW5VcExpbmtzUmVmIiwia2VlcFVwTGlua0RhdGEiLCJyZXN1bHQiLCJwcm9wZXJ0eVRvS2VlcCIsImluZGV4T2YiLCJjaGVja1BhY2thZ2VMb2NhbCIsImxvY2FsU3RvcmFnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZ2V0UGFja2FnZU1ldGFkYXRhIiwiZXJyIiwicmVzdWx0cyIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiTk9UX0ZPVU5EIiwiRXJyb3JDb2RlIiwiZ2V0Q29uZmxpY3QiLCJBUElfRVJST1IiLCJQQUNLQUdFX0VYSVNUIiwicHVibGlzaFBhY2thZ2UiLCJtZXRhZGF0YSIsImFkZFBhY2thZ2UiLCJsYXRlc3QiLCJpc051bGwiLCJpc1VuZGVmaW5lZCIsIlNlYXJjaE1lbW9yeUluZGV4ZXIiLCJhZGQiLCJjYXRjaCIsInJlYXNvbiIsImxvZ2dlciIsImVycm9yIiwiY2hlY2tQYWNrYWdlUmVtb3RlIiwiaXNBbGxvd1B1Ymxpc2hPZmZsaW5lIiwic3luY01ldGFkYXRhIiwicGFja2FnZUpzb25Mb2NhbCIsInVwTGlua3NFcnJvcnMiLCJlcnJvckl0ZW0iLCJnZXRTZXJ2aWNlVW5hdmFpbGFibGUiLCJVUExJTktfT0ZGTElORV9QVUJMSVNIIiwibWVyZ2VVcGxpbmtUaW1lSW50b0xvY2FsIiwiY2FjaGVNYW5pZmVzdCIsInJlbW90ZU1hbmlmZXN0IiwicHJlcGFyZVNlYXJjaFBhY2thZ2UiLCJkYXRhIiwicGtnVXRpbHMiLCJnZXRMYXRlc3QiLCJkZXNjcmlwdGlvbiIsIm1haW50YWluZXJzIiwiYXV0aG9yIiwiQm9vbGVhbiIsInJlcG9zaXRvcnkiLCJyZWFkbWVGaWxlbmFtZSIsImhvbWVwYWdlIiwia2V5d29yZHMiLCJtb2RpZmllZCIsImJ1Z3MiLCJsaWNlbnNlIiwiaXNQdWJsaXNoYWJsZVBhY2thZ2UiLCJpbmNsdWRlcyIsImhhc0luc3RhbGxTY3JpcHQiLCJzY3JpcHRzIiwiZmluZCIsIml0ZW0iLCJjb252ZXJ0QWJicmV2aWF0ZWRNYW5pZmVzdCIsIm1hbmlmZXN0IiwiX21hbmlmZXN0JHRpbWUiLCJhYmJyZXZpYXRlZFZlcnNpb25zIiwicmVkdWNlIiwiYWNjIiwiX3ZlcnNpb24iLCJfdmVyc2lvbl9hYmJyZXZpYXRlZCIsImRlcHJlY2F0ZWQiLCJiaW4iLCJkaXN0IiwiZW5naW5lcyIsImNwdSIsIm9zIiwiZnVuZGluZyIsImRpcmVjdG9yaWVzIiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwicGVlckRlcGVuZGVuY2llcyIsInBlZXJEZXBlbmRlbmNpZXNNZXRhIiwib3B0aW9uYWxEZXBlbmRlbmNpZXMiLCJidW5kbGVEZXBlbmRlbmNpZXMiLCJfaGFzU2hyaW5rd3JhcCIsImNvbnZlcnRlZE1hbmlmZXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9zdG9yYWdlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IHBrZ1V0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IFNlYXJjaE1lbW9yeUluZGV4ZXIgfSBmcm9tICdAdmVyZGFjY2lvL3NlYXJjaCc7XG5pbXBvcnQgeyBBYmJyZXZpYXRlZE1hbmlmZXN0LCBBYmJyZXZpYXRlZFZlcnNpb25zLCBNYW5pZmVzdCwgVmVyc2lvbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21IZXhTdHJpbmcgfSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IHsgQVBJX0VSUk9SLCBESVNUX1RBR1MsIEhUVFBfU1RBVFVTLCBTVE9SQUdFLCBVU0VSUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBMb2NhbFN0b3JhZ2UgZnJvbSAnLi9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IEVycm9yQ29kZSwgaXNPYmplY3QsIG5vcm1hbGl6ZURpc3RUYWdzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBhY2thZ2VUZW1wbGF0ZShuYW1lOiBzdHJpbmcpOiBNYW5pZmVzdCB7XG4gIHJldHVybiB7XG4gICAgLy8gc3RhbmRhcmQgdGhpbmdzXG4gICAgbmFtZSxcbiAgICB2ZXJzaW9uczoge30sXG4gICAgdGltZToge30sXG4gICAgW1VTRVJTXToge30sXG4gICAgW0RJU1RfVEFHU106IHt9LFxuICAgIF91cGxpbmtzOiB7fSxcbiAgICBfZGlzdGZpbGVzOiB7fSxcbiAgICBfYXR0YWNobWVudHM6IHt9LFxuICAgIF9yZXY6ICcnLFxuICB9O1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBwYWNrYWdlIHByb3BlcnRpZXMsIHRhZ3MsIHJldmlzaW9uIGlkLlxuICogQHBhcmFtIHtPYmplY3R9IHBrZyBwYWNrYWdlIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhY2thZ2UocGtnOiBNYW5pZmVzdCk6IE1hbmlmZXN0IHtcbiAgY29uc3QgcGtnUHJvcGVydGllcyA9IFsndmVyc2lvbnMnLCAnZGlzdC10YWdzJywgJ19kaXN0ZmlsZXMnLCAnX2F0dGFjaG1lbnRzJywgJ191cGxpbmtzJywgJ3RpbWUnXTtcblxuICBwa2dQcm9wZXJ0aWVzLmZvckVhY2goKGtleSk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHBrZ1Byb3AgPSBwa2dba2V5XTtcblxuICAgIGlmIChfLmlzTmlsKHBrZ1Byb3ApIHx8IGlzT2JqZWN0KHBrZ1Byb3ApID09PSBmYWxzZSkge1xuICAgICAgcGtnW2tleV0gPSB7fTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5fcmV2KSA9PT0gZmFsc2UpIHtcbiAgICBwa2cuX3JldiA9IFNUT1JBR0UuREVGQVVMVF9SRVZJU0lPTjtcbiAgfVxuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5faWQpID09PSBmYWxzZSkge1xuICAgIHBrZy5faWQgPSBwa2cubmFtZTtcbiAgfVxuXG4gIC8vIG5vcm1hbGl6ZSBkaXN0LXRhZ3NcbiAgbm9ybWFsaXplRGlzdFRhZ3MocGtnKTtcblxuICByZXR1cm4gcGtnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXZpc2lvbihyZXY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IF9yZXYgPSByZXYuc3BsaXQoJy0nKTtcblxuICByZXR1cm4gKCtfcmV2WzBdIHx8IDApICsgMSArICctJyArIGdlbmVyYXRlUmFuZG9tSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXRlc3RSZWFkbWUocGtnOiBNYW5pZmVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IHZlcnNpb25zID0gcGtnWyd2ZXJzaW9ucyddIHx8IHt9O1xuICBjb25zdCBkaXN0VGFncyA9IHBrZ1tESVNUX1RBR1NdIHx8IHt9O1xuICAvLyBGSVhNRTogaGVyZSBpcyBhIGJpdCB0cmlja3kgYWRkIHRoZSB0eXBlc1xuICBjb25zdCBsYXRlc3RWZXJzaW9uOiBWZXJzaW9uIHwgYW55ID0gZGlzdFRhZ3NbJ2xhdGVzdCddID8gdmVyc2lvbnNbZGlzdFRhZ3NbJ2xhdGVzdCddXSB8fCB7fSA6IHt9O1xuICBsZXQgcmVhZG1lID0gXy50cmltKHBrZy5yZWFkbWUgfHwgbGF0ZXN0VmVyc2lvbi5yZWFkbWUgfHwgJycpO1xuICBpZiAocmVhZG1lKSB7XG4gICAgcmV0dXJuIHJlYWRtZTtcbiAgfVxuXG4gIC8vIEluIGNhc2Ugb2YgZW1wdHkgcmVhZG1lIC0gdHJ5aW5nIHRvIGdldCBBTlkgcmVhZG1lIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6ICduZXh0JywnYmV0YScsJ2FscGhhJywndGVzdCcsJ2RldicsJ2NhbmFyeSdcbiAgY29uc3QgcmVhZG1lRGlzdFRhZ3NQcmlvcml0eSA9IFsnbmV4dCcsICdiZXRhJywgJ2FscGhhJywgJ3Rlc3QnLCAnZGV2JywgJ2NhbmFyeSddO1xuICByZWFkbWVEaXN0VGFnc1ByaW9yaXR5Lm1hcChmdW5jdGlvbiAodGFnKTogc3RyaW5nIHwgdm9pZCB7XG4gICAgaWYgKHJlYWRtZSkge1xuICAgICAgcmV0dXJuIHJlYWRtZTtcbiAgICB9XG4gICAgY29uc3QgdmVyc2lvbjogVmVyc2lvbiB8IGFueSA9IGRpc3RUYWdzW3RhZ10gPyB2ZXJzaW9uc1tkaXN0VGFnc1t0YWddXSB8fCB7fSA6IHt9O1xuICAgIHJlYWRtZSA9IF8udHJpbSh2ZXJzaW9uLnJlYWRtZSB8fCByZWFkbWUpO1xuICB9KTtcbiAgcmV0dXJuIHJlYWRtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuVXBSZWFkbWUodmVyc2lvbjogVmVyc2lvbik6IFZlcnNpb24ge1xuICBpZiAoXy5pc05pbCh2ZXJzaW9uKSA9PT0gZmFsc2UpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZGVsZXRlIHZlcnNpb24ucmVhZG1lO1xuICB9XG5cbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbmV4cG9ydCBjb25zdCBXSElURUxJU1QgPSBbXG4gICdfcmV2JyxcbiAgJ25hbWUnLFxuICAndmVyc2lvbnMnLFxuICAnZGlzdC10YWdzJyxcbiAgJ3JlYWRtZScsXG4gICd0aW1lJyxcbiAgJ19pZCcsXG4gICd1c2VycycsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5VcExpbmtzUmVmKGtlZXBVcExpbmtEYXRhOiBib29sZWFuLCByZXN1bHQ6IE1hbmlmZXN0KTogTWFuaWZlc3Qge1xuICBjb25zdCBwcm9wZXJ0eVRvS2VlcCA9IFsuLi5XSElURUxJU1RdO1xuICBpZiAoa2VlcFVwTGlua0RhdGEgPT09IHRydWUpIHtcbiAgICBwcm9wZXJ0eVRvS2VlcC5wdXNoKCdfdXBsaW5rcycpO1xuICB9XG5cbiAgZm9yIChjb25zdCBpIGluIHJlc3VsdCkge1xuICAgIGlmIChwcm9wZXJ0eVRvS2VlcC5pbmRleE9mKGkpID09PSAtMSkge1xuICAgICAgLy8gUmVtb3ZlIHNlY3Rpb25zIGxpa2UgJ191cGxpbmtzJyBmcm9tIHJlc3BvbnNlXG4gICAgICBkZWxldGUgcmVzdWx0W2ldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHBhY2thZ2UgaXQgaXMgYWxyZWFkeSBhIGxvY2FsIHBhY2thZ2VcbiAqIEBwYXJhbSB7Kn0gbmFtZVxuICogQHBhcmFtIHsqfSBsb2NhbFN0b3JhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUGFja2FnZUxvY2FsKG5hbWU6IHN0cmluZywgbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0UGFja2FnZU1ldGFkYXRhKG5hbWUsIChlcnIsIHJlc3VsdHMpOiB2b2lkID0+IHtcbiAgICAgIGlmICghXy5pc05pbChlcnIpICYmIGVyci5zdGF0dXMgIT09IEhUVFBfU1RBVFVTLk5PVF9GT1VORCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICByZXR1cm4gcmVqZWN0KEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuUEFDS0FHRV9FWElTVCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoUGFja2FnZShcbiAgbmFtZTogc3RyaW5nLFxuICBtZXRhZGF0YTogYW55LFxuICBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLmFkZFBhY2thZ2UobmFtZSwgbWV0YWRhdGEsIChlcnIsIGxhdGVzdCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFfLmlzTnVsbChlcnIpKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQobGF0ZXN0KSkge1xuICAgICAgICBTZWFyY2hNZW1vcnlJbmRleGVyLmFkZChsYXRlc3QpLmNhdGNoKChyZWFzb24pID0+IHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ2luZGV4ZXIgaGFzIGZhaWxlZCBvbiBhZGQgaXRlbScpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQYWNrYWdlUmVtb3RlKFxuICBuYW1lOiBzdHJpbmcsXG4gIGlzQWxsb3dQdWJsaXNoT2ZmbGluZTogYm9vbGVhbixcbiAgc3luY01ldGFkYXRhOiBGdW5jdGlvblxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgc3luY01ldGFkYXRhKG5hbWUsIG51bGwsIHt9LCAoZXJyLCBwYWNrYWdlSnNvbkxvY2FsLCB1cExpbmtzRXJyb3JzKTogdm9pZCA9PiB7XG4gICAgICAvLyBzb21ldGhpbmcgd2VpcmRcbiAgICAgIGlmIChlcnIgJiYgZXJyLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2tpbmcgcGFja2FnZSBleGlzdCBhbHJlYWR5XG4gICAgICBpZiAoXy5pc05pbChwYWNrYWdlSnNvbkxvY2FsKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChFcnJvckNvZGUuZ2V0Q29uZmxpY3QoQVBJX0VSUk9SLlBBQ0tBR0VfRVhJU1QpKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgZXJyb3JJdGVtID0gMDsgZXJyb3JJdGVtIDwgdXBMaW5rc0Vycm9ycy5sZW5ndGg7IGVycm9ySXRlbSsrKSB7XG4gICAgICAgIC8vIGNoZWNraW5nIGVycm9yXG4gICAgICAgIC8vIGlmIHVwbGluayBmYWlscyB3aXRoIGEgc3RhdHVzIG90aGVyIHRoYW4gNDA0LCB3ZSByZXBvcnQgZmFpbHVyZVxuICAgICAgICBpZiAoXy5pc05pbCh1cExpbmtzRXJyb3JzW2Vycm9ySXRlbV1bMF0pID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmICh1cExpbmtzRXJyb3JzW2Vycm9ySXRlbV1bMF0uc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgIGlmIChpc0FsbG93UHVibGlzaE9mZmxpbmUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChFcnJvckNvZGUuZ2V0U2VydmljZVVuYXZhaWxhYmxlKEFQSV9FUlJPUi5VUExJTktfT0ZGTElORV9QVUJMSVNIKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vLyB0ZXN0ZWQgb24gdjZcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVVwbGlua1RpbWVJbnRvTG9jYWwoY2FjaGVNYW5pZmVzdDogTWFuaWZlc3QsIHJlbW90ZU1hbmlmZXN0OiBNYW5pZmVzdCk6IGFueSB7XG4gIGlmICgndGltZScgaW4gcmVtb3RlTWFuaWZlc3QpIHtcbiAgICAvLyByZW1vdGUgb3ZlcnJpZGUgY2FjaGUgdGltZSBjb25mbGljdHNcbiAgICByZXR1cm4geyAuLi5jYWNoZU1hbmlmZXN0LCB0aW1lOiB7IC4uLmNhY2hlTWFuaWZlc3QudGltZSwgLi4ucmVtb3RlTWFuaWZlc3QudGltZSB9IH07XG4gIH1cblxuICByZXR1cm4gY2FjaGVNYW5pZmVzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVTZWFyY2hQYWNrYWdlKGRhdGE6IE1hbmlmZXN0LCB0aW1lOiB1bmtub3duKTogYW55IHtcbiAgY29uc3QgbGF0ZXN0ID0gcGtnVXRpbHMuZ2V0TGF0ZXN0KGRhdGEpO1xuXG4gIGlmIChsYXRlc3QgJiYgZGF0YS52ZXJzaW9uc1tsYXRlc3RdKSB7XG4gICAgY29uc3QgdmVyc2lvbjogVmVyc2lvbiA9IGRhdGEudmVyc2lvbnNbbGF0ZXN0XTtcbiAgICBjb25zdCB2ZXJzaW9uczogYW55ID0geyBbbGF0ZXN0XTogJ2xhdGVzdCcgfTtcbiAgICBjb25zdCBwa2c6IGFueSA9IHtcbiAgICAgIG5hbWU6IHZlcnNpb24ubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB2ZXJzaW9uLmRlc2NyaXB0aW9uLFxuICAgICAgW0RJU1RfVEFHU106IHsgbGF0ZXN0IH0sXG4gICAgICBtYWludGFpbmVyczogdmVyc2lvbi5tYWludGFpbmVycyB8fCBbdmVyc2lvbi5hdXRob3JdLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIGF1dGhvcjogdmVyc2lvbi5hdXRob3IsXG4gICAgICByZXBvc2l0b3J5OiB2ZXJzaW9uLnJlcG9zaXRvcnksXG4gICAgICByZWFkbWVGaWxlbmFtZTogdmVyc2lvbi5yZWFkbWVGaWxlbmFtZSB8fCAnJyxcbiAgICAgIGhvbWVwYWdlOiB2ZXJzaW9uLmhvbWVwYWdlLFxuICAgICAga2V5d29yZHM6IHZlcnNpb24ua2V5d29yZHMsXG4gICAgICB0aW1lOiB7XG4gICAgICAgIG1vZGlmaWVkOiB0aW1lLFxuICAgICAgfSxcbiAgICAgIGJ1Z3M6IHZlcnNpb24uYnVncyxcbiAgICAgIGxpY2Vuc2U6IHZlcnNpb24ubGljZW5zZSxcbiAgICAgIHZlcnNpb25zLFxuICAgIH07XG5cbiAgICByZXR1cm4gcGtnO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcGFja2FnZSBtZXRhZHRhIGhhcyBlbm91Z2ggZGF0YSB0byBiZSBwdWJsaXNoZWRcbiAqIEBwYXJhbSBwa2cgbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHVibGlzaGFibGVQYWNrYWdlKHBrZzogTWFuaWZlc3QpOiBib29sZWFuIHtcbiAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhwa2cpO1xuXG4gIHJldHVybiBrZXlzLmluY2x1ZGVzKCd2ZXJzaW9ucycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW5zdGFsbFNjcmlwdCh2ZXJzaW9uOiBWZXJzaW9uKSB7XG4gIGlmICh2ZXJzaW9uPy5zY3JpcHRzKSB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IE9iamVjdC5rZXlzKHZlcnNpb24uc2NyaXB0cyk7XG4gICAgcmV0dXJuIChcbiAgICAgIHNjcmlwdHMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gWydpbnN0YWxsJywgJ3ByZWluc3RhbGwnLCAncG9zdGluc3RhbGwnXS5pbmNsdWRlcyhpdGVtKTtcbiAgICAgIH0pICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRBYmJyZXZpYXRlZE1hbmlmZXN0KG1hbmlmZXN0OiBNYW5pZmVzdCk6IEFiYnJldmlhdGVkTWFuaWZlc3Qge1xuICBjb25zdCBhYmJyZXZpYXRlZFZlcnNpb25zID0gT2JqZWN0LmtleXMobWFuaWZlc3QudmVyc2lvbnMpLnJlZHVjZShcbiAgICAoYWNjOiBBYmJyZXZpYXRlZFZlcnNpb25zLCB2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IF92ZXJzaW9uID0gbWFuaWZlc3QudmVyc2lvbnNbdmVyc2lvbl07XG4gICAgICAvLyBUaGlzIHNob3VsZCBiZSBhbGlnbiB3aXRoIHRoaXMgZG9jdW1lbnRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vcmVnaXN0cnkvYmxvYi9tYXN0ZXIvZG9jcy9yZXNwb25zZXMvcGFja2FnZS1tZXRhZGF0YS5tZCNhYmJyZXZpYXRlZC12ZXJzaW9uLW9iamVjdFxuICAgICAgY29uc3QgX3ZlcnNpb25fYWJicmV2aWF0ZWQgPSB7XG4gICAgICAgIG5hbWU6IF92ZXJzaW9uLm5hbWUsXG4gICAgICAgIHZlcnNpb246IF92ZXJzaW9uLnZlcnNpb24sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBfdmVyc2lvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgZGVwcmVjYXRlZDogX3ZlcnNpb24uZGVwcmVjYXRlZCxcbiAgICAgICAgYmluOiBfdmVyc2lvbi5iaW4sXG4gICAgICAgIGRpc3Q6IF92ZXJzaW9uLmRpc3QsXG4gICAgICAgIGVuZ2luZXM6IF92ZXJzaW9uLmVuZ2luZXMsXG4gICAgICAgIGNwdTogX3ZlcnNpb24uY3B1LFxuICAgICAgICBvczogX3ZlcnNpb24ub3MsXG4gICAgICAgIGZ1bmRpbmc6IF92ZXJzaW9uLmZ1bmRpbmcsXG4gICAgICAgIGRpcmVjdG9yaWVzOiBfdmVyc2lvbi5kaXJlY3RvcmllcyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBfdmVyc2lvbi5kZXBlbmRlbmNpZXMsXG4gICAgICAgIGRldkRlcGVuZGVuY2llczogX3ZlcnNpb24uZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgICBwZWVyRGVwZW5kZW5jaWVzOiBfdmVyc2lvbi5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgICBwZWVyRGVwZW5kZW5jaWVzTWV0YTogX3ZlcnNpb24ucGVlckRlcGVuZGVuY2llc01ldGEsXG4gICAgICAgIG9wdGlvbmFsRGVwZW5kZW5jaWVzOiBfdmVyc2lvbi5vcHRpb25hbERlcGVuZGVuY2llcyxcbiAgICAgICAgYnVuZGxlRGVwZW5kZW5jaWVzOiBfdmVyc2lvbi5idW5kbGVEZXBlbmRlbmNpZXMsXG4gICAgICAgIC8vIG5wbSBjbGkgc3BlY2lmaWNzXG4gICAgICAgIF9oYXNTaHJpbmt3cmFwOiBfdmVyc2lvbi5faGFzU2hyaW5rd3JhcCxcbiAgICAgICAgaGFzSW5zdGFsbFNjcmlwdDogaGFzSW5zdGFsbFNjcmlwdChfdmVyc2lvbiksXG4gICAgICB9O1xuICAgICAgYWNjW3ZlcnNpb25dID0gX3ZlcnNpb25fYWJicmV2aWF0ZWQ7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge31cbiAgKTtcblxuICBjb25zdCBjb252ZXJ0ZWRNYW5pZmVzdCA9IHtcbiAgICBuYW1lOiBtYW5pZmVzdFsnbmFtZSddLFxuICAgIFtESVNUX1RBR1NdOiBtYW5pZmVzdFtESVNUX1RBR1NdLFxuICAgIHZlcnNpb25zOiBhYmJyZXZpYXRlZFZlcnNpb25zLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBtb2RpZmllZDogbWFuaWZlc3Q/LnRpbWU/Lm1vZGlmaWVkLFxuICAgIC8vIE5PVEU6IHNwZWNpYWwgY2FzZSBmb3IgcG5wbSBodHRwczovL2dpdGh1Yi5jb20vcG5wbS9yZmNzL3B1bGwvMlxuICAgIHRpbWU6IG1hbmlmZXN0Py50aW1lLFxuICB9O1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGNvbnZlcnRlZE1hbmlmZXN0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUFpRSxTQUFBRCx1QkFBQVEsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9B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
|
|
282
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIl9zZWFyY2giLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiZ2VuZXJhdGVQYWNrYWdlVGVtcGxhdGUiLCJuYW1lIiwidmVyc2lvbnMiLCJ0aW1lIiwiVVNFUlMiLCJESVNUX1RBR1MiLCJfdXBsaW5rcyIsIl9kaXN0ZmlsZXMiLCJfYXR0YWNobWVudHMiLCJfcmV2Iiwibm9ybWFsaXplUGFja2FnZSIsInBrZyIsInBrZ1Byb3BlcnRpZXMiLCJwa2dQcm9wIiwiXyIsImlzTmlsIiwiaXNPYmplY3QiLCJpc1N0cmluZyIsIlNUT1JBR0UiLCJERUZBVUxUX1JFVklTSU9OIiwiX2lkIiwibm9ybWFsaXplRGlzdFRhZ3MiLCJnZW5lcmF0ZVJldmlzaW9uIiwicmV2Iiwic3BsaXQiLCJnZW5lcmF0ZVJhbmRvbUhleFN0cmluZyIsImdldExhdGVzdFJlYWRtZSIsImRpc3RUYWdzIiwibGF0ZXN0VmVyc2lvbiIsInJlYWRtZSIsInRyaW0iLCJyZWFkbWVEaXN0VGFnc1ByaW9yaXR5IiwibWFwIiwidGFnIiwidmVyc2lvbiIsImNsZWFuVXBSZWFkbWUiLCJXSElURUxJU1QiLCJleHBvcnRzIiwiY2xlYW5VcExpbmtzUmVmIiwia2VlcFVwTGlua0RhdGEiLCJyZXN1bHQiLCJwcm9wZXJ0eVRvS2VlcCIsImkiLCJpbmRleE9mIiwiY2hlY2tQYWNrYWdlTG9jYWwiLCJsb2NhbFN0b3JhZ2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImdldFBhY2thZ2VNZXRhZGF0YSIsImVyciIsInJlc3VsdHMiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk5PVF9GT1VORCIsIkVycm9yQ29kZSIsImdldENvbmZsaWN0IiwiQVBJX0VSUk9SIiwiUEFDS0FHRV9FWElTVCIsInB1Ymxpc2hQYWNrYWdlIiwibWV0YWRhdGEiLCJhZGRQYWNrYWdlIiwibGF0ZXN0IiwiaXNOdWxsIiwiaXNVbmRlZmluZWQiLCJTZWFyY2hNZW1vcnlJbmRleGVyIiwiYWRkIiwiY2F0Y2giLCJyZWFzb24iLCJsb2dnZXIiLCJlcnJvciIsImNoZWNrUGFja2FnZVJlbW90ZSIsImlzQWxsb3dQdWJsaXNoT2ZmbGluZSIsInN5bmNNZXRhZGF0YSIsInBhY2thZ2VKc29uTG9jYWwiLCJ1cExpbmtzRXJyb3JzIiwiZXJyb3JJdGVtIiwiZ2V0U2VydmljZVVuYXZhaWxhYmxlIiwiVVBMSU5LX09GRkxJTkVfUFVCTElTSCIsIm1lcmdlVXBsaW5rVGltZUludG9Mb2NhbCIsImNhY2hlTWFuaWZlc3QiLCJyZW1vdGVNYW5pZmVzdCIsInByZXBhcmVTZWFyY2hQYWNrYWdlIiwiZGF0YSIsInBrZ1V0aWxzIiwiZ2V0TGF0ZXN0IiwiZGVzY3JpcHRpb24iLCJtYWludGFpbmVycyIsImF1dGhvciIsIkJvb2xlYW4iLCJyZXBvc2l0b3J5IiwicmVhZG1lRmlsZW5hbWUiLCJob21lcGFnZSIsImtleXdvcmRzIiwibW9kaWZpZWQiLCJidWdzIiwibGljZW5zZSIsImlzUHVibGlzaGFibGVQYWNrYWdlIiwiaW5jbHVkZXMiLCJoYXNJbnN0YWxsU2NyaXB0Iiwic2NyaXB0cyIsImZpbmQiLCJpdGVtIiwiY29udmVydEFiYnJldmlhdGVkTWFuaWZlc3QiLCJtYW5pZmVzdCIsIl9tYW5pZmVzdCR0aW1lIiwiYWJicmV2aWF0ZWRWZXJzaW9ucyIsInJlZHVjZSIsImFjYyIsIl92ZXJzaW9uIiwiX3ZlcnNpb25fYWJicmV2aWF0ZWQiLCJkZXByZWNhdGVkIiwiYmluIiwiZGlzdCIsImVuZ2luZXMiLCJjcHUiLCJvcyIsImZ1bmRpbmciLCJkaXJlY3RvcmllcyIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsInBlZXJEZXBlbmRlbmNpZXMiLCJwZWVyRGVwZW5kZW5jaWVzTWV0YSIsIm9wdGlvbmFsRGVwZW5kZW5jaWVzIiwiYnVuZGxlRGVwZW5kZW5jaWVzIiwiX2hhc1Nocmlua3dyYXAiLCJjb252ZXJ0ZWRNYW5pZmVzdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3RvcmFnZS11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBwa2dVdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hNZW1vcnlJbmRleGVyIH0gZnJvbSAnQHZlcmRhY2Npby9zZWFyY2gnO1xuaW1wb3J0IHsgQWJicmV2aWF0ZWRNYW5pZmVzdCwgQWJicmV2aWF0ZWRWZXJzaW9ucywgTWFuaWZlc3QsIFZlcnNpb24gfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tSGV4U3RyaW5nIH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCB7IEFQSV9FUlJPUiwgRElTVF9UQUdTLCBIVFRQX1NUQVRVUywgU1RPUkFHRSwgVVNFUlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgTG9jYWxTdG9yYWdlIGZyb20gJy4vbG9jYWwtc3RvcmFnZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBFcnJvckNvZGUsIGlzT2JqZWN0LCBub3JtYWxpemVEaXN0VGFncyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQYWNrYWdlVGVtcGxhdGUobmFtZTogc3RyaW5nKTogTWFuaWZlc3Qge1xuICByZXR1cm4ge1xuICAgIC8vIHN0YW5kYXJkIHRoaW5nc1xuICAgIG5hbWUsXG4gICAgdmVyc2lvbnM6IHt9LFxuICAgIHRpbWU6IHt9LFxuICAgIFtVU0VSU106IHt9LFxuICAgIFtESVNUX1RBR1NdOiB7fSxcbiAgICBfdXBsaW5rczoge30sXG4gICAgX2Rpc3RmaWxlczoge30sXG4gICAgX2F0dGFjaG1lbnRzOiB7fSxcbiAgICBfcmV2OiAnJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgcGFja2FnZSBwcm9wZXJ0aWVzLCB0YWdzLCByZXZpc2lvbiBpZC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBwa2cgcGFja2FnZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlKHBrZzogTWFuaWZlc3QpOiBNYW5pZmVzdCB7XG4gIGNvbnN0IHBrZ1Byb3BlcnRpZXMgPSBbJ3ZlcnNpb25zJywgJ2Rpc3QtdGFncycsICdfZGlzdGZpbGVzJywgJ19hdHRhY2htZW50cycsICdfdXBsaW5rcycsICd0aW1lJ107XG5cbiAgcGtnUHJvcGVydGllcy5mb3JFYWNoKChrZXkpOiB2b2lkID0+IHtcbiAgICBjb25zdCBwa2dQcm9wID0gcGtnW2tleV07XG5cbiAgICBpZiAoXy5pc05pbChwa2dQcm9wKSB8fCBpc09iamVjdChwa2dQcm9wKSA9PT0gZmFsc2UpIHtcbiAgICAgIHBrZ1trZXldID0ge307XG4gICAgfVxuICB9KTtcblxuICBpZiAoXy5pc1N0cmluZyhwa2cuX3JldikgPT09IGZhbHNlKSB7XG4gICAgcGtnLl9yZXYgPSBTVE9SQUdFLkRFRkFVTFRfUkVWSVNJT047XG4gIH1cblxuICBpZiAoXy5pc1N0cmluZyhwa2cuX2lkKSA9PT0gZmFsc2UpIHtcbiAgICBwa2cuX2lkID0gcGtnLm5hbWU7XG4gIH1cblxuICAvLyBub3JtYWxpemUgZGlzdC10YWdzXG4gIG5vcm1hbGl6ZURpc3RUYWdzKHBrZyk7XG5cbiAgcmV0dXJuIHBrZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUmV2aXNpb24ocmV2OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBfcmV2ID0gcmV2LnNwbGl0KCctJyk7XG5cbiAgcmV0dXJuICgrX3JldlswXSB8fCAwKSArIDEgKyAnLScgKyBnZW5lcmF0ZVJhbmRvbUhleFN0cmluZygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF0ZXN0UmVhZG1lKHBrZzogTWFuaWZlc3QpOiBzdHJpbmcge1xuICBjb25zdCB2ZXJzaW9ucyA9IHBrZ1sndmVyc2lvbnMnXSB8fCB7fTtcbiAgY29uc3QgZGlzdFRhZ3MgPSBwa2dbRElTVF9UQUdTXSB8fCB7fTtcbiAgLy8gRklYTUU6IGhlcmUgaXMgYSBiaXQgdHJpY2t5IGFkZCB0aGUgdHlwZXNcbiAgY29uc3QgbGF0ZXN0VmVyc2lvbjogVmVyc2lvbiB8IGFueSA9IGRpc3RUYWdzWydsYXRlc3QnXSA/IHZlcnNpb25zW2Rpc3RUYWdzWydsYXRlc3QnXV0gfHwge30gOiB7fTtcbiAgbGV0IHJlYWRtZSA9IF8udHJpbShwa2cucmVhZG1lIHx8IGxhdGVzdFZlcnNpb24ucmVhZG1lIHx8ICcnKTtcbiAgaWYgKHJlYWRtZSkge1xuICAgIHJldHVybiByZWFkbWU7XG4gIH1cblxuICAvLyBJbiBjYXNlIG9mIGVtcHR5IHJlYWRtZSAtIHRyeWluZyB0byBnZXQgQU5ZIHJlYWRtZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOiAnbmV4dCcsJ2JldGEnLCdhbHBoYScsJ3Rlc3QnLCdkZXYnLCdjYW5hcnknXG4gIGNvbnN0IHJlYWRtZURpc3RUYWdzUHJpb3JpdHkgPSBbJ25leHQnLCAnYmV0YScsICdhbHBoYScsICd0ZXN0JywgJ2RldicsICdjYW5hcnknXTtcbiAgcmVhZG1lRGlzdFRhZ3NQcmlvcml0eS5tYXAoZnVuY3Rpb24gKHRhZyk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmIChyZWFkbWUpIHtcbiAgICAgIHJldHVybiByZWFkbWU7XG4gICAgfVxuICAgIGNvbnN0IHZlcnNpb246IFZlcnNpb24gfCBhbnkgPSBkaXN0VGFnc1t0YWddID8gdmVyc2lvbnNbZGlzdFRhZ3NbdGFnXV0gfHwge30gOiB7fTtcbiAgICByZWFkbWUgPSBfLnRyaW0odmVyc2lvbi5yZWFkbWUgfHwgcmVhZG1lKTtcbiAgfSk7XG4gIHJldHVybiByZWFkbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblVwUmVhZG1lKHZlcnNpb246IFZlcnNpb24pOiBWZXJzaW9uIHtcbiAgaWYgKF8uaXNOaWwodmVyc2lvbikgPT09IGZhbHNlKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGRlbGV0ZSB2ZXJzaW9uLnJlYWRtZTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uO1xufVxuXG5leHBvcnQgY29uc3QgV0hJVEVMSVNUID0gW1xuICAnX3JldicsXG4gICduYW1lJyxcbiAgJ3ZlcnNpb25zJyxcbiAgJ2Rpc3QtdGFncycsXG4gICdyZWFkbWUnLFxuICAndGltZScsXG4gICdfaWQnLFxuICAndXNlcnMnLFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuVXBMaW5rc1JlZihrZWVwVXBMaW5rRGF0YTogYm9vbGVhbiwgcmVzdWx0OiBNYW5pZmVzdCk6IE1hbmlmZXN0IHtcbiAgY29uc3QgcHJvcGVydHlUb0tlZXAgPSBbLi4uV0hJVEVMSVNUXTtcbiAgaWYgKGtlZXBVcExpbmtEYXRhID09PSB0cnVlKSB7XG4gICAgcHJvcGVydHlUb0tlZXAucHVzaCgnX3VwbGlua3MnKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgaSBpbiByZXN1bHQpIHtcbiAgICBpZiAocHJvcGVydHlUb0tlZXAuaW5kZXhPZihpKSA9PT0gLTEpIHtcbiAgICAgIC8vIFJlbW92ZSBzZWN0aW9ucyBsaWtlICdfdXBsaW5rcycgZnJvbSByZXNwb25zZVxuICAgICAgZGVsZXRlIHJlc3VsdFtpXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYSBwYWNrYWdlIGl0IGlzIGFscmVhZHkgYSBsb2NhbCBwYWNrYWdlXG4gKiBAcGFyYW0geyp9IG5hbWVcbiAqIEBwYXJhbSB7Kn0gbG9jYWxTdG9yYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BhY2thZ2VMb2NhbChuYW1lOiBzdHJpbmcsIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLmdldFBhY2thZ2VNZXRhZGF0YShuYW1lLCAoZXJyLCByZXN1bHRzKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIV8uaXNOaWwoZXJyKSAmJiBlcnIuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChFcnJvckNvZGUuZ2V0Q29uZmxpY3QoQVBJX0VSUk9SLlBBQ0tBR0VfRVhJU1QpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFBhY2thZ2UoXG4gIG5hbWU6IHN0cmluZyxcbiAgbWV0YWRhdGE6IGFueSxcbiAgbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2Vcbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5hZGRQYWNrYWdlKG5hbWUsIG1ldGFkYXRhLCAoZXJyLCBsYXRlc3QpOiB2b2lkID0+IHtcbiAgICAgIGlmICghXy5pc051bGwoZXJyKSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKGxhdGVzdCkpIHtcbiAgICAgICAgU2VhcmNoTWVtb3J5SW5kZXhlci5hZGQobGF0ZXN0KS5jYXRjaCgocmVhc29uKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdpbmRleGVyIGhhcyBmYWlsZWQgb24gYWRkIGl0ZW0nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUGFja2FnZVJlbW90ZShcbiAgbmFtZTogc3RyaW5nLFxuICBpc0FsbG93UHVibGlzaE9mZmxpbmU6IGJvb2xlYW4sXG4gIHN5bmNNZXRhZGF0YTogRnVuY3Rpb25cbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIHN5bmNNZXRhZGF0YShuYW1lLCBudWxsLCB7fSwgKGVyciwgcGFja2FnZUpzb25Mb2NhbCwgdXBMaW5rc0Vycm9ycyk6IHZvaWQgPT4ge1xuICAgICAgLy8gc29tZXRoaW5nIHdlaXJkXG4gICAgICBpZiAoZXJyICYmIGVyci5zdGF0dXMgIT09IEhUVFBfU1RBVFVTLk5PVF9GT1VORCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNraW5nIHBhY2thZ2UgZXhpc3QgYWxyZWFkeVxuICAgICAgaWYgKF8uaXNOaWwocGFja2FnZUpzb25Mb2NhbCkgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoRXJyb3JDb2RlLmdldENvbmZsaWN0KEFQSV9FUlJPUi5QQUNLQUdFX0VYSVNUKSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAobGV0IGVycm9ySXRlbSA9IDA7IGVycm9ySXRlbSA8IHVwTGlua3NFcnJvcnMubGVuZ3RoOyBlcnJvckl0ZW0rKykge1xuICAgICAgICAvLyBjaGVja2luZyBlcnJvclxuICAgICAgICAvLyBpZiB1cGxpbmsgZmFpbHMgd2l0aCBhIHN0YXR1cyBvdGhlciB0aGFuIDQwNCwgd2UgcmVwb3J0IGZhaWx1cmVcbiAgICAgICAgaWYgKF8uaXNOaWwodXBMaW5rc0Vycm9yc1tlcnJvckl0ZW1dWzBdKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBpZiAodXBMaW5rc0Vycm9yc1tlcnJvckl0ZW1dWzBdLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICBpZiAoaXNBbGxvd1B1Ymxpc2hPZmZsaW5lKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZWplY3QoRXJyb3JDb2RlLmdldFNlcnZpY2VVbmF2YWlsYWJsZShBUElfRVJST1IuVVBMSU5LX09GRkxJTkVfUFVCTElTSCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gdGVzdGVkIG9uIHY2XG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VVcGxpbmtUaW1lSW50b0xvY2FsKGNhY2hlTWFuaWZlc3Q6IE1hbmlmZXN0LCByZW1vdGVNYW5pZmVzdDogTWFuaWZlc3QpOiBhbnkge1xuICBpZiAoJ3RpbWUnIGluIHJlbW90ZU1hbmlmZXN0KSB7XG4gICAgLy8gcmVtb3RlIG92ZXJyaWRlIGNhY2hlIHRpbWUgY29uZmxpY3RzXG4gICAgcmV0dXJuIHsgLi4uY2FjaGVNYW5pZmVzdCwgdGltZTogeyAuLi5jYWNoZU1hbmlmZXN0LnRpbWUsIC4uLnJlbW90ZU1hbmlmZXN0LnRpbWUgfSB9O1xuICB9XG5cbiAgcmV0dXJuIGNhY2hlTWFuaWZlc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlU2VhcmNoUGFja2FnZShkYXRhOiBNYW5pZmVzdCwgdGltZTogdW5rbm93bik6IGFueSB7XG4gIGNvbnN0IGxhdGVzdCA9IHBrZ1V0aWxzLmdldExhdGVzdChkYXRhKTtcblxuICBpZiAobGF0ZXN0ICYmIGRhdGEudmVyc2lvbnNbbGF0ZXN0XSkge1xuICAgIGNvbnN0IHZlcnNpb246IFZlcnNpb24gPSBkYXRhLnZlcnNpb25zW2xhdGVzdF07XG4gICAgY29uc3QgdmVyc2lvbnM6IGFueSA9IHsgW2xhdGVzdF06ICdsYXRlc3QnIH07XG4gICAgY29uc3QgcGtnOiBhbnkgPSB7XG4gICAgICBuYW1lOiB2ZXJzaW9uLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdmVyc2lvbi5kZXNjcmlwdGlvbixcbiAgICAgIFtESVNUX1RBR1NdOiB7IGxhdGVzdCB9LFxuICAgICAgbWFpbnRhaW5lcnM6IHZlcnNpb24ubWFpbnRhaW5lcnMgfHwgW3ZlcnNpb24uYXV0aG9yXS5maWx0ZXIoQm9vbGVhbiksXG4gICAgICBhdXRob3I6IHZlcnNpb24uYXV0aG9yLFxuICAgICAgcmVwb3NpdG9yeTogdmVyc2lvbi5yZXBvc2l0b3J5LFxuICAgICAgcmVhZG1lRmlsZW5hbWU6IHZlcnNpb24ucmVhZG1lRmlsZW5hbWUgfHwgJycsXG4gICAgICBob21lcGFnZTogdmVyc2lvbi5ob21lcGFnZSxcbiAgICAgIGtleXdvcmRzOiB2ZXJzaW9uLmtleXdvcmRzLFxuICAgICAgdGltZToge1xuICAgICAgICBtb2RpZmllZDogdGltZSxcbiAgICAgIH0sXG4gICAgICBidWdzOiB2ZXJzaW9uLmJ1Z3MsXG4gICAgICBsaWNlbnNlOiB2ZXJzaW9uLmxpY2Vuc2UsXG4gICAgICB2ZXJzaW9ucyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBrZztcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHBhY2thZ2UgbWV0YWR0YSBoYXMgZW5vdWdoIGRhdGEgdG8gYmUgcHVibGlzaGVkXG4gKiBAcGFyYW0gcGtnIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1B1Ymxpc2hhYmxlUGFja2FnZShwa2c6IE1hbmlmZXN0KTogYm9vbGVhbiB7XG4gIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMocGtnKTtcblxuICByZXR1cm4ga2V5cy5pbmNsdWRlcygndmVyc2lvbnMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0luc3RhbGxTY3JpcHQodmVyc2lvbjogVmVyc2lvbikge1xuICBpZiAodmVyc2lvbj8uc2NyaXB0cykge1xuICAgIGNvbnN0IHNjcmlwdHMgPSBPYmplY3Qua2V5cyh2ZXJzaW9uLnNjcmlwdHMpO1xuICAgIHJldHVybiAoXG4gICAgICBzY3JpcHRzLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIFsnaW5zdGFsbCcsICdwcmVpbnN0YWxsJywgJ3Bvc3RpbnN0YWxsJ10uaW5jbHVkZXMoaXRlbSk7XG4gICAgICB9KSAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QWJicmV2aWF0ZWRNYW5pZmVzdChtYW5pZmVzdDogTWFuaWZlc3QpOiBBYmJyZXZpYXRlZE1hbmlmZXN0IHtcbiAgY29uc3QgYWJicmV2aWF0ZWRWZXJzaW9ucyA9IE9iamVjdC5rZXlzKG1hbmlmZXN0LnZlcnNpb25zKS5yZWR1Y2UoXG4gICAgKGFjYzogQWJicmV2aWF0ZWRWZXJzaW9ucywgdmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBfdmVyc2lvbiA9IG1hbmlmZXN0LnZlcnNpb25zW3ZlcnNpb25dO1xuICAgICAgLy8gVGhpcyBzaG91bGQgYmUgYWxpZ24gd2l0aCB0aGlzIGRvY3VtZW50XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbnBtL3JlZ2lzdHJ5L2Jsb2IvbWFzdGVyL2RvY3MvcmVzcG9uc2VzL3BhY2thZ2UtbWV0YWRhdGEubWQjYWJicmV2aWF0ZWQtdmVyc2lvbi1vYmplY3RcbiAgICAgIGNvbnN0IF92ZXJzaW9uX2FiYnJldmlhdGVkID0ge1xuICAgICAgICBuYW1lOiBfdmVyc2lvbi5uYW1lLFxuICAgICAgICB2ZXJzaW9uOiBfdmVyc2lvbi52ZXJzaW9uLFxuICAgICAgICBkZXNjcmlwdGlvbjogX3ZlcnNpb24uZGVzY3JpcHRpb24sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IF92ZXJzaW9uLmRlcHJlY2F0ZWQsXG4gICAgICAgIGJpbjogX3ZlcnNpb24uYmluLFxuICAgICAgICBkaXN0OiBfdmVyc2lvbi5kaXN0LFxuICAgICAgICBlbmdpbmVzOiBfdmVyc2lvbi5lbmdpbmVzLFxuICAgICAgICBjcHU6IF92ZXJzaW9uLmNwdSxcbiAgICAgICAgb3M6IF92ZXJzaW9uLm9zLFxuICAgICAgICBmdW5kaW5nOiBfdmVyc2lvbi5mdW5kaW5nLFxuICAgICAgICBkaXJlY3RvcmllczogX3ZlcnNpb24uZGlyZWN0b3JpZXMsXG4gICAgICAgIGRlcGVuZGVuY2llczogX3ZlcnNpb24uZGVwZW5kZW5jaWVzLFxuICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IF92ZXJzaW9uLmRldkRlcGVuZGVuY2llcyxcbiAgICAgICAgcGVlckRlcGVuZGVuY2llczogX3ZlcnNpb24ucGVlckRlcGVuZGVuY2llcyxcbiAgICAgICAgcGVlckRlcGVuZGVuY2llc01ldGE6IF92ZXJzaW9uLnBlZXJEZXBlbmRlbmNpZXNNZXRhLFxuICAgICAgICBvcHRpb25hbERlcGVuZGVuY2llczogX3ZlcnNpb24ub3B0aW9uYWxEZXBlbmRlbmNpZXMsXG4gICAgICAgIGJ1bmRsZURlcGVuZGVuY2llczogX3ZlcnNpb24uYnVuZGxlRGVwZW5kZW5jaWVzLFxuICAgICAgICAvLyBucG0gY2xpIHNwZWNpZmljc1xuICAgICAgICBfaGFzU2hyaW5rd3JhcDogX3ZlcnNpb24uX2hhc1Nocmlua3dyYXAsXG4gICAgICAgIGhhc0luc3RhbGxTY3JpcHQ6IGhhc0luc3RhbGxTY3JpcHQoX3ZlcnNpb24pLFxuICAgICAgfTtcbiAgICAgIGFjY1t2ZXJzaW9uXSA9IF92ZXJzaW9uX2FiYnJldmlhdGVkO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9XG4gICk7XG5cbiAgY29uc3QgY29udmVydGVkTWFuaWZlc3QgPSB7XG4gICAgbmFtZTogbWFuaWZlc3RbJ25hbWUnXSxcbiAgICBbRElTVF9UQUdTXTogbWFuaWZlc3RbRElTVF9UQUdTXSxcbiAgICB2ZXJzaW9uczogYWJicmV2aWF0ZWRWZXJzaW9ucyxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbW9kaWZpZWQ6IG1hbmlmZXN0Py50aW1lPy5tb2RpZmllZCxcbiAgICAvLyBOT1RFOiBzcGVjaWFsIGNhc2UgZm9yIHBucG0gaHR0cHM6Ly9naXRodWIuY29tL3BucG0vcmZjcy9wdWxsLzJcbiAgICB0aW1lOiBtYW5pZmVzdD8udGltZSxcbiAgfTtcblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBjb252ZXJ0ZWRNYW5pZmVzdDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFBaUUsU0FBQUQsdUJBQUFRLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFBQSxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENB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
|
package/build/lib/utils.js
CHANGED
|
@@ -53,8 +53,8 @@ var _utils = require("@verdaccio/utils");
|
|
|
53
53
|
var _constants = require("./constants");
|
|
54
54
|
var _logger = require("./logger");
|
|
55
55
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
56
|
-
function ownKeys(
|
|
57
|
-
function _objectSpread(
|
|
56
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
57
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
58
58
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
59
59
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
60
60
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // eslint-disable-next-line max-len
|
|
@@ -465,4 +465,4 @@ function hasLogin(config) {
|
|
|
465
465
|
// @ts-ignore
|
|
466
466
|
return _lodash.default.isNil(config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) || (config === null || config === void 0 ? void 0 : (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.login) === true;
|
|
467
467
|
}
|
|
468
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfc2VtdmVyIiwiX3VybCIsIl92YWxpZGF0b3IiLCJfY29uZmlnIiwiX2NvcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJnZXRCYWREYXRhIiwiZ2V0QmFkUmVxdWVzdCIsImdldENvZGUiLCJnZXRDb25mbGljdCIsImdldEZvcmJpZGRlbiIsImdldEludGVybmFsRXJyb3IiLCJnZXROb3RGb3VuZCIsImdldFNlcnZpY2VVbmF2YWlsYWJsZSIsImdldFVuYXV0aG9yaXplZCIsImVycm9yVXRpbHMiLCJ2YWxpZFByb3RvY29scyIsImNvbnZlcnRQYXlsb2FkVG9CYXNlNjQiLCJwYXlsb2FkIiwiQnVmZmVyIiwiZnJvbSIsImlzT2JqZWN0IiwidmFsaWRhdGlvVXRpbHMiLCJleHBvcnRzIiwiaXNPYmplY3RPckFycmF5IiwiXyIsImlzTnVsbCIsInRhZ1ZlcnNpb24iLCJkYXRhIiwidmVyc2lvbiIsInRhZyIsIkRJU1RfVEFHUyIsInNlbXZlciIsInBhcnNlIiwiZ2V0VmVyc2lvbiIsInBrZyIsImlzTmlsIiwidmVyc2lvbnMiLCJ2ZXJzaW9uSXRlbSIsImNvbXBhcmUiLCJlcnIiLCJwYXJzZUFkZHJlc3MiLCJ1cmxBZGRyZXNzIiwidXJsUGF0dGVybiIsImV4ZWMiLCJwcm90byIsIkRFRkFVTFRfUFJPVE9DT0wiLCJob3N0IiwiREVGQVVMVF9ET01BSU4iLCJwb3J0IiwiREVGQVVMVF9QT1JUIiwicGF0aCIsInNlbXZlclNvcnQiLCJsaXN0VmVyc2lvbnMiLCJ4IiwibG9nZ2VyIiwid2FybiIsInZlciIsInNvcnQiLCJjb21wYXJlTG9vc2UiLCJtYXAiLCJub3JtYWxpemVEaXN0VGFncyIsInNvcnRlZCIsImxhdGVzdCIsInBvcCIsImlzQXJyYXkiLCJpc1N0cmluZyIsInBhcnNlSW50ZXJ2YWxUYWJsZSIsIm1zIiwicyIsIm0iLCJoIiwiZCIsInciLCJNIiwieSIsInBhcnNlSW50ZXJ2YWwiLCJpbnRlcnZhbCIsInJlc3VsdCIsImxhc3Rfc3VmZml4IiwiSW5maW5pdHkiLCJzcGxpdCIsIm1hdGNoIiwiRXJyb3IiLCJFcnJvckNvZGUiLCJmb2xkZXJFeGlzdHMiLCJzdGF0IiwiZnMiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwiZmlsZUV4aXN0cyIsImlzRmlsZSIsInNvcnRCeU5hbWUiLCJwYWNrYWdlcyIsIm9yZGVyQXNjZW5kaW5nIiwic2xpY2UiLCJhIiwiYiIsImNvbXBhcmF0b3JOYW1lcyIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImFkZFNjb3BlIiwic2NvcGUiLCJwYWNrYWdlTmFtZSIsImRlbGV0ZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVG9EZWxldGUiLCJvYmplY3RJdGVtIiwicHJvcGVydHkiLCJhZGRHcmF2YXRhclN1cHBvcnQiLCJwa2dJbmZvIiwib25saW5lIiwicGtnSW5mb0NvcHkiLCJhdXRob3IiLCJnZXQiLCJjb250cmlidXRvcnMiLCJub3JtYWxpemVDb250cmlidXRvcnMiLCJtYWludGFpbmVycyIsImVtYWlsIiwiYXZhdGFyIiwiZ2VuZXJhdGVHcmF2YXRhclVybCIsIkdFTkVSSUNfQVZBVEFSIiwiaXNFbXB0eSIsImNvbnRyaWJ1dG9yIiwibWFpbnRhaW5lciIsInBhcnNlUmVhZG1lIiwicmVhZG1lIiwiaW5mbyIsImZvcm1hdEF1dGhvciIsImF1dGhvckRldGFpbHMiLCJERUZBVUxUX1VTRVIiLCJ1cmwiLCJwYWQiLCJzdHIiLCJtYXgiLCJyZXBlYXQiLCJtYXNrIiwiY2hhck51bSIsInN1YnN0ciIsImVuY29kZVNjb3BlZFVyaSIsInJlcGxhY2UiLCJoYXNEaWZmT25lS2V5IiwiaXNWZXJzaW9uVmFsaWQiLCJwYWNrYWdlTWV0YSIsInBhY2thZ2VWZXJzaW9uIiwiaGFzVmVyc2lvbiIsImhhc01hdGNoVmVyc2lvbiIsImluY2x1ZGVzIiwiaXNSZWxhdGVkVG9EZXByZWNhdGlvbiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwidmFsaWRhdGVVUkwiLCJwdWJsaWNVcmwiLCJwYXJzZWQiLCJVUkwiLCJwcm90b2NvbCIsImlzSG9zdCIsIm9wdGlvbnMiLCJ2YWxpZGF0b3IiLCJpc1VSTCIsInJlcXVpcmVfaG9zdCIsImFsbG93X3RyYWlsaW5nX2RvdCIsInJlcXVpcmVfdmFsaWRfcHJvdG9jb2wiLCJyZXF1aXJlX3BvcnQiLCJyZXF1aXJlX3RsZCIsImhhc0xvZ2luIiwiY29uZmlnIiwiX2NvbmZpZyR3ZWIiLCJfY29uZmlnJHdlYjIiLCJ3ZWIiLCJsb2dpbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHZhbGlkYXRvciBmcm9tICd2YWxpZGF0b3InO1xuXG5pbXBvcnQgeyBwYXJzZUNvbmZpZ0ZpbGUgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuaW1wb3J0IHsgZXJyb3JVdGlscywgdmFsaWRhdGlvVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nVmFsdWUgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IEF1dGhvciwgQ29uZmlnLCBQYWNrYWdlLCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQge1xuICBHRU5FUklDX0FWQVRBUixcbiAgYnVpbGRUb2tlbiBhcyBidWlsZFRva2VuVXRpbCxcbiAgZ2VuZXJhdGVHcmF2YXRhclVybCxcbiAgbm9ybWFsaXplQ29udHJpYnV0b3JzLFxufSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IHsgQXV0aG9yQXZhdGFyIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9ET01BSU4sXG4gIERFRkFVTFRfUE9SVCxcbiAgREVGQVVMVF9QUk9UT0NPTCxcbiAgREVGQVVMVF9VU0VSLFxuICBESVNUX1RBR1MsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuY29uc3Qge1xuICBnZXRCYWREYXRhLFxuICBnZXRCYWRSZXF1ZXN0LFxuICBnZXRDb2RlLFxuICBnZXRDb25mbGljdCxcbiAgZ2V0Rm9yYmlkZGVuLFxuICBnZXRJbnRlcm5hbEVycm9yLFxuICBnZXROb3RGb3VuZCxcbiAgZ2V0U2VydmljZVVuYXZhaWxhYmxlLFxuICBnZXRVbmF1dGhvcml6ZWQsXG59ID0gZXJyb3JVdGlscztcbmNvbnN0IHZhbGlkUHJvdG9jb2xzID0gWydodHRwcycsICdodHRwJ107XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBheWxvYWRUb0Jhc2U2NChwYXlsb2FkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20ocGF5bG9hZCwgJ2Jhc2U2NCcpO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBhbiBPYmplY3RcbiAqIEBwYXJhbSB7Kn0gb2JqIHRoZSBlbGVtZW50XG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSB2YWxpZGF0aW9VdGlscy5pc09iamVjdDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBub3QgdXNlZCB1biB2NlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RPckFycmF5KG9iajogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBfLmlzT2JqZWN0KG9iaikgJiYgXy5pc051bGwob2JqKSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWdWZXJzaW9uKGRhdGE6IFBhY2thZ2UsIHZlcnNpb246IHN0cmluZywgdGFnOiBTdHJpbmdWYWx1ZSk6IGJvb2xlYW4ge1xuICBpZiAodGFnICYmIGRhdGFbRElTVF9UQUdTXVt0YWddICE9PSB2ZXJzaW9uICYmIHNlbXZlci5wYXJzZSh2ZXJzaW9uLCB0cnVlKSkge1xuICAgIC8vIHZhbGlkIHZlcnNpb24gLSBzdG9yZVxuICAgIGRhdGFbRElTVF9UQUdTXVt0YWddID0gdmVyc2lvbjtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogR2V0cyB2ZXJzaW9uIGZyb20gYSBwYWNrYWdlIG9iamVjdCB0YWtpbmcgaW50byBhY2NvdW50IHNlbXZlciB3ZWlyZG5lc3MuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybiB0aGUgc2VtYW50aWMgdmVyc2lvbiBvZiBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb24ocGtnOiBQYWNrYWdlLCB2ZXJzaW9uOiBhbnkpOiBWZXJzaW9uIHwgdm9pZCB7XG4gIC8vIHRoaXMgY29uZGl0aW9uIG11c3QgYWxsb3cgY2FzdFxuICBpZiAoXy5pc05pbChwa2cudmVyc2lvbnNbdmVyc2lvbl0pID09PSBmYWxzZSkge1xuICAgIHJldHVybiBwa2cudmVyc2lvbnNbdmVyc2lvbl07XG4gIH1cblxuICB0cnkge1xuICAgIHZlcnNpb24gPSBzZW12ZXIucGFyc2UodmVyc2lvbiwgdHJ1ZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uSXRlbSBpbiBwa2cudmVyc2lvbnMpIHtcbiAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmUoc2VtdmVyLnBhcnNlKHZlcnNpb25JdGVtLCB0cnVlKSkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHBrZy52ZXJzaW9uc1t2ZXJzaW9uSXRlbV07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhbiBpbnRlcm5ldCBhZGRyZXNzXG4gKiBBbGxvdzpcbiAtIGh0dHBzOmxvY2FsaG9zdDoxMjM0ICAgICAgICAtIHByb3RvY29sICsgaG9zdCArIHBvcnRcbiAtIGxvY2FsaG9zdDoxMjM0ICAgICAgICAgICAgICAtIGhvc3QgKyBwb3J0XG4gLSAxMjM0ICAgICAgICAgICAgICAgICAgICAgICAgLSBwb3J0XG4gLSBodHRwOjoxMjM0ICAgICAgICAgICAgICAgICAgLSBwcm90b2NvbCArIHBvcnRcbiAtIGh0dHBzOi8vbG9jYWxob3N0OjQ0My8gICAgICAtIGZ1bGwgdXJsICsgaHR0cHNcbiAtIGh0dHA6Ly9bOjoxXTo0NDMvICAgICAgICAgICAtIGlwdjZcbiAtIHVuaXg6L3RtcC9odHRwLnNvY2sgICAgICAgICAtIHVuaXggc29ja2V0c1xuIC0gaHR0cHM6Ly91bml4Oi90bXAvaHR0cC5zb2NrIC0gdW5peCBzb2NrZXRzIChodHRwcylcbiAqIEBwYXJhbSB7Kn0gdXJsQWRkcmVzcyB0aGUgaW50ZXJuZXQgYWRkcmVzcyBkZWZpbml0aW9uXG4gKiBAcmV0dXJuIHtPYmplY3R8TnVsbH0gbGl0ZXJhbCBvYmplY3QgdGhhdCByZXByZXNlbnQgdGhlIGFkZHJlc3MgcGFyc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFkZHJlc3ModXJsQWRkcmVzczogYW55KTogYW55IHtcbiAgLy9cbiAgLy8gVE9ETzogcmVmYWN0b3IgaXQgdG8gc29tZXRoaW5nIG1vcmUgcmVhc29uYWJsZT9cbiAgLy9cbiAgLy8gICAgICAgIHByb3RvY29sIDogIC8vICAgICAgKCAgaG9zdCAgKXwoICAgIGlwdjYgICAgICk6ICBwb3J0ICAvXG4gIGxldCB1cmxQYXR0ZXJuID0gL14oKGh0dHBzPyk6KFxcL1xcLyk/KT8oKChbXlxcLzpdKil8XFxbKFteXFxbXFxdXSspXFxdKTopPyhcXGQrKVxcLz8kLy5leGVjKHVybEFkZHJlc3MpO1xuXG4gIGlmICh1cmxQYXR0ZXJuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3RvOiB1cmxQYXR0ZXJuWzJdIHx8IERFRkFVTFRfUFJPVE9DT0wsXG4gICAgICBob3N0OiB1cmxQYXR0ZXJuWzZdIHx8IHVybFBhdHRlcm5bN10gfHwgREVGQVVMVF9ET01BSU4sXG4gICAgICBwb3J0OiB1cmxQYXR0ZXJuWzhdIHx8IERFRkFVTFRfUE9SVCxcbiAgICB9O1xuICB9XG5cbiAgdXJsUGF0dGVybiA9IC9eKChodHRwcz8pOihcXC9cXC8pPyk/dW5peDooLiopJC8uZXhlYyh1cmxBZGRyZXNzKTtcblxuICBpZiAodXJsUGF0dGVybikge1xuICAgIHJldHVybiB7XG4gICAgICBwcm90bzogdXJsUGF0dGVyblsyXSB8fCBERUZBVUxUX1BST1RPQ09MLFxuICAgICAgcGF0aDogdXJsUGF0dGVybls0XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZmlsdGVycyBvdXQgYmFkIHNlbXZlciB2ZXJzaW9ucyBhbmQgc29ydHMgdGhlIGFycmF5LlxuICogQHJldHVybiB7QXJyYXl9IHNvcnRlZCBBcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VtdmVyU29ydChsaXN0VmVyc2lvbnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gKFxuICAgIGxpc3RWZXJzaW9uc1xuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoeCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXNlbXZlci5wYXJzZSh4LCB0cnVlKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKHsgdmVyOiB4IH0sICdpZ25vcmluZyBiYWQgdmVyc2lvbiBAe3Zlcn0nKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICAgLy8gRklYTUU6IGl0IHNlZW1zIHRoZSBAdHlwZXMvc2VtdmVyIGRvIG5vdCBoYW5kbGUgYSBsZWdpdGltYXRlIG1ldGhvZCBuYW1lZCAnY29tcGFyZUxvb3NlJ1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgLnNvcnQoc2VtdmVyLmNvbXBhcmVMb29zZSlcbiAgICAgIC5tYXAoU3RyaW5nKVxuICApO1xufVxuXG4vKipcbiAqIEZsYXR0ZW4gYXJyYXlzIG9mIHRhZ3MuXG4gKiBAcGFyYW0geyp9IGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURpc3RUYWdzKHBrZzogUGFja2FnZSk6IHZvaWQge1xuICBsZXQgc29ydGVkO1xuICBpZiAoIXBrZ1tESVNUX1RBR1NdLmxhdGVzdCkge1xuICAgIC8vIG92ZXJ3cml0ZSBsYXRlc3Qgd2l0aCBoaWdoZXN0IGtub3duIHZlcnNpb24gYmFzZWQgb24gc2VtdmVyIHNvcnRcbiAgICBzb3J0ZWQgPSBzZW12ZXJTb3J0KE9iamVjdC5rZXlzKHBrZy52ZXJzaW9ucykpO1xuICAgIGlmIChzb3J0ZWQgJiYgc29ydGVkLmxlbmd0aCkge1xuICAgICAgcGtnW0RJU1RfVEFHU10ubGF0ZXN0ID0gc29ydGVkLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgdGFnIGluIHBrZ1tESVNUX1RBR1NdKSB7XG4gICAgaWYgKF8uaXNBcnJheShwa2dbRElTVF9UQUdTXVt0YWddKSkge1xuICAgICAgaWYgKHBrZ1tESVNUX1RBR1NdW3RhZ10ubGVuZ3RoKSB7XG4gICAgICAgIC8vIHNvcnQgYXJyYXlcbiAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY2xlYXJseSB3cm9uZywgd2UgbmVlZCB0byByZXNlYXJjaCB3aHkgdGhpcyBpcyBsaWtlIHRoaXMuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc29ydGVkID0gc2VtdmVyU29ydChwa2dbRElTVF9UQUdTXVt0YWddKTtcbiAgICAgICAgaWYgKHNvcnRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAvLyB1c2UgaGlnaGVzdCB2ZXJzaW9uIGJhc2VkIG9uIHNlbXZlciBzb3J0XG4gICAgICAgICAgcGtnW0RJU1RfVEFHU11bdGFnXSA9IHNvcnRlZC5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHBrZ1tESVNUX1RBR1NdW3RhZ107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHBrZ1tESVNUX1RBR1NdW3RhZ10pKSB7XG4gICAgICBpZiAoIXNlbXZlci5wYXJzZShwa2dbRElTVF9UQUdTXVt0YWddLCB0cnVlKSkge1xuICAgICAgICAvLyBpZiB0aGUgdmVyc2lvbiBpcyBpbnZhbGlkLCBkZWxldGUgdGhlIGRpc3QtdGFnIGVudHJ5XG4gICAgICAgIGRlbGV0ZSBwa2dbRElTVF9UQUdTXVt0YWddO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwYXJzZUludGVydmFsVGFibGUgPSB7XG4gICcnOiAxMDAwLFxuICBtczogMSxcbiAgczogMTAwMCxcbiAgbTogNjAgKiAxMDAwLFxuICBoOiA2MCAqIDYwICogMTAwMCxcbiAgZDogODY0MDAwMDAsXG4gIHc6IDcgKiA4NjQwMDAwMCxcbiAgTTogMzAgKiA4NjQwMDAwMCxcbiAgeTogMzY1ICogODY0MDAwMDAsXG59O1xuXG4vKipcbiAqIFBhcnNlIGFuIGludGVybmFsIHN0cmluZyB0byBudW1iZXJcbiAqIEBwYXJhbSB7Kn0gaW50ZXJ2YWxcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJ2YWwoaW50ZXJ2YWw6IGFueSk6IG51bWJlciB7XG4gIGlmICh0eXBlb2YgaW50ZXJ2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGludGVydmFsICogMTAwMDtcbiAgfVxuICBsZXQgcmVzdWx0ID0gMDtcbiAgbGV0IGxhc3Rfc3VmZml4ID0gSW5maW5pdHk7XG4gIGludGVydmFsLnNwbGl0KC9cXHMrLykuZm9yRWFjaChmdW5jdGlvbiAoeCk6IHZvaWQge1xuICAgIGlmICgheCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtID0geC5tYXRjaCgvXigoMHxbMS05XVswLTldKikoXFwuWzAtOV0rKT8pKG1zfHN8bXxofGR8d3xNfHl8KSQvKTtcbiAgICBpZiAoXG4gICAgICAhbSB8fFxuICAgICAgcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dID49IGxhc3Rfc3VmZml4IHx8XG4gICAgICAobVs0XSA9PT0gJycgJiYgbGFzdF9zdWZmaXggIT09IEluZmluaXR5KVxuICAgICkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2ludmFsaWQgaW50ZXJ2YWw6ICcgKyBpbnRlcnZhbCk7XG4gICAgfVxuICAgIGxhc3Rfc3VmZml4ID0gcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dO1xuICAgIHJlc3VsdCArPSBOdW1iZXIobVsxXSkgKiBwYXJzZUludGVydmFsVGFibGVbbVs0XV07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgRXJyb3JDb2RlID0ge1xuICBnZXRDb25mbGljdCxcbiAgZ2V0QmFkRGF0YSxcbiAgZ2V0QmFkUmVxdWVzdCxcbiAgZ2V0SW50ZXJuYWxFcnJvcixcbiAgZ2V0VW5hdXRob3JpemVkLFxuICBnZXRGb3JiaWRkZW4sXG4gIGdldFNlcnZpY2VVbmF2YWlsYWJsZSxcbiAgZ2V0Tm90Rm91bmQsXG4gIGdldENvZGUsXG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHBhdGggYWxyZWFkeSBleGlzdC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9sZGVyRXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhwYXRoKTtcbiAgICByZXR1cm4gc3RhdC5pc0RpcmVjdG9yeSgpO1xuICB9IGNhdGNoIChfOiBhbnkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlIGFscmVhZHkgZXhpc3QuXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVFeGlzdHMocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKHBhdGgpO1xuICAgIHJldHVybiBzdGF0LmlzRmlsZSgpO1xuICB9IGNhdGNoIChfOiBhbnkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeU5hbWUocGFja2FnZXM6IGFueVtdLCBvcmRlckFzY2VuZGluZzogYm9vbGVhbiB8IHZvaWQgPSB0cnVlKTogc3RyaW5nW10ge1xuICByZXR1cm4gcGFja2FnZXMuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uIChhLCBiKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJhdG9yTmFtZXMgPSBhLm5hbWUudG9Mb3dlckNhc2UoKSA8IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIG9yZGVyQXNjZW5kaW5nID8gKGNvbXBhcmF0b3JOYW1lcyA/IC0xIDogMSkgOiBjb21wYXJhdG9yTmFtZXMgPyAxIDogLTE7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkU2NvcGUoc2NvcGU6IHN0cmluZywgcGFja2FnZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgQCR7c2NvcGV9LyR7cGFja2FnZU5hbWV9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZVByb3BlcnRpZXMocHJvcGVydGllc1RvRGVsZXRlOiBzdHJpbmdbXSwgb2JqZWN0SXRlbTogYW55KTogYW55IHtcbiAgXy5mb3JFYWNoKHByb3BlcnRpZXNUb0RlbGV0ZSwgKHByb3BlcnR5KTogYW55ID0+IHtcbiAgICBkZWxldGUgb2JqZWN0SXRlbVtwcm9wZXJ0eV07XG4gIH0pO1xuXG4gIHJldHVybiBvYmplY3RJdGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkR3JhdmF0YXJTdXBwb3J0KHBrZ0luZm86IFBhY2thZ2UsIG9ubGluZSA9IHRydWUpOiBBdXRob3JBdmF0YXIge1xuICBjb25zdCBwa2dJbmZvQ29weSA9IHsgLi4ucGtnSW5mbyB9IGFzIGFueTtcbiAgY29uc3QgYXV0aG9yOiBhbnkgPSBfLmdldChwa2dJbmZvLCAnbGF0ZXN0LmF1dGhvcicsIG51bGwpIGFzIGFueTtcbiAgY29uc3QgY29udHJpYnV0b3JzOiBBdXRob3JBdmF0YXJbXSA9IG5vcm1hbGl6ZUNvbnRyaWJ1dG9ycyhcbiAgICBfLmdldChwa2dJbmZvLCAnbGF0ZXN0LmNvbnRyaWJ1dG9ycycsIFtdKVxuICApO1xuICBjb25zdCBtYWludGFpbmVycyA9IF8uZ2V0KHBrZ0luZm8sICdsYXRlc3QubWFpbnRhaW5lcnMnLCBbXSk7XG5cbiAgLy8gZm9yIGF1dGhvci5cbiAgaWYgKGF1dGhvciAmJiBfLmlzT2JqZWN0KGF1dGhvcikpIHtcbiAgICBjb25zdCB7IGVtYWlsIH0gPSBhdXRob3IgYXMgQXV0aG9yO1xuICAgIHBrZ0luZm9Db3B5LmxhdGVzdC5hdXRob3IuYXZhdGFyID0gZ2VuZXJhdGVHcmF2YXRhclVybChlbWFpbCwgb25saW5lKTtcbiAgfVxuXG4gIGlmIChhdXRob3IgJiYgXy5pc1N0cmluZyhhdXRob3IpKSB7XG4gICAgcGtnSW5mb0NvcHkubGF0ZXN0LmF1dGhvciA9IHtcbiAgICAgIGF2YXRhcjogR0VORVJJQ19BVkFUQVIsXG4gICAgICBlbWFpbDogJycsXG4gICAgICBhdXRob3IsXG4gICAgfTtcbiAgfVxuXG4gIC8vIGZvciBjb250cmlidXRvcnNcbiAgaWYgKF8uaXNFbXB0eShjb250cmlidXRvcnMpID09PSBmYWxzZSkge1xuICAgIHBrZ0luZm9Db3B5LmxhdGVzdC5jb250cmlidXRvcnMgPSBjb250cmlidXRvcnMubWFwKChjb250cmlidXRvcik6IEF1dGhvckF2YXRhciA9PiB7XG4gICAgICBpZiAoaXNPYmplY3QoY29udHJpYnV0b3IpKSB7XG4gICAgICAgIGNvbnRyaWJ1dG9yLmF2YXRhciA9IGdlbmVyYXRlR3JhdmF0YXJVcmwoY29udHJpYnV0b3IuZW1haWwsIG9ubGluZSk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNTdHJpbmcoY29udHJpYnV0b3IpKSB7XG4gICAgICAgIGNvbnRyaWJ1dG9yID0ge1xuICAgICAgICAgIGF2YXRhcjogR0VORVJJQ19BVkFUQVIsXG4gICAgICAgICAgZW1haWw6IGNvbnRyaWJ1dG9yLFxuICAgICAgICAgIG5hbWU6IGNvbnRyaWJ1dG9yLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udHJpYnV0b3I7XG4gICAgfSk7XG4gIH1cblxuICAvLyBmb3IgbWFpbnRhaW5lcnNcbiAgaWYgKF8uaXNFbXB0eShtYWludGFpbmVycykgPT09IGZhbHNlKSB7XG4gICAgcGtnSW5mb0NvcHkubGF0ZXN0Lm1haW50YWluZXJzID0gbWFpbnRhaW5lcnMubWFwKChtYWludGFpbmVyOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgIG1haW50YWluZXIuYXZhdGFyID0gZ2VuZXJhdGVHcmF2YXRhclVybChtYWludGFpbmVyLmVtYWlsLCBvbmxpbmUpO1xuICAgICAgcmV0dXJuIG1haW50YWluZXI7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcGtnSW5mb0NvcHk7XG59XG5cbi8qKlxuICogcGFyc2UgcGFja2FnZSByZWFkbWUgLSBtYXJrZG93bi9hc2NpaVxuICogQHBhcmFtIHtTdHJpbmd9IHBhY2thZ2VOYW1lIG5hbWUgb2YgcGFja2FnZVxuICogQHBhcmFtIHtTdHJpbmd9IHJlYWRtZSBwYWNrYWdlIHJlYWRtZVxuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbnZlcnRlZCBodG1sIHRlbXBsYXRlXG4gKi9cbi8vIFRPRE86IHJlbmFtZSwgZG9lcyBub3QgcGFyc2UgYW55bW9yZVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVhZG1lKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHJlYWRtZTogc3RyaW5nKTogc3RyaW5nIHwgdm9pZCB7XG4gIGlmIChfLmlzRW1wdHkocmVhZG1lKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gcmVhZG1lO1xuICB9XG5cbiAgLy8gbG9ncyByZWFkbWUgbm90IGZvdW5kIGVycm9yXG4gIGxvZ2dlci5pbmZvKHsgcGFja2FnZU5hbWUgfSwgJ0B7cGFja2FnZU5hbWV9OiBObyByZWFkbWUgZm91bmQnKTtcblxuICByZXR1cm4gJ0VSUk9SOiBObyBSRUFETUUgZGF0YSBmb3VuZCEnO1xufVxuXG5leHBvcnQgdHlwZSBBdXRob3JGb3JtYXQgPSBBdXRob3IgfCBzdHJpbmcgfCBudWxsIHwgb2JqZWN0IHwgdm9pZDtcblxuLyoqXG4gKiBGb3JtYXRzIGF1dGhvciBmaWVsZCBmb3Igd2VidWkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZmlsZXMvcGFja2FnZS5qc29uI2F1dGhvclxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fHVuZGVmaW5lZH0gYXV0aG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBdXRob3IoYXV0aG9yOiBBdXRob3JGb3JtYXQpOiBhbnkge1xuICBsZXQgYXV0aG9yRGV0YWlscyA9IHtcbiAgICBuYW1lOiBERUZBVUxUX1VTRVIsXG4gICAgZW1haWw6ICcnLFxuICAgIHVybDogJycsXG4gIH07XG5cbiAgaWYgKF8uaXNOaWwoYXV0aG9yKSkge1xuICAgIHJldHVybiBhdXRob3JEZXRhaWxzO1xuICB9XG5cbiAgaWYgKF8uaXNTdHJpbmcoYXV0aG9yKSkge1xuICAgIGF1dGhvckRldGFpbHMgPSB7XG4gICAgICAuLi5hdXRob3JEZXRhaWxzLFxuICAgICAgbmFtZTogYXV0aG9yIGFzIHN0cmluZyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKF8uaXNPYmplY3QoYXV0aG9yKSkge1xuICAgIGF1dGhvckRldGFpbHMgPSB7XG4gICAgICAuLi5hdXRob3JEZXRhaWxzLFxuICAgICAgLi4uKGF1dGhvciBhcyBBdXRob3IpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gYXV0aG9yRGV0YWlscztcbn1cblxuLyoqXG4gKiBBcHBseSB3aGl0ZXNwYWNlcyBiYXNlZCBvbiB0aGUgbGVuZ3RoXG4gKiBAcGFyYW0geyp9IHN0ciB0aGUgbG9nIG1lc3NhZ2VcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhZChzdHIsIG1heCk6IHN0cmluZyB7XG4gIGlmIChzdHIubGVuZ3RoIDwgbWF4KSB7XG4gICAgcmV0dXJuIHN0ciArICcgJy5yZXBlYXQobWF4IC0gc3RyLmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiByZXR1cm4gYSBtYXNxdWVyYWRlIHN0cmluZyB3aXRoIGl0cyBmaXJzdCBhbmQgbGFzdCB7Y2hhck51bX0gYW5kIHRocmVlIGRvdHMgaW4gYmV0d2Vlbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7TnVtYmVyfSBjaGFyTnVtXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFzayhzdHI6IHN0cmluZywgY2hhck51bSA9IDMpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c3RyLnN1YnN0cigwLCBjaGFyTnVtKX0uLi4ke3N0ci5zdWJzdHIoLWNoYXJOdW0pfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTY29wZWRVcmkocGFja2FnZU5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gcGFja2FnZU5hbWUucmVwbGFjZSgvXFwvL2csICclMmYnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHZlcnNpb25zKS5sZW5ndGggIT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnNpb25WYWxpZChwYWNrYWdlTWV0YSwgcGFja2FnZVZlcnNpb24pOiBib29sZWFuIHtcbiAgY29uc3QgaGFzVmVyc2lvbiA9IHR5cGVvZiBwYWNrYWdlVmVyc2lvbiAhPT0gJ3VuZGVmaW5lZCc7XG4gIGlmICghaGFzVmVyc2lvbikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGhhc01hdGNoVmVyc2lvbiA9IE9iamVjdC5rZXlzKHBhY2thZ2VNZXRhLnZlcnNpb25zKS5pbmNsdWRlcyhwYWNrYWdlVmVyc2lvbik7XG4gIHJldHVybiBoYXNNYXRjaFZlcnNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uKHBrZ0luZm86IFBhY2thZ2UpOiBib29sZWFuIHtcbiAgY29uc3QgeyB2ZXJzaW9ucyB9ID0gcGtnSW5mbztcbiAgZm9yIChjb25zdCB2ZXJzaW9uIGluIHZlcnNpb25zKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2ZXJzaW9uc1t2ZXJzaW9uXSwgJ2RlcHJlY2F0ZWQnKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVVJMKHB1YmxpY1VybDogc3RyaW5nIHwgdm9pZCkge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBVUkwocHVibGljVXJsIGFzIHN0cmluZyk7XG4gICAgaWYgKCF2YWxpZFByb3RvY29scy5pbmNsdWRlcyhwYXJzZWQucHJvdG9jb2wucmVwbGFjZSgnOicsICcnKSkpIHtcbiAgICAgIHRocm93IEVycm9yKCdpbnZhbGlkIHByb3RvY29sJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIC8vIFRPRE86IGFkZCBlcnJvciBsb2dnZXIgaGVyZVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIb3N0KHVybDogc3RyaW5nID0gJycsIG9wdGlvbnMgPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdG9yLmlzVVJMKHVybCwge1xuICAgIHJlcXVpcmVfaG9zdDogdHJ1ZSxcbiAgICBhbGxvd190cmFpbGluZ19kb3Q6IGZhbHNlLFxuICAgIHJlcXVpcmVfdmFsaWRfcHJvdG9jb2w6IGZhbHNlLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXF1aXJlX3BvcnQ6IGZhbHNlLFxuICAgIHJlcXVpcmVfdGxkOiBmYWxzZSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0xvZ2luKGNvbmZpZzogQ29uZmlnKSB7XG4gIC8vIEZJWE1FOiB0eXBlcyBhcmUgbm90IHlldCBvbiB0aGUgbGlicmFyeSB2ZXJkYWNjaW8vbW9ub3JlcG9cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gXy5pc05pbChjb25maWc/LndlYj8ubG9naW4pIHx8IGNvbmZpZz8ud2ViPy5sb2dpbiA9PT0gdHJ1ZTtcbn1cblxuZXhwb3J0IHsgYnVpbGRUb2tlblV0aWwgYXMgYnVpbGRUb2tlbiwgcGFyc2VD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
|
|
468
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfc2VtdmVyIiwiX3VybCIsIl92YWxpZGF0b3IiLCJfY29uZmlnIiwiX2NvcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJnZXRCYWREYXRhIiwiZ2V0QmFkUmVxdWVzdCIsImdldENvZGUiLCJnZXRDb25mbGljdCIsImdldEZvcmJpZGRlbiIsImdldEludGVybmFsRXJyb3IiLCJnZXROb3RGb3VuZCIsImdldFNlcnZpY2VVbmF2YWlsYWJsZSIsImdldFVuYXV0aG9yaXplZCIsImVycm9yVXRpbHMiLCJ2YWxpZFByb3RvY29scyIsImNvbnZlcnRQYXlsb2FkVG9CYXNlNjQiLCJwYXlsb2FkIiwiQnVmZmVyIiwiZnJvbSIsImlzT2JqZWN0IiwidmFsaWRhdGlvVXRpbHMiLCJleHBvcnRzIiwiaXNPYmplY3RPckFycmF5IiwiXyIsImlzTnVsbCIsInRhZ1ZlcnNpb24iLCJkYXRhIiwidmVyc2lvbiIsInRhZyIsIkRJU1RfVEFHUyIsInNlbXZlciIsInBhcnNlIiwiZ2V0VmVyc2lvbiIsInBrZyIsImlzTmlsIiwidmVyc2lvbnMiLCJ2ZXJzaW9uSXRlbSIsImNvbXBhcmUiLCJlcnIiLCJwYXJzZUFkZHJlc3MiLCJ1cmxBZGRyZXNzIiwidXJsUGF0dGVybiIsImV4ZWMiLCJwcm90byIsIkRFRkFVTFRfUFJPVE9DT0wiLCJob3N0IiwiREVGQVVMVF9ET01BSU4iLCJwb3J0IiwiREVGQVVMVF9QT1JUIiwicGF0aCIsInNlbXZlclNvcnQiLCJsaXN0VmVyc2lvbnMiLCJ4IiwibG9nZ2VyIiwid2FybiIsInZlciIsInNvcnQiLCJjb21wYXJlTG9vc2UiLCJtYXAiLCJub3JtYWxpemVEaXN0VGFncyIsInNvcnRlZCIsImxhdGVzdCIsInBvcCIsImlzQXJyYXkiLCJpc1N0cmluZyIsInBhcnNlSW50ZXJ2YWxUYWJsZSIsIm1zIiwicyIsIm0iLCJoIiwiZCIsInciLCJNIiwieSIsInBhcnNlSW50ZXJ2YWwiLCJpbnRlcnZhbCIsInJlc3VsdCIsImxhc3Rfc3VmZml4IiwiSW5maW5pdHkiLCJzcGxpdCIsIm1hdGNoIiwiRXJyb3IiLCJFcnJvckNvZGUiLCJmb2xkZXJFeGlzdHMiLCJzdGF0IiwiZnMiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwiZmlsZUV4aXN0cyIsImlzRmlsZSIsInNvcnRCeU5hbWUiLCJwYWNrYWdlcyIsIm9yZGVyQXNjZW5kaW5nIiwic2xpY2UiLCJhIiwiYiIsImNvbXBhcmF0b3JOYW1lcyIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImFkZFNjb3BlIiwic2NvcGUiLCJwYWNrYWdlTmFtZSIsImRlbGV0ZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVG9EZWxldGUiLCJvYmplY3RJdGVtIiwicHJvcGVydHkiLCJhZGRHcmF2YXRhclN1cHBvcnQiLCJwa2dJbmZvIiwib25saW5lIiwicGtnSW5mb0NvcHkiLCJhdXRob3IiLCJnZXQiLCJjb250cmlidXRvcnMiLCJub3JtYWxpemVDb250cmlidXRvcnMiLCJtYWludGFpbmVycyIsImVtYWlsIiwiYXZhdGFyIiwiZ2VuZXJhdGVHcmF2YXRhclVybCIsIkdFTkVSSUNfQVZBVEFSIiwiaXNFbXB0eSIsImNvbnRyaWJ1dG9yIiwibWFpbnRhaW5lciIsInBhcnNlUmVhZG1lIiwicmVhZG1lIiwiaW5mbyIsImZvcm1hdEF1dGhvciIsImF1dGhvckRldGFpbHMiLCJERUZBVUxUX1VTRVIiLCJ1cmwiLCJwYWQiLCJzdHIiLCJtYXgiLCJyZXBlYXQiLCJtYXNrIiwiY2hhck51bSIsInN1YnN0ciIsImVuY29kZVNjb3BlZFVyaSIsInJlcGxhY2UiLCJoYXNEaWZmT25lS2V5IiwiaXNWZXJzaW9uVmFsaWQiLCJwYWNrYWdlTWV0YSIsInBhY2thZ2VWZXJzaW9uIiwiaGFzVmVyc2lvbiIsImhhc01hdGNoVmVyc2lvbiIsImluY2x1ZGVzIiwiaXNSZWxhdGVkVG9EZXByZWNhdGlvbiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwidmFsaWRhdGVVUkwiLCJwdWJsaWNVcmwiLCJwYXJzZWQiLCJVUkwiLCJwcm90b2NvbCIsImlzSG9zdCIsIm9wdGlvbnMiLCJ2YWxpZGF0b3IiLCJpc1VSTCIsInJlcXVpcmVfaG9zdCIsImFsbG93X3RyYWlsaW5nX2RvdCIsInJlcXVpcmVfdmFsaWRfcHJvdG9jb2wiLCJyZXF1aXJlX3BvcnQiLCJyZXF1aXJlX3RsZCIsImhhc0xvZ2luIiwiY29uZmlnIiwiX2NvbmZpZyR3ZWIiLCJfY29uZmlnJHdlYjIiLCJ3ZWIiLCJsb2dpbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHZhbGlkYXRvciBmcm9tICd2YWxpZGF0b3InO1xuXG5pbXBvcnQgeyBwYXJzZUNvbmZpZ0ZpbGUgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuaW1wb3J0IHsgZXJyb3JVdGlscywgdmFsaWRhdGlvVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nVmFsdWUgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IEF1dGhvciwgQ29uZmlnLCBQYWNrYWdlLCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQge1xuICBHRU5FUklDX0FWQVRBUixcbiAgYnVpbGRUb2tlbiBhcyBidWlsZFRva2VuVXRpbCxcbiAgZ2VuZXJhdGVHcmF2YXRhclVybCxcbiAgbm9ybWFsaXplQ29udHJpYnV0b3JzLFxufSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IHsgQXV0aG9yQXZhdGFyIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9ET01BSU4sXG4gIERFRkFVTFRfUE9SVCxcbiAgREVGQVVMVF9QUk9UT0NPTCxcbiAgREVGQVVMVF9VU0VSLFxuICBESVNUX1RBR1MsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuY29uc3Qge1xuICBnZXRCYWREYXRhLFxuICBnZXRCYWRSZXF1ZXN0LFxuICBnZXRDb2RlLFxuICBnZXRDb25mbGljdCxcbiAgZ2V0Rm9yYmlkZGVuLFxuICBnZXRJbnRlcm5hbEVycm9yLFxuICBnZXROb3RGb3VuZCxcbiAgZ2V0U2VydmljZVVuYXZhaWxhYmxlLFxuICBnZXRVbmF1dGhvcml6ZWQsXG59ID0gZXJyb3JVdGlscztcbmNvbnN0IHZhbGlkUHJvdG9jb2xzID0gWydodHRwcycsICdodHRwJ107XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBheWxvYWRUb0Jhc2U2NChwYXlsb2FkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20ocGF5bG9hZCwgJ2Jhc2U2NCcpO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBhbiBPYmplY3RcbiAqIEBwYXJhbSB7Kn0gb2JqIHRoZSBlbGVtZW50XG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSB2YWxpZGF0aW9VdGlscy5pc09iamVjdDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBub3QgdXNlZCB1biB2NlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RPckFycmF5KG9iajogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBfLmlzT2JqZWN0KG9iaikgJiYgXy5pc051bGwob2JqKSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWdWZXJzaW9uKGRhdGE6IFBhY2thZ2UsIHZlcnNpb246IHN0cmluZywgdGFnOiBTdHJpbmdWYWx1ZSk6IGJvb2xlYW4ge1xuICBpZiAodGFnICYmIGRhdGFbRElTVF9UQUdTXVt0YWddICE9PSB2ZXJzaW9uICYmIHNlbXZlci5wYXJzZSh2ZXJzaW9uLCB0cnVlKSkge1xuICAgIC8vIHZhbGlkIHZlcnNpb24gLSBzdG9yZVxuICAgIGRhdGFbRElTVF9UQUdTXVt0YWddID0gdmVyc2lvbjtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogR2V0cyB2ZXJzaW9uIGZyb20gYSBwYWNrYWdlIG9iamVjdCB0YWtpbmcgaW50byBhY2NvdW50IHNlbXZlciB3ZWlyZG5lc3MuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybiB0aGUgc2VtYW50aWMgdmVyc2lvbiBvZiBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb24ocGtnOiBQYWNrYWdlLCB2ZXJzaW9uOiBhbnkpOiBWZXJzaW9uIHwgdm9pZCB7XG4gIC8vIHRoaXMgY29uZGl0aW9uIG11c3QgYWxsb3cgY2FzdFxuICBpZiAoXy5pc05pbChwa2cudmVyc2lvbnNbdmVyc2lvbl0pID09PSBmYWxzZSkge1xuICAgIHJldHVybiBwa2cudmVyc2lvbnNbdmVyc2lvbl07XG4gIH1cblxuICB0cnkge1xuICAgIHZlcnNpb24gPSBzZW12ZXIucGFyc2UodmVyc2lvbiwgdHJ1ZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uSXRlbSBpbiBwa2cudmVyc2lvbnMpIHtcbiAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmUoc2VtdmVyLnBhcnNlKHZlcnNpb25JdGVtLCB0cnVlKSkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHBrZy52ZXJzaW9uc1t2ZXJzaW9uSXRlbV07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhbiBpbnRlcm5ldCBhZGRyZXNzXG4gKiBBbGxvdzpcbiAtIGh0dHBzOmxvY2FsaG9zdDoxMjM0ICAgICAgICAtIHByb3RvY29sICsgaG9zdCArIHBvcnRcbiAtIGxvY2FsaG9zdDoxMjM0ICAgICAgICAgICAgICAtIGhvc3QgKyBwb3J0XG4gLSAxMjM0ICAgICAgICAgICAgICAgICAgICAgICAgLSBwb3J0XG4gLSBodHRwOjoxMjM0ICAgICAgICAgICAgICAgICAgLSBwcm90b2NvbCArIHBvcnRcbiAtIGh0dHBzOi8vbG9jYWxob3N0OjQ0My8gICAgICAtIGZ1bGwgdXJsICsgaHR0cHNcbiAtIGh0dHA6Ly9bOjoxXTo0NDMvICAgICAgICAgICAtIGlwdjZcbiAtIHVuaXg6L3RtcC9odHRwLnNvY2sgICAgICAgICAtIHVuaXggc29ja2V0c1xuIC0gaHR0cHM6Ly91bml4Oi90bXAvaHR0cC5zb2NrIC0gdW5peCBzb2NrZXRzIChodHRwcylcbiAqIEBwYXJhbSB7Kn0gdXJsQWRkcmVzcyB0aGUgaW50ZXJuZXQgYWRkcmVzcyBkZWZpbml0aW9uXG4gKiBAcmV0dXJuIHtPYmplY3R8TnVsbH0gbGl0ZXJhbCBvYmplY3QgdGhhdCByZXByZXNlbnQgdGhlIGFkZHJlc3MgcGFyc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFkZHJlc3ModXJsQWRkcmVzczogYW55KTogYW55IHtcbiAgLy9cbiAgLy8gVE9ETzogcmVmYWN0b3IgaXQgdG8gc29tZXRoaW5nIG1vcmUgcmVhc29uYWJsZT9cbiAgLy9cbiAgLy8gICAgICAgIHByb3RvY29sIDogIC8vICAgICAgKCAgaG9zdCAgKXwoICAgIGlwdjYgICAgICk6ICBwb3J0ICAvXG4gIGxldCB1cmxQYXR0ZXJuID0gL14oKGh0dHBzPyk6KFxcL1xcLyk/KT8oKChbXlxcLzpdKil8XFxbKFteXFxbXFxdXSspXFxdKTopPyhcXGQrKVxcLz8kLy5leGVjKHVybEFkZHJlc3MpO1xuXG4gIGlmICh1cmxQYXR0ZXJuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3RvOiB1cmxQYXR0ZXJuWzJdIHx8IERFRkFVTFRfUFJPVE9DT0wsXG4gICAgICBob3N0OiB1cmxQYXR0ZXJuWzZdIHx8IHVybFBhdHRlcm5bN10gfHwgREVGQVVMVF9ET01BSU4sXG4gICAgICBwb3J0OiB1cmxQYXR0ZXJuWzhdIHx8IERFRkFVTFRfUE9SVCxcbiAgICB9O1xuICB9XG5cbiAgdXJsUGF0dGVybiA9IC9eKChodHRwcz8pOihcXC9cXC8pPyk/dW5peDooLiopJC8uZXhlYyh1cmxBZGRyZXNzKTtcblxuICBpZiAodXJsUGF0dGVybikge1xuICAgIHJldHVybiB7XG4gICAgICBwcm90bzogdXJsUGF0dGVyblsyXSB8fCBERUZBVUxUX1BST1RPQ09MLFxuICAgICAgcGF0aDogdXJsUGF0dGVybls0XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZmlsdGVycyBvdXQgYmFkIHNlbXZlciB2ZXJzaW9ucyBhbmQgc29ydHMgdGhlIGFycmF5LlxuICogQHJldHVybiB7QXJyYXl9IHNvcnRlZCBBcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VtdmVyU29ydChsaXN0VmVyc2lvbnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gKFxuICAgIGxpc3RWZXJzaW9uc1xuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoeCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXNlbXZlci5wYXJzZSh4LCB0cnVlKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKHsgdmVyOiB4IH0sICdpZ25vcmluZyBiYWQgdmVyc2lvbiBAe3Zlcn0nKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICAgLy8gRklYTUU6IGl0IHNlZW1zIHRoZSBAdHlwZXMvc2VtdmVyIGRvIG5vdCBoYW5kbGUgYSBsZWdpdGltYXRlIG1ldGhvZCBuYW1lZCAnY29tcGFyZUxvb3NlJ1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgLnNvcnQoc2VtdmVyLmNvbXBhcmVMb29zZSlcbiAgICAgIC5tYXAoU3RyaW5nKVxuICApO1xufVxuXG4vKipcbiAqIEZsYXR0ZW4gYXJyYXlzIG9mIHRhZ3MuXG4gKiBAcGFyYW0geyp9IGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURpc3RUYWdzKHBrZzogUGFja2FnZSk6IHZvaWQge1xuICBsZXQgc29ydGVkO1xuICBpZiAoIXBrZ1tESVNUX1RBR1NdLmxhdGVzdCkge1xuICAgIC8vIG92ZXJ3cml0ZSBsYXRlc3Qgd2l0aCBoaWdoZXN0IGtub3duIHZlcnNpb24gYmFzZWQgb24gc2VtdmVyIHNvcnRcbiAgICBzb3J0ZWQgPSBzZW12ZXJTb3J0KE9iamVjdC5rZXlzKHBrZy52ZXJzaW9ucykpO1xuICAgIGlmIChzb3J0ZWQgJiYgc29ydGVkLmxlbmd0aCkge1xuICAgICAgcGtnW0RJU1RfVEFHU10ubGF0ZXN0ID0gc29ydGVkLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgdGFnIGluIHBrZ1tESVNUX1RBR1NdKSB7XG4gICAgaWYgKF8uaXNBcnJheShwa2dbRElTVF9UQUdTXVt0YWddKSkge1xuICAgICAgaWYgKHBrZ1tESVNUX1RBR1NdW3RhZ10ubGVuZ3RoKSB7XG4gICAgICAgIC8vIHNvcnQgYXJyYXlcbiAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY2xlYXJseSB3cm9uZywgd2UgbmVlZCB0byByZXNlYXJjaCB3aHkgdGhpcyBpcyBsaWtlIHRoaXMuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc29ydGVkID0gc2VtdmVyU29ydChwa2dbRElTVF9UQUdTXVt0YWddKTtcbiAgICAgICAgaWYgKHNvcnRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAvLyB1c2UgaGlnaGVzdCB2ZXJzaW9uIGJhc2VkIG9uIHNlbXZlciBzb3J0XG4gICAgICAgICAgcGtnW0RJU1RfVEFHU11bdGFnXSA9IHNvcnRlZC5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHBrZ1tESVNUX1RBR1NdW3RhZ107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHBrZ1tESVNUX1RBR1NdW3RhZ10pKSB7XG4gICAgICBpZiAoIXNlbXZlci5wYXJzZShwa2dbRElTVF9UQUdTXVt0YWddLCB0cnVlKSkge1xuICAgICAgICAvLyBpZiB0aGUgdmVyc2lvbiBpcyBpbnZhbGlkLCBkZWxldGUgdGhlIGRpc3QtdGFnIGVudHJ5XG4gICAgICAgIGRlbGV0ZSBwa2dbRElTVF9UQUdTXVt0YWddO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwYXJzZUludGVydmFsVGFibGUgPSB7XG4gICcnOiAxMDAwLFxuICBtczogMSxcbiAgczogMTAwMCxcbiAgbTogNjAgKiAxMDAwLFxuICBoOiA2MCAqIDYwICogMTAwMCxcbiAgZDogODY0MDAwMDAsXG4gIHc6IDcgKiA4NjQwMDAwMCxcbiAgTTogMzAgKiA4NjQwMDAwMCxcbiAgeTogMzY1ICogODY0MDAwMDAsXG59O1xuXG4vKipcbiAqIFBhcnNlIGFuIGludGVybmFsIHN0cmluZyB0byBudW1iZXJcbiAqIEBwYXJhbSB7Kn0gaW50ZXJ2YWxcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJ2YWwoaW50ZXJ2YWw6IGFueSk6IG51bWJlciB7XG4gIGlmICh0eXBlb2YgaW50ZXJ2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGludGVydmFsICogMTAwMDtcbiAgfVxuICBsZXQgcmVzdWx0ID0gMDtcbiAgbGV0IGxhc3Rfc3VmZml4ID0gSW5maW5pdHk7XG4gIGludGVydmFsLnNwbGl0KC9cXHMrLykuZm9yRWFjaChmdW5jdGlvbiAoeCk6IHZvaWQge1xuICAgIGlmICgheCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtID0geC5tYXRjaCgvXigoMHxbMS05XVswLTldKikoXFwuWzAtOV0rKT8pKG1zfHN8bXxofGR8d3xNfHl8KSQvKTtcbiAgICBpZiAoXG4gICAgICAhbSB8fFxuICAgICAgcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dID49IGxhc3Rfc3VmZml4IHx8XG4gICAgICAobVs0XSA9PT0gJycgJiYgbGFzdF9zdWZmaXggIT09IEluZmluaXR5KVxuICAgICkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2ludmFsaWQgaW50ZXJ2YWw6ICcgKyBpbnRlcnZhbCk7XG4gICAgfVxuICAgIGxhc3Rfc3VmZml4ID0gcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dO1xuICAgIHJlc3VsdCArPSBOdW1iZXIobVsxXSkgKiBwYXJzZUludGVydmFsVGFibGVbbVs0XV07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgRXJyb3JDb2RlID0ge1xuICBnZXRDb25mbGljdCxcbiAgZ2V0QmFkRGF0YSxcbiAgZ2V0QmFkUmVxdWVzdCxcbiAgZ2V0SW50ZXJuYWxFcnJvcixcbiAgZ2V0VW5hdXRob3JpemVkLFxuICBnZXRGb3JiaWRkZW4sXG4gIGdldFNlcnZpY2VVbmF2YWlsYWJsZSxcbiAgZ2V0Tm90Rm91bmQsXG4gIGdldENvZGUsXG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHBhdGggYWxyZWFkeSBleGlzdC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9sZGVyRXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhwYXRoKTtcbiAgICByZXR1cm4gc3RhdC5pc0RpcmVjdG9yeSgpO1xuICB9IGNhdGNoIChfOiBhbnkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlIGFscmVhZHkgZXhpc3QuXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVFeGlzdHMocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKHBhdGgpO1xuICAgIHJldHVybiBzdGF0LmlzRmlsZSgpO1xuICB9IGNhdGNoIChfOiBhbnkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeU5hbWUocGFja2FnZXM6IGFueVtdLCBvcmRlckFzY2VuZGluZzogYm9vbGVhbiB8IHZvaWQgPSB0cnVlKTogc3RyaW5nW10ge1xuICByZXR1cm4gcGFja2FnZXMuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uIChhLCBiKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJhdG9yTmFtZXMgPSBhLm5hbWUudG9Mb3dlckNhc2UoKSA8IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIG9yZGVyQXNjZW5kaW5nID8gKGNvbXBhcmF0b3JOYW1lcyA/IC0xIDogMSkgOiBjb21wYXJhdG9yTmFtZXMgPyAxIDogLTE7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkU2NvcGUoc2NvcGU6IHN0cmluZywgcGFja2FnZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgQCR7c2NvcGV9LyR7cGFja2FnZU5hbWV9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZVByb3BlcnRpZXMocHJvcGVydGllc1RvRGVsZXRlOiBzdHJpbmdbXSwgb2JqZWN0SXRlbTogYW55KTogYW55IHtcbiAgXy5mb3JFYWNoKHByb3BlcnRpZXNUb0RlbGV0ZSwgKHByb3BlcnR5KTogYW55ID0+IHtcbiAgICBkZWxldGUgb2JqZWN0SXRlbVtwcm9wZXJ0eV07XG4gIH0pO1xuXG4gIHJldHVybiBvYmplY3RJdGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkR3JhdmF0YXJTdXBwb3J0KHBrZ0luZm86IFBhY2thZ2UsIG9ubGluZSA9IHRydWUpOiBBdXRob3JBdmF0YXIge1xuICBjb25zdCBwa2dJbmZvQ29weSA9IHsgLi4ucGtnSW5mbyB9IGFzIGFueTtcbiAgY29uc3QgYXV0aG9yOiBhbnkgPSBfLmdldChwa2dJbmZvLCAnbGF0ZXN0LmF1dGhvcicsIG51bGwpIGFzIGFueTtcbiAgY29uc3QgY29udHJpYnV0b3JzOiBBdXRob3JBdmF0YXJbXSA9IG5vcm1hbGl6ZUNvbnRyaWJ1dG9ycyhcbiAgICBfLmdldChwa2dJbmZvLCAnbGF0ZXN0LmNvbnRyaWJ1dG9ycycsIFtdKVxuICApO1xuICBjb25zdCBtYWludGFpbmVycyA9IF8uZ2V0KHBrZ0luZm8sICdsYXRlc3QubWFpbnRhaW5lcnMnLCBbXSk7XG5cbiAgLy8gZm9yIGF1dGhvci5cbiAgaWYgKGF1dGhvciAmJiBfLmlzT2JqZWN0KGF1dGhvcikpIHtcbiAgICBjb25zdCB7IGVtYWlsIH0gPSBhdXRob3IgYXMgQXV0aG9yO1xuICAgIHBrZ0luZm9Db3B5LmxhdGVzdC5hdXRob3IuYXZhdGFyID0gZ2VuZXJhdGVHcmF2YXRhclVybChlbWFpbCwgb25saW5lKTtcbiAgfVxuXG4gIGlmIChhdXRob3IgJiYgXy5pc1N0cmluZyhhdXRob3IpKSB7XG4gICAgcGtnSW5mb0NvcHkubGF0ZXN0LmF1dGhvciA9IHtcbiAgICAgIGF2YXRhcjogR0VORVJJQ19BVkFUQVIsXG4gICAgICBlbWFpbDogJycsXG4gICAgICBhdXRob3IsXG4gICAgfTtcbiAgfVxuXG4gIC8vIGZvciBjb250cmlidXRvcnNcbiAgaWYgKF8uaXNFbXB0eShjb250cmlidXRvcnMpID09PSBmYWxzZSkge1xuICAgIHBrZ0luZm9Db3B5LmxhdGVzdC5jb250cmlidXRvcnMgPSBjb250cmlidXRvcnMubWFwKChjb250cmlidXRvcik6IEF1dGhvckF2YXRhciA9PiB7XG4gICAgICBpZiAoaXNPYmplY3QoY29udHJpYnV0b3IpKSB7XG4gICAgICAgIGNvbnRyaWJ1dG9yLmF2YXRhciA9IGdlbmVyYXRlR3JhdmF0YXJVcmwoY29udHJpYnV0b3IuZW1haWwsIG9ubGluZSk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNTdHJpbmcoY29udHJpYnV0b3IpKSB7XG4gICAgICAgIGNvbnRyaWJ1dG9yID0ge1xuICAgICAgICAgIGF2YXRhcjogR0VORVJJQ19BVkFUQVIsXG4gICAgICAgICAgZW1haWw6IGNvbnRyaWJ1dG9yLFxuICAgICAgICAgIG5hbWU6IGNvbnRyaWJ1dG9yLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udHJpYnV0b3I7XG4gICAgfSk7XG4gIH1cblxuICAvLyBmb3IgbWFpbnRhaW5lcnNcbiAgaWYgKF8uaXNFbXB0eShtYWludGFpbmVycykgPT09IGZhbHNlKSB7XG4gICAgcGtnSW5mb0NvcHkubGF0ZXN0Lm1haW50YWluZXJzID0gbWFpbnRhaW5lcnMubWFwKChtYWludGFpbmVyOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgIG1haW50YWluZXIuYXZhdGFyID0gZ2VuZXJhdGVHcmF2YXRhclVybChtYWludGFpbmVyLmVtYWlsLCBvbmxpbmUpO1xuICAgICAgcmV0dXJuIG1haW50YWluZXI7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcGtnSW5mb0NvcHk7XG59XG5cbi8qKlxuICogcGFyc2UgcGFja2FnZSByZWFkbWUgLSBtYXJrZG93bi9hc2NpaVxuICogQHBhcmFtIHtTdHJpbmd9IHBhY2thZ2VOYW1lIG5hbWUgb2YgcGFja2FnZVxuICogQHBhcmFtIHtTdHJpbmd9IHJlYWRtZSBwYWNrYWdlIHJlYWRtZVxuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbnZlcnRlZCBodG1sIHRlbXBsYXRlXG4gKi9cbi8vIFRPRE86IHJlbmFtZSwgZG9lcyBub3QgcGFyc2UgYW55bW9yZVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVhZG1lKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHJlYWRtZTogc3RyaW5nKTogc3RyaW5nIHwgdm9pZCB7XG4gIGlmIChfLmlzRW1wdHkocmVhZG1lKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gcmVhZG1lO1xuICB9XG5cbiAgLy8gbG9ncyByZWFkbWUgbm90IGZvdW5kIGVycm9yXG4gIGxvZ2dlci5pbmZvKHsgcGFja2FnZU5hbWUgfSwgJ0B7cGFja2FnZU5hbWV9OiBObyByZWFkbWUgZm91bmQnKTtcblxuICByZXR1cm4gJ0VSUk9SOiBObyBSRUFETUUgZGF0YSBmb3VuZCEnO1xufVxuXG5leHBvcnQgdHlwZSBBdXRob3JGb3JtYXQgPSBBdXRob3IgfCBzdHJpbmcgfCBudWxsIHwgb2JqZWN0IHwgdm9pZDtcblxuLyoqXG4gKiBGb3JtYXRzIGF1dGhvciBmaWVsZCBmb3Igd2VidWkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZmlsZXMvcGFja2FnZS5qc29uI2F1dGhvclxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fHVuZGVmaW5lZH0gYXV0aG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBdXRob3IoYXV0aG9yOiBBdXRob3JGb3JtYXQpOiBhbnkge1xuICBsZXQgYXV0aG9yRGV0YWlscyA9IHtcbiAgICBuYW1lOiBERUZBVUxUX1VTRVIsXG4gICAgZW1haWw6ICcnLFxuICAgIHVybDogJycsXG4gIH07XG5cbiAgaWYgKF8uaXNOaWwoYXV0aG9yKSkge1xuICAgIHJldHVybiBhdXRob3JEZXRhaWxzO1xuICB9XG5cbiAgaWYgKF8uaXNTdHJpbmcoYXV0aG9yKSkge1xuICAgIGF1dGhvckRldGFpbHMgPSB7XG4gICAgICAuLi5hdXRob3JEZXRhaWxzLFxuICAgICAgbmFtZTogYXV0aG9yIGFzIHN0cmluZyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKF8uaXNPYmplY3QoYXV0aG9yKSkge1xuICAgIGF1dGhvckRldGFpbHMgPSB7XG4gICAgICAuLi5hdXRob3JEZXRhaWxzLFxuICAgICAgLi4uKGF1dGhvciBhcyBBdXRob3IpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gYXV0aG9yRGV0YWlscztcbn1cblxuLyoqXG4gKiBBcHBseSB3aGl0ZXNwYWNlcyBiYXNlZCBvbiB0aGUgbGVuZ3RoXG4gKiBAcGFyYW0geyp9IHN0ciB0aGUgbG9nIG1lc3NhZ2VcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhZChzdHIsIG1heCk6IHN0cmluZyB7XG4gIGlmIChzdHIubGVuZ3RoIDwgbWF4KSB7XG4gICAgcmV0dXJuIHN0ciArICcgJy5yZXBlYXQobWF4IC0gc3RyLmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiByZXR1cm4gYSBtYXNxdWVyYWRlIHN0cmluZyB3aXRoIGl0cyBmaXJzdCBhbmQgbGFzdCB7Y2hhck51bX0gYW5kIHRocmVlIGRvdHMgaW4gYmV0d2Vlbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7TnVtYmVyfSBjaGFyTnVtXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFzayhzdHI6IHN0cmluZywgY2hhck51bSA9IDMpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c3RyLnN1YnN0cigwLCBjaGFyTnVtKX0uLi4ke3N0ci5zdWJzdHIoLWNoYXJOdW0pfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTY29wZWRVcmkocGFja2FnZU5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gcGFja2FnZU5hbWUucmVwbGFjZSgvXFwvL2csICclMmYnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHZlcnNpb25zKS5sZW5ndGggIT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnNpb25WYWxpZChwYWNrYWdlTWV0YSwgcGFja2FnZVZlcnNpb24pOiBib29sZWFuIHtcbiAgY29uc3QgaGFzVmVyc2lvbiA9IHR5cGVvZiBwYWNrYWdlVmVyc2lvbiAhPT0gJ3VuZGVmaW5lZCc7XG4gIGlmICghaGFzVmVyc2lvbikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGhhc01hdGNoVmVyc2lvbiA9IE9iamVjdC5rZXlzKHBhY2thZ2VNZXRhLnZlcnNpb25zKS5pbmNsdWRlcyhwYWNrYWdlVmVyc2lvbik7XG4gIHJldHVybiBoYXNNYXRjaFZlcnNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uKHBrZ0luZm86IFBhY2thZ2UpOiBib29sZWFuIHtcbiAgY29uc3QgeyB2ZXJzaW9ucyB9ID0gcGtnSW5mbztcbiAgZm9yIChjb25zdCB2ZXJzaW9uIGluIHZlcnNpb25zKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2ZXJzaW9uc1t2ZXJzaW9uXSwgJ2RlcHJlY2F0ZWQnKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVVJMKHB1YmxpY1VybDogc3RyaW5nIHwgdm9pZCkge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBVUkwocHVibGljVXJsIGFzIHN0cmluZyk7XG4gICAgaWYgKCF2YWxpZFByb3RvY29scy5pbmNsdWRlcyhwYXJzZWQucHJvdG9jb2wucmVwbGFjZSgnOicsICcnKSkpIHtcbiAgICAgIHRocm93IEVycm9yKCdpbnZhbGlkIHByb3RvY29sJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIC8vIFRPRE86IGFkZCBlcnJvciBsb2dnZXIgaGVyZVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIb3N0KHVybDogc3RyaW5nID0gJycsIG9wdGlvbnMgPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdG9yLmlzVVJMKHVybCwge1xuICAgIHJlcXVpcmVfaG9zdDogdHJ1ZSxcbiAgICBhbGxvd190cmFpbGluZ19kb3Q6IGZhbHNlLFxuICAgIHJlcXVpcmVfdmFsaWRfcHJvdG9jb2w6IGZhbHNlLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXF1aXJlX3BvcnQ6IGZhbHNlLFxuICAgIHJlcXVpcmVfdGxkOiBmYWxzZSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0xvZ2luKGNvbmZpZzogQ29uZmlnKSB7XG4gIC8vIEZJWE1FOiB0eXBlcyBhcmUgbm90IHlldCBvbiB0aGUgbGlicmFyeSB2ZXJkYWNjaW8vbW9ub3JlcG9cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gXy5pc05pbChjb25maWc/LndlYj8ubG9naW4pIHx8IGNvbmZpZz8ud2ViPy5sb2dpbiA9PT0gdHJ1ZTtcbn1cblxuZXhwb3J0IHsgYnVpbGRUb2tlblV0aWwgYXMgYnVpbGRUb2tlbiwgcGFyc2VDb25maWdGaWxlIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verdaccio",
|
|
3
|
-
"version": "5.26.
|
|
3
|
+
"version": "5.26.3",
|
|
4
4
|
"description": "A lightweight private npm proxy registry",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Verdaccio Maintainers",
|
|
@@ -19,18 +19,18 @@
|
|
|
19
19
|
"url": "https://opencollective.com/verdaccio"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@verdaccio/config": "7.0.0-next.
|
|
23
|
-
"@verdaccio/core": "7.0.0-next.
|
|
22
|
+
"@verdaccio/config": "7.0.0-next.2",
|
|
23
|
+
"@verdaccio/core": "7.0.0-next.2",
|
|
24
24
|
"@verdaccio/local-storage": "10.3.3",
|
|
25
|
-
"@verdaccio/logger-7": "7.0.0-next.
|
|
26
|
-
"@verdaccio/middleware": "7.0.0-next.
|
|
25
|
+
"@verdaccio/logger-7": "7.0.0-next.2",
|
|
26
|
+
"@verdaccio/middleware": "7.0.0-next.2",
|
|
27
27
|
"@verdaccio/search": "7.0.0-next.1",
|
|
28
28
|
"@verdaccio/signature": "7.0.0-next.0",
|
|
29
29
|
"@verdaccio/streams": "10.2.1",
|
|
30
|
-
"@verdaccio/tarball": "12.0.0-next.
|
|
31
|
-
"@verdaccio/ui-theme": "7.0.0-next.
|
|
32
|
-
"@verdaccio/url": "12.0.0-next.
|
|
33
|
-
"@verdaccio/utils": "7.0.0-next.
|
|
30
|
+
"@verdaccio/tarball": "12.0.0-next.2",
|
|
31
|
+
"@verdaccio/ui-theme": "7.0.0-next.2",
|
|
32
|
+
"@verdaccio/url": "12.0.0-next.2",
|
|
33
|
+
"@verdaccio/utils": "7.0.0-next.2",
|
|
34
34
|
"JSONStream": "1.3.5",
|
|
35
35
|
"async": "3.2.4",
|
|
36
36
|
"clipanion": "3.2.1",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"express": "4.18.2",
|
|
43
43
|
"express-rate-limit": "5.5.1",
|
|
44
44
|
"fast-safe-stringify": "2.1.1",
|
|
45
|
-
"handlebars": "4.7.
|
|
45
|
+
"handlebars": "4.7.8",
|
|
46
46
|
"js-yaml": "4.1.0",
|
|
47
|
-
"jsonwebtoken": "9.0.
|
|
47
|
+
"jsonwebtoken": "9.0.2",
|
|
48
48
|
"kleur": "4.1.5",
|
|
49
49
|
"lodash": "4.17.21",
|
|
50
50
|
"lru-cache": "7.18.3",
|
|
@@ -55,16 +55,16 @@
|
|
|
55
55
|
"request": "2.88.2",
|
|
56
56
|
"semver": "7.5.4",
|
|
57
57
|
"validator": "13.11.0",
|
|
58
|
-
"verdaccio-audit": "12.0.0-next.
|
|
59
|
-
"verdaccio-htpasswd": "12.0.0-next.
|
|
58
|
+
"verdaccio-audit": "12.0.0-next.2",
|
|
59
|
+
"verdaccio-htpasswd": "12.0.0-next.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@babel/cli": "7.22.
|
|
63
|
-
"@babel/core": "7.22.
|
|
64
|
-
"@babel/eslint-parser": "7.22.
|
|
65
|
-
"@babel/node": "7.22.
|
|
62
|
+
"@babel/cli": "7.22.15",
|
|
63
|
+
"@babel/core": "7.22.20",
|
|
64
|
+
"@babel/eslint-parser": "7.22.15",
|
|
65
|
+
"@babel/node": "7.22.19",
|
|
66
66
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
67
|
-
"@babel/plugin-proposal-decorators": "7.22.
|
|
67
|
+
"@babel/plugin-proposal-decorators": "7.22.15",
|
|
68
68
|
"@babel/plugin-proposal-export-namespace-from": "7.18.9",
|
|
69
69
|
"@babel/plugin-proposal-function-sent": "7.22.5",
|
|
70
70
|
"@babel/plugin-proposal-json-strings": "7.18.6",
|
|
@@ -76,15 +76,15 @@
|
|
|
76
76
|
"@babel/plugin-syntax-dynamic-import": "7.8.3",
|
|
77
77
|
"@babel/plugin-syntax-import-meta": "7.10.4",
|
|
78
78
|
"@babel/plugin-transform-async-to-generator": "7.22.5",
|
|
79
|
-
"@babel/plugin-transform-classes": "7.22.
|
|
80
|
-
"@babel/plugin-transform-runtime": "7.22.
|
|
79
|
+
"@babel/plugin-transform-classes": "7.22.15",
|
|
80
|
+
"@babel/plugin-transform-runtime": "7.22.15",
|
|
81
81
|
"@babel/polyfill": "^7.12.1",
|
|
82
|
-
"@babel/preset-env": "7.22.
|
|
83
|
-
"@babel/preset-typescript": "7.22.
|
|
84
|
-
"@babel/register": "7.22.
|
|
85
|
-
"@babel/runtime": "7.22.
|
|
82
|
+
"@babel/preset-env": "7.22.20",
|
|
83
|
+
"@babel/preset-typescript": "7.22.15",
|
|
84
|
+
"@babel/register": "7.22.15",
|
|
85
|
+
"@babel/runtime": "7.22.15",
|
|
86
86
|
"@octokit/rest": "19.0.13",
|
|
87
|
-
"@trivago/prettier-plugin-sort-imports": "4.
|
|
87
|
+
"@trivago/prettier-plugin-sort-imports": "4.2.0",
|
|
88
88
|
"@types/async": "3.2.20",
|
|
89
89
|
"@types/express": "4.17.17",
|
|
90
90
|
"@types/express-serve-static-core": "4.17.35",
|
|
@@ -93,38 +93,38 @@
|
|
|
93
93
|
"@types/lodash": "4.14.195",
|
|
94
94
|
"@types/mime": "2.0.3",
|
|
95
95
|
"@types/minimatch": "3.0.5",
|
|
96
|
-
"@types/node": "18.
|
|
96
|
+
"@types/node": "18.17.19",
|
|
97
97
|
"@types/pino": "7.0.5",
|
|
98
98
|
"@types/request": "2.48.8",
|
|
99
|
-
"@types/semver": "7.5.
|
|
100
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
101
|
-
"@typescript-eslint/parser": "5.
|
|
99
|
+
"@types/semver": "7.5.2",
|
|
100
|
+
"@typescript-eslint/eslint-plugin": "5.62.0",
|
|
101
|
+
"@typescript-eslint/parser": "5.62.0",
|
|
102
102
|
"@verdaccio-scope/verdaccio-auth-foo": "0.0.2",
|
|
103
103
|
"@verdaccio/types": "12.0.0-next.0",
|
|
104
|
-
"babel-jest": "29.
|
|
104
|
+
"babel-jest": "29.7.0",
|
|
105
105
|
"babel-plugin-dynamic-import-node": "2.3.3",
|
|
106
106
|
"cross-env": "7.0.3",
|
|
107
107
|
"detect-secrets": "1.0.6",
|
|
108
|
-
"eslint": "8.
|
|
108
|
+
"eslint": "8.50.0",
|
|
109
109
|
"eslint-config-google": "0.14.0",
|
|
110
|
-
"eslint-config-prettier": "
|
|
110
|
+
"eslint-config-prettier": "9.0.0",
|
|
111
111
|
"eslint-plugin-babel": "5.3.1",
|
|
112
|
-
"eslint-plugin-import": "2.
|
|
113
|
-
"eslint-plugin-jest": "27.
|
|
114
|
-
"eslint-plugin-prettier": "
|
|
115
|
-
"eslint-plugin-simple-import-sort": "
|
|
112
|
+
"eslint-plugin-import": "2.28.1",
|
|
113
|
+
"eslint-plugin-jest": "27.4.0",
|
|
114
|
+
"eslint-plugin-prettier": "5.0.0",
|
|
115
|
+
"eslint-plugin-simple-import-sort": "10.0.0",
|
|
116
116
|
"eslint-plugin-verdaccio": "10.0.0",
|
|
117
117
|
"fs-extra": "10.1.0",
|
|
118
118
|
"get-port": "5.1.1",
|
|
119
|
-
"jest": "29.
|
|
120
|
-
"jest-config": "29.
|
|
121
|
-
"jest-environment-node": "29.
|
|
119
|
+
"jest": "29.7.0",
|
|
120
|
+
"jest-config": "29.7.0",
|
|
121
|
+
"jest-environment-node": "29.7.0",
|
|
122
122
|
"jest-junit": "15.0.0",
|
|
123
123
|
"lockfile-lint": "4.10.6",
|
|
124
|
-
"nock": "
|
|
125
|
-
"node-mocks-http": "^1.
|
|
124
|
+
"nock": "13.3.3",
|
|
125
|
+
"node-mocks-http": "^1.13.0",
|
|
126
126
|
"pinst": "2.1.6",
|
|
127
|
-
"prettier": "
|
|
127
|
+
"prettier": "3.0.3",
|
|
128
128
|
"rimraf": "3.0.2",
|
|
129
129
|
"selfsigned": "2.1.1",
|
|
130
130
|
"standard-version": "9.5.0",
|