@mybiogen/auth-openid
Advanced tools
Comparing version 1.4.4 to 1.4.5
@@ -203,3 +203,2 @@ "use strict"; | ||
this.user = this.loadUserInfo(userInfo, claims); | ||
utils_1.Storage.set(`${this.storageKey}.user`, this.user); | ||
return this.user; | ||
@@ -217,3 +216,2 @@ } | ||
utils_1.Storage.remove(`${this.storageKey}.token`); | ||
utils_1.Storage.remove(`${this.storageKey}.user`); | ||
if (endSessionURI) { | ||
@@ -258,3 +256,2 @@ window.location.replace(endSessionURI); | ||
this.claims = claims; | ||
this.user = typeof window !== 'undefined' ? utils_1.Storage.get(`${storageKey}.user`) : null; | ||
this.token = typeof window !== 'undefined' ? utils_1.Storage.get(`${storageKey}.token`) : null; | ||
@@ -307,3 +304,2 @@ } | ||
utils_1.Storage.remove(`${this.storageKey}.token`); | ||
utils_1.Storage.remove(`${this.storageKey}.user`); | ||
} | ||
@@ -319,2 +315,2 @@ return this.token; | ||
exports.default = OpenIDClient; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT0F1dGhDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT0F1dGhDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBdUM7QUFDdkMsK0JBQW9DO0FBQ3BDLG1DQUEwRztBQVcxRyxNQUE4QixZQUFZO0lBdUN4QyxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFVBQWtCLEVBQUUsaUJBQXlCLEVBQUUsU0FBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBVnBMLGNBQVMsR0FBK0MsRUFBRSxDQUFDO1FBOEhuRCx3QkFBbUIsR0FBRyxHQUFTLEVBQUU7O1lBQ3ZDLElBQUksUUFBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxZQUFZLENBQUEsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDekQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUN4RCxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUMzQjtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO2FBQzlEO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEtB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QyxLQUFLLENBQUE7U0FDbEI7UUFFRCxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLGVBQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxRQUFRLENBQUMsQ0FBQztZQUMzQyxlQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM1QixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQTBRRjtBQW5hRCwrQkFtYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgZW5jb2RlQm9keSwgZ2VuZXJhdGVDb2RlVmVyaWZpZXIsIGdlbmVyYXRlUGtjZUNoYWxsZW5nZSwgU3RvcmFnZSwgY2hlY2tDYWxsYmFjayB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgT0F1dGhVc2VySW5mbyxcbiAgVG9rZW4sXG4gIFdhdGNoQXV0aENhbGxiYWNrLFxuICBJbml0LFxuICBDb25maWdFbmRwb2ludCxcbiAgQXV0aGVudGljYXRlQXJncyxcbiAgQ2xhaW1QYXJhbSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIE9wZW5JRENsaWVudDxDbGFpbXMgZXh0ZW5kcyB7fSA9IHt9LCBVc2VySW5mbyBleHRlbmRzIE9BdXRoVXNlckluZm8gPSBPQXV0aFVzZXJJbmZvLCBVc2VyRGF0YSBleHRlbmRzIHsgdXNlcjogVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9ID0geyB1c2VyOiBVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0+IHtcbiAgY2xpZW50SWQ6IHN0cmluZztcblxuICBjb25maWdVcmw6IHN0cmluZztcblxuICBzY29wZXM6IHN0cmluZ1tdO1xuXG4gIGNsYWltczogQXJyYXk8a2V5b2YgQ2xhaW1zPjtcblxuICByZWRpcmVjdFVSSTogc3RyaW5nO1xuXG4gIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmc7XG5cbiAgYXV0aG9yaXphdGlvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdXNlckluZm9FbmRwb2ludD86IHN0cmluZztcblxuICByZXZvY2F0aW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgZW5kU2Vzc2lvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuPzogVG9rZW47XG5cbiAgdXNlcj86IFVzZXJEYXRhO1xuXG4gIHN0b3JhZ2VLZXk6IHN0cmluZztcblxuICBsaXN0ZW5lcnM6IEFycmF5PFdhdGNoQXV0aENhbGxiYWNrPFVzZXJJbmZvLCBDbGFpbXM+PiA9IFtdO1xuXG4gIHJlZnJlc2hUb2tlbkludGVydmFsPzogbnVtYmVyO1xuXG4gIGNvbWVzRnJvbUxvZ2luOiBib29sZWFuO1xuXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG5cbiAgaGFzQmVlbkluaXRpYWxpemVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZ1VybDogc3RyaW5nLCByZWRpcmVjdFVSSTogc3RyaW5nLCBzdG9yYWdlS2V5OiBzdHJpbmcsIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmcsIHNjb3Blczogc3RyaW5nW10gPSBbJ29wZW5pZCddLCBjbGFpbXM6IEFycmF5PGtleW9mIENsYWltcz4gPSBbXSkge1xuICAgIGlmICghY2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2xpZW50SWQgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZDtcblxuICAgIGlmICghY29uZmlnVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbmZpZ1VybCBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5jb25maWdVcmwgPSBjb25maWdVcmw7XG5cbiAgICBpZiAoIXJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlZGlyZWN0VXJpIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLnJlZGlyZWN0VVJJID0gcmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIWxvZ291dFJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xvZ291dFJlZGlyZWN0VVJJIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLmxvZ291dFJlZGlyZWN0VVJJID0gbG9nb3V0UmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIXN0b3JhZ2VLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RvcmFnZUtleSBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlS2V5ID0gc3RvcmFnZUtleTtcblxuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5oYXNCZWVuSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjb3BlcyA9IHNjb3BlcztcbiAgICB0aGlzLmNsYWltcyA9IGNsYWltcztcbiAgICB0aGlzLnVzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFN0b3JhZ2UuZ2V0KGAke3N0b3JhZ2VLZXl9LnVzZXJgKSA6IG51bGw7XG4gICAgdGhpcy50b2tlbiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gU3RvcmFnZS5nZXQoYCR7c3RvcmFnZUtleX0udG9rZW5gKSA6IG51bGw7XG4gIH1cblxuICBhc3luYyBpbml0KCk6IFByb21pc2U8SW5pdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICh0aGlzLmhhc0JlZW5Jbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgW2NhbGxiYWNrU3RhdGUsIHN0b3JhZ2VPYXV0aF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBjaGVja0NhbGxiYWNrKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxcbiAgICAgIFN0b3JhZ2UuZ2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKSxcbiAgICBdKTtcblxuICAgIC8vIFdhaXQgdW50aWwgY29uZmlndXJhdGlvbiBoYXMgZmluaXNoZWQuXG4gICAgYXdhaXQgdGhpcy5zZXRDb25maWcoKTtcblxuICAgIC8vIFJldHVybiBlYXJseVxuICAgIGlmICghY2FsbGJhY2tTdGF0ZSAmJiAhc3RvcmFnZU9hdXRoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuaGFzQmVlbkluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgIGlmIChjYWxsYmFja1N0YXRlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRUb2tlbk9uSW5pdChjYWxsYmFja1N0YXRlKVxuICAgIH1cblxuICAgIGlmIChzdG9yYWdlT2F1dGggJiYgIXN0b3JhZ2VPYXV0aC5sb2dvdXQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbk9uSW5pdChzdG9yYWdlT2F1dGgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0VG9rZW5PbkluaXQoY2FsbGJhY2tTdGF0ZSk6IFByb21pc2U8VG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb2RlLCBcbiAgICAgIHBrY2VDb2RlVmVyaWZpZXIsIFxuICAgICAgY3VycmVudFN0YXRlLCBcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgICBuZXdVcmxcbiAgICB9ID0gY2FsbGJhY2tTdGF0ZTtcblxuICAgIHRoaXMudG9rZW4gPSBhd2FpdCB0aGlzLmdldFRva2VuKGNvZGUsIHBrY2VDb2RlVmVyaWZpZXIsIGN1cnJlbnRTdGF0ZSk7XG4gICAgdGhpcy5rZWVwUmVmcmVzaGluZ1Rva2VuKCk7XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIGRvY3VtZW50LnRpdGxlLCBuZXdVcmwpO1xuXG4gICAgdGhpcy5jb21lc0Zyb21Mb2dpbiA9IHRydWU7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcblxuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbk9uSW5pdChzdG9yYWdlT2F1dGg6IGFueSk6IFByb21pc2U8VG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICB0aGlzLnRva2VuID0gc3RvcmFnZU9hdXRoO1xuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy50b2tlbj8ucmVmcmVzaFRva2VuKSB7XG4gICAgICAvLyBUT0RPIEBhbGwgaGFuZGxlIGNhc2Ugd2l0aG91dCByZWZyZXNoIHRva2VuXG4gICAgICAvLyBUaGlzIHNob3VsZCB0ZXN0IGlmIHRoZSBjdXJyZW50IHRva2VuIGlzIHN0aWxsIHZhbGlkXG4gICAgICAvLyBvciB3ZSBzaG91bGQgY2hhbmdlIHRoZSBBUEkgY2FsbHMgdG8gZ2V0IHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAgY29uc29sZS53YXJuKFwibWlzc2luZyByZWZyZXNoIHRva2VuLlwiKVxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgIHRoaXMua2VlcFJlZnJlc2hpbmdUb2tlbigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy50b2tlbiA9IHVuZGVmaW5lZDtcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKTtcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udXNlcmApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cblxuICBwcml2YXRlIGNhbGxMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgoY2IpID0+IHtcbiAgICAgIGNiKHRoaXMudG9rZW4gJiYgdGhpcy51c2VyLCB0aGlzLmNvbWVzRnJvbUxvZ2luLCB0aGlzLnJlZGlyZWN0VG8pXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGtlZXBSZWZyZXNoaW5nVG9rZW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuPy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIGNvbnNvbGUud2FybihcIm1pc3NpbmcgcmVmcmVzaCB0b2tlbi5cIilcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51c2VyICYmIHRoaXMudG9rZW4gJiYgIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IFNBRkVUWV9HQVBfUkVGUkVTSF9UT0tFTiA9IDYwMDAwOyAvLyAxIG1pblxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sICh0aGlzLnRva2VuLmV4cGlyZXNJbiAqIDEwMDApIC0gU0FGRVRZX0dBUF9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG4gIH07XG5cbiAgd2F0Y2hBdXRoID0gYXN5bmMgKGNiOiBXYXRjaEF1dGhDYWxsYmFjazxVc2VySW5mbywgQ2xhaW1zPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goY2IpO1xuXG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG5cbiAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgYXdhaXQgdGhpcy5nZXRVc2VySW5mbygpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsbExpc3RlbmVycygpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb25maWcgPSBhc3luYyAoKTogUHJvbWlzZTxDb25maWdFbmRwb2ludCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuY29uZmlnVXJsKTtcbiAgICAgIC8vIFRPRE86IEVycm9yLCBmZXRjaCBvbmx5IHRocm93cyBvbiBjb25uZWN0aW9uIGVycm9yLCBlbHNlIHdlIGdldCAhZmV0Y2gub2tcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc2V0Q29uZmlnID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZmV0Y2hDb25maWcoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IGNvbmZpZy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgdGhpcy50b2tlbkVuZHBvaW50ID0gY29uZmlnLnRva2VuX2VuZHBvaW50O1xuICAgICAgdGhpcy51c2VySW5mb0VuZHBvaW50ID0gY29uZmlnLnVzZXJpbmZvX2VuZHBvaW50O1xuICAgICAgdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQgPSBjb25maWcucmV2b2NhdGlvbl9lbmRwb2ludDtcbiAgICAgIHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50ID0gY29uZmlnLmVuZF9zZXNzaW9uX2VuZHBvaW50O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGdldFRva2VuID0gYXN5bmMgKGNvZGU6IHN0cmluZywgb3JpZ2luYWxDb2RlVmVyaWZpZXI6IHN0cmluZywgY3VycmVudFN0YXRlOiBzdHJpbmcpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkLiBUb2tlbiBlbmRwb2ludCBub3QgcHJlc2VudCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgIGNvZGUsXG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IG9yaWdpbmFsQ29kZVZlcmlmaWVyLFxuICAgIH07XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgfSksXG4gICAgICBib2R5OiBlbmNvZGVCb2R5KGJvZHkpLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnRva2VuRW5kcG9pbnQsIGNvbmZpZyk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgLy8gVE9ETzogRXJyb3IsIGRlYWwgd2l0aCBmYWlsdXJlIGNhc2VzXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGF1dGhUb2tlbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogYXV0aFRva2VuLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGV4cGlyZXNJbjogYXV0aFRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgIHRva2VuVHlwZTogYXV0aFRva2VuLnRva2VuX3R5cGUsXG4gICAgICAgIHNjb3BlOiBhdXRoVG9rZW4uc2NvcGUsXG4gICAgICAgIGlkVG9rZW46IGF1dGhUb2tlbi5pZF90b2tlbixcbiAgICAgIH07XG5cbiAgICAgIFN0b3JhZ2Uuc2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gLCB0aGlzLnRva2VuKTtcbiAgICAgIC8vIGNsZWFuIHVwIGxvY2FsIHN0b3JhZ2UgZnJvbSBQS0NFIGRldGFpbHNcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAvLyBjbGVhbiB1cCBxdWVyeSBwYXJhbXMgZnJvbSBPQXV0aCByZWRpcmVjdGlvblxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZ2V0dGluZyB0b2tlbicpO1xuICAgIH1cbiAgfTtcblxuICByZWZyZXNoVG9rZW4gPSBhc3luYyAoKTogUHJvbWlzZTxJbml0IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8ICF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCB0b2tlbiBvciBlbmRwb2ludCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCByZWZyZXNoIHRva2VuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGdyYW50X3R5cGU6ICdyZWZyZXNoX3Rva2VuJyxcbiAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMudG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9KSxcbiAgICAgIGJvZHk6IGVuY29kZUJvZHkoYm9keSksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBub3QgcmVmcmVzaGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICB0aGlzLnRva2VuID0ge1xuICAgICAgYWNjZXNzVG9rZW46IHRva2VuLmFjY2Vzc190b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogdG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgIGV4cGlyZXNJbjogdG9rZW4uZXhwaXJlc19pbixcbiAgICAgIHRva2VuVHlwZTogdG9rZW4udG9rZW5fdHlwZSxcbiAgICAgIHNjb3BlOiB0b2tlbi5zY29wZSxcbiAgICAgIGlkVG9rZW46IHRva2VuLmlkX3Rva2VuLFxuICAgIH07XG5cbiAgICBTdG9yYWdlLnNldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCwgdGhpcy50b2tlbik7XG5cbiAgICAvLyBUT0RPIEBhbGwgY2FsbCBsaXN0ZW5lcnMgaWYgc29tZXRoaW5nIGNoYW5nZWRcblxuICAgIC8vICg/KSBXZSBkb24ndCByZXR1cm4gdGhlIHRva2VuIGRpcmVjdGx5XG4gICAgcmV0dXJuIHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICB9O1xuXG4gIHByaXZhdGUgYXV0aGVudGljYXRlID0gKGFyZ3M6IEF1dGhlbnRpY2F0ZUFyZ3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGZvcmNlZFJlZGlyZWN0VG8sIGlzU2lnbnVwLCB1aUxvY2FsZXMgfSA9IGFyZ3M7XG4gICAgY29uc3Qgb3JpZ2luYWxDb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZUNvZGVWZXJpZmllcig5Nik7XG4gICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQa2NlQ2hhbGxlbmdlKG9yaWdpbmFsQ29kZVZlcmlmaWVyKTtcbiAgICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2ggfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCB7IG9yaWdpbiB9ID0gcXVlcnlTdHJpbmcucGFyc2Uoc2VhcmNoKTtcbiAgICBjb25zdCByZWRpcmVjdFRvID0gZm9yY2VkUmVkaXJlY3RUbyA/IGZvcmNlZFJlZGlyZWN0VG8gOiBvcmlnaW4gPyBkZWNvZGVVUklDb21wb25lbnQob3JpZ2luICsgXCJcIikgOiBwYXRobmFtZSArIHNlYXJjaDtcbiAgICBjb25zdCBzdGF0ZSA9IHV1aWR2NCgpO1xuICAgIGxldCBjbGFpbVBhcmFtO1xuICBcbiAgICBpZiAodGhpcy5jbGFpbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBjbGFpbU1hcCA9IHRoaXMuY2xhaW1zLnJlZHVjZTxDbGFpbVBhcmFtPigoY3VyciwgY2xhaW0pID0+ICh7IC4uLmN1cnIsIFtjbGFpbV06IG51bGwgfSksIHt9KTtcbiAgICAgIGNsYWltUGFyYW0gPSB0aGlzLmNsYWltcy5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB1c2VyaW5mbzogY2xhaW1NYXAsXG4gICAgICAgICAgICBpZF90b2tlbjogY2xhaW1NYXAsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3Blcy5qb2luKCcgJyksXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgICByZXNwb25zZV9tb2RlOiAncXVlcnknLFxuICAgICAgc3RhdGU6IGVuY29kZVVSSUNvbXBvbmVudChzdGF0ZSksXG4gICAgICBjb2RlX2NoYWxsZW5nZTogZW5jb2RlVVJJKGNvZGVWZXJpZmllciksXG4gICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6ICdTMjU2JyxcbiAgICAgIGNsYWltczogY2xhaW1QYXJhbSAmJiBKU09OLnN0cmluZ2lmeShjbGFpbVBhcmFtKSxcbiAgICAgIC4uLih1aUxvY2FsZXMgJiYge1xuICAgICAgICB1aV9sb2NhbGVzOiB1aUxvY2FsZXNcbiAgICAgIH0pLFxuICAgICAgLi4uKGlzU2lnbnVwICYmIHtcbiAgICAgICAgcHJvbXB0OiAnY3JlYXRlJ1xuICAgICAgfSksXG4gICAgfTtcblxuICAgIFN0b3JhZ2Uuc2V0KHN0YXRlLCB7XG4gICAgICBjb2RlVmVyaWZpZXIsXG4gICAgICBvcmlnaW5hbENvZGVWZXJpZmllcixcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dpblF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hdXRob3JpemF0aW9uRW5kcG9pbnR9PyR7bG9naW5RdWVyeX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gIH1cblxuICBsb2dpbiA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nLCB1aUxvY2FsZXM/OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZSh7IGZvcmNlZFJlZGlyZWN0VG8sIHVpTG9jYWxlcyB9KTtcbiAgfTtcblxuICBzaWdudXAgPSAoZm9yY2VkUmVkaXJlY3RUbz86IHN0cmluZywgdWlMb2NhbGVzPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvLCB1aUxvY2FsZXMsIGlzU2lnbnVwOiB0cnVlIH0pO1xuICB9O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkVXNlckluZm8odXNlckpTT046IGFueSwgY2xhaW1zPzogQ2xhaW1zKTogVXNlckRhdGE7XG5cbiAgZ2V0VXNlckluZm8gPSBhc3luYyAoKTogUHJvbWlzZTx7IHVzZXI6IFVzZXJJbmZvLCBjbGFpbXM/OiBDbGFpbXMgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGlmICghdGhpcy51c2VySW5mb0VuZHBvaW50IHx8ICF0aGlzLnRva2VuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy51c2VySW5mb0VuZHBvaW50LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy50b2tlbi5hY2Nlc3NUb2tlbn1gLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICBcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgY29uc3QgY2xhaW1zID0gdGhpcy5jbGFpbXMubGVuZ3RoXG4gICAgICAgID8gdGhpcy5jbGFpbXMucmVkdWNlPENsYWltcz4oKGN1cnIsIGNsYWltKSA9PiAoe1xuICAgICAgICAgIC4uLmN1cnIsXG4gICAgICAgICAgW2NsYWltXTogdXNlckluZm9bY2xhaW1dLFxuICAgICAgICB9KSwge30gYXMgQ2xhaW1zKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXNlciA9IHRoaXMubG9hZFVzZXJJbmZvKHVzZXJJbmZvLCBjbGFpbXMpO1xuXG4gICAgICBTdG9yYWdlLnNldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnVzZXJgLCB0aGlzLnVzZXIpO1xuXG4gICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIGdldHRpbmcgdXNlciBpbmZvLCBsb2dnaW5nIG91dC4uLicpO1xuICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICAgIGF3YWl0IHRoaXMubG9nb3V0KCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICBsb2dvdXQgPSBhc3luYyAoZW5kU2Vzc2lvblVSST86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKTtcbiAgICBTdG9yYWdlLnJlbW92ZShgJHt0aGlzLnN0b3JhZ2VLZXl9LnVzZXJgKTtcblxuICAgIGlmIChlbmRTZXNzaW9uVVJJKSB7XG4gICAgICAvLyBKYW5yYWluSlNcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGVuZFNlc3Npb25VUkkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPa3RhSlNcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgJ2lkX3Rva2VuX2hpbnQnOiB0aGlzLnRva2VuPy5pZFRva2VuLFxuICAgICAgICAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJzogdGhpcy5sb2dvdXRSZWRpcmVjdFVSSSxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5lbmRTZXNzaW9uRW5kcG9pbnQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5lbmRTZXNzaW9uRW5kcG9pbnR9PyR7cXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyl9YDtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodXJsKTsgIFxuICAgICAgfVxuICAgIH1cblxuICB9O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT0F1dGhDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT0F1dGhDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBdUM7QUFDdkMsK0JBQW9DO0FBQ3BDLG1DQUEwRztBQVcxRyxNQUE4QixZQUFZO0lBdUN4QyxZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFVBQWtCLEVBQUUsaUJBQXlCLEVBQUUsU0FBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUE4QixFQUFFO1FBVnBMLGNBQVMsR0FBK0MsRUFBRSxDQUFDO1FBNEhuRCx3QkFBbUIsR0FBRyxHQUFTLEVBQUU7O1lBQ3ZDLElBQUksUUFBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxZQUFZLENBQUEsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDekQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUN4RCxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUMzQjtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO2FBQzlEO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEtB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LGFBQWE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM1QixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQXVRRjtBQTlaRCwrQkE4WkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgZW5jb2RlQm9keSwgZ2VuZXJhdGVDb2RlVmVyaWZpZXIsIGdlbmVyYXRlUGtjZUNoYWxsZW5nZSwgU3RvcmFnZSwgY2hlY2tDYWxsYmFjayB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgT0F1dGhVc2VySW5mbyxcbiAgVG9rZW4sXG4gIFdhdGNoQXV0aENhbGxiYWNrLFxuICBJbml0LFxuICBDb25maWdFbmRwb2ludCxcbiAgQXV0aGVudGljYXRlQXJncyxcbiAgQ2xhaW1QYXJhbSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIE9wZW5JRENsaWVudDxDbGFpbXMgZXh0ZW5kcyB7fSA9IHt9LCBVc2VySW5mbyBleHRlbmRzIE9BdXRoVXNlckluZm8gPSBPQXV0aFVzZXJJbmZvLCBVc2VyRGF0YSBleHRlbmRzIHsgdXNlcjogVXNlckluZm8sIGNsYWltcz86IENsYWltcyB9ID0geyB1c2VyOiBVc2VySW5mbywgY2xhaW1zPzogQ2xhaW1zIH0+IHtcbiAgY2xpZW50SWQ6IHN0cmluZztcblxuICBjb25maWdVcmw6IHN0cmluZztcblxuICBzY29wZXM6IHN0cmluZ1tdO1xuXG4gIGNsYWltczogQXJyYXk8a2V5b2YgQ2xhaW1zPjtcblxuICByZWRpcmVjdFVSSTogc3RyaW5nO1xuXG4gIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmc7XG5cbiAgYXV0aG9yaXphdGlvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdXNlckluZm9FbmRwb2ludD86IHN0cmluZztcblxuICByZXZvY2F0aW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgZW5kU2Vzc2lvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuPzogVG9rZW47XG5cbiAgdXNlcj86IFVzZXJEYXRhO1xuXG4gIHN0b3JhZ2VLZXk6IHN0cmluZztcblxuICBsaXN0ZW5lcnM6IEFycmF5PFdhdGNoQXV0aENhbGxiYWNrPFVzZXJJbmZvLCBDbGFpbXM+PiA9IFtdO1xuXG4gIHJlZnJlc2hUb2tlbkludGVydmFsPzogbnVtYmVyO1xuXG4gIGNvbWVzRnJvbUxvZ2luOiBib29sZWFuO1xuXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG5cbiAgaGFzQmVlbkluaXRpYWxpemVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZ1VybDogc3RyaW5nLCByZWRpcmVjdFVSSTogc3RyaW5nLCBzdG9yYWdlS2V5OiBzdHJpbmcsIGxvZ291dFJlZGlyZWN0VVJJOiBzdHJpbmcsIHNjb3Blczogc3RyaW5nW10gPSBbJ29wZW5pZCddLCBjbGFpbXM6IEFycmF5PGtleW9mIENsYWltcz4gPSBbXSkge1xuICAgIGlmICghY2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2xpZW50SWQgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZDtcblxuICAgIGlmICghY29uZmlnVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbmZpZ1VybCBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5jb25maWdVcmwgPSBjb25maWdVcmw7XG5cbiAgICBpZiAoIXJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlZGlyZWN0VXJpIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLnJlZGlyZWN0VVJJID0gcmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIWxvZ291dFJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xvZ291dFJlZGlyZWN0VVJJIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLmxvZ291dFJlZGlyZWN0VVJJID0gbG9nb3V0UmVkaXJlY3RVUkk7XG5cbiAgICBpZiAoIXN0b3JhZ2VLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RvcmFnZUtleSBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlS2V5ID0gc3RvcmFnZUtleTtcblxuICAgIHRoaXMuY29tZXNGcm9tTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5oYXNCZWVuSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjb3BlcyA9IHNjb3BlcztcbiAgICB0aGlzLmNsYWltcyA9IGNsYWltcztcbiAgICB0aGlzLnRva2VuID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBTdG9yYWdlLmdldChgJHtzdG9yYWdlS2V5fS50b2tlbmApIDogbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTxJbml0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKHRoaXMuaGFzQmVlbkluaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBbY2FsbGJhY2tTdGF0ZSwgc3RvcmFnZU9hdXRoXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGNoZWNrQ2FsbGJhY2sod2luZG93LmxvY2F0aW9uLmhyZWYpLFxuICAgICAgU3RvcmFnZS5nZXQoYCR7dGhpcy5zdG9yYWdlS2V5fS50b2tlbmApLFxuICAgIF0pO1xuXG4gICAgLy8gV2FpdCB1bnRpbCBjb25maWd1cmF0aW9uIGhhcyBmaW5pc2hlZC5cbiAgICBhd2FpdCB0aGlzLnNldENvbmZpZygpO1xuXG4gICAgLy8gUmV0dXJuIGVhcmx5XG4gICAgaWYgKCFjYWxsYmFja1N0YXRlICYmICFzdG9yYWdlT2F1dGgpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5oYXNCZWVuSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgaWYgKGNhbGxiYWNrU3RhdGUpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFRva2VuT25Jbml0KGNhbGxiYWNrU3RhdGUpXG4gICAgfVxuXG4gICAgaWYgKHN0b3JhZ2VPYXV0aCAmJiAhc3RvcmFnZU9hdXRoLmxvZ291dCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuT25Jbml0KHN0b3JhZ2VPYXV0aClcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRUb2tlbk9uSW5pdChjYWxsYmFja1N0YXRlKTogUHJvbWlzZTxUb2tlbiB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvZGUsIFxuICAgICAgcGtjZUNvZGVWZXJpZmllciwgXG4gICAgICBjdXJyZW50U3RhdGUsIFxuICAgICAgcmVkaXJlY3RUbyxcbiAgICAgIG5ld1VybFxuICAgIH0gPSBjYWxsYmFja1N0YXRlO1xuXG4gICAgdGhpcy50b2tlbiA9IGF3YWl0IHRoaXMuZ2V0VG9rZW4oY29kZSwgcGtjZUNvZGVWZXJpZmllciwgY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLmtlZXBSZWZyZXNoaW5nVG9rZW4oKTtcblxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh3aW5kb3cuaGlzdG9yeS5zdGF0ZSwgZG9jdW1lbnQudGl0bGUsIG5ld1VybCk7XG5cbiAgICB0aGlzLmNvbWVzRnJvbUxvZ2luID0gdHJ1ZTtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSByZWRpcmVjdFRvO1xuXG4gICAgcmV0dXJuIHRoaXMudG9rZW5cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaFRva2VuT25Jbml0KHN0b3JhZ2VPYXV0aDogYW55KTogUHJvbWlzZTxUb2tlbiB8IHVuZGVmaW5lZD4ge1xuICAgIHRoaXMudG9rZW4gPSBzdG9yYWdlT2F1dGg7XG4gICAgdGhpcy5jb21lc0Zyb21Mb2dpbiA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLnRva2VuPy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIC8vIFRPRE8gQGFsbCBoYW5kbGUgY2FzZSB3aXRob3V0IHJlZnJlc2ggdG9rZW5cbiAgICAgIC8vIFRoaXMgc2hvdWxkIHRlc3QgaWYgdGhlIGN1cnJlbnQgdG9rZW4gaXMgc3RpbGwgdmFsaWRcbiAgICAgIC8vIG9yIHdlIHNob3VsZCBjaGFuZ2UgdGhlIEFQSSBjYWxscyB0byBnZXQgdGhlIHJlZnJlc2ggdG9rZW4uXG4gICAgICBjb25zb2xlLndhcm4oXCJtaXNzaW5nIHJlZnJlc2ggdG9rZW4uXCIpXG4gICAgICByZXR1cm4gdGhpcy50b2tlblxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgICAgdGhpcy5rZWVwUmVmcmVzaGluZ1Rva2VuKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnRva2VuID0gdW5kZWZpbmVkO1xuICAgICAgU3RvcmFnZS5yZW1vdmUoYCR7dGhpcy5zdG9yYWdlS2V5fS50b2tlbmApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuXG4gIH1cblxuICBwcml2YXRlIGNhbGxMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgoY2IpID0+IHtcbiAgICAgIGNiKHRoaXMudG9rZW4gJiYgdGhpcy51c2VyLCB0aGlzLmNvbWVzRnJvbUxvZ2luLCB0aGlzLnJlZGlyZWN0VG8pXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGtlZXBSZWZyZXNoaW5nVG9rZW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuPy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIGNvbnNvbGUud2FybihcIm1pc3NpbmcgcmVmcmVzaCB0b2tlbi5cIilcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51c2VyICYmIHRoaXMudG9rZW4gJiYgIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IFNBRkVUWV9HQVBfUkVGUkVTSF9UT0tFTiA9IDYwMDAwOyAvLyAxIG1pblxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sICh0aGlzLnRva2VuLmV4cGlyZXNJbiAqIDEwMDApIC0gU0FGRVRZX0dBUF9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG4gIH07XG5cbiAgd2F0Y2hBdXRoID0gYXN5bmMgKGNiOiBXYXRjaEF1dGhDYWxsYmFjazxVc2VySW5mbywgQ2xhaW1zPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goY2IpO1xuXG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG5cbiAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgYXdhaXQgdGhpcy5nZXRVc2VySW5mbygpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsbExpc3RlbmVycygpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb25maWcgPSBhc3luYyAoKTogUHJvbWlzZTxDb25maWdFbmRwb2ludCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuY29uZmlnVXJsKTtcbiAgICAgIC8vIFRPRE86IEVycm9yLCBmZXRjaCBvbmx5IHRocm93cyBvbiBjb25uZWN0aW9uIGVycm9yLCBlbHNlIHdlIGdldCAhZmV0Y2gub2tcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc2V0Q29uZmlnID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZmV0Y2hDb25maWcoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IGNvbmZpZy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgdGhpcy50b2tlbkVuZHBvaW50ID0gY29uZmlnLnRva2VuX2VuZHBvaW50O1xuICAgICAgdGhpcy51c2VySW5mb0VuZHBvaW50ID0gY29uZmlnLnVzZXJpbmZvX2VuZHBvaW50O1xuICAgICAgdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQgPSBjb25maWcucmV2b2NhdGlvbl9lbmRwb2ludDtcbiAgICAgIHRoaXMuZW5kU2Vzc2lvbkVuZHBvaW50ID0gY29uZmlnLmVuZF9zZXNzaW9uX2VuZHBvaW50O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGdldFRva2VuID0gYXN5bmMgKGNvZGU6IHN0cmluZywgb3JpZ2luYWxDb2RlVmVyaWZpZXI6IHN0cmluZywgY3VycmVudFN0YXRlOiBzdHJpbmcpOiBQcm9taXNlPFRva2VuIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkLiBUb2tlbiBlbmRwb2ludCBub3QgcHJlc2VudCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgIGNvZGUsXG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IG9yaWdpbmFsQ29kZVZlcmlmaWVyLFxuICAgIH07XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgfSksXG4gICAgICBib2R5OiBlbmNvZGVCb2R5KGJvZHkpLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnRva2VuRW5kcG9pbnQsIGNvbmZpZyk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgLy8gVE9ETzogRXJyb3IsIGRlYWwgd2l0aCBmYWlsdXJlIGNhc2VzXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGF1dGhUb2tlbi5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogYXV0aFRva2VuLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGV4cGlyZXNJbjogYXV0aFRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgIHRva2VuVHlwZTogYXV0aFRva2VuLnRva2VuX3R5cGUsXG4gICAgICAgIHNjb3BlOiBhdXRoVG9rZW4uc2NvcGUsXG4gICAgICAgIGlkVG9rZW46IGF1dGhUb2tlbi5pZF90b2tlbixcbiAgICAgIH07XG5cbiAgICAgIFN0b3JhZ2Uuc2V0KGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gLCB0aGlzLnRva2VuKTtcbiAgICAgIC8vIGNsZWFuIHVwIGxvY2FsIHN0b3JhZ2UgZnJvbSBQS0NFIGRldGFpbHNcbiAgICAgIFN0b3JhZ2UucmVtb3ZlKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAvLyBjbGVhbiB1cCBxdWVyeSBwYXJhbXMgZnJvbSBPQXV0aCByZWRpcmVjdGlvblxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZ2V0dGluZyB0b2tlbicpO1xuICAgIH1cbiAgfTtcblxuICByZWZyZXNoVG9rZW4gPSBhc3luYyAoKTogUHJvbWlzZTxJbml0IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8ICF0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCB0b2tlbiBvciBlbmRwb2ludCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCByZWZyZXNoIHRva2VuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGdyYW50X3R5cGU6ICdyZWZyZXNoX3Rva2VuJyxcbiAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMudG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgY2xpZW50X2lkOiBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jbGllbnRJZCksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9KSxcbiAgICAgIGJvZHk6IGVuY29kZUJvZHkoYm9keSksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBub3QgcmVmcmVzaGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICB0aGlzLnRva2VuID0ge1xuICAgICAgYWNjZXNzVG9rZW46IHRva2VuLmFjY2Vzc190b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogdG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgIGV4cGlyZXNJbjogdG9rZW4uZXhwaXJlc19pbixcbiAgICAgIHRva2VuVHlwZTogdG9rZW4udG9rZW5fdHlwZSxcbiAgICAgIHNjb3BlOiB0b2tlbi5zY29wZSxcbiAgICAgIGlkVG9rZW46IHRva2VuLmlkX3Rva2VuLFxuICAgIH07XG5cbiAgICBTdG9yYWdlLnNldChgJHt0aGlzLnN0b3JhZ2VLZXl9LnRva2VuYCwgdGhpcy50b2tlbik7XG5cbiAgICAvLyBUT0RPIEBhbGwgY2FsbCBsaXN0ZW5lcnMgaWYgc29tZXRoaW5nIGNoYW5nZWRcblxuICAgIC8vICg/KSBXZSBkb24ndCByZXR1cm4gdGhlIHRva2VuIGRpcmVjdGx5XG4gICAgcmV0dXJuIHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICB9O1xuXG4gIHByaXZhdGUgYXV0aGVudGljYXRlID0gKGFyZ3M6IEF1dGhlbnRpY2F0ZUFyZ3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGZvcmNlZFJlZGlyZWN0VG8sIGlzU2lnbnVwLCB1aUxvY2FsZXMgfSA9IGFyZ3M7XG4gICAgY29uc3Qgb3JpZ2luYWxDb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZUNvZGVWZXJpZmllcig5Nik7XG4gICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQa2NlQ2hhbGxlbmdlKG9yaWdpbmFsQ29kZVZlcmlmaWVyKTtcbiAgICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2ggfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCB7IG9yaWdpbiB9ID0gcXVlcnlTdHJpbmcucGFyc2Uoc2VhcmNoKTtcbiAgICBjb25zdCByZWRpcmVjdFRvID0gZm9yY2VkUmVkaXJlY3RUbyA/IGZvcmNlZFJlZGlyZWN0VG8gOiBvcmlnaW4gPyBkZWNvZGVVUklDb21wb25lbnQob3JpZ2luICsgXCJcIikgOiBwYXRobmFtZSArIHNlYXJjaDtcbiAgICBjb25zdCBzdGF0ZSA9IHV1aWR2NCgpO1xuICAgIGxldCBjbGFpbVBhcmFtO1xuICBcbiAgICBpZiAodGhpcy5jbGFpbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBjbGFpbU1hcCA9IHRoaXMuY2xhaW1zLnJlZHVjZTxDbGFpbVBhcmFtPigoY3VyciwgY2xhaW0pID0+ICh7IC4uLmN1cnIsIFtjbGFpbV06IG51bGwgfSksIHt9KTtcbiAgICAgIGNsYWltUGFyYW0gPSB0aGlzLmNsYWltcy5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB1c2VyaW5mbzogY2xhaW1NYXAsXG4gICAgICAgICAgICBpZF90b2tlbjogY2xhaW1NYXAsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3Blcy5qb2luKCcgJyksXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgICByZXNwb25zZV9tb2RlOiAncXVlcnknLFxuICAgICAgc3RhdGU6IGVuY29kZVVSSUNvbXBvbmVudChzdGF0ZSksXG4gICAgICBjb2RlX2NoYWxsZW5nZTogZW5jb2RlVVJJKGNvZGVWZXJpZmllciksXG4gICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6ICdTMjU2JyxcbiAgICAgIGNsYWltczogY2xhaW1QYXJhbSAmJiBKU09OLnN0cmluZ2lmeShjbGFpbVBhcmFtKSxcbiAgICAgIC4uLih1aUxvY2FsZXMgJiYge1xuICAgICAgICB1aV9sb2NhbGVzOiB1aUxvY2FsZXNcbiAgICAgIH0pLFxuICAgICAgLi4uKGlzU2lnbnVwICYmIHtcbiAgICAgICAgcHJvbXB0OiAnY3JlYXRlJ1xuICAgICAgfSksXG4gICAgfTtcblxuICAgIFN0b3JhZ2Uuc2V0KHN0YXRlLCB7XG4gICAgICBjb2RlVmVyaWZpZXIsXG4gICAgICBvcmlnaW5hbENvZGVWZXJpZmllcixcbiAgICAgIHJlZGlyZWN0VG8sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dpblF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hdXRob3JpemF0aW9uRW5kcG9pbnR9PyR7bG9naW5RdWVyeX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gIH1cblxuICBsb2dpbiA9IChmb3JjZWRSZWRpcmVjdFRvPzogc3RyaW5nLCB1aUxvY2FsZXM/OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZSh7IGZvcmNlZFJlZGlyZWN0VG8sIHVpTG9jYWxlcyB9KTtcbiAgfTtcblxuICBzaWdudXAgPSAoZm9yY2VkUmVkaXJlY3RUbz86IHN0cmluZywgdWlMb2NhbGVzPzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUoeyBmb3JjZWRSZWRpcmVjdFRvLCB1aUxvY2FsZXMsIGlzU2lnbnVwOiB0cnVlIH0pO1xuICB9O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkVXNlckluZm8odXNlckpTT046IGFueSwgY2xhaW1zPzogQ2xhaW1zKTogVXNlckRhdGE7XG5cbiAgZ2V0VXNlckluZm8gPSBhc3luYyAoKTogUHJvbWlzZTx7IHVzZXI6IFVzZXJJbmZvLCBjbGFpbXM/OiBDbGFpbXMgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGlmICghdGhpcy51c2VySW5mb0VuZHBvaW50IHx8ICF0aGlzLnRva2VuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy51c2VySW5mb0VuZHBvaW50LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy50b2tlbi5hY2Nlc3NUb2tlbn1gLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICBcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgY29uc3QgY2xhaW1zID0gdGhpcy5jbGFpbXMubGVuZ3RoXG4gICAgICAgID8gdGhpcy5jbGFpbXMucmVkdWNlPENsYWltcz4oKGN1cnIsIGNsYWltKSA9PiAoe1xuICAgICAgICAgIC4uLmN1cnIsXG4gICAgICAgICAgW2NsYWltXTogdXNlckluZm9bY2xhaW1dLFxuICAgICAgICB9KSwge30gYXMgQ2xhaW1zKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXNlciA9IHRoaXMubG9hZFVzZXJJbmZvKHVzZXJJbmZvLCBjbGFpbXMpO1xuXG4gICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIGdldHRpbmcgdXNlciBpbmZvLCBsb2dnaW5nIG91dC4uLicpO1xuICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICAgIGF3YWl0IHRoaXMubG9nb3V0KCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICBsb2dvdXQgPSBhc3luYyAoZW5kU2Vzc2lvblVSST86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIFN0b3JhZ2UucmVtb3ZlKGAke3RoaXMuc3RvcmFnZUtleX0udG9rZW5gKTtcblxuICAgIGlmIChlbmRTZXNzaW9uVVJJKSB7XG4gICAgICAvLyBKYW5yYWluSlNcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGVuZFNlc3Npb25VUkkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPa3RhSlNcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgJ2lkX3Rva2VuX2hpbnQnOiB0aGlzLnRva2VuPy5pZFRva2VuLFxuICAgICAgICAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJzogdGhpcy5sb2dvdXRSZWRpcmVjdFVSSSxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5lbmRTZXNzaW9uRW5kcG9pbnQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5lbmRTZXNzaW9uRW5kcG9pbnR9PyR7cXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyl9YDtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodXJsKTsgIFxuICAgICAgfVxuICAgIH1cblxuICB9O1xufVxuIl19 |
{ | ||
"name": "@mybiogen/auth-openid", | ||
"version": "1.4.4", | ||
"version": "1.4.5", | ||
"description": "Authorization for OpenID", | ||
@@ -35,3 +35,3 @@ "license": "MIT", | ||
}, | ||
"gitHead": "6ee44fb605045130fc0c980f507cb33dc62fce96" | ||
"gitHead": "98dd7fe9e7f2236298dda72f371b378cd5e72d3f" | ||
} |
Sorry, the diff of this file is not supported yet
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
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
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
83836
36
662
5