@verdaccio/local-storage
Advanced tools
Comparing version 10.0.0 to 10.0.1
@@ -6,2 +6,13 @@ # Change Log | ||
## [10.0.1](https://github.com/verdaccio/monorepo/compare/v10.0.0...v10.0.1) (2021-03-29) | ||
### Bug Fixes | ||
* restore self_path variable ([#396](https://github.com/verdaccio/monorepo/issues/396)) ([b369102](https://github.com/verdaccio/monorepo/commit/b369102ab7f54ec4218dcd49c9c7f8a34f3fe9a2)) | ||
# [10.0.0](https://github.com/verdaccio/monorepo/compare/v9.7.5...v10.0.0) (2021-03-29) | ||
@@ -8,0 +19,0 @@ |
@@ -90,3 +90,3 @@ "use strict"; | ||
const base = _path.default.dirname(this.config.config_path); | ||
const base = _path.default.dirname(this.config.self_path); | ||
@@ -222,3 +222,3 @@ const self = this; | ||
const packageStoragePath = _path.default.join(_path.default.resolve(_path.default.dirname(this.config.config_path || ''), packagePath), packageName); | ||
const packageStoragePath = _path.default.join(_path.default.resolve(_path.default.dirname(this.config.self_path || ''), packagePath), packageName); | ||
@@ -374,2 +374,2 @@ debug('storage absolute path: ', packageStoragePath); | ||
exports.default = _default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2NhbC1kYXRhYmFzZS50cyJdLCJuYW1lcyI6WyJERVBSRUNBVEVEX0RCX05BTUUiLCJEQl9OQU1FIiwiZGVidWciLCJMb2NhbERhdGFiYXNlIiwiVG9rZW5BY3Rpb25zIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJsb2dnZXIiLCJwYXRoIiwiX2J1aWxkU3RvcmFnZVBhdGgiLCJsb2NrZWQiLCJkYXRhIiwiX2ZldGNoTG9jYWxQYWNrYWdlcyIsIl9zeW5jIiwiZ2V0U2VjcmV0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZWNyZXQiLCJzZXRTZWNyZXQiLCJhZGQiLCJuYW1lIiwiY2IiLCJsaXN0IiwiaW5kZXhPZiIsInB1c2giLCJzZWFyY2giLCJvblBhY2thZ2UiLCJvbkVuZCIsInZhbGlkYXRlTmFtZSIsInN0b3JhZ2VzIiwiX2dldEN1c3RvbVBhY2thZ2VMb2NhbFN0b3JhZ2VzIiwiSlNPTiIsInN0cmluZ2lmeSIsImJhc2UiLCJQYXRoIiwiZGlybmFtZSIsImNvbmZpZ19wYXRoIiwic2VsZiIsInN0b3JhZ2VLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImFzeW5jIiwiZWFjaFNlcmllcyIsInN0b3JhZ2UiLCJwb3NpdGlvbiIsImJhc2UyIiwiam9pbiIsInN0b3JhZ2VQYXRoIiwiZnMiLCJyZWFkZGlyIiwiZXJyIiwiZmlsZXMiLCJmaWxlIiwiaW5jbHVkZXMiLCJtYXRjaCIsImZpbGVMb2NhdGlvbiIsImZpbGUyIiwicGFja2FnZVBhdGgiLCJzdGF0Iiwic3RhdHMiLCJfIiwiaXNOaWwiLCJpdGVtIiwidGltZSIsIm10aW1lIiwiZ2V0VGltZSIsInJlbW92ZSIsImdldCIsImVycm9yIiwicGtnTmFtZSIsInNwbGljZSIsInRvdGFsSXRlbXMiLCJsZW5ndGgiLCJnZXRQYWNrYWdlU3RvcmFnZSIsInBhY2thZ2VOYW1lIiwicGFja2FnZUFjY2VzcyIsImdldE1hdGNoZWRQYWNrYWdlc1NwZWMiLCJfZ2V0TG9jYWxTdG9yYWdlUGF0aCIsInVuZGVmaW5lZCIsImlzU3RyaW5nIiwicGFja2FnZVN0b3JhZ2VQYXRoIiwiTG9jYWxEcml2ZXIiLCJjbGVhbiIsInBhY2thZ2VzIiwibGlzdFBhY2thZ2VzQ29uZiIsIm1hcCIsInBrZyIsIkVycm9yIiwiZm9sZGVyTmFtZSIsIm1rZGlycCIsInN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiZ2xvYmFsQ29uZmlnU3RvcmFnZSIsInNpbm9waWFkYlBhdGgiLCJfZGJHZW5QYXRoIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIkZfT0siLCJjb2RlIiwibm9TdWNoRmlsZSIsImVtcHR5RGF0YWJhc2UiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxrQkFBa0IsR0FBRyxrQkFBM0I7QUFDQSxNQUFNQyxPQUFPLEdBQUcsb0JBQWhCO0FBRUEsTUFBTUMsS0FBSyxHQUFHLG9CQUFXLGdDQUFYLENBQWQ7O0FBRUEsTUFBTUMsYUFBTixTQUE0QkMsY0FBNUIsQ0FBdUU7QUFPOURDLEVBQUFBLFdBQVAsQ0FBbUJDLE1BQW5CLEVBQW1DQyxNQUFuQyxFQUFtRDtBQUNqRCxVQUFNRCxNQUFOOztBQURpRDs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFFakQsU0FBS0EsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0UsSUFBTCxHQUFZLEtBQUtDLGlCQUFMLENBQXVCSCxNQUF2QixDQUFaO0FBQ0EsU0FBS0MsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0csTUFBTCxHQUFjLEtBQWQ7QUFDQSxTQUFLQyxJQUFMLEdBQVksS0FBS0MsbUJBQUwsRUFBWjs7QUFDQSxTQUFLQyxLQUFMO0FBQ0Q7O0FBRU1DLEVBQUFBLFNBQVAsR0FBb0M7QUFDbEMsV0FBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCLEtBQUtMLElBQUwsQ0FBVU0sTUFBMUIsQ0FBUDtBQUNEOztBQUVNQyxFQUFB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QXpCLEVBQStCLEtBQUtELE1BQXBDLENBQVA7QUFDRCxLQUZELENBRUUsT0FBTzJDLEdBQVAsRUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFJQSxHQUFHLENBQUNnRCxJQUFKLEtBQWFDLG1CQUFqQixFQUE2QjtBQUMzQixhQUFLekYsTUFBTCxHQUFjLElBQWQ7QUFDQSxhQUFLSCxNQUFMLENBQVk2RCxLQUFaLENBQ0UsK0VBREYsRUFFRyxjQUFhLEtBQUs1RCxJQUFLLFFBQU8wQyxHQUFHLENBQUNtRCxPQUFRLEVBRjdDO0FBSUQ7O0FBRUQsYUFBT0QsYUFBUDtBQUNEO0FBQ0Y7O0FBL1RvRTs7ZUFrVXhEakcsYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgUGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBhc3luYyBmcm9tICdhc3luYyc7XG5pbXBvcnQgbWtkaXJwIGZyb20gJ21rZGlycCc7XG5pbXBvcnQgeyBDYWxsYmFjaywgQ29uZmlnLCBJUGFja2FnZVN0b3JhZ2UsIElQbHVnaW5TdG9yYWdlLCBMb2NhbFN0b3JhZ2UsIExvZ2dlciwgU3RvcmFnZUxpc3QgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGdldEludGVybmFsRXJyb3IgfSBmcm9tICdAdmVyZGFjY2lvL2NvbW1vbnMtYXBpJztcblxuaW1wb3J0IExvY2FsRHJpdmVyLCB7IG5vU3VjaEZpbGUgfSBmcm9tICcuL2xvY2FsLWZzJztcbmltcG9ydCB7IGxvYWRQcml2YXRlUGFja2FnZXMgfSBmcm9tICcuL3BrZy11dGlscyc7XG5pbXBvcnQgVG9rZW5BY3Rpb25zIGZyb20gJy4vdG9rZW4nO1xuXG5jb25zdCBERVBSRUNBVEVEX0RCX05BTUUgPSAnLnNpbm9waWEtZGIuanNvbic7XG5jb25zdCBEQl9OQU1FID0gJy52ZXJkYWNjaW8tZGIuanNvbic7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvOnBsdWdpbjpsb2NhbC1zdG9yYWdlJyk7XG5cbmNsYXNzIExvY2FsRGF0YWJhc2UgZXh0ZW5kcyBUb2tlbkFjdGlvbnMgaW1wbGVtZW50cyBJUGx1Z2luU3RvcmFnZTx7fT4ge1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgbG9nZ2VyOiBMb2dnZXI7XG4gIHB1YmxpYyBkYXRhOiBMb2NhbFN0b3JhZ2U7XG4gIHB1YmxpYyBjb25maWc6IENvbmZpZztcbiAgcHVibGljIGxvY2tlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoY29uZmlnOiBDb25maWcsIGxvZ2dlcjogTG9nZ2VyKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLnBhdGggPSB0aGlzLl9idWlsZFN0b3JhZ2VQYXRoKGNvbmZpZyk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgdGhpcy5sb2NrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLl9mZXRjaExvY2FsUGFja2FnZXMoKTtcbiAgICB0aGlzLl9zeW5jKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VjcmV0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmRhdGEuc2VjcmV0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWNyZXQoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPEVycm9yIHwgbnVsbD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5kYXRhLnNlY3JldCA9IHNlY3JldDtcblxuICAgICAgcmVzb2x2ZSh0aGlzLl9zeW5jKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZChuYW1lOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEubGlzdC5pbmRleE9mKG5hbWUpID09PSAtMSkge1xuICAgICAgdGhpcy5kYXRhLmxpc3QucHVzaChuYW1lKTtcblxuICAgICAgZGVidWcoJ3RoZSBwcml2YXRlIHBhY2thZ2UgJW8gaGFzIGJlZW4gYWRkZWQnLCBuYW1lKTtcbiAgICAgIGNiKHRoaXMuX3N5bmMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCd0aGUgcHJpdmF0ZSBwYWNrYWdlICVvIHdhcyBub3QgYWRkZWQnLCBuYW1lKTtcbiAgICAgIGNiKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2gob25QYWNrYWdlOiBDYWxsYmFjaywgb25FbmQ6IENhbGxiYWNrLCB2YWxpZGF0ZU5hbWU6IChuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yYWdlcyA9IHRoaXMuX2dldEN1c3RvbVBhY2thZ2VMb2NhbFN0b3JhZ2VzKCk7XG4gICAgZGVidWcoYHNlYXJjaCBjdXN0b20gbG9jYWwgcGFja2FnZXM6ICVvYCwgSlNPTi5zdHJpbmdpZnkoc3RvcmFnZXMpKTtcbiAgICBjb25zdCBiYXNlID0gUGF0aC5kaXJuYW1lKHRoaXMuY29uZmlnLmNvbmZpZ19wYXRoKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBzdG9yYWdlS2V5cyA9IE9iamVjdC5rZXlzKHN0b3JhZ2VzKTtcbiAgICBkZWJ1Zyhgc2VhcmNoIGJhc2U6ICVvIGtleXM6ICVvYCwgYmFzZSwgc3RvcmFnZUtleXMpO1xuXG4gICAgYXN5bmMuZWFjaFNlcmllcyhcbiAgICAgIHN0b3JhZ2VLZXlzLFxuICAgICAgZnVuY3Rpb24oc3RvcmFnZSwgY2IpIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSBzdG9yYWdlS2V5cy5pbmRleE9mKHN0b3JhZ2UpO1xuICAgICAgICBjb25zdCBiYXNlMiA9IFBhdGguam9pbihwb3NpdGlvbiAhPT0gMCA/IHN0b3JhZ2VLZXlzWzBdIDogJycpO1xuICAgICAgICBjb25zdCBzdG9yYWdlUGF0aDogc3RyaW5nID0gUGF0aC5yZXNvbHZlKGJhc2UsIGJhc2UyLCBzdG9yYWdlKTtcbiAgICAgICAgZGVidWcoJ3NlYXJjaCBwYXRoOiAlbyA6ICVvJywgc3RvcmFnZVBhdGgsIHN0b3JhZ2UpO1xuICAgICAgICBmcy5yZWFkZGlyKHN0b3JhZ2VQYXRoLCAoZXJyLCBmaWxlcykgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGFzeW5jLmVhY2hTZXJpZXMoXG4gICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgIGZ1bmN0aW9uKGZpbGUsIGNiKSB7XG4gICAgICAgICAgICAgIGRlYnVnKCdsb2NhbC1zdG9yYWdlOiBbc2VhcmNoXSBzZWFyY2ggZmlsZSBwYXRoOiAlbycsIGZpbGUpO1xuICAgICAgICAgICAgICBpZiAoc3RvcmFnZUtleXMuaW5jbHVkZXMoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2IoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChmaWxlLm1hdGNoKC9eQC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gc2NvcGVkXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZUxvY2F0aW9uID0gUGF0aC5yZXNvbHZlKGJhc2UsIHN0b3JhZ2UsIGZpbGUpO1xuICAgICAgICAgICAgICAgIGRlYnVnKCdzZWFyY2ggc2NvcGVkIGZpbGUgbG9jYXRpb246ICVvJywgZmlsZUxvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICBmcy5yZWFkZGlyKGZpbGVMb2NhdGlvbiwgZnVuY3Rpb24oZXJyLCBmaWxlcykge1xuICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgYXN5bmMuZWFjaFNlcmllcyhcbiAgICAgICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgIChmaWxlMiwgY2IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVOYW1lKGZpbGUyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFja2FnZVBhdGggPSBQYXRoLnJlc29sdmUoYmFzZSwgc3RvcmFnZSwgZmlsZSwgZmlsZTIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBmcy5zdGF0KHBhY2thZ2VQYXRoLCAoZXJyLCBzdGF0cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXy5pc05pbChlcnIpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYCR7ZmlsZX0vJHtmaWxlMn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHBhY2thZ2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWU6IHN0YXRzLm10aW1lLmdldFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25QYWNrYWdlKGl0ZW0sIGNiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdGVOYW1lKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmFzZTIgPSBQYXRoLmpvaW4ocG9zaXRpb24gIT09IDAgPyBzdG9yYWdlS2V5c1swXSA6ICcnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlUGF0aCA9IFBhdGgucmVzb2x2ZShiYXNlLCBiYXNlMiwgc3RvcmFnZSwgZmlsZSk7XG4gICAgICAgICAgICAgICAgZGVidWcoJ3NlYXJjaCBmaWxlIGxvY2F0aW9uOiAlbycsIHBhY2thZ2VQYXRoKTtcbiAgICAgICAgICAgICAgICBmcy5zdGF0KHBhY2thZ2VQYXRoLCAoZXJyLCBzdGF0cykgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvblBhY2thZ2UoXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHBhY2thZ2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgIHRpbWU6IHNlbGYuZ2V0VGltZShzdGF0cy5tdGltZS5nZXRUaW1lKCksIHN0YXRzLm10aW1lKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2IoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNiXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb25FbmRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KChlcnIsIGRhdGEpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgY2IoZ2V0SW50ZXJuYWxFcnJvcignZXJyb3IgcmVtb3ZlIHByaXZhdGUgcGFja2FnZScpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoeyBlcnIgfSwgJ1tsb2NhbC1zdG9yYWdlL3JlbW92ZV06IHJlbW92ZSB0aGUgcHJpdmF0ZSBwYWNrYWdlIGhhcyBmYWlsZWQgQHtlcnJ9Jyk7XG4gICAgICAgIGRlYnVnKCdlcnJvciBvbiByZW1vdmUgcGFja2FnZSAlbycsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwa2dOYW1lID0gZGF0YS5pbmRleE9mKG5hbWUpO1xuICAgICAgaWYgKHBrZ05hbWUgIT09IC0xKSB7XG4gICAgICAgIHRoaXMuZGF0YS5saXN0LnNwbGljZShwa2dOYW1lLCAxKTtcblxuICAgICAgICBkZWJ1ZygncmVtb3ZlIHBhY2thZ2UgJW8gaGFzIGJlZW4gcmVtb3ZlZCcsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICBjYih0aGlzLl9zeW5jKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgZGF0YWJhc2UgZWxlbWVudHMuXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgcHVibGljIGdldChjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5kYXRhLmxpc3Q7XG4gICAgY29uc3QgdG90YWxJdGVtcyA9IHRoaXMuZGF0YS5saXN0Lmxlbmd0aDtcblxuICAgIGNiKG51bGwsIGxpc3QpO1xuXG4gICAgZGVidWcoJ2dldCBmdWxsIGxpc3Qgb2YgcGFja2FnZXMgKCVvKSBoYXMgYmVlbiBmZXRjaGVkJywgdG90YWxJdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UGFja2FnZVN0b3JhZ2UocGFja2FnZU5hbWU6IHN0cmluZyk6IElQYWNrYWdlU3RvcmFnZSB7XG4gICAgY29uc3QgcGFja2FnZUFjY2VzcyA9IHRoaXMuY29uZmlnLmdldE1hdGNoZWRQYWNrYWdlc1NwZWMocGFja2FnZU5hbWUpO1xuXG4gICAgY29uc3QgcGFja2FnZVBhdGg6IHN0cmluZyA9IHRoaXMuX2dldExvY2FsU3RvcmFnZVBhdGgocGFja2FnZUFjY2VzcyA/IHBhY2thZ2VBY2Nlc3Muc3RvcmFnZSA6IHVuZGVmaW5lZCk7XG4gICAgZGVidWcoJ3N0b3JhZ2UgcGF0aCBzZWxlY3RlZDogJywgcGFja2FnZVBhdGgpO1xuXG4gICAgaWYgKF8uaXNTdHJpbmcocGFja2FnZVBhdGgpID09PSBmYWxzZSkge1xuICAgICAgZGVidWcoJ3RoZSBwYWNrYWdlICVvIGhhcyBubyBzdG9yYWdlIGRlZmluZWQgJywgcGFja2FnZU5hbWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VTdG9yYWdlUGF0aDogc3RyaW5nID0gUGF0aC5qb2luKFxuICAgICAgUGF0aC5yZXNvbHZlKFBhdGguZGlybmFtZSh0aGlzLmNvbmZpZy5jb25maWdfcGF0aCB8fCAnJyksIHBhY2thZ2VQYXRoKSxcbiAgICAgIHBhY2thZ2VOYW1lXG4gICAgKTtcblxuICAgIGRlYnVnKCdzdG9yYWdlIGFic29sdXRlIHBhdGg6ICcsIHBhY2thZ2VTdG9yYWdlUGF0aCk7XG5cbiAgICByZXR1cm4gbmV3IExvY2FsRHJpdmVyKHBhY2thZ2VTdG9yYWdlUGF0aCwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgcHVibGljIGNsZWFuKCk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGltZSh0aW1lOiBudW1iZXIsIG10aW1lOiBEYXRlKTogbnVtYmVyIHwgRGF0ZSB7XG4gICAgcmV0dXJuIHRpbWUgPyB0aW1lIDogbXRpbWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDdXN0b21QYWNrYWdlTG9jYWxTdG9yYWdlcygpOiBvYmplY3Qge1xuICAgIGNvbnN0IHN0b3JhZ2VzID0ge307XG5cbiAgICAvLyBhZGQgY3VzdG9tIHN0b3JhZ2UgaWYgZXhpc3RcbiAgICBpZiAodGhpcy5jb25maWcuc3RvcmFnZSkge1xuICAgICAgc3RvcmFnZXNbdGhpcy5jb25maWcuc3RvcmFnZV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFja2FnZXMgfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKHBhY2thZ2VzKSB7XG4gICAgICBjb25zdCBsaXN0UGFja2FnZXNDb25mID0gT2JqZWN0LmtleXMocGFja2FnZXMgfHwge30pO1xuXG4gICAgICBsaXN0UGFja2FnZXNDb25mLm1hcChwa2cgPT4ge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gcGFja2FnZXNbcGtnXS5zdG9yYWdlO1xuICAgICAgICBpZiAoc3RvcmFnZSkge1xuICAgICAgICAgIHN0b3JhZ2VzW3N0b3JhZ2VdID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdG9yYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jcm9uaXplIHtjcmVhdGV9IGRhdGFiYXNlIHdoZXRoZXIgZG9lcyBub3QgZXhpc3QuXG4gICAqIEByZXR1cm4ge0Vycm9yfCp9XG4gICAqL1xuICBwcml2YXRlIF9zeW5jKCk6IEVycm9yIHwgbnVsbCB7XG4gICAgZGVidWcoJ3N5bmMgZGF0YWJhc2Ugc3RhcnRlZCcpO1xuXG4gICAgaWYgKHRoaXMubG9ja2VkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgJ0RhdGFiYXNlIGlzIGxvY2tlZCwgcGxlYXNlIGNoZWNrIGVycm9yIG1lc3NhZ2UgcHJpbnRlZCBkdXJpbmcgc3RhcnR1cCB0byAnICsgJ3ByZXZlbnQgZGF0YSBsb3NzLidcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICAnVmVyZGFjY2lvIGRhdGFiYXNlIGlzIGxvY2tlZCwgcGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yIHRvIGNoZWNrb3V0ICcgK1xuICAgICAgICAgICdsb2dzIGR1cmluZyB2ZXJkYWNjaW8gc3RhcnR1cC4nXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBVc2VzIHN5bmMgdG8gcHJldmVudCB1Z2x5IHJhY2UgY29uZGl0aW9uXG4gICAgdHJ5IHtcbiAgICAgIC8vIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21rZGlycCNta2RpcnBzeW5jZGlyLW9wdHNcbiAgICAgIGNvbnN0IGZvbGRlck5hbWUgPSBQYXRoLmRpcm5hbWUodGhpcy5wYXRoKTtcbiAgICAgIG1rZGlycC5zeW5jKGZvbGRlck5hbWUpO1xuICAgICAgZGVidWcoJ3N5bmMgZm9sZGVyICVvIGNyZWF0ZWQgc3VjY2VlZCcsIGZvbGRlck5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVidWcoJ3N5bmMgY3JlYXRlIGZvbGRlciBoYXMgZmFpbGVkIHdpdGggZXJyb3I6ICVvJywgZXJyKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMucGF0aCwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhKSk7XG4gICAgICBkZWJ1Zygnc3luYyB3cml0ZSBzdWNjZWVkJyk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVidWcoJ3N5bmMgZmFpbGVkICVvJywgZXJyKTtcblxuICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoZSByaWdodCBsb2NhbCBzdG9yYWdlIGxvY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICAgKiBAcmV0dXJuIHtTdHJpbmd9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9nZXRMb2NhbFN0b3JhZ2VQYXRoKHN0b3JhZ2U6IHN0cmluZyB8IHZvaWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZ1N0b3JhZ2UgPSB0aGlzLmNvbmZpZyA/IHRoaXMuY29uZmlnLnN0b3JhZ2UgOiB1bmRlZmluZWQ7XG4gICAgaWYgKF8uaXNOaWwoZ2xvYmFsQ29uZmlnU3RvcmFnZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZ2xvYmFsIHN0b3JhZ2UgaXMgcmVxdWlyZWQgZm9yIHRoaXMgcGx1Z2luJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChfLmlzTmlsKHN0b3JhZ2UpID09PSBmYWxzZSAmJiBfLmlzU3RyaW5nKHN0b3JhZ2UpKSB7XG4gICAgICAgIHJldHVybiBQYXRoLmpvaW4oZ2xvYmFsQ29uZmlnU3RvcmFnZSBhcyBzdHJpbmcsIHN0b3JhZ2UgYXMgc3RyaW5nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGdsb2JhbENvbmZpZ1N0b3JhZ2UgYXMgc3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgbG9jYWwgZGF0YWJhc2UgcGF0aC5cbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd8U3RyaW5nfCp9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9idWlsZFN0b3JhZ2VQYXRoKGNvbmZpZzogQ29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCBzaW5vcGlhZGJQYXRoOiBzdHJpbmcgPSB0aGlzLl9kYkdlblBhdGgoREVQUkVDQVRFRF9EQl9OQU1FLCBjb25maWcpO1xuICAgIHRyeSB7XG4gICAgICBmcy5hY2Nlc3NTeW5jKHNpbm9waWFkYlBhdGgsIGZzLmNvbnN0YW50cy5GX09LKTtcbiAgICAgIHJldHVybiBzaW5vcGlhZGJQYXRoO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5jb2RlID09PSBub1N1Y2hGaWxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYkdlblBhdGgoREJfTkFNRSwgY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBsb2NhbCBwYWNrYWdlcy5cbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgcHJpdmF0ZSBfZmV0Y2hMb2NhbFBhY2thZ2VzKCk6IExvY2FsU3RvcmFnZSB7XG4gICAgY29uc3QgbGlzdDogU3RvcmFnZUxpc3QgPSBbXTtcbiAgICBjb25zdCBlbXB0eURhdGFiYXNlID0geyBsaXN0LCBzZWNyZXQ6ICcnIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGxvYWRQcml2YXRlUGFja2FnZXModGhpcy5wYXRoLCB0aGlzLmxvZ2dlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyByZWFkRmlsZVN5bmMgaXMgcGxhdGZvcm0gc3BlY2lmaWMsIG1hY09TLCBMaW51eCBhbmQgV2luZG93cyB0aHJvd24gYW4gZXJyb3JcbiAgICAgIC8vIE9ubHkgcmVjcmVhdGUgaWYgZmlsZSBub3QgZm91bmQgdG8gcHJldmVudCBkYXRhIGxvc3NcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gbm9TdWNoRmlsZSkge1xuICAgICAgICB0aGlzLmxvY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICdGYWlsZWQgdG8gcmVhZCBwYWNrYWdlIGRhdGFiYXNlIGZpbGUsIHBsZWFzZSBjaGVjayB0aGUgZXJyb3IgcHJpbnRlZCBiZWxvdzpcXG4nLFxuICAgICAgICAgIGBGaWxlIFBhdGg6ICR7dGhpcy5wYXRofVxcblxcbiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVtcHR5RGF0YWJhc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsRGF0YWJhc2U7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2NhbC1kYXRhYmFzZS50cyJdLCJuYW1lcyI6WyJERVBSRUNBVEVEX0RCX05BTUUiLCJEQl9OQU1FIiwiZGVidWciLCJMb2NhbERhdGFiYXNlIiwiVG9rZW5BY3Rpb25zIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJsb2dnZXIiLCJwYXRoIiwiX2J1aWxkU3RvcmFnZVBhdGgiLCJsb2NrZWQiLCJkYXRhIiwiX2ZldGNoTG9jYWxQYWNrYWdlcyIsIl9zeW5jIiwiZ2V0U2VjcmV0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZWNyZXQiLCJzZXRTZWNyZXQiLCJhZGQiLCJuYW1lIiwiY2IiLCJsaXN0IiwiaW5kZXhPZiIsInB1c2giLCJzZWFyY2giLCJvblBhY2thZ2UiLCJvbkVuZCIsInZhbGlkYXRlTmFtZSIsInN0b3JhZ2VzIiwiX2dldEN1c3RvbVBhY2thZ2VMb2NhbFN0b3JhZ2VzIiwiSlNPTiIsInN0cmluZ2lmeSIsImJhc2UiLCJQYXRoIiwiZGlybmFtZSIsInNlbGZfcGF0aCIsInNlbGYiLCJzdG9yYWdlS2V5cyIsIk9iamVjdCIsImtleXMiLCJhc3luYyIsImVhY2hTZXJpZXMiLCJzdG9yYWdlIiwicG9zaXRpb24iLCJiYXNlMiIsImpvaW4iLCJzdG9yYWdlUGF0aCIsImZzIiwicmVhZGRpciIsImVyciIsImZpbGVzIiwiZmlsZSIsImluY2x1ZGVzIiwibWF0Y2giLCJmaWxlTG9jYXRpb24iLCJmaWxlMiIsInBhY2thZ2VQYXRoIiwic3RhdCIsInN0YXRzIiwiXyIsImlzTmlsIiwiaXRlbSIsInRpbWUiLCJtdGltZSIsImdldFRpbWUiLCJyZW1vdmUiLCJnZXQiLCJlcnJvciIsInBrZ05hbWUiLCJzcGxpY2UiLCJ0b3RhbEl0ZW1zIiwibGVuZ3RoIiwiZ2V0UGFja2FnZVN0b3JhZ2UiLCJwYWNrYWdlTmFtZSIsInBhY2thZ2VBY2Nlc3MiLCJnZXRNYXRjaGVkUGFja2FnZXNTcGVjIiwiX2dldExvY2FsU3RvcmFnZVBhdGgiLCJ1bmRlZmluZWQiLCJpc1N0cmluZyIsInBhY2thZ2VTdG9yYWdlUGF0aCIsIkxvY2FsRHJpdmVyIiwiY2xlYW4iLCJwYWNrYWdlcyIsImxpc3RQYWNrYWdlc0NvbmYiLCJtYXAiLCJwa2ciLCJFcnJvciIsImZvbGRlck5hbWUiLCJta2RpcnAiLCJzeW5jIiwid3JpdGVGaWxlU3luYyIsImdsb2JhbENvbmZpZ1N0b3JhZ2UiLCJzaW5vcGlhZGJQYXRoIiwiX2RiR2VuUGF0aCIsImFjY2Vzc1N5bmMiLCJjb25zdGFudHMiLCJGX09LIiwiY29kZSIsIm5vU3VjaEZpbGUiLCJlbXB0eURhdGFiYXNlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcsa0JBQTNCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHLG9CQUFoQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxnQ0FBWCxDQUFkOztBQUVBLE1BQU1DLGFBQU4sU0FBNEJDLGNBQTVCLENBQXVFO0FBTzlEQyxFQUFBQSxXQUFQLENBQW1CQyxNQUFuQixFQUFtQ0MsTUFBbkMsRUFBbUQ7QUFDakQsVUFBTUQsTUFBTjs7QUFEaUQ7O0FBQUE7O0FBQUE7O0FBQUE7O0FBQUE7O0FBRWpELFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtFLElBQUwsR0FBWSxLQUFLQyxpQkFBTCxDQUF1QkgsTUFBdkIsQ0FBWjtBQUNBLFNBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtHLE1BQUwsR0FBYyxLQUFkO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLEtBQUtDLG1CQUFMLEVBQVo7O0FBQ0EsU0FBS0MsS0FBTDtBQUNEOztBQUVNQyxFQUFBQSxTQUFQLEdBQW9DO0FBQ2xDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixLQUFLTCxJQUFMLENBQVVNLE1BQTFCLENBQVA7QUFDRDs7QUFFTUMsRUFBQUEs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QixFQUErQixLQUFLRCxNQUFwQyxDQUFQO0FBQ0QsS0FGRCxDQUVFLE9BQU8yQyxHQUFQLEVBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBSUEsR0FBRyxDQUFDZ0QsSUFBSixLQUFhQyxtQkFBakIsRUFBNkI7QUFDM0IsYUFBS3pGLE1BQUwsR0FBYyxJQUFkO0FBQ0EsYUFBS0gsTUFBTCxDQUFZNkQsS0FBWixDQUNFLCtFQURGLEVBRUcsY0FBYSxLQUFLNUQsSUFBSyxRQUFPMEMsR0FBRyxDQUFDbUQsT0FBUSxFQUY3QztBQUlEOztBQUVELGFBQU9ELGFBQVA7QUFDRDtBQUNGOztBQS9Ub0U7O2VBa1V4RGpHLGEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IFBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYXN5bmMgZnJvbSAnYXN5bmMnO1xuaW1wb3J0IG1rZGlycCBmcm9tICdta2RpcnAnO1xuaW1wb3J0IHsgQ2FsbGJhY2ssIENvbmZpZywgSVBhY2thZ2VTdG9yYWdlLCBJUGx1Z2luU3RvcmFnZSwgTG9jYWxTdG9yYWdlLCBMb2dnZXIsIFN0b3JhZ2VMaXN0IH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBnZXRJbnRlcm5hbEVycm9yIH0gZnJvbSAnQHZlcmRhY2Npby9jb21tb25zLWFwaSc7XG5cbmltcG9ydCBMb2NhbERyaXZlciwgeyBub1N1Y2hGaWxlIH0gZnJvbSAnLi9sb2NhbC1mcyc7XG5pbXBvcnQgeyBsb2FkUHJpdmF0ZVBhY2thZ2VzIH0gZnJvbSAnLi9wa2ctdXRpbHMnO1xuaW1wb3J0IFRva2VuQWN0aW9ucyBmcm9tICcuL3Rva2VuJztcblxuY29uc3QgREVQUkVDQVRFRF9EQl9OQU1FID0gJy5zaW5vcGlhLWRiLmpzb24nO1xuY29uc3QgREJfTkFNRSA9ICcudmVyZGFjY2lvLWRiLmpzb24nO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbzpwbHVnaW46bG9jYWwtc3RvcmFnZScpO1xuXG5jbGFzcyBMb2NhbERhdGFiYXNlIGV4dGVuZHMgVG9rZW5BY3Rpb25zIGltcGxlbWVudHMgSVBsdWdpblN0b3JhZ2U8e30+IHtcbiAgcHVibGljIHBhdGg6IHN0cmluZztcbiAgcHVibGljIGxvZ2dlcjogTG9nZ2VyO1xuICBwdWJsaWMgZGF0YTogTG9jYWxTdG9yYWdlO1xuICBwdWJsaWMgY29uZmlnOiBDb25maWc7XG4gIHB1YmxpYyBsb2NrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmlnLCBsb2dnZXI6IExvZ2dlcikge1xuICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5wYXRoID0gdGhpcy5fYnVpbGRTdG9yYWdlUGF0aChjb25maWcpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMubG9ja2VkID0gZmFsc2U7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5fZmV0Y2hMb2NhbFBhY2thZ2VzKCk7XG4gICAgdGhpcy5fc3luYygpO1xuICB9XG5cbiAgcHVibGljIGdldFNlY3JldCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kYXRhLnNlY3JldCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2VjcmV0KHNlY3JldDogc3RyaW5nKTogUHJvbWlzZTxFcnJvciB8IG51bGw+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuZGF0YS5zZWNyZXQgPSBzZWNyZXQ7XG5cbiAgICAgIHJlc29sdmUodGhpcy5fc3luYygpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGQobmFtZTogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLmxpc3QuaW5kZXhPZihuYW1lKSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuZGF0YS5saXN0LnB1c2gobmFtZSk7XG5cbiAgICAgIGRlYnVnKCd0aGUgcHJpdmF0ZSBwYWNrYWdlICVvIGhhcyBiZWVuIGFkZGVkJywgbmFtZSk7XG4gICAgICBjYih0aGlzLl9zeW5jKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygndGhlIHByaXZhdGUgcGFja2FnZSAlbyB3YXMgbm90IGFkZGVkJywgbmFtZSk7XG4gICAgICBjYihudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKG9uUGFja2FnZTogQ2FsbGJhY2ssIG9uRW5kOiBDYWxsYmFjaywgdmFsaWRhdGVOYW1lOiAobmFtZTogc3RyaW5nKSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcmFnZXMgPSB0aGlzLl9nZXRDdXN0b21QYWNrYWdlTG9jYWxTdG9yYWdlcygpO1xuICAgIGRlYnVnKGBzZWFyY2ggY3VzdG9tIGxvY2FsIHBhY2thZ2VzOiAlb2AsIEpTT04uc3RyaW5naWZ5KHN0b3JhZ2VzKSk7XG4gICAgY29uc3QgYmFzZSA9IFBhdGguZGlybmFtZSh0aGlzLmNvbmZpZy5zZWxmX3BhdGgpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IHN0b3JhZ2VLZXlzID0gT2JqZWN0LmtleXMoc3RvcmFnZXMpO1xuICAgIGRlYnVnKGBzZWFyY2ggYmFzZTogJW8ga2V5czogJW9gLCBiYXNlLCBzdG9yYWdlS2V5cyk7XG5cbiAgICBhc3luYy5lYWNoU2VyaWVzKFxuICAgICAgc3RvcmFnZUtleXMsXG4gICAgICBmdW5jdGlvbihzdG9yYWdlLCBjYikge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHN0b3JhZ2VLZXlzLmluZGV4T2Yoc3RvcmFnZSk7XG4gICAgICAgIGNvbnN0IGJhc2UyID0gUGF0aC5qb2luKHBvc2l0aW9uICE9PSAwID8gc3RvcmFnZUtleXNbMF0gOiAnJyk7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2VQYXRoOiBzdHJpbmcgPSBQYXRoLnJlc29sdmUoYmFzZSwgYmFzZTIsIHN0b3JhZ2UpO1xuICAgICAgICBkZWJ1Zygnc2VhcmNoIHBhdGg6ICVvIDogJW8nLCBzdG9yYWdlUGF0aCwgc3RvcmFnZSk7XG4gICAgICAgIGZzLnJlYWRkaXIoc3RvcmFnZVBhdGgsIChlcnIsIGZpbGVzKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXN5bmMuZWFjaFNlcmllcyhcbiAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgZnVuY3Rpb24oZmlsZSwgY2IpIHtcbiAgICAgICAgICAgICAgZGVidWcoJ2xvY2FsLXN0b3JhZ2U6IFtzZWFyY2hdIHNlYXJjaCBmaWxlIHBhdGg6ICVvJywgZmlsZSk7XG4gICAgICAgICAgICAgIGlmIChzdG9yYWdlS2V5cy5pbmNsdWRlcyhmaWxlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYigpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGZpbGUubWF0Y2goL15ALykpIHtcbiAgICAgICAgICAgICAgICAvLyBzY29wZWRcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlTG9jYXRpb24gPSBQYXRoLnJlc29sdmUoYmFzZSwgc3RvcmFnZSwgZmlsZSk7XG4gICAgICAgICAgICAgICAgZGVidWcoJ3NlYXJjaCBzY29wZWQgZmlsZSBsb2NhdGlvbjogJW8nLCBmaWxlTG9jYXRpb24pO1xuICAgICAgICAgICAgICAgIGZzLnJlYWRkaXIoZmlsZUxvY2F0aW9uLCBmdW5jdGlvbihlcnIsIGZpbGVzKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBhc3luYy5lYWNoU2VyaWVzKFxuICAgICAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgKGZpbGUyLCBjYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZU5hbWUoZmlsZTIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlUGF0aCA9IFBhdGgucmVzb2x2ZShiYXNlLCBzdG9yYWdlLCBmaWxlLCBmaWxlMik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLnN0YXQocGFja2FnZVBhdGgsIChlcnIsIHN0YXRzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfLmlzTmlsKGVycikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBgJHtmaWxlfS8ke2ZpbGUyfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGFja2FnZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZTogc3RhdHMubXRpbWUuZ2V0VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBhY2thZ2UoaXRlbSwgY2IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjYlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxpZGF0ZU5hbWUoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlMiA9IFBhdGguam9pbihwb3NpdGlvbiAhPT0gMCA/IHN0b3JhZ2VLZXlzWzBdIDogJycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VQYXRoID0gUGF0aC5yZXNvbHZlKGJhc2UsIGJhc2UyLCBzdG9yYWdlLCBmaWxlKTtcbiAgICAgICAgICAgICAgICBkZWJ1Zygnc2VhcmNoIGZpbGUgbG9jYXRpb246ICVvJywgcGFja2FnZVBhdGgpO1xuICAgICAgICAgICAgICAgIGZzLnN0YXQocGFja2FnZVBhdGgsIChlcnIsIHN0YXRzKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoXy5pc05pbChlcnIpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uUGFja2FnZShcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGFja2FnZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgdGltZTogc2VsZi5nZXRUaW1lKHN0YXRzLm10aW1lLmdldFRpbWUoKSwgc3RhdHMubXRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjYlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2JcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvbkVuZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKG5hbWU6IHN0cmluZywgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoKGVyciwgZGF0YSkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBjYihnZXRJbnRlcm5hbEVycm9yKCdlcnJvciByZW1vdmUgcHJpdmF0ZSBwYWNrYWdlJykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcih7IGVyciB9LCAnW2xvY2FsLXN0b3JhZ2UvcmVtb3ZlXTogcmVtb3ZlIHRoZSBwcml2YXRlIHBhY2thZ2UgaGFzIGZhaWxlZCBAe2Vycn0nKTtcbiAgICAgICAgZGVidWcoJ2Vycm9yIG9uIHJlbW92ZSBwYWNrYWdlICVvJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBrZ05hbWUgPSBkYXRhLmluZGV4T2YobmFtZSk7XG4gICAgICBpZiAocGtnTmFtZSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5kYXRhLmxpc3Quc3BsaWNlKHBrZ05hbWUsIDEpO1xuXG4gICAgICAgIGRlYnVnKCdyZW1vdmUgcGFja2FnZSAlbyBoYXMgYmVlbiByZW1vdmVkJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGNiKHRoaXMuX3N5bmMoKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCBkYXRhYmFzZSBlbGVtZW50cy5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBwdWJsaWMgZ2V0KGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRhdGEubGlzdDtcbiAgICBjb25zdCB0b3RhbEl0ZW1zID0gdGhpcy5kYXRhLmxpc3QubGVuZ3RoO1xuXG4gICAgY2IobnVsbCwgbGlzdCk7XG5cbiAgICBkZWJ1ZygnZ2V0IGZ1bGwgbGlzdCBvZiBwYWNrYWdlcyAoJW8pIGhhcyBiZWVuIGZldGNoZWQnLCB0b3RhbEl0ZW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWNrYWdlU3RvcmFnZShwYWNrYWdlTmFtZTogc3RyaW5nKTogSVBhY2thZ2VTdG9yYWdlIHtcbiAgICBjb25zdCBwYWNrYWdlQWNjZXNzID0gdGhpcy5jb25maWcuZ2V0TWF0Y2hlZFBhY2thZ2VzU3BlYyhwYWNrYWdlTmFtZSk7XG5cbiAgICBjb25zdCBwYWNrYWdlUGF0aDogc3RyaW5nID0gdGhpcy5fZ2V0TG9jYWxTdG9yYWdlUGF0aChwYWNrYWdlQWNjZXNzID8gcGFja2FnZUFjY2Vzcy5zdG9yYWdlIDogdW5kZWZpbmVkKTtcbiAgICBkZWJ1Zygnc3RvcmFnZSBwYXRoIHNlbGVjdGVkOiAnLCBwYWNrYWdlUGF0aCk7XG5cbiAgICBpZiAoXy5pc1N0cmluZyhwYWNrYWdlUGF0aCkgPT09IGZhbHNlKSB7XG4gICAgICBkZWJ1ZygndGhlIHBhY2thZ2UgJW8gaGFzIG5vIHN0b3JhZ2UgZGVmaW5lZCAnLCBwYWNrYWdlTmFtZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFja2FnZVN0b3JhZ2VQYXRoOiBzdHJpbmcgPSBQYXRoLmpvaW4oXG4gICAgICBQYXRoLnJlc29sdmUoUGF0aC5kaXJuYW1lKHRoaXMuY29uZmlnLnNlbGZfcGF0aCB8fCAnJyksIHBhY2thZ2VQYXRoKSxcbiAgICAgIHBhY2thZ2VOYW1lXG4gICAgKTtcblxuICAgIGRlYnVnKCdzdG9yYWdlIGFic29sdXRlIHBhdGg6ICcsIHBhY2thZ2VTdG9yYWdlUGF0aCk7XG5cbiAgICByZXR1cm4gbmV3IExvY2FsRHJpdmVyKHBhY2thZ2VTdG9yYWdlUGF0aCwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgcHVibGljIGNsZWFuKCk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGltZSh0aW1lOiBudW1iZXIsIG10aW1lOiBEYXRlKTogbnVtYmVyIHwgRGF0ZSB7XG4gICAgcmV0dXJuIHRpbWUgPyB0aW1lIDogbXRpbWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDdXN0b21QYWNrYWdlTG9jYWxTdG9yYWdlcygpOiBvYmplY3Qge1xuICAgIGNvbnN0IHN0b3JhZ2VzID0ge307XG5cbiAgICAvLyBhZGQgY3VzdG9tIHN0b3JhZ2UgaWYgZXhpc3RcbiAgICBpZiAodGhpcy5jb25maWcuc3RvcmFnZSkge1xuICAgICAgc3RvcmFnZXNbdGhpcy5jb25maWcuc3RvcmFnZV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFja2FnZXMgfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKHBhY2thZ2VzKSB7XG4gICAgICBjb25zdCBsaXN0UGFja2FnZXNDb25mID0gT2JqZWN0LmtleXMocGFja2FnZXMgfHwge30pO1xuXG4gICAgICBsaXN0UGFja2FnZXNDb25mLm1hcChwa2cgPT4ge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gcGFja2FnZXNbcGtnXS5zdG9yYWdlO1xuICAgICAgICBpZiAoc3RvcmFnZSkge1xuICAgICAgICAgIHN0b3JhZ2VzW3N0b3JhZ2VdID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdG9yYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jcm9uaXplIHtjcmVhdGV9IGRhdGFiYXNlIHdoZXRoZXIgZG9lcyBub3QgZXhpc3QuXG4gICAqIEByZXR1cm4ge0Vycm9yfCp9XG4gICAqL1xuICBwcml2YXRlIF9zeW5jKCk6IEVycm9yIHwgbnVsbCB7XG4gICAgZGVidWcoJ3N5bmMgZGF0YWJhc2Ugc3RhcnRlZCcpO1xuXG4gICAgaWYgKHRoaXMubG9ja2VkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgJ0RhdGFiYXNlIGlzIGxvY2tlZCwgcGxlYXNlIGNoZWNrIGVycm9yIG1lc3NhZ2UgcHJpbnRlZCBkdXJpbmcgc3RhcnR1cCB0byAnICsgJ3ByZXZlbnQgZGF0YSBsb3NzLidcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICAnVmVyZGFjY2lvIGRhdGFiYXNlIGlzIGxvY2tlZCwgcGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yIHRvIGNoZWNrb3V0ICcgK1xuICAgICAgICAgICdsb2dzIGR1cmluZyB2ZXJkYWNjaW8gc3RhcnR1cC4nXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBVc2VzIHN5bmMgdG8gcHJldmVudCB1Z2x5IHJhY2UgY29uZGl0aW9uXG4gICAgdHJ5IHtcbiAgICAgIC8vIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21rZGlycCNta2RpcnBzeW5jZGlyLW9wdHNcbiAgICAgIGNvbnN0IGZvbGRlck5hbWUgPSBQYXRoLmRpcm5hbWUodGhpcy5wYXRoKTtcbiAgICAgIG1rZGlycC5zeW5jKGZvbGRlck5hbWUpO1xuICAgICAgZGVidWcoJ3N5bmMgZm9sZGVyICVvIGNyZWF0ZWQgc3VjY2VlZCcsIGZvbGRlck5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVidWcoJ3N5bmMgY3JlYXRlIGZvbGRlciBoYXMgZmFpbGVkIHdpdGggZXJyb3I6ICVvJywgZXJyKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMucGF0aCwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhKSk7XG4gICAgICBkZWJ1Zygnc3luYyB3cml0ZSBzdWNjZWVkJyk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVidWcoJ3N5bmMgZmFpbGVkICVvJywgZXJyKTtcblxuICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoZSByaWdodCBsb2NhbCBzdG9yYWdlIGxvY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICAgKiBAcmV0dXJuIHtTdHJpbmd9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9nZXRMb2NhbFN0b3JhZ2VQYXRoKHN0b3JhZ2U6IHN0cmluZyB8IHZvaWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZ1N0b3JhZ2UgPSB0aGlzLmNvbmZpZyA/IHRoaXMuY29uZmlnLnN0b3JhZ2UgOiB1bmRlZmluZWQ7XG4gICAgaWYgKF8uaXNOaWwoZ2xvYmFsQ29uZmlnU3RvcmFnZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZ2xvYmFsIHN0b3JhZ2UgaXMgcmVxdWlyZWQgZm9yIHRoaXMgcGx1Z2luJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChfLmlzTmlsKHN0b3JhZ2UpID09PSBmYWxzZSAmJiBfLmlzU3RyaW5nKHN0b3JhZ2UpKSB7XG4gICAgICAgIHJldHVybiBQYXRoLmpvaW4oZ2xvYmFsQ29uZmlnU3RvcmFnZSBhcyBzdHJpbmcsIHN0b3JhZ2UgYXMgc3RyaW5nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGdsb2JhbENvbmZpZ1N0b3JhZ2UgYXMgc3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgbG9jYWwgZGF0YWJhc2UgcGF0aC5cbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd8U3RyaW5nfCp9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9idWlsZFN0b3JhZ2VQYXRoKGNvbmZpZzogQ29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCBzaW5vcGlhZGJQYXRoOiBzdHJpbmcgPSB0aGlzLl9kYkdlblBhdGgoREVQUkVDQVRFRF9EQl9OQU1FLCBjb25maWcpO1xuICAgIHRyeSB7XG4gICAgICBmcy5hY2Nlc3NTeW5jKHNpbm9waWFkYlBhdGgsIGZzLmNvbnN0YW50cy5GX09LKTtcbiAgICAgIHJldHVybiBzaW5vcGlhZGJQYXRoO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5jb2RlID09PSBub1N1Y2hGaWxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYkdlblBhdGgoREJfTkFNRSwgY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBsb2NhbCBwYWNrYWdlcy5cbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgcHJpdmF0ZSBfZmV0Y2hMb2NhbFBhY2thZ2VzKCk6IExvY2FsU3RvcmFnZSB7XG4gICAgY29uc3QgbGlzdDogU3RvcmFnZUxpc3QgPSBbXTtcbiAgICBjb25zdCBlbXB0eURhdGFiYXNlID0geyBsaXN0LCBzZWNyZXQ6ICcnIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGxvYWRQcml2YXRlUGFja2FnZXModGhpcy5wYXRoLCB0aGlzLmxvZ2dlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyByZWFkRmlsZVN5bmMgaXMgcGxhdGZvcm0gc3BlY2lmaWMsIG1hY09TLCBMaW51eCBhbmQgV2luZG93cyB0aHJvd24gYW4gZXJyb3JcbiAgICAgIC8vIE9ubHkgcmVjcmVhdGUgaWYgZmlsZSBub3QgZm91bmQgdG8gcHJldmVudCBkYXRhIGxvc3NcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gbm9TdWNoRmlsZSkge1xuICAgICAgICB0aGlzLmxvY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICdGYWlsZWQgdG8gcmVhZCBwYWNrYWdlIGRhdGFiYXNlIGZpbGUsIHBsZWFzZSBjaGVjayB0aGUgZXJyb3IgcHJpbnRlZCBiZWxvdzpcXG4nLFxuICAgICAgICAgIGBGaWxlIFBhdGg6ICR7dGhpcy5wYXRofVxcblxcbiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVtcHR5RGF0YWJhc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsRGF0YWJhc2U7XG4iXX0= |
{ | ||
"name": "@verdaccio/local-storage", | ||
"version": "10.0.0", | ||
"version": "10.0.1", | ||
"description": "Local storage implementation", | ||
@@ -66,3 +66,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "e33b0509f6dcb10c9b893fdcd3846ca69eca0bd9" | ||
"gitHead": "41f022aeead82174824aa246506ec12ed895e474" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
126695