keycloak-angular 7.3.1 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -158
- package/bundles/keycloak-angular.umd.js +404 -310
- package/bundles/keycloak-angular.umd.js.map +1 -1
- package/esm2015/keycloak-angular.js +1 -1
- package/esm2015/lib/core/core.module.js +16 -18
- package/esm2015/lib/core/interceptors/keycloak-bearer.interceptor.js +6 -9
- package/esm2015/lib/core/interfaces/keycloak-event.js +1 -1
- package/esm2015/lib/core/interfaces/keycloak-options.js +2 -1
- package/esm2015/lib/core/services/keycloak-auth-guard.js +1 -1
- package/esm2015/lib/core/services/keycloak.service.js +18 -30
- package/esm2015/lib/keycloak-angular.module.js +8 -10
- package/esm2015/public_api.js +1 -1
- package/fesm2015/keycloak-angular.js +44 -65
- package/fesm2015/keycloak-angular.js.map +1 -1
- package/keycloak-angular.metadata.json +1 -1
- package/lib/core/interfaces/keycloak-options.d.ts +1 -2
- package/lib/core/services/keycloak.service.d.ts +1 -1
- package/package.json +10 -16
- package/public_api.d.ts +0 -2
- package/bundles/keycloak-angular.umd.min.js +0 -16
- package/bundles/keycloak-angular.umd.min.js.map +0 -1
- package/esm2015/lib/core/interfaces/keycloak-config.js +0 -1
- package/esm2015/lib/core/utils/to-promise.js +0 -10
- package/esm5/keycloak-angular.js +0 -2
- package/esm5/lib/core/core.module.js +0 -26
- package/esm5/lib/core/interceptors/keycloak-bearer.interceptor.js +0 -48
- package/esm5/lib/core/interfaces/keycloak-config.js +0 -1
- package/esm5/lib/core/interfaces/keycloak-event.js +0 -11
- package/esm5/lib/core/interfaces/keycloak-options.js +0 -1
- package/esm5/lib/core/services/keycloak-auth-guard.js +0 -40
- package/esm5/lib/core/services/keycloak.service.js +0 -321
- package/esm5/lib/core/utils/to-promise.js +0 -10
- package/esm5/lib/keycloak-angular.module.js +0 -15
- package/esm5/public_api.js +0 -7
- package/fesm5/keycloak-angular.js +0 -453
- package/fesm5/keycloak-angular.js.map +0 -1
- package/lib/core/interfaces/keycloak-config.d.ts +0 -9
- package/lib/core/utils/to-promise.d.ts +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2tleWNsb2FrLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvY29yZS9pbnRlcmZhY2VzL2tleWNsb2FrLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBNYXVyaWNpbyBHZW1lbGxpIFZpZ29sbyBhbmQgY29udHJpYnV0b3JzLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL21hdXJpY2lvdmlnb2xvL2tleWNsb2FrLWFuZ3VsYXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEtleWNsb2FrQ29uZmlnIH0gZnJvbSAnLi9rZXljbG9hay1jb25maWcnO1xuXG4vKipcbiAqIEhUVFAgTWV0aG9kc1xuICovXG5leHBvcnQgdHlwZSBIdHRwTWV0aG9kcyA9XG4gIHwgJ0dFVCdcbiAgfCAnUE9TVCdcbiAgfCAnUFVUJ1xuICB8ICdERUxFVEUnXG4gIHwgJ09QVElPTlMnXG4gIHwgJ0hFQUQnXG4gIHwgJ1BBVENIJztcblxuLyoqXG4gKiBFeGNsdWRlZFVybCB0eXBlIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHVybCBhbmQgdGhlIEhUVFAgbWV0aG9kIHRoYXRcbiAqIHNob3VsZCBub3QgYmUgaW50ZXJjZXB0ZWQgYnkgdGhlIEtleWNsb2FrQmVhcmVySW50ZXJjZXB0b3IuXG4gKlxuICogRXhhbXBsZTpcbiAqIGNvbnN0IGV4Y2x1ZGVkVXJsOiBFeGNsdWRlZFVybFtdID0gW1xuICogIHtcbiAqICAgIHVybDogJ3JlcG9ydHMvcHVibGljJ1xuICogICAgaHR0cE1ldGhvZHM6IFsnR0VUJ11cbiAqICB9XG4gKiBdXG4gKlxuICogSW4gdGhlIGV4YW1wbGUgYWJvdmUgZm9yIFVSTCByZXBvcnRzL3B1YmxpYyBhbmQgSFRUUCBNZXRob2QgR0VUIHRoZVxuICogYmVhcmVyIHdpbGwgbm90IGJlIGF1dG9tYXRpY2FsbHkgYWRkZWQuXG4gKlxuICogSWYgdGhlIHVybCBpcyBpbmZvcm1lZCBidXQgaHR0cE1ldGhvZCBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIGJlYXJlclxuICogd2lsbCBub3QgYmUgYWRkZWQgZm9yIGFsbCBIVFRQIE1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhjbHVkZWRVcmwge1xuICB1cmw6IHN0cmluZztcbiAgaHR0cE1ldGhvZHM/OiBIdHRwTWV0aG9kc1tdO1xufVxuXG4vKipcbiAqIFNpbWlsYXIgdG8gRXhjbHVkZWRVcmwsIGNvbnRhaW5zIHRoZSBIVFRQIG1ldGhvZHMgYW5kIGEgcmVnZXggdG9cbiAqIGluY2x1ZGUgdGhlIHVybCBwYXR0ZXJucy5cbiAqIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgS2V5Y2xvYWtTZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2x1ZGVkVXJsUmVnZXgge1xuICB1cmxQYXR0ZXJuOiBSZWdFeHA7XG4gIGh0dHBNZXRob2RzPzogSHR0cE1ldGhvZHNbXTtcbn1cblxuLyoqXG4gKiBrZXljbG9hay1hbmd1bGFyIGluaXRpYWxpemF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Y2xvYWtPcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbmZpZ3MgdG8gaW5pdCB0aGUga2V5Y2xvYWstanMgbGlicmFyeS4gSWYgdW5kZWZpbmVkLCB3aWxsIGxvb2sgZm9yIGEga2V5Y2xvYWsuanNvbiBmaWxlXG4gICAqIGF0IHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gICAqIElmIG5vdCB1bmRlZmluZWQsIGNhbiBiZSBhIHN0cmluZyBtZWFuaW5nIHRoZSB1cmwgdG8gdGhlIGtleWNsb2FrLmpzb24gZmlsZSBvciBhbiBvYmplY3RcbiAgICogb2Yge0BsaW5rIEtleWNsb2FrQ29uZmlnfS4gVXNlIHRoaXMgY29uZmlndXJhdGlvbiBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoZSBrZXljbG9hayBzZXJ2ZXIsXG4gICAqIHJlYWxtLCBjbGllbnRJZC4gVGhpcyBpcyB1c2VmdWxsIGlmIHlvdSBoYXZlIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucyBmb3IgcHJvZHVjdGlvbiwgc3RhZ2VcbiAgICogYW5kIGRldmVsb3BtZW50IGVudmlyb25tZW50cy4gSGludDogTWFrZSB1c2Ugb2YgQW5ndWxhciBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgY29uZmlnPzogc3RyaW5nIHwgS2V5Y2xvYWtDb25maWc7XG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGluaXRpYWxpemUgdGhlIEtleWNsb2FrIGFkYXB0ZXIsIG1hdGNoZXMgdGhlIG9wdGlvbnMgYXMgcHJvdmlkZWQgYnkgS2V5Y2xvYWsgaXRzZWxmLlxuICAgKi9cbiAgaW5pdE9wdGlvbnM/OiBLZXljbG9hay5LZXljbG9ha0luaXRPcHRpb25zO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCBhbGwgcmVxdWVzdHMgbWFkZSBieSBBbmd1bGFyIEh0dHBDbGllbnQgd2lsbCBiZSBpbnRlcmNlcHRlZCBpbiBvcmRlciB0b1xuICAgKiBhZGQgdGhlIGJlYXJlciBpbiB0aGUgQXV0aG9yaXphdGlvbiBIdHRwIEhlYWRlci4gSG93ZXZlciwgaWYgdGhpcyBpcyBhIG5vdCBkZXNpcmVkXG4gICAqIGZlYXR1cmUsIHRoZSBlbmFibGVCZWFyZXJJbnRlcmNlcHRvciBtdXN0IGJlIGZhbHNlLlxuICAgKlxuICAgKiBCcmllZmx5LCBpZiBlbmFibGVCZWFyZXJJbnRlcmNlcHRvciA9PT0gZmFsc2UsIHRoZSBiZWFyZXIgd2lsbCBub3QgYmUgYWRkZWRcbiAgICogdG8gdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0cnVlLlxuICAgKi9cbiAgZW5hYmxlQmVhcmVySW50ZXJjZXB0b3I/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9yY2VzIHRoZSBleGVjdXRpb24gb2YgbG9hZFVzZXJQcm9maWxlIGFmdGVyIHRoZSBrZXljbG9hayBpbml0aWFsaXphdGlvbiBjb25zaWRlcmluZyB0aGF0IHRoZVxuICAgKiB1c2VyIGxvZ2dlZCBpbi5cbiAgICogVGhpcyBvcHRpb24gaXMgcmVjb21tZW5kZWQgaWYgaXMgZGVzaXJhYmxlIHRvIGhhdmUgdGhlIHVzZXIgZGV0YWlscyBhdCB0aGUgYmVnaW5uaW5nLFxuICAgKiBzbyBhZnRlciB0aGUgbG9naW4sIHRoZSBsb2FkVXNlclByb2ZpbGUgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYW5kIGl0J3MgdmFsdWUgY2FjaGVkLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0cnVlLlxuICAgKi9cbiAgbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN0cmluZyBBcnJheSB0byBleGNsdWRlIHRoZSB1cmxzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIHRoZSBBdXRob3JpemF0aW9uIEhlYWRlciBhdXRvbWF0aWNhbGx5XG4gICAqIGFkZGVkLiBUaGlzIGxpYnJhcnkgbWFrZXMgdXNlIG9mIEFuZ3VsYXIgSHR0cCBJbnRlcmNlcHRvciwgdG8gYXV0b21hdGljYWxseSBhZGQgdGhlIEJlYXJlclxuICAgKiB0b2tlbiB0byB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGJlYXJlckV4Y2x1ZGVkVXJscz86IChzdHJpbmcgfCBFeGNsdWRlZFVybClbXTtcbiAgLyoqXG4gICAqIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIHRoZSBBdXRob3JpemF0aW9uIEh0dHAgSGVhZGVyIG5hbWUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzXG4gICAqICoqQXV0aG9yaXphdGlvbioqLiBJZiB0aGUgYmFja2VuZCBleHBlY3RzIHJlcXVlc3RzIHRvIGhhdmUgYSB0b2tlbiBpbiBhIGRpZmZlcmVudCBoZWFkZXIsIHlvdVxuICAgKiBzaG91bGQgY2hhbmdlIHRoaXMgdmFsdWUsIGkuZTogKipKV1QtQXV0aG9yaXphdGlvbioqLiBUaGlzIHdpbGwgcmVzdWx0IGluIGEgSHR0cCBIZWFkZXJcbiAgICogQXV0aG9yaXphdGlvbiBhcyBcIkpXVC1BdXRob3JpemF0aW9uOiBiZWFyZXIgPHRva2VuPlwiLlxuICAgKi9cbiAgYXV0aG9yaXphdGlvbkhlYWRlck5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGlzIHZhbHVlIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIEF1dGhvcml6YXRpb24gSHR0cCBIZWFkZXIgcGFyYW0uIFRoZSBkZWZhdWx0IHZhbHVlIGlzXG4gICAqICoqYmVhcmVyKiosIHdoaWNoIHdpbGwgcmVzdWx0IGluIGEgSHR0cCBIZWFkZXIgQXV0aG9yaXphdGlvbiBhcyBcIkF1dGhvcml6YXRpb246IGJlYXJlciA8dG9rZW4+XCIuXG4gICAqIElmIGFueSBvdGhlciB2YWx1ZSBpcyBuZWVkZWQgYnkgdGhlIGJhY2tlbmQgaW4gdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyLCB5b3Ugc2hvdWxkIGNoYW5nZSB0aGlzXG4gICAqIHZhbHVlLCBpLmU6ICoqQmVhcmVyKiouXG4gICAqXG4gICAqIFdhcm5pbmc6IHRoaXMgdmFsdWUgbXVzdCBiZSBpbiBjb21wbGlhbmNlIHdpdGggdGhlIGtleWNsb2FrIHNlcnZlciBpbnN0YW5jZSBhbmQgdGhlIGFkYXB0ZXIuXG4gICAqL1xuICBiZWFyZXJQcmVmaXg/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
|
-
var KeycloakAuthGuard = (function () {
|
|
3
|
-
function KeycloakAuthGuard(router, keycloakAngular) {
|
|
4
|
-
this.router = router;
|
|
5
|
-
this.keycloakAngular = keycloakAngular;
|
|
6
|
-
}
|
|
7
|
-
KeycloakAuthGuard.prototype.canActivate = function (route, state) {
|
|
8
|
-
var _this = this;
|
|
9
|
-
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
10
|
-
var _a, _b, result, error_1;
|
|
11
|
-
return __generator(this, function (_c) {
|
|
12
|
-
switch (_c.label) {
|
|
13
|
-
case 0:
|
|
14
|
-
_c.trys.push([0, 4, , 5]);
|
|
15
|
-
_a = this;
|
|
16
|
-
return [4, this.keycloakAngular.isLoggedIn()];
|
|
17
|
-
case 1:
|
|
18
|
-
_a.authenticated = _c.sent();
|
|
19
|
-
_b = this;
|
|
20
|
-
return [4, this.keycloakAngular.getUserRoles(true)];
|
|
21
|
-
case 2:
|
|
22
|
-
_b.roles = _c.sent();
|
|
23
|
-
return [4, this.isAccessAllowed(route, state)];
|
|
24
|
-
case 3:
|
|
25
|
-
result = _c.sent();
|
|
26
|
-
resolve(result);
|
|
27
|
-
return [3, 5];
|
|
28
|
-
case 4:
|
|
29
|
-
error_1 = _c.sent();
|
|
30
|
-
reject('An error happened during access validation. Details:' + error_1);
|
|
31
|
-
return [3, 5];
|
|
32
|
-
case 5: return [2];
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}); });
|
|
36
|
-
};
|
|
37
|
-
return KeycloakAuthGuard;
|
|
38
|
-
}());
|
|
39
|
-
export { KeycloakAuthGuard };
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstYXV0aC1ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2tleWNsb2FrLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvY29yZS9zZXJ2aWNlcy9rZXljbG9hay1hdXRoLWd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFrQkE7SUFVRSwyQkFBc0IsTUFBYyxFQUFZLGVBQWdDO1FBQTFELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBU3BGLHVDQUFXLEdBQVgsVUFBWSxLQUE2QixFQUFFLEtBQTBCO1FBQXJFLGlCQVlDO1FBWEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFPLE9BQU8sRUFBRSxNQUFNOzs7Ozs7d0JBRXJDLEtBQUEsSUFBSSxDQUFBO3dCQUFpQixXQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUE7O3dCQUE1RCxHQUFLLGFBQWEsR0FBRyxTQUF1QyxDQUFDO3dCQUM3RCxLQUFBLElBQUksQ0FBQTt3QkFBUyxXQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFBOzt3QkFBMUQsR0FBSyxLQUFLLEdBQUcsU0FBNkMsQ0FBQzt3QkFFNUMsV0FBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBQTs7d0JBQWpELE1BQU0sR0FBRyxTQUF3Qzt3QkFDdkQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDOzs7O3dCQUVoQixNQUFNLENBQUMsc0RBQXNELEdBQUcsT0FBSyxDQUFDLENBQUM7Ozs7O2FBRTFFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFlSCx3QkFBQztBQUFELENBQUMsQUE5Q0QsSUE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTWF1cmljaW8gR2VtZWxsaSBWaWdvbG8gYW5kIGNvbnRyaWJ1dG9ycy5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXVyaWNpb3ZpZ29sby9rZXljbG9hay1hbmd1bGFyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAnLi9rZXljbG9hay5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIHNpbXBsZSBndWFyZCBpbXBsZW1lbnRhdGlvbiBvdXQgb2YgdGhlIGJveC4gVGhpcyBjbGFzcyBzaG91bGQgYmUgaW5oZXJpdGVkIGFuZFxuICogaW1wbGVtZW50ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGUgb25seSBtZXRob2QgdGhhdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaXMgI2lzQWNjZXNzQWxsb3dlZC5cbiAqIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB0aGUgYXV0aG9yaXphdGlvbiBmbG93IGlzIHVzdWFsbHkgbm90IHVuaXF1ZSwgc28gaW4gdGhpcyB3YXkgeW91IHdpbGxcbiAqIGhhdmUgbW9yZSBmcmVlZG9tIHRvIGN1c3RvbWl6ZSB5b3VyIGF1dGhvcml6YXRpb24gZmxvdy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEtleWNsb2FrQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQgb3Igbm90LlxuICAgKi9cbiAgcHJvdGVjdGVkIGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSb2xlcyBvZiB0aGUgbG9nZ2VkIHVzZXIuIEl0IGNvbnRhaW5zIHRoZSBjbGllbnRJZCBhbmQgcmVhbG0gdXNlciByb2xlcy5cbiAgICovXG4gIHByb3RlY3RlZCByb2xlczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQga2V5Y2xvYWtBbmd1bGFyOiBLZXljbG9ha1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIENhbkFjdGl2YXRlIGNoZWNrcyBpZiB0aGUgdXNlciBpcyBsb2dnZWQgaW4gYW5kIGdldCB0aGUgZnVsbCBsaXN0IG9mIHJvbGVzIChSRUFMTSArIENMSUVOVClcbiAgICogb2YgdGhlIGxvZ2dlZCB1c2VyLiBUaGlzIHZhbHVlcyBhcmUgc2V0IHRvIGF1dGhlbnRpY2F0ZWQgYW5kIHJvbGVzIHBhcmFtcy5cbiAgICpcbiAgICogQHBhcmFtIHJvdXRlXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKi9cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0ZWQgPSBhd2FpdCB0aGlzLmtleWNsb2FrQW5ndWxhci5pc0xvZ2dlZEluKCk7XG4gICAgICAgIHRoaXMucm9sZXMgPSBhd2FpdCB0aGlzLmtleWNsb2FrQW5ndWxhci5nZXRVc2VyUm9sZXModHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pc0FjY2Vzc0FsbG93ZWQocm91dGUsIHN0YXRlKTtcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KCdBbiBlcnJvciBoYXBwZW5lZCBkdXJpbmcgYWNjZXNzIHZhbGlkYXRpb24uIERldGFpbHM6JyArIGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgeW91ciBvd24gY3VzdG9taXplZCBhdXRob3JpemF0aW9uIGZsb3cgaW4gdGhpcyBtZXRob2QuIEZyb20gaGVyZSB5b3UgYWxyZWFkeSBrbm93blxuICAgKiBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkICh0aGlzLmF1dGhlbnRpY2F0ZWQpIGFuZCB0aGUgdXNlciByb2xlcyAodGhpcy5yb2xlcykuXG4gICAqXG4gICAqIFJldHVybiBhIFVybFRyZWUgaWYgdGhlIHVzZXIgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdG8gYW5vdGhlciByb3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIHJvdXRlXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNBY2Nlc3NBbGxvd2VkKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+O1xufVxuIl19
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __generator, __read, __spread, __values } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
4
|
-
import { Subject, from } from 'rxjs';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import * as Keycloak_ from 'keycloak-js';
|
|
7
|
-
export var Keycloak = Keycloak_;
|
|
8
|
-
import { KeycloakEventType } from '../interfaces/keycloak-event';
|
|
9
|
-
import { toPromise } from '../utils/to-promise';
|
|
10
|
-
var KeycloakService = (function () {
|
|
11
|
-
function KeycloakService() {
|
|
12
|
-
this._keycloakEvents$ = new Subject();
|
|
13
|
-
}
|
|
14
|
-
KeycloakService.prototype.bindsKeycloakEvents = function () {
|
|
15
|
-
var _this = this;
|
|
16
|
-
this._instance.onAuthError = function (errorData) {
|
|
17
|
-
_this._keycloakEvents$.next({
|
|
18
|
-
args: errorData,
|
|
19
|
-
type: KeycloakEventType.OnAuthError,
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
this._instance.onAuthLogout = function () {
|
|
23
|
-
_this._keycloakEvents$.next({ type: KeycloakEventType.OnAuthLogout });
|
|
24
|
-
};
|
|
25
|
-
this._instance.onAuthRefreshSuccess = function () {
|
|
26
|
-
_this._keycloakEvents$.next({
|
|
27
|
-
type: KeycloakEventType.OnAuthRefreshSuccess,
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
this._instance.onAuthRefreshError = function () {
|
|
31
|
-
_this._keycloakEvents$.next({
|
|
32
|
-
type: KeycloakEventType.OnAuthRefreshError,
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
this._instance.onAuthSuccess = function () {
|
|
36
|
-
_this._keycloakEvents$.next({ type: KeycloakEventType.OnAuthSuccess });
|
|
37
|
-
};
|
|
38
|
-
this._instance.onTokenExpired = function () {
|
|
39
|
-
_this._keycloakEvents$.next({
|
|
40
|
-
type: KeycloakEventType.OnTokenExpired,
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
this._instance.onReady = function (authenticated) {
|
|
44
|
-
_this._keycloakEvents$.next({
|
|
45
|
-
args: authenticated,
|
|
46
|
-
type: KeycloakEventType.OnReady,
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
KeycloakService.prototype.loadExcludedUrls = function (bearerExcludedUrls) {
|
|
51
|
-
var e_1, _a;
|
|
52
|
-
var excludedUrls = [];
|
|
53
|
-
try {
|
|
54
|
-
for (var bearerExcludedUrls_1 = __values(bearerExcludedUrls), bearerExcludedUrls_1_1 = bearerExcludedUrls_1.next(); !bearerExcludedUrls_1_1.done; bearerExcludedUrls_1_1 = bearerExcludedUrls_1.next()) {
|
|
55
|
-
var item = bearerExcludedUrls_1_1.value;
|
|
56
|
-
var excludedUrl = void 0;
|
|
57
|
-
if (typeof item === 'string') {
|
|
58
|
-
excludedUrl = { urlPattern: new RegExp(item, 'i'), httpMethods: [] };
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
excludedUrl = {
|
|
62
|
-
urlPattern: new RegExp(item.url, 'i'),
|
|
63
|
-
httpMethods: item.httpMethods,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
excludedUrls.push(excludedUrl);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
70
|
-
finally {
|
|
71
|
-
try {
|
|
72
|
-
if (bearerExcludedUrls_1_1 && !bearerExcludedUrls_1_1.done && (_a = bearerExcludedUrls_1.return)) _a.call(bearerExcludedUrls_1);
|
|
73
|
-
}
|
|
74
|
-
finally { if (e_1) throw e_1.error; }
|
|
75
|
-
}
|
|
76
|
-
return excludedUrls;
|
|
77
|
-
};
|
|
78
|
-
KeycloakService.prototype.initServiceValues = function (_a) {
|
|
79
|
-
var _b = _a.enableBearerInterceptor, enableBearerInterceptor = _b === void 0 ? true : _b, _c = _a.loadUserProfileAtStartUp, loadUserProfileAtStartUp = _c === void 0 ? true : _c, _d = _a.bearerExcludedUrls, bearerExcludedUrls = _d === void 0 ? [] : _d, _e = _a.authorizationHeaderName, authorizationHeaderName = _e === void 0 ? 'Authorization' : _e, _f = _a.bearerPrefix, bearerPrefix = _f === void 0 ? 'bearer' : _f, initOptions = _a.initOptions;
|
|
80
|
-
this._enableBearerInterceptor = enableBearerInterceptor;
|
|
81
|
-
this._loadUserProfileAtStartUp = loadUserProfileAtStartUp;
|
|
82
|
-
this._authorizationHeaderName = authorizationHeaderName;
|
|
83
|
-
this._bearerPrefix = bearerPrefix.trim().concat(' ');
|
|
84
|
-
this._excludedUrls = this.loadExcludedUrls(bearerExcludedUrls);
|
|
85
|
-
this._silentRefresh = initOptions ? initOptions.flow === 'implicit' : false;
|
|
86
|
-
};
|
|
87
|
-
KeycloakService.prototype.init = function (options) {
|
|
88
|
-
if (options === void 0) { options = {}; }
|
|
89
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
-
var config, initOptions, authenticated;
|
|
91
|
-
return __generator(this, function (_a) {
|
|
92
|
-
switch (_a.label) {
|
|
93
|
-
case 0:
|
|
94
|
-
this.initServiceValues(options);
|
|
95
|
-
config = options.config, initOptions = options.initOptions;
|
|
96
|
-
this._instance = Keycloak(config);
|
|
97
|
-
this.bindsKeycloakEvents();
|
|
98
|
-
return [4, toPromise(this._instance.init(initOptions))];
|
|
99
|
-
case 1:
|
|
100
|
-
authenticated = _a.sent();
|
|
101
|
-
if (!(authenticated && this._loadUserProfileAtStartUp)) return [3, 3];
|
|
102
|
-
return [4, this.loadUserProfile()];
|
|
103
|
-
case 2:
|
|
104
|
-
_a.sent();
|
|
105
|
-
_a.label = 3;
|
|
106
|
-
case 3: return [2, authenticated];
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
KeycloakService.prototype.login = function (options) {
|
|
112
|
-
if (options === void 0) { options = {}; }
|
|
113
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
114
|
-
return __generator(this, function (_a) {
|
|
115
|
-
switch (_a.label) {
|
|
116
|
-
case 0: return [4, toPromise(this._instance.login(options))];
|
|
117
|
-
case 1:
|
|
118
|
-
_a.sent();
|
|
119
|
-
if (!this._loadUserProfileAtStartUp) return [3, 3];
|
|
120
|
-
return [4, this.loadUserProfile()];
|
|
121
|
-
case 2:
|
|
122
|
-
_a.sent();
|
|
123
|
-
_a.label = 3;
|
|
124
|
-
case 3: return [2];
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
KeycloakService.prototype.logout = function (redirectUri) {
|
|
130
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
131
|
-
var options;
|
|
132
|
-
return __generator(this, function (_a) {
|
|
133
|
-
switch (_a.label) {
|
|
134
|
-
case 0:
|
|
135
|
-
options = {
|
|
136
|
-
redirectUri: redirectUri,
|
|
137
|
-
};
|
|
138
|
-
return [4, toPromise(this._instance.logout(options))];
|
|
139
|
-
case 1:
|
|
140
|
-
_a.sent();
|
|
141
|
-
this._userProfile = undefined;
|
|
142
|
-
return [2];
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
};
|
|
147
|
-
KeycloakService.prototype.register = function (options) {
|
|
148
|
-
if (options === void 0) { options = { action: 'register' }; }
|
|
149
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
-
return __generator(this, function (_a) {
|
|
151
|
-
switch (_a.label) {
|
|
152
|
-
case 0: return [4, toPromise(this._instance.register(options))];
|
|
153
|
-
case 1:
|
|
154
|
-
_a.sent();
|
|
155
|
-
return [2];
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
KeycloakService.prototype.isUserInRole = function (role, resource) {
|
|
161
|
-
var hasRole;
|
|
162
|
-
hasRole = this._instance.hasResourceRole(role, resource);
|
|
163
|
-
if (!hasRole) {
|
|
164
|
-
hasRole = this._instance.hasRealmRole(role);
|
|
165
|
-
}
|
|
166
|
-
return hasRole;
|
|
167
|
-
};
|
|
168
|
-
KeycloakService.prototype.getUserRoles = function (allRoles) {
|
|
169
|
-
if (allRoles === void 0) { allRoles = true; }
|
|
170
|
-
var roles = [];
|
|
171
|
-
if (this._instance.resourceAccess) {
|
|
172
|
-
for (var key in this._instance.resourceAccess) {
|
|
173
|
-
if (this._instance.resourceAccess.hasOwnProperty(key)) {
|
|
174
|
-
var resourceAccess = this._instance.resourceAccess[key];
|
|
175
|
-
var clientRoles = resourceAccess['roles'] || [];
|
|
176
|
-
roles = roles.concat(clientRoles);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
if (allRoles && this._instance.realmAccess) {
|
|
181
|
-
var realmRoles = this._instance.realmAccess['roles'] || [];
|
|
182
|
-
roles.push.apply(roles, __spread(realmRoles));
|
|
183
|
-
}
|
|
184
|
-
return roles;
|
|
185
|
-
};
|
|
186
|
-
KeycloakService.prototype.isLoggedIn = function () {
|
|
187
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
188
|
-
var error_1;
|
|
189
|
-
return __generator(this, function (_a) {
|
|
190
|
-
switch (_a.label) {
|
|
191
|
-
case 0:
|
|
192
|
-
_a.trys.push([0, 2, , 3]);
|
|
193
|
-
if (!this._instance.authenticated) {
|
|
194
|
-
return [2, false];
|
|
195
|
-
}
|
|
196
|
-
return [4, this.updateToken(20)];
|
|
197
|
-
case 1:
|
|
198
|
-
_a.sent();
|
|
199
|
-
return [2, true];
|
|
200
|
-
case 2:
|
|
201
|
-
error_1 = _a.sent();
|
|
202
|
-
return [2, false];
|
|
203
|
-
case 3: return [2];
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
};
|
|
208
|
-
KeycloakService.prototype.isTokenExpired = function (minValidity) {
|
|
209
|
-
if (minValidity === void 0) { minValidity = 0; }
|
|
210
|
-
return this._instance.isTokenExpired(minValidity);
|
|
211
|
-
};
|
|
212
|
-
KeycloakService.prototype.updateToken = function (minValidity) {
|
|
213
|
-
if (minValidity === void 0) { minValidity = 5; }
|
|
214
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
215
|
-
return __generator(this, function (_a) {
|
|
216
|
-
if (this._silentRefresh) {
|
|
217
|
-
if (this.isTokenExpired()) {
|
|
218
|
-
throw new Error('Failed to refresh the token, or the session is expired');
|
|
219
|
-
}
|
|
220
|
-
return [2, true];
|
|
221
|
-
}
|
|
222
|
-
if (!this._instance) {
|
|
223
|
-
throw new Error('Keycloak Angular library is not initialized.');
|
|
224
|
-
}
|
|
225
|
-
return [2, toPromise(this._instance.updateToken(minValidity))];
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
};
|
|
229
|
-
KeycloakService.prototype.loadUserProfile = function (forceReload) {
|
|
230
|
-
if (forceReload === void 0) { forceReload = false; }
|
|
231
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
232
|
-
var _a;
|
|
233
|
-
return __generator(this, function (_b) {
|
|
234
|
-
switch (_b.label) {
|
|
235
|
-
case 0:
|
|
236
|
-
if (this._userProfile && !forceReload) {
|
|
237
|
-
return [2, this._userProfile];
|
|
238
|
-
}
|
|
239
|
-
if (!this._instance.authenticated) {
|
|
240
|
-
throw new Error('The user profile was not loaded as the user is not logged in.');
|
|
241
|
-
}
|
|
242
|
-
_a = this;
|
|
243
|
-
return [4, toPromise(this._instance.loadUserProfile())];
|
|
244
|
-
case 1: return [2, (_a._userProfile = _b.sent())];
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
};
|
|
249
|
-
KeycloakService.prototype.getToken = function (forceLogin) {
|
|
250
|
-
if (forceLogin === void 0) { forceLogin = true; }
|
|
251
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
252
|
-
var error_2;
|
|
253
|
-
return __generator(this, function (_a) {
|
|
254
|
-
switch (_a.label) {
|
|
255
|
-
case 0:
|
|
256
|
-
_a.trys.push([0, 2, , 3]);
|
|
257
|
-
return [4, this.updateToken(10)];
|
|
258
|
-
case 1:
|
|
259
|
-
_a.sent();
|
|
260
|
-
return [2, this._instance.token];
|
|
261
|
-
case 2:
|
|
262
|
-
error_2 = _a.sent();
|
|
263
|
-
if (forceLogin) {
|
|
264
|
-
this.login();
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
throw error_2;
|
|
268
|
-
}
|
|
269
|
-
return [3, 3];
|
|
270
|
-
case 3: return [2];
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
};
|
|
275
|
-
KeycloakService.prototype.getUsername = function () {
|
|
276
|
-
if (!this._userProfile) {
|
|
277
|
-
throw new Error('User not logged in or user profile was not loaded.');
|
|
278
|
-
}
|
|
279
|
-
return this._userProfile.username;
|
|
280
|
-
};
|
|
281
|
-
KeycloakService.prototype.clearToken = function () {
|
|
282
|
-
this._instance.clearToken();
|
|
283
|
-
};
|
|
284
|
-
KeycloakService.prototype.addTokenToHeader = function (headers) {
|
|
285
|
-
var _this = this;
|
|
286
|
-
if (headers === void 0) { headers = new HttpHeaders(); }
|
|
287
|
-
return from(this.getToken()).pipe(map(function (token) {
|
|
288
|
-
return headers.set(_this._authorizationHeaderName, _this._bearerPrefix + token);
|
|
289
|
-
}));
|
|
290
|
-
};
|
|
291
|
-
KeycloakService.prototype.getKeycloakInstance = function () {
|
|
292
|
-
return this._instance;
|
|
293
|
-
};
|
|
294
|
-
Object.defineProperty(KeycloakService.prototype, "excludedUrls", {
|
|
295
|
-
get: function () {
|
|
296
|
-
return this._excludedUrls;
|
|
297
|
-
},
|
|
298
|
-
enumerable: true,
|
|
299
|
-
configurable: true
|
|
300
|
-
});
|
|
301
|
-
Object.defineProperty(KeycloakService.prototype, "enableBearerInterceptor", {
|
|
302
|
-
get: function () {
|
|
303
|
-
return this._enableBearerInterceptor;
|
|
304
|
-
},
|
|
305
|
-
enumerable: true,
|
|
306
|
-
configurable: true
|
|
307
|
-
});
|
|
308
|
-
Object.defineProperty(KeycloakService.prototype, "keycloakEvents$", {
|
|
309
|
-
get: function () {
|
|
310
|
-
return this._keycloakEvents$;
|
|
311
|
-
},
|
|
312
|
-
enumerable: true,
|
|
313
|
-
configurable: true
|
|
314
|
-
});
|
|
315
|
-
KeycloakService = __decorate([
|
|
316
|
-
Injectable()
|
|
317
|
-
], KeycloakService);
|
|
318
|
-
return KeycloakService;
|
|
319
|
-
}());
|
|
320
|
-
export { KeycloakService };
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2tleWNsb2FrLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvY29yZS9zZXJ2aWNlcy9rZXljbG9hay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFRQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxLQUFLLFNBQVMsTUFBTSxhQUFhLENBQUM7QUFDekMsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQztBQU9sQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVWhEO0lBQUE7UUFzQ1UscUJBQWdCLEdBQTJCLElBQUksT0FBTyxFQUUzRCxDQUFDO0lBa2ROLENBQUM7SUF6Y1MsNkNBQW1CLEdBQTNCO1FBQUEsaUJBd0NDO1FBdkNDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFVBQUMsU0FBUztZQUNyQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsaUJBQWlCLENBQUMsV0FBVzthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRztZQUM1QixLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDO1FB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QWdCLEdBQXZCLFVBQXdCLE9BQXdDO1FBQWhFLGlCQU1DO1FBTnVCLHdCQUFBLEVBQUEsY0FBMkIsV0FBVyxFQUFFO1FBQzlELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLFVBQUMsS0FBSztZQUNSLE9BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsd0JBQXdCLEVBQUUsS0FBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFBdEUsQ0FBc0UsQ0FDdkUsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQVNELDZDQUFtQixHQUFuQjtRQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBU0Qsc0JBQUkseUNBQVk7YUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7SUFRRCxzQkFBSSxvREFBdUI7YUFBM0I7WUFDRSxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUN2QyxDQUFDOzs7T0FBQTtJQXFCRCxzQkFBSSw0Q0FBZTthQUFuQjtZQUNFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBemZVLGVBQWU7UUFEM0IsVUFBVSxFQUFFO09BQ0EsZUFBZSxDQTBmM0I7SUFBRCxzQkFBQztDQUFBLEFBMWZELElBMGZDO1NBMWZZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTWF1cmljaW8gR2VtZWxsaSBWaWdvbG8gYW5kIGNvbnRyaWJ1dG9ycy5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXVyaWNpb3ZpZ29sby9rZXljbG9hay1hbmd1bGFyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBXb3JrYXJvdW5kIGZvciByb2xsdXAgbGlicmFyeSBiZWhhdmlvdXIsIGFzIHBvaW50ZWQgb3V0IG9uIGlzc3VlICMxMjY3IChodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvMTI2NykuXG5pbXBvcnQgKiBhcyBLZXljbG9ha18gZnJvbSAna2V5Y2xvYWstanMnO1xuZXhwb3J0IGNvbnN0IEtleWNsb2FrID0gS2V5Y2xvYWtfO1xuXG5pbXBvcnQge1xuICBFeGNsdWRlZFVybCxcbiAgRXhjbHVkZWRVcmxSZWdleCxcbiAgS2V5Y2xvYWtPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2tleWNsb2FrLW9wdGlvbnMnO1xuaW1wb3J0IHsgS2V5Y2xvYWtFdmVudCwgS2V5Y2xvYWtFdmVudFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2tleWNsb2FrLWV2ZW50JztcbmltcG9ydCB7IHRvUHJvbWlzZSB9IGZyb20gJy4uL3V0aWxzL3RvLXByb21pc2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gZXhwb3NlIGV4aXN0ZW50IG1ldGhvZHMgZnJvbSB0aGUgS2V5Y2xvYWsgSlMgYWRhcHRlciwgYWRkaW5nIG5ld1xuICogZnVuY3Rpb25hbGl0aWVzIHRvIGltcHJvdmUgdGhlIHVzZSBvZiBrZXljbG9hayBpbiBBbmd1bGFyIHYgPiA0LjMgYXBwbGljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2hvdWxkIGJlIGluamVjdGVkIGluIHRoZSBhcHBsaWNhdGlvbiBib290c3RyYXAsIHNvIHRoZSBzYW1lIGluc3RhbmNlIHdpbGwgYmUgdXNlZFxuICogYWxvbmcgdGhlIHdlYiBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrU2VydmljZSB7XG4gIC8qKlxuICAgKiBLZXljbG9hay1qcyBpbnN0YW5jZS5cbiAgICovXG4gIHByaXZhdGUgX2luc3RhbmNlOiBLZXljbG9hay5LZXljbG9ha0luc3RhbmNlO1xuICAvKipcbiAgICogVXNlciBwcm9maWxlIGFzIEtleWNsb2FrUHJvZmlsZSBpbnRlcmZhY2UuXG4gICAqL1xuICBwcml2YXRlIF91c2VyUHJvZmlsZTogS2V5Y2xvYWsuS2V5Y2xvYWtQcm9maWxlO1xuICAvKipcbiAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgYmVhcmVyIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBhdXRob3JpemF0aW9uIGhlYWRlci5cbiAgICovXG4gIHByaXZhdGUgX2VuYWJsZUJlYXJlckludGVyY2VwdG9yOiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0aGUgaW1wbGljaXQgZmxvdyBpcyBjaG9vc2VuIHRoZXJlIG11c3QgZXhpc3QgYSBzaWxlbnRSZWZyZXNoLCBhcyB0aGVyZSBpc1xuICAgKiBubyByZWZyZXNoIHRva2VuLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2lsZW50UmVmcmVzaDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSB1c2VyIHByb2ZpbGUgc2hvdWxkIGJlIGxvYWRlZCBhdCB0aGUga2V5Y2xvYWsgaW5pdGlhbGl6YXRpb24sXG4gICAqIGp1c3QgYWZ0ZXIgdGhlIGxvZ2luLlxuICAgKi9cbiAgcHJpdmF0ZSBfbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwOiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGJlYXJlciBwcmVmaXggdGhhdCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBBdXRob3JpemF0aW9uIEhlYWRlci5cbiAgICovXG4gIHByaXZhdGUgX2JlYXJlclByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogVmFsdWUgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIEF1dGhvcml6YXRpb24gSHR0cCBIZWFkZXIgbmFtZS5cbiAgICovXG4gIHByaXZhdGUgX2F1dGhvcml6YXRpb25IZWFkZXJOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZXhjbHVkZWQgdXJscyBwYXR0ZXJucyB0aGF0IG11c3Qgc2tpcCB0aGUgS2V5Y2xvYWtCZWFyZXJJbnRlcmNlcHRvci5cbiAgICovXG4gIHByaXZhdGUgX2V4Y2x1ZGVkVXJsczogRXhjbHVkZWRVcmxSZWdleFtdO1xuICAvKipcbiAgICogT2JzZXJ2ZXIgZm9yIHRoZSBrZXljbG9hayBldmVudHNcbiAgICovXG4gIHByaXZhdGUgX2tleWNsb2FrRXZlbnRzJDogU3ViamVjdDxLZXljbG9ha0V2ZW50PiA9IG5ldyBTdWJqZWN0PFxuICAgIEtleWNsb2FrRXZlbnRcbiAgPigpO1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUga2V5Y2xvYWstanMgZXZlbnRzIHRvIHRoZSBrZXljbG9ha0V2ZW50cyBTdWJqZWN0XG4gICAqIHdoaWNoIGlzIGEgZ29vZCB3YXkgdG8gbW9uaXRvciBmb3IgY2hhbmdlcywgaWYgbmVlZGVkLlxuICAgKlxuICAgKiBUaGUga2V5Y2xvYWtFdmVudHMgcmV0dXJucyB0aGUga2V5Y2xvYWstanMgZXZlbnQgdHlwZSBhbmQgYW55XG4gICAqIGFyZ3VtZW50IGlmIHRoZSBzb3VyY2UgZnVuY3Rpb24gcHJvdmlkZXMgYW55LlxuICAgKi9cbiAgcHJpdmF0ZSBiaW5kc0tleWNsb2FrRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLm9uQXV0aEVycm9yID0gKGVycm9yRGF0YSkgPT4ge1xuICAgICAgdGhpcy5fa2V5Y2xvYWtFdmVudHMkLm5leHQoe1xuICAgICAgICBhcmdzOiBlcnJvckRhdGEsXG4gICAgICAgIHR5cGU6IEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aEVycm9yLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHRoaXMuX2luc3RhbmNlLm9uQXV0aExvZ291dCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2tleWNsb2FrRXZlbnRzJC5uZXh0KHsgdHlwZTogS2V5Y2xvYWtFdmVudFR5cGUuT25BdXRoTG9nb3V0IH0pO1xuICAgIH07XG5cbiAgICB0aGlzLl9pbnN0YW5jZS5vbkF1dGhSZWZyZXNoU3VjY2VzcyA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2tleWNsb2FrRXZlbnRzJC5uZXh0KHtcbiAgICAgICAgdHlwZTogS2V5Y2xvYWtFdmVudFR5cGUuT25BdXRoUmVmcmVzaFN1Y2Nlc3MsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdGhpcy5faW5zdGFuY2Uub25BdXRoUmVmcmVzaEVycm9yID0gKCkgPT4ge1xuICAgICAgdGhpcy5fa2V5Y2xvYWtFdmVudHMkLm5leHQoe1xuICAgICAgICB0eXBlOiBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhSZWZyZXNoRXJyb3IsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdGhpcy5faW5zdGFuY2Uub25BdXRoU3VjY2VzcyA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2tleWNsb2FrRXZlbnRzJC5uZXh0KHsgdHlwZTogS2V5Y2xvYWtFdmVudFR5cGUuT25BdXRoU3VjY2VzcyB9KTtcbiAgICB9O1xuXG4gICAgdGhpcy5faW5zdGFuY2Uub25Ub2tlbkV4cGlyZWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9rZXljbG9ha0V2ZW50cyQubmV4dCh7XG4gICAgICAgIHR5cGU6IEtleWNsb2FrRXZlbnRUeXBlLk9uVG9rZW5FeHBpcmVkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHRoaXMuX2luc3RhbmNlLm9uUmVhZHkgPSAoYXV0aGVudGljYXRlZCkgPT4ge1xuICAgICAgdGhpcy5fa2V5Y2xvYWtFdmVudHMkLm5leHQoe1xuICAgICAgICBhcmdzOiBhdXRoZW50aWNhdGVkLFxuICAgICAgICB0eXBlOiBLZXljbG9ha0V2ZW50VHlwZS5PblJlYWR5LFxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgYmVhcmVyRXhjbHVkZWRVcmwgY29udGVudCBpbiBhIHVuaWZvcm0gdHlwZTogRXhjbHVkZWRVcmwsXG4gICAqIHNvIGl0IGJlY29tZXMgZWFzaWVyIHRvIGhhbmRsZS5cbiAgICpcbiAgICogQHBhcmFtIGJlYXJlckV4Y2x1ZGVkVXJscyBhcnJheSBvZiBzdHJpbmdzIG9yIEV4Y2x1ZGVkVXJsIHRoYXQgaW5jbHVkZXNcbiAgICogdGhlIHVybCBhbmQgSHR0cE1ldGhvZC5cbiAgICovXG4gIHByaXZhdGUgbG9hZEV4Y2x1ZGVkVXJscyhcbiAgICBiZWFyZXJFeGNsdWRlZFVybHM6IChzdHJpbmcgfCBFeGNsdWRlZFVybClbXVxuICApOiBFeGNsdWRlZFVybFJlZ2V4W10ge1xuICAgIGNvbnN0IGV4Y2x1ZGVkVXJsczogRXhjbHVkZWRVcmxSZWdleFtdID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGJlYXJlckV4Y2x1ZGVkVXJscykge1xuICAgICAgbGV0IGV4Y2x1ZGVkVXJsOiBFeGNsdWRlZFVybFJlZ2V4O1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICBleGNsdWRlZFVybCA9IHsgdXJsUGF0dGVybjogbmV3IFJlZ0V4cChpdGVtLCAnaScpLCBodHRwTWV0aG9kczogW10gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4Y2x1ZGVkVXJsID0ge1xuICAgICAgICAgIHVybFBhdHRlcm46IG5ldyBSZWdFeHAoaXRlbS51cmwsICdpJyksXG4gICAgICAgICAgaHR0cE1ldGhvZHM6IGl0ZW0uaHR0cE1ldGhvZHMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBleGNsdWRlZFVybHMucHVzaChleGNsdWRlZFVybCk7XG4gICAgfVxuICAgIHJldHVybiBleGNsdWRlZFVybHM7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgY2xhc3MgdmFsdWVzIGluaXRpYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0U2VydmljZVZhbHVlcyh7XG4gICAgZW5hYmxlQmVhcmVySW50ZXJjZXB0b3IgPSB0cnVlLFxuICAgIGxvYWRVc2VyUHJvZmlsZUF0U3RhcnRVcCA9IHRydWUsXG4gICAgYmVhcmVyRXhjbHVkZWRVcmxzID0gW10sXG4gICAgYXV0aG9yaXphdGlvbkhlYWRlck5hbWUgPSAnQXV0aG9yaXphdGlvbicsXG4gICAgYmVhcmVyUHJlZml4ID0gJ2JlYXJlcicsXG4gICAgaW5pdE9wdGlvbnMsXG4gIH06IEtleWNsb2FrT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX2VuYWJsZUJlYXJlckludGVyY2VwdG9yID0gZW5hYmxlQmVhcmVySW50ZXJjZXB0b3I7XG4gICAgdGhpcy5fbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwID0gbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwO1xuICAgIHRoaXMuX2F1dGhvcml6YXRpb25IZWFkZXJOYW1lID0gYXV0aG9yaXphdGlvbkhlYWRlck5hbWU7XG4gICAgdGhpcy5fYmVhcmVyUHJlZml4ID0gYmVhcmVyUHJlZml4LnRyaW0oKS5jb25jYXQoJyAnKTtcbiAgICB0aGlzLl9leGNsdWRlZFVybHMgPSB0aGlzLmxvYWRFeGNsdWRlZFVybHMoYmVhcmVyRXhjbHVkZWRVcmxzKTtcbiAgICB0aGlzLl9zaWxlbnRSZWZyZXNoID0gaW5pdE9wdGlvbnMgPyBpbml0T3B0aW9ucy5mbG93ID09PSAnaW1wbGljaXQnIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogS2V5Y2xvYWsgaW5pdGlhbGl6YXRpb24uIEl0IHNob3VsZCBiZSBjYWxsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYWRhcHRlci5cbiAgICogT3B0aW9ucyBpcyBhIG9iamVjdCB3aXRoIDIgbWFpbiBwYXJhbWV0ZXJzOiBjb25maWcgYW5kIGluaXRPcHRpb25zLiBUaGUgZmlyc3Qgb25lXG4gICAqIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgdGhlIEtleWNsb2FrIGluc3RhbmNlLiBUaGUgc2Vjb25kIG9uZSBhcmUgb3B0aW9ucyB0byBpbml0aWFsaXplIHRoZVxuICAgKiBrZXljbG9hayBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQ29uZmlnOiBtYXkgYmUgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBrZXljbG9hayBVUkkgb3IgYW4gb2JqZWN0IHdpdGggdGhlXG4gICAqIGZvbGxvd2luZyBjb250ZW50OlxuICAgKiAtIHVybDogS2V5Y2xvYWsganNvbiBVUkxcbiAgICogLSByZWFsbTogcmVhbG0gbmFtZVxuICAgKiAtIGNsaWVudElkOiBjbGllbnQgaWRcbiAgICpcbiAgICogaW5pdE9wdGlvbnM6XG4gICAqIE9wdGlvbnMgdG8gaW5pdGlhbGl6ZSB0aGUgS2V5Y2xvYWsgYWRhcHRlciwgbWF0Y2hlcyB0aGUgb3B0aW9ucyBhcyBwcm92aWRlZCBieSBLZXljbG9hayBpdHNlbGYuXG4gICAqXG4gICAqIGVuYWJsZUJlYXJlckludGVyY2VwdG9yOlxuICAgKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBiZWFyZXIgd2lsbCBhZGRlZCB0byB0aGUgYXV0aG9yaXphdGlvbiBoZWFkZXIuXG4gICAqXG4gICAqIGxvYWRVc2VyUHJvZmlsZUluU3RhcnRVcDpcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgcHJvZmlsZSBzaG91bGQgYmUgbG9hZGVkIGF0IHRoZSBrZXljbG9hayBpbml0aWFsaXphdGlvbixcbiAgICoganVzdCBhZnRlciB0aGUgbG9naW4uXG4gICAqXG4gICAqIGJlYXJlckV4Y2x1ZGVkVXJsczpcbiAgICogU3RyaW5nIEFycmF5IHRvIGV4Y2x1ZGUgdGhlIHVybHMgdGhhdCBzaG91bGQgbm90IGhhdmUgdGhlIEF1dGhvcml6YXRpb24gSGVhZGVyIGF1dG9tYXRpY2FsbHlcbiAgICogYWRkZWQuXG4gICAqXG4gICAqIGF1dGhvcml6YXRpb25IZWFkZXJOYW1lOlxuICAgKiBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyB0aGUgQXV0aG9yaXphdGlvbiBIdHRwIEhlYWRlciBuYW1lLlxuICAgKlxuICAgKiBiZWFyZXJQcmVmaXg6XG4gICAqIFRoaXMgdmFsdWUgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgQXV0aG9yaXphdGlvbiBIdHRwIEhlYWRlciBwYXJhbS5cbiAgICpcbiAgICogQHJldHVybnNcbiAgICogQSBQcm9taXNlIHdpdGggYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGluaXQob3B0aW9uczogS2V5Y2xvYWtPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmluaXRTZXJ2aWNlVmFsdWVzKG9wdGlvbnMpO1xuICAgIGNvbnN0IHsgY29uZmlnLCBpbml0T3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICAgIHRoaXMuX2luc3RhbmNlID0gS2V5Y2xvYWsoY29uZmlnKTtcbiAgICB0aGlzLmJpbmRzS2V5Y2xvYWtFdmVudHMoKTtcblxuICAgIGNvbnN0IGF1dGhlbnRpY2F0ZWQgPSBhd2FpdCB0b1Byb21pc2UodGhpcy5faW5zdGFuY2UuaW5pdChpbml0T3B0aW9ucykpO1xuXG4gICAgaWYgKGF1dGhlbnRpY2F0ZWQgJiYgdGhpcy5fbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRVc2VyUHJvZmlsZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBhdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZGlyZWN0cyB0byBsb2dpbiBmb3JtIG9uIChvcHRpb25zIGlzIGFuIG9wdGlvbmFsIG9iamVjdCB3aXRoIHJlZGlyZWN0VXJpIGFuZC9vclxuICAgKiBwcm9tcHQgZmllbGRzKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogT2JqZWN0LCB3aGVyZTpcbiAgICogIC0gcmVkaXJlY3RVcmk6IFNwZWNpZmllcyB0aGUgdXJpIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGxvZ2luLlxuICAgKiAgLSBwcm9tcHQ6QnkgZGVmYXVsdCB0aGUgbG9naW4gc2NyZWVuIGlzIGRpc3BsYXllZCBpZiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkLWluIHRvIEtleWNsb2FrLlxuICAgKiBUbyBvbmx5IGF1dGhlbnRpY2F0ZSB0byB0aGUgYXBwbGljYXRpb24gaWYgdGhlIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQtaW4gYW5kIG5vdCBkaXNwbGF5IHRoZVxuICAgKiBsb2dpbiBwYWdlIGlmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQtaW4sIHNldCB0aGlzIG9wdGlvbiB0byBub25lLiBUbyBhbHdheXMgcmVxdWlyZVxuICAgKiByZS1hdXRoZW50aWNhdGlvbiBhbmQgaWdub3JlIFNTTywgc2V0IHRoaXMgb3B0aW9uIHRvIGxvZ2luIC5cbiAgICogIC0gbWF4QWdlOiBVc2VkIGp1c3QgaWYgdXNlciBpcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQuIFNwZWNpZmllcyBtYXhpbXVtIHRpbWUgc2luY2UgdGhlXG4gICAqIGF1dGhlbnRpY2F0aW9uIG9mIHVzZXIgaGFwcGVuZWQuIElmIHVzZXIgaXMgYWxyZWFkeSBhdXRoZW50aWNhdGVkIGZvciBsb25nZXIgdGltZSB0aGFuXG4gICAqIG1heEFnZSwgdGhlIFNTTyBpcyBpZ25vcmVkIGFuZCBoZSB3aWxsIG5lZWQgdG8gcmUtYXV0aGVudGljYXRlIGFnYWluLlxuICAgKiAgLSBsb2dpbkhpbnQ6IFVzZWQgdG8gcHJlLWZpbGwgdGhlIHVzZXJuYW1lL2VtYWlsIGZpZWxkIG9uIHRoZSBsb2dpbiBmb3JtLlxuICAgKiAgLSBhY3Rpb246IElmIHZhbHVlIGlzICdyZWdpc3RlcicgdGhlbiB1c2VyIGlzIHJlZGlyZWN0ZWQgdG8gcmVnaXN0cmF0aW9uIHBhZ2UsIG90aGVyd2lzZSB0b1xuICAgKiBsb2dpbiBwYWdlLlxuICAgKiAgLSBsb2NhbGU6IFNwZWNpZmllcyB0aGUgZGVzaXJlZCBsb2NhbGUgZm9yIHRoZSBVSS5cbiAgICogQHJldHVybnNcbiAgICogQSB2b2lkIFByb21pc2UgaWYgdGhlIGxvZ2luIGlzIHN1Y2Nlc3NmdWwgYW5kIGFmdGVyIHRoZSB1c2VyIHByb2ZpbGUgbG9hZGluZy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dpbihvcHRpb25zOiBLZXljbG9hay5LZXljbG9ha0xvZ2luT3B0aW9ucyA9IHt9KSB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMuX2luc3RhbmNlLmxvZ2luKG9wdGlvbnMpKTtcblxuICAgIGlmICh0aGlzLl9sb2FkVXNlclByb2ZpbGVBdFN0YXJ0VXApIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZFVzZXJQcm9maWxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZGlyZWN0cyB0byBsb2dvdXQuXG4gICAqXG4gICAqIEBwYXJhbSByZWRpcmVjdFVyaVxuICAgKiBTcGVjaWZpZXMgdGhlIHVyaSB0byByZWRpcmVjdCB0byBhZnRlciBsb2dvdXQuXG4gICAqIEByZXR1cm5zXG4gICAqIEEgdm9pZCBQcm9taXNlIGlmIHRoZSBsb2dvdXQgd2FzIHN1Y2Nlc3NmdWwsIGNsZWFuaW5nIGFsc28gdGhlIHVzZXJQcm9maWxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvZ291dChyZWRpcmVjdFVyaT86IHN0cmluZykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByZWRpcmVjdFVyaSxcbiAgICB9O1xuXG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMuX2luc3RhbmNlLmxvZ291dChvcHRpb25zKSk7XG4gICAgdGhpcy5fdXNlclByb2ZpbGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVkaXJlY3RzIHRvIHJlZ2lzdHJhdGlvbiBmb3JtLiBTaG9ydGN1dCBmb3IgbG9naW4gd2l0aCBvcHRpb25cbiAgICogYWN0aW9uID0gJ3JlZ2lzdGVyJy4gT3B0aW9ucyBhcmUgc2FtZSBhcyBmb3IgdGhlIGxvZ2luIG1ldGhvZCBidXQgJ2FjdGlvbicgaXMgc2V0IHRvXG4gICAqICdyZWdpc3RlcicuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIGxvZ2luIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICogQSB2b2lkIFByb21pc2UgaWYgdGhlIHJlZ2lzdGVyIGZsb3cgd2FzIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXIoXG4gICAgb3B0aW9uczogS2V5Y2xvYWsuS2V5Y2xvYWtMb2dpbk9wdGlvbnMgPSB7IGFjdGlvbjogJ3JlZ2lzdGVyJyB9XG4gICkge1xuICAgIGF3YWl0IHRvUHJvbWlzZSh0aGlzLl9pbnN0YW5jZS5yZWdpc3RlcihvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHVzZXIgaGFzIGFjY2VzcyB0byB0aGUgc3BlY2lmaWVkIHJvbGUuIEl0IHdpbGwgbG9vayBmb3Igcm9sZXMgaW5cbiAgICogcmVhbG0gYW5kIGNsaWVudElkLCBidXQgd2lsbCBub3QgY2hlY2sgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlXG4gICAqIHJvbGUgbmFtZVxuICAgKiBAcGFyYW0gcmVzb3VyY2VcbiAgICogcmVzb3VyY2UgbmFtZSBJZiBub3Qgc3BlY2lmaWVkLCBgY2xpZW50SWRgIGlzIHVzZWRcbiAgICogQHJldHVybnNcbiAgICogQSBib29sZWFuIG1lYW5pbmcgaWYgdGhlIHVzZXIgaGFzIHRoZSBzcGVjaWZpZWQgUm9sZS5cbiAgICovXG4gIGlzVXNlckluUm9sZShyb2xlOiBzdHJpbmcsIHJlc291cmNlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGhhc1JvbGU6IGJvb2xlYW47XG4gICAgaGFzUm9sZSA9IHRoaXMuX2luc3RhbmNlLmhhc1Jlc291cmNlUm9sZShyb2xlLCByZXNvdXJjZSk7XG4gICAgaWYgKCFoYXNSb2xlKSB7XG4gICAgICBoYXNSb2xlID0gdGhpcy5faW5zdGFuY2UuaGFzUmVhbG1Sb2xlKHJvbGUpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUm9sZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHJvbGVzIG9mIHRoZSBsb2dnZWQgdXNlci4gVGhlIGFsbFJvbGVzIHBhcmFtZXRlciwgd2l0aCBkZWZhdWx0IHZhbHVlXG4gICAqIHRydWUsIHdpbGwgcmV0dXJuIHRoZSBjbGllbnRJZCBhbmQgcmVhbG0gcm9sZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb2dnZWQgdXNlci4gSWYgc2V0IHRvIGZhbHNlXG4gICAqIGl0IHdpbGwgb25seSByZXR1cm4gdGhlIHVzZXIgcm9sZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnRJZC5cbiAgICpcbiAgICogQHBhcmFtIGFsbFJvbGVzXG4gICAqIEZsYWcgdG8gc2V0IGlmIGFsbCByb2xlcyBzaG91bGQgYmUgcmV0dXJuZWQuKE9wdGlvbmFsOiBkZWZhdWx0IHZhbHVlIGlzIHRydWUpXG4gICAqIEByZXR1cm5zXG4gICAqIEFycmF5IG9mIFJvbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9nZ2VkIHVzZXIuXG4gICAqL1xuICBnZXRVc2VyUm9sZXMoYWxsUm9sZXM6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nW10ge1xuICAgIGxldCByb2xlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5faW5zdGFuY2UucmVzb3VyY2VBY2Nlc3MpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2luc3RhbmNlLnJlc291cmNlQWNjZXNzKSB7XG4gICAgICAgIGlmICh0aGlzLl9pbnN0YW5jZS5yZXNvdXJjZUFjY2Vzcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgY29uc3QgcmVzb3VyY2VBY2Nlc3M6IGFueSA9IHRoaXMuX2luc3RhbmNlLnJlc291cmNlQWNjZXNzW2tleV07XG4gICAgICAgICAgY29uc3QgY2xpZW50Um9sZXMgPSByZXNvdXJjZUFjY2Vzc1sncm9sZXMnXSB8fCBbXTtcbiAgICAgICAgICByb2xlcyA9IHJvbGVzLmNvbmNhdChjbGllbnRSb2xlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFsbFJvbGVzICYmIHRoaXMuX2luc3RhbmNlLnJlYWxtQWNjZXNzKSB7XG4gICAgICBjb25zdCByZWFsbVJvbGVzID0gdGhpcy5faW5zdGFuY2UucmVhbG1BY2Nlc3NbJ3JvbGVzJ10gfHwgW107XG4gICAgICByb2xlcy5wdXNoKC4uLnJlYWxtUm9sZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAqXG4gICAqIEByZXR1cm5zXG4gICAqIEEgYm9vbGVhbiB0aGF0IGluZGljYXRlcyBpZiB0aGUgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAqL1xuICBhc3luYyBpc0xvZ2dlZEluKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXRoaXMuX2luc3RhbmNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVUb2tlbigyMCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHRva2VuIGhhcyBsZXNzIHRoYW4gbWluVmFsaWRpdHkgc2Vjb25kcyBsZWZ0IGJlZm9yZVxuICAgKiBpdCBleHBpcmVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWluVmFsaWRpdHlcbiAgICogU2Vjb25kcyBsZWZ0LiAobWluVmFsaWRpdHkpIGlzIG9wdGlvbmFsLiBEZWZhdWx0IHZhbHVlIGlzIDAuXG4gICAqIEByZXR1cm5zXG4gICAqIEJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgdG9rZW4gaXMgZXhwaXJlZC5cbiAgICovXG4gIGlzVG9rZW5FeHBpcmVkKG1pblZhbGlkaXR5OiBudW1iZXIgPSAwKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlLmlzVG9rZW5FeHBpcmVkKG1pblZhbGlkaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgdG9rZW4gZXhwaXJlcyB3aXRoaW4gbWluVmFsaWRpdHkgc2Vjb25kcyB0aGUgdG9rZW4gaXMgcmVmcmVzaGVkLiBJZiB0aGVcbiAgICogc2Vzc2lvbiBzdGF0dXMgaWZyYW1lIGlzIGVuYWJsZWQsIHRoZSBzZXNzaW9uIHN0YXR1cyBpcyBhbHNvIGNoZWNrZWQuXG4gICAqIFJldHVybnMgYSBwcm9taXNlIHRlbGxpbmcgaWYgdGhlIHRva2VuIHdhcyByZWZyZXNoZWQgb3Igbm90LiBJZiB0aGUgc2Vzc2lvbiBpcyBub3QgYWN0aXZlXG4gICAqIGFueW1vcmUsIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gbWluVmFsaWRpdHlcbiAgICogU2Vjb25kcyBsZWZ0LiAobWluVmFsaWRpdHkgaXMgb3B0aW9uYWwsIGlmIG5vdCBzcGVjaWZpZWQgNSBpcyB1c2VkKVxuICAgKiBAcmV0dXJuc1xuICAgKiBQcm9taXNlIHdpdGggYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHRva2VuIHdhcyBzdWNjZXNmdWxseSB1cGRhdGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVRva2VuKG1pblZhbGlkaXR5ID0gNSkge1xuICAgIC8vIFRPRE86IHRoaXMgaXMgYSB3b3JrYXJvdW5kIHVudGlsIHRoZSBzaWxlbnQgcmVmcmVzaCAoaXNzdWUgIzQzKVxuICAgIC8vIGlzIG5vdCBpbXBsZW1lbnRlZCwgYXZvaWRpbmcgdGhlIHJlZGlyZWN0IGxvb3AuXG4gICAgaWYgKHRoaXMuX3NpbGVudFJlZnJlc2gpIHtcbiAgICAgIGlmICh0aGlzLmlzVG9rZW5FeHBpcmVkKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdGYWlsZWQgdG8gcmVmcmVzaCB0aGUgdG9rZW4sIG9yIHRoZSBzZXNzaW9uIGlzIGV4cGlyZWQnXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignS2V5Y2xvYWsgQW5ndWxhciBsaWJyYXJ5IGlzIG5vdCBpbml0aWFsaXplZC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdG9Qcm9taXNlKHRoaXMuX2luc3RhbmNlLnVwZGF0ZVRva2VuKG1pblZhbGlkaXR5KSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogUmV0dXJucyBwcm9taXNlIHRvIHNldCBmdW5jdGlvbnMgdG8gYmUgaW52b2tlZCBpZiB0aGUgcHJvZmlsZSB3YXMgbG9hZGVkXG4gICAqIHN1Y2Nlc3NmdWxseSwgb3IgaWYgdGhlIHByb2ZpbGUgY291bGQgbm90IGJlIGxvYWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlUmVsb2FkXG4gICAqIElmIHRydWUgd2lsbCBmb3JjZSB0aGUgbG9hZFVzZXJQcm9maWxlIGV2ZW4gaWYgaXRzIGFscmVhZHkgbG9hZGVkLlxuICAgKiBAcmV0dXJuc1xuICAgKiBBIHByb21pc2Ugd2l0aCB0aGUgS2V5Y2xvYWtQcm9maWxlIGRhdGEgbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRVc2VyUHJvZmlsZShmb3JjZVJlbG9hZCA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3VzZXJQcm9maWxlICYmICFmb3JjZVJlbG9hZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3VzZXJQcm9maWxlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5faW5zdGFuY2UuYXV0aGVudGljYXRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIHVzZXIgcHJvZmlsZSB3YXMgbm90IGxvYWRlZCBhcyB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLl91c2VyUHJvZmlsZSA9IGF3YWl0IHRvUHJvbWlzZShcbiAgICAgIHRoaXMuX2luc3RhbmNlLmxvYWRVc2VyUHJvZmlsZSgpXG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXV0aGVudGljYXRlZCB0b2tlbiwgY2FsbGluZyB1cGRhdGVUb2tlbiB0byBnZXQgYSByZWZyZXNoZWQgb25lIGlmXG4gICAqIG5lY2Vzc2FyeS4gSWYgdGhlIHNlc3Npb24gaXMgZXhwaXJlZCBhbmQgdGhlIGZvcmNlTG9naW4gZmxhZyBpcyBzZXQgdG8gdHJ1ZSxcbiAgICogdGhpcyBtZXRob2QgY2FsbHMgdGhlIGxvZ2luIG1ldGhvZCBmb3IgYSBuZXcgbG9naW4sIG90aGVyd2lzZSByZWplY3RzLlxuICAgKlxuICAgKiBAcGFyYW0gZm9yY2VMb2dpblxuICAgKiBGbGFnIHdoZXRoZXIgYSBsb2dpbiBzaG91bGQgYmUgZW5mb3JjZWQgaWYgdGhlIHNlc3Npb24gaXMgZXhwaXJlZC5cbiAgICogQHJldHVybnNcbiAgICogUHJvbWlzZSB3aXRoIHRoZSBnZW5lcmF0ZWQgdG9rZW4uXG4gICAqL1xuICBhc3luYyBnZXRUb2tlbihmb3JjZUxvZ2luID0gdHJ1ZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlVG9rZW4oMTApO1xuICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlLnRva2VuO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZm9yY2VMb2dpbikge1xuICAgICAgICB0aGlzLmxvZ2luKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbG9nZ2VkIHVzZXJuYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuc1xuICAgKiBUaGUgbG9nZ2VkIHVzZXJuYW1lLlxuICAgKi9cbiAgcHVibGljIGdldFVzZXJuYW1lKCkge1xuICAgIGlmICghdGhpcy5fdXNlclByb2ZpbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVXNlciBub3QgbG9nZ2VkIGluIG9yIHVzZXIgcHJvZmlsZSB3YXMgbm90IGxvYWRlZC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdXNlclByb2ZpbGUudXNlcm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYXV0aGVudGljYXRpb24gc3RhdGUsIGluY2x1ZGluZyB0b2tlbnMuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBhcHBsaWNhdGlvblxuICAgKiBoYXMgZGV0ZWN0ZWQgdGhlIHNlc3Npb24gd2FzIGV4cGlyZWQsIGZvciBleGFtcGxlIGlmIHVwZGF0aW5nIHRva2VuIGZhaWxzLlxuICAgKiBJbnZva2luZyB0aGlzIHJlc3VsdHMgaW4gb25BdXRoTG9nb3V0IGNhbGxiYWNrIGxpc3RlbmVyIGJlaW5nIGludm9rZWQuXG4gICAqL1xuICBjbGVhclRva2VuKCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmNsZWFyVG9rZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdmFsaWQgdG9rZW4gaW4gaGVhZGVyLiBUaGUga2V5ICYgdmFsdWUgZm9ybWF0IGlzOlxuICAgKiBBdXRob3JpemF0aW9uIEJlYXJlciA8dG9rZW4+LlxuICAgKiBJZiB0aGUgaGVhZGVycyBwYXJhbSBpcyB1bmRlZmluZWQgaXQgd2lsbCBjcmVhdGUgdGhlIEFuZ3VsYXIgaGVhZGVycyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXJzXG4gICAqIFVwZGF0ZWQgaGVhZGVyIHdpdGggQXV0aG9yaXphdGlvbiBhbmQgS2V5Y2xvYWsgdG9rZW4uXG4gICAqIEByZXR1cm5zXG4gICAqIEFuIG9ic2VydmFibGUgd2l0aCB3aXRoIHRoZSBIVFRQIEF1dGhvcml6YXRpb24gaGVhZGVyIGFuZCB0aGUgY3VycmVudCB0b2tlbi5cbiAgICovXG4gIHB1YmxpYyBhZGRUb2tlblRvSGVhZGVyKGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmdldFRva2VuKCkpLnBpcGUoXG4gICAgICBtYXAoKHRva2VuKSA9PlxuICAgICAgICBoZWFkZXJzLnNldCh0aGlzLl9hdXRob3JpemF0aW9uSGVhZGVyTmFtZSwgdGhpcy5fYmVhcmVyUHJlZml4ICsgdG9rZW4pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBLZXljbG9hayBpbnN0YW5jZSwgaWYgeW91IG5lZWQgYW55IGN1c3RvbWl6YXRpb24gdGhhdFxuICAgKiB0aGlzIEFuZ3VsYXIgc2VydmljZSBkb2VzIG5vdCBzdXBwb3J0IHlldC4gVXNlIHdpdGggY2F1dGlvbi5cbiAgICpcbiAgICogQHJldHVybnNcbiAgICogVGhlIEtleWNsb2FrSW5zdGFuY2UgZnJvbSBrZXljbG9hay1qcy5cbiAgICovXG4gIGdldEtleWNsb2FrSW5zdGFuY2UoKTogS2V5Y2xvYWsuS2V5Y2xvYWtJbnN0YW5jZSB7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGV4Y2x1ZGVkIFVSTHMgdGhhdCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYnlcbiAgICogdGhlIGh0dHAgaW50ZXJjZXB0b3Igd2hpY2ggYXV0b21hdGljYWxseSBhZGRzIHRoZSBhdXRob3JpemF0aW9uIGhlYWRlciBpbiB0aGUgSHR0cCBSZXF1ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuc1xuICAgKiBUaGUgZXhjbHVkZWQgdXJscyB0aGF0IG11c3Qgbm90IGJlIGludGVyY2VwdGVkIGJ5IHRoZSBLZXljbG9ha0JlYXJlckludGVyY2VwdG9yLlxuICAgKi9cbiAgZ2V0IGV4Y2x1ZGVkVXJscygpOiBFeGNsdWRlZFVybFJlZ2V4W10ge1xuICAgIHJldHVybiB0aGlzLl9leGNsdWRlZFVybHM7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgYmVhcmVyIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyLlxuICAgKlxuICAgKiBAcmV0dXJuc1xuICAgKiBSZXR1cm5zIGlmIHRoZSBiZWFyZXIgaW50ZXJjZXB0b3Igd2FzIHNldCB0byBiZSBkaXNhYmxlZC5cbiAgICovXG4gIGdldCBlbmFibGVCZWFyZXJJbnRlcmNlcHRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlQmVhcmVySW50ZXJjZXB0b3I7XG4gIH1cblxuICAvKipcbiAgICogS2V5Y2xvYWsgc3ViamVjdCB0byBtb25pdG9yIHRoZSBldmVudHMgdHJpZ2dlcmVkIGJ5IGtleWNsb2FrLWpzLlxuICAgKiBUaGUgZm9sbG93aW5nIGV2ZW50cyBhcyBhdmFpbGFibGUgKGFzIGRlc2NyaWJlZCBhdCBrZXljbG9hayBkb2NzIC1cbiAgICogaHR0cHM6Ly93d3cua2V5Y2xvYWsub3JnL2RvY3MvbGF0ZXN0L3NlY3VyaW5nX2FwcHMvaW5kZXguaHRtbCNjYWxsYmFjay1ldmVudHMpOlxuICAgKiAtIE9uQXV0aEVycm9yXG4gICAqIC0gT25BdXRoTG9nb3V0XG4gICAqIC0gT25BdXRoUmVmcmVzaEVycm9yXG4gICAqIC0gT25BdXRoUmVmcmVzaFN1Y2Nlc3NcbiAgICogLSBPbkF1dGhTdWNjZXNzXG4gICAqIC0gT25SZWFkeVxuICAgKiAtIE9uVG9rZW5FeHBpcmVcbiAgICogSW4gZWFjaCBvY2N1cnJlbmNlIG9mIGFueSBvZiB0aGVzZSwgdGhpcyBzdWJqZWN0IHdpbGwgcmV0dXJuIHRoZSBldmVudCB0eXBlLFxuICAgKiBkZXNjcmliZWQgYXQge0BsaW5rIEtleWNsb2FrRXZlbnRUeXBlfSBlbnVtIGFuZCB0aGUgZnVuY3Rpb24gYXJncyBmcm9tIHRoZSBrZXljbG9hay1qc1xuICAgKiBpZiBwcm92aWRlZCBhbnkuXG4gICAqXG4gICAqIEByZXR1cm5zXG4gICAqIEEgc3ViamVjdCB3aXRoIHRoZSB7QGxpbmsgS2V5Y2xvYWtFdmVudH0gd2hpY2ggZGVzY3JpYmVzIHRoZSBldmVudCB0eXBlIGFuZCBhdHRhY2hlcyB0aGVcbiAgICogZnVuY3Rpb24gYXJncy5cbiAgICovXG4gIGdldCBrZXljbG9ha0V2ZW50cyQoKTogU3ViamVjdDxLZXljbG9ha0V2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2tleWNsb2FrRXZlbnRzJDtcbiAgfVxufVxuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function toPromise(originalPromise) {
|
|
2
|
-
if (originalPromise instanceof Promise) {
|
|
3
|
-
return originalPromise;
|
|
4
|
-
}
|
|
5
|
-
return new Promise(function (resolve, reject) {
|
|
6
|
-
originalPromise.success(resolve);
|
|
7
|
-
originalPromise.error(reject);
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tcHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2tleWNsb2FrLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvY29yZS91dGlscy90by1wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sVUFBVSxTQUFTLENBQU8sZUFBb0U7SUFDbEcsSUFBSSxlQUFlLFlBQVksT0FBTyxFQUFFO1FBQ3RDLE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBSSxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ3BDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXljbG9ha1Byb21pc2UgfSBmcm9tICdrZXljbG9hay1qcyc7XG5cbmludGVyZmFjZSBMZWdhY3lLZXljbG9ha1Byb21pc2U8VCwgRT4ge1xuICBzdWNjZXNzKGNhbGxiYWNrOiAocmVzdWx0OiBUKSA9PiB2b2lkKTogTGVnYWN5S2V5Y2xvYWtQcm9taXNlPFQsIEU+O1xuICBlcnJvcihjYWxsYmFjazogKHJlc3VsdDogRSkgPT4gdm9pZCk6IExlZ2FjeUtleWNsb2FrUHJvbWlzZTxULCBFPjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhICdsZWdhY3knIEtleWNsb2FrIHByb21pc2UgdG8gYSBzdGFuZGFyZGl6ZWQgb25lLlxuICpcbiAqIEBwYXJhbSBvcmlnaW5hbFByb21pc2UgVGhlIEtleWNsb2FrIHByb21pc2UgdG8gY29udmVydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHJvbWlzZTxULCBFPihvcmlnaW5hbFByb21pc2U6IExlZ2FjeUtleWNsb2FrUHJvbWlzZTxULCBFPiB8IEtleWNsb2FrUHJvbWlzZTxULCBFPikge1xuICBpZiAob3JpZ2luYWxQcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgIHJldHVybiBvcmlnaW5hbFByb21pc2U7XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIG9yaWdpbmFsUHJvbWlzZS5zdWNjZXNzKHJlc29sdmUpO1xuICAgIG9yaWdpbmFsUHJvbWlzZS5lcnJvcihyZWplY3QpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { CoreModule } from './core/core.module';
|
|
4
|
-
var KeycloakAngularModule = (function () {
|
|
5
|
-
function KeycloakAngularModule() {
|
|
6
|
-
}
|
|
7
|
-
KeycloakAngularModule = __decorate([
|
|
8
|
-
NgModule({
|
|
9
|
-
imports: [CoreModule]
|
|
10
|
-
})
|
|
11
|
-
], KeycloakAngularModule);
|
|
12
|
-
return KeycloakAngularModule;
|
|
13
|
-
}());
|
|
14
|
-
export { KeycloakAngularModule };
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9rZXljbG9hay1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2tleWNsb2FrLWFuZ3VsYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFRQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUtoRDtJQUFBO0lBQW9DLENBQUM7SUFBeEIscUJBQXFCO1FBSGpDLFFBQVEsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUN0QixDQUFDO09BQ1cscUJBQXFCLENBQUc7SUFBRCw0QkFBQztDQUFBLEFBQXJDLElBQXFDO1NBQXhCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBNYXVyaWNpbyBHZW1lbGxpIFZpZ29sbyBhbmQgY29udHJpYnV0b3JzLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL21hdXJpY2lvdmlnb2xvL2tleWNsb2FrLWFuZ3VsYXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICcuL2NvcmUvY29yZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29yZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtBbmd1bGFyTW9kdWxlIHt9XG4iXX0=
|
package/esm5/public_api.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { KeycloakEventType } from './lib/core/interfaces/keycloak-event';
|
|
2
|
-
export { KeycloakAuthGuard } from './lib/core/services/keycloak-auth-guard';
|
|
3
|
-
export { KeycloakService } from './lib/core/services/keycloak.service';
|
|
4
|
-
export { KeycloakBearerInterceptor } from './lib/core/interceptors/keycloak-bearer.interceptor';
|
|
5
|
-
export { CoreModule } from './lib/core/core.module';
|
|
6
|
-
export { KeycloakAngularModule } from './lib/keycloak-angular.module';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2tleWNsb2FrLWFuZ3VsYXIvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFFTCxpQkFBaUIsRUFDbEIsTUFBTSxzQ0FBc0MsQ0FBQztBQU05QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUNMLHlCQUF5QixFQUMxQixNQUFNLHFEQUFxRCxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBNYXVyaWNpbyBHZW1lbGxpIFZpZ29sbyBhbmQgY29udHJpYnV0b3JzLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL21hdXJpY2lvdmlnb2xvL2tleWNsb2FrLWFuZ3VsYXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCB7IEtleWNsb2FrQ29uZmlnIH0gZnJvbSAnLi9saWIvY29yZS9pbnRlcmZhY2VzL2tleWNsb2FrLWNvbmZpZyc7XG5leHBvcnQge1xuICBLZXljbG9ha0V2ZW50LFxuICBLZXljbG9ha0V2ZW50VHlwZVxufSBmcm9tICcuL2xpYi9jb3JlL2ludGVyZmFjZXMva2V5Y2xvYWstZXZlbnQnO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgS2V5Y2xvYWsncyBpbnRlcm5hbCB0eXBlcyBpbnN0ZWFkLlxuICovXG5leHBvcnQgdHlwZSBLZXljbG9ha0luaXRPcHRpb25zID0gS2V5Y2xvYWsuS2V5Y2xvYWtJbml0T3B0aW9ucztcbmV4cG9ydCB7IEtleWNsb2FrT3B0aW9ucyB9IGZyb20gJy4vbGliL2NvcmUvaW50ZXJmYWNlcy9rZXljbG9hay1vcHRpb25zJztcbmV4cG9ydCB7IEtleWNsb2FrQXV0aEd1YXJkIH0gZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9rZXljbG9hay1hdXRoLWd1YXJkJztcbmV4cG9ydCB7IEtleWNsb2FrU2VydmljZSB9IGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMva2V5Y2xvYWsuc2VydmljZSc7XG5leHBvcnQge1xuICBLZXljbG9ha0JlYXJlckludGVyY2VwdG9yXG59IGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL2tleWNsb2FrLWJlYXJlci5pbnRlcmNlcHRvcic7XG5leHBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi9saWIvY29yZS9jb3JlLm1vZHVsZSc7XG5leHBvcnQgeyBLZXljbG9ha0FuZ3VsYXJNb2R1bGUgfSBmcm9tICcuL2xpYi9rZXljbG9hay1hbmd1bGFyLm1vZHVsZSc7XG4iXX0=
|