@recursyve/nice-auth0-kit 15.0.0-beta.18 → 17.0.0-beta.20
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/{esm2020 → esm2022}/lib/api/auth0.api.mjs +1 -1
- package/esm2022/lib/api/authorization/authorization.api.mjs +40 -0
- package/esm2022/lib/api/interceptors/auth.interceptor.mjs +37 -0
- package/esm2022/lib/api/mfa/mfa.api.mjs +59 -0
- package/{esm2020 → esm2022}/lib/api/nice-auth0.service.mjs +5 -5
- package/esm2022/lib/api/token/token.api.mjs +93 -0
- package/{esm2020 → esm2022}/lib/nice-auht0-kit.module.mjs +12 -12
- package/esm2022/lib/providers/authentication.service.mjs +226 -0
- package/{fesm2020 → fesm2022}/recursyve-nice-auth0-kit.mjs +41 -41
- package/fesm2022/recursyve-nice-auth0-kit.mjs.map +1 -0
- package/package.json +8 -14
- package/esm2020/lib/api/authorization/authorization.api.mjs +0 -40
- package/esm2020/lib/api/interceptors/auth.interceptor.mjs +0 -37
- package/esm2020/lib/api/mfa/mfa.api.mjs +0 -59
- package/esm2020/lib/api/token/token.api.mjs +0 -93
- package/esm2020/lib/providers/authentication.service.mjs +0 -226
- package/fesm2015/recursyve-nice-auth0-kit.mjs +0 -545
- package/fesm2015/recursyve-nice-auth0-kit.mjs.map +0 -1
- package/fesm2020/recursyve-nice-auth0-kit.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/api/authorization/models/authorization-flow-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/exceptions/base.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/mfa/exceptions/association-required.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/mfa/exceptions/mfa.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/mfa/model/mfa-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/mfa/model/mfa-response.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/token/exceptions/mfa-required.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/token/exceptions/token.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/token/models/token-response.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nice-auth0-kit.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nice-auth0-kit.options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers/exceptions/no-authenticator.exception.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/recursyve-nice-auth0-kit.mjs +0 -0
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { mergeMap } from "rxjs";
|
|
3
|
-
import { NICE_AUTH0_OPTIONS } from "../../nice-auth0-kit.constant";
|
|
4
|
-
import { NiceAuthenticationService } from "../../providers/authentication.service";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../providers/authentication.service";
|
|
7
|
-
export class NiceAuthInterceptor {
|
|
8
|
-
constructor(options, authService) {
|
|
9
|
-
this.options = options;
|
|
10
|
-
this.authService = authService;
|
|
11
|
-
}
|
|
12
|
-
intercept(req, next) {
|
|
13
|
-
if (req.url.startsWith(`${this.options.domain}/oauth`) ||
|
|
14
|
-
req.url.startsWith(`${this.options.domain}/authorize`) ||
|
|
15
|
-
req.url.startsWith(`${this.options.domain}/mfa`)) {
|
|
16
|
-
return next.handle(req);
|
|
17
|
-
}
|
|
18
|
-
return this.authService.getAuthorizationToken().pipe(mergeMap(token => {
|
|
19
|
-
if (!token) {
|
|
20
|
-
return next.handle(req);
|
|
21
|
-
}
|
|
22
|
-
const authReq = req.clone({
|
|
23
|
-
headers: req.headers.set("Authorization", `Bearer ${token}`)
|
|
24
|
-
});
|
|
25
|
-
return next.handle(authReq);
|
|
26
|
-
}));
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
NiceAuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthInterceptor, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.NiceAuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
-
NiceAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthInterceptor });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthInterceptor, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
34
|
-
type: Inject,
|
|
35
|
-
args: [NICE_AUTH0_OPTIONS]
|
|
36
|
-
}] }, { type: i1.NiceAuthenticationService }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvYXBpL2ludGVyY2VwdG9ycy9hdXRoLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUduRixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQWdELE9BQXlCLEVBQVUsV0FBc0M7UUFBekUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFBRyxDQUFDO0lBRXRILFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ3JELElBQ0ksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO1lBQ2xELEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLFlBQVksQ0FBQztZQUN0RCxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsRUFDbEQ7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLENBQ2hELFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1lBRUQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLEtBQUssRUFBRSxDQUFDO2FBQy9ELENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7Z0hBeEJRLG1CQUFtQixrQkFDUixrQkFBa0I7b0hBRDdCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkFFTSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBOSUNFX0FVVEgwX09QVElPTlMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBdXRoME9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgTmljZUF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9wcm92aWRlcnMvYXV0aGVudGljYXRpb24uc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgY29uc3RydWN0b3IoQEluamVjdChOSUNFX0FVVEgwX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogTmljZUF1dGgwT3B0aW9ucywgcHJpdmF0ZSBhdXRoU2VydmljZTogTmljZUF1dGhlbnRpY2F0aW9uU2VydmljZSkge31cblxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMub3B0aW9ucy5kb21haW59L29hdXRoYCkgfHxcbiAgICAgICAgICAgIHJlcS51cmwuc3RhcnRzV2l0aChgJHt0aGlzLm9wdGlvbnMuZG9tYWlufS9hdXRob3JpemVgKSB8fFxuICAgICAgICAgICAgcmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMub3B0aW9ucy5kb21haW59L21mYWApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke3Rva2VufWApXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpErrorResponse, HttpHeaders } from "@angular/common/http";
|
|
2
|
-
import { Inject, Injectable } from "@angular/core";
|
|
3
|
-
import { throwError } from "rxjs";
|
|
4
|
-
import { catchError } from "rxjs/operators";
|
|
5
|
-
import { NICE_AUTH0_OPTIONS } from "../../nice-auth0-kit.constant";
|
|
6
|
-
import { Auth0Api } from "../auth0.api";
|
|
7
|
-
import { Auth0AssociationRequiredException } from "./exceptions/association-required.exception";
|
|
8
|
-
import { MfaExceptions } from "./exceptions/mfa.exception";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common/http";
|
|
11
|
-
export class Auth0MfaApi extends Auth0Api {
|
|
12
|
-
constructor(options, http) {
|
|
13
|
-
super(options.domain, "mfa");
|
|
14
|
-
this.options = options;
|
|
15
|
-
this.http = http;
|
|
16
|
-
}
|
|
17
|
-
challenge(req) {
|
|
18
|
-
return this.http.post(this.url("challenge"), {
|
|
19
|
-
client_id: this.options.clientId,
|
|
20
|
-
client_secret: this.options.clientSecret,
|
|
21
|
-
challenge_type: req.type,
|
|
22
|
-
mfa_token: req.mfaToken
|
|
23
|
-
}).pipe(catchError((e) => {
|
|
24
|
-
if (e instanceof HttpErrorResponse) {
|
|
25
|
-
const error = e.error;
|
|
26
|
-
if (error.error === MfaExceptions.AssociationRequired) {
|
|
27
|
-
return throwError(() => new Auth0AssociationRequiredException({
|
|
28
|
-
error: error.error,
|
|
29
|
-
errorDescription: error.error_description
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return throwError(() => e);
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
associateOobAuthenticator(req) {
|
|
37
|
-
return this.http.post(this.url("associate"), {
|
|
38
|
-
client_id: this.options.clientId,
|
|
39
|
-
client_secret: this.options.clientSecret,
|
|
40
|
-
authenticator_types: ["oob"],
|
|
41
|
-
oob_channels: req.channels,
|
|
42
|
-
phone_number: req.phoneNumber,
|
|
43
|
-
email: req.email
|
|
44
|
-
}, {
|
|
45
|
-
headers: new HttpHeaders({
|
|
46
|
-
Authorization: `Bearer ${req.mfaToken}`
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
Auth0MfaApi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0MfaApi, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
-
Auth0MfaApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0MfaApi });
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0MfaApi, decorators: [{
|
|
54
|
-
type: Injectable
|
|
55
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
56
|
-
type: Inject,
|
|
57
|
-
args: [NICE_AUTH0_OPTIONS]
|
|
58
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvYXBpL21mYS9tZmEuYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUszRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFFBQVE7SUFDckMsWUFBZ0QsT0FBeUIsRUFBVSxJQUFnQjtRQUMvRixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQURlLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUVuRyxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQTZCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3hDLGNBQWMsRUFBRSxHQUFHLENBQUMsSUFBSTtZQUN4QixTQUFTLEVBQUUsR0FBRyxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDLElBQUksQ0FDSCxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLGlCQUFpQixFQUFFO2dCQUNoQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0QixJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLG1CQUFtQixFQUFFO29CQUNuRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGlDQUFpQyxDQUFDO3dCQUMxRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7d0JBQ2xCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7cUJBQzVDLENBQUMsQ0FBQyxDQUFDO2lCQUNQO2FBQ0o7WUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVNLHlCQUF5QixDQUFDLEdBQXVDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQ3JCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3hDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzVCLFlBQVksRUFBRSxHQUFHLENBQUMsUUFBUTtZQUMxQixZQUFZLEVBQUUsR0FBRyxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1NBQ25CLEVBQ0Q7WUFDSSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGFBQWEsRUFBRSxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUU7YUFDMUMsQ0FBQztTQUNMLENBQ0osQ0FBQztJQUNOLENBQUM7O3dHQTdDUSxXQUFXLGtCQUNBLGtCQUFrQjs0R0FEN0IsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOzswQkFFTSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTklDRV9BVVRIMF9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQXV0aDBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0Lm9wdGlvbnNcIjtcbmltcG9ydCB7IEF1dGgwQXBpIH0gZnJvbSBcIi4uL2F1dGgwLmFwaVwiO1xuaW1wb3J0IHsgQXV0aDBBc3NvY2lhdGlvblJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9hc3NvY2lhdGlvbi1yZXF1aXJlZC5leGNlcHRpb25cIjtcbmltcG9ydCB7IE1mYUV4Y2VwdGlvbnMgfSBmcm9tIFwiLi9leGNlcHRpb25zL21mYS5leGNlcHRpb25cIjtcbmltcG9ydCB7IEF1dGgwTWZhQWRkT29iQXV0aGVudGljYXRvclJlcXVlc3QsIEF1dGgwTWZhQ2hhbGxlbmdlUmVxdWVzdCB9IGZyb20gXCIuL21vZGVsL21mYS1yZXF1ZXN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBBdXRoMENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSBcIi4vbW9kZWwvbWZhLXJlc3BvbnNlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoME1mYUFwaSBleHRlbmRzIEF1dGgwQXBpIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucy5kb21haW4sIFwibWZhXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFsbGVuZ2UocmVxOiBBdXRoME1mYUNoYWxsZW5nZVJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGgwQ2hhbGxlbmdlUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwQ2hhbGxlbmdlUmVzcG9uc2U+KHRoaXMudXJsKFwiY2hhbGxlbmdlXCIpLCB7XG4gICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcbiAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICBjaGFsbGVuZ2VfdHlwZTogcmVxLnR5cGUsXG4gICAgICAgICAgICBtZmFfdG9rZW46IHJlcS5tZmFUb2tlblxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBlLmVycm9yO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IgPT09IE1mYUV4Y2VwdGlvbnMuQXNzb2NpYXRpb25SZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEF1dGgwQXNzb2NpYXRpb25SZXF1aXJlZEV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLmVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRpb246IGVycm9yLmVycm9yX2Rlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzc29jaWF0ZU9vYkF1dGhlbnRpY2F0b3IocmVxOiBBdXRoME1mYUFkZE9vYkF1dGhlbnRpY2F0b3JSZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoMENoYWxsZW5nZVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBdXRoMENoYWxsZW5nZVJlc3BvbnNlPihcbiAgICAgICAgICAgIHRoaXMudXJsKFwiYXNzb2NpYXRlXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXV0aGVudGljYXRvcl90eXBlczogW1wib29iXCJdLFxuICAgICAgICAgICAgICAgIG9vYl9jaGFubmVsczogcmVxLmNoYW5uZWxzLFxuICAgICAgICAgICAgICAgIHBob25lX251bWJlcjogcmVxLnBob25lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGVtYWlsOiByZXEuZW1haWxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3JlcS5tZmFUb2tlbn1gXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from "@angular/common/http";
|
|
2
|
-
import { Inject, Injectable } from "@angular/core";
|
|
3
|
-
import { throwError } from "rxjs";
|
|
4
|
-
import { catchError } from "rxjs/operators";
|
|
5
|
-
import { NICE_AUTH0_OPTIONS } from "../../nice-auth0-kit.constant";
|
|
6
|
-
import { Auth0Api } from "../auth0.api";
|
|
7
|
-
import { Auth0MfaRequiredException } from "./exceptions/mfa-required.exception";
|
|
8
|
-
import { TokenExceptions } from "./exceptions/token.exception";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common/http";
|
|
11
|
-
export class Auth0TokenApi extends Auth0Api {
|
|
12
|
-
constructor(options, http) {
|
|
13
|
-
super(options.domain, "oauth");
|
|
14
|
-
this.options = options;
|
|
15
|
-
this.http = http;
|
|
16
|
-
}
|
|
17
|
-
authWithPassword(username, password) {
|
|
18
|
-
return this.http.post(this.url("token"), {
|
|
19
|
-
client_id: this.options.clientId,
|
|
20
|
-
client_secret: this.options.clientSecret,
|
|
21
|
-
audience: this.options.audience,
|
|
22
|
-
grant_type: "password",
|
|
23
|
-
scope: this.options?.scopes.join(" ") ?? "",
|
|
24
|
-
username,
|
|
25
|
-
password
|
|
26
|
-
}).pipe(catchError((e) => {
|
|
27
|
-
if (e instanceof HttpErrorResponse) {
|
|
28
|
-
const error = e.error;
|
|
29
|
-
if (error.error === TokenExceptions.MfaRequired) {
|
|
30
|
-
return throwError(() => new Auth0MfaRequiredException({
|
|
31
|
-
error: error.error,
|
|
32
|
-
errorDescription: error.error_description,
|
|
33
|
-
mfaToken: error.mfa_token
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return throwError(() => e);
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
authWithOobCode(mfaToken, oobCode, bindingCode) {
|
|
41
|
-
return this.http.post(this.url("token"), {
|
|
42
|
-
client_id: this.options.clientId,
|
|
43
|
-
client_secret: this.options.clientSecret,
|
|
44
|
-
audience: this.options.audience,
|
|
45
|
-
grant_type: "http://auth0.com/oauth/grant-type/mfa-oob",
|
|
46
|
-
scope: this.options?.scopes.join(" ") ?? "",
|
|
47
|
-
mfa_token: mfaToken,
|
|
48
|
-
oob_code: oobCode,
|
|
49
|
-
binding_code: bindingCode
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
authWithAuthorizationCode(authCode, redirectUrl) {
|
|
53
|
-
const body = new HttpParams({
|
|
54
|
-
fromObject: {
|
|
55
|
-
code: authCode,
|
|
56
|
-
redirect_uri: redirectUrl,
|
|
57
|
-
client_id: this.options.clientId,
|
|
58
|
-
client_secret: this.options.clientSecret,
|
|
59
|
-
audience: this.options.audience,
|
|
60
|
-
grant_type: "authorization_code",
|
|
61
|
-
scope: this.options.scopes.join(" "),
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
const headers = new HttpHeaders().set("Content-Type", "application/x-www-form-urlencoded");
|
|
65
|
-
return this.http.post(this.url("token"), body.toString(), { headers });
|
|
66
|
-
}
|
|
67
|
-
refreshToken(refreshToken) {
|
|
68
|
-
return this.http.post(this.url("token"), {
|
|
69
|
-
client_id: this.options.clientId,
|
|
70
|
-
client_secret: this.options.clientSecret,
|
|
71
|
-
audience: this.options.audience,
|
|
72
|
-
grant_type: "refresh_token",
|
|
73
|
-
scope: this.options?.scopes.join(" ") ?? "",
|
|
74
|
-
refresh_token: refreshToken
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
revokeRefreshToken(refreshToken) {
|
|
78
|
-
return this.http.post(this.url("revoke"), {
|
|
79
|
-
client_id: this.options.clientId,
|
|
80
|
-
client_secret: this.options.clientSecret,
|
|
81
|
-
token: refreshToken
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
Auth0TokenApi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0TokenApi, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
|
-
Auth0TokenApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0TokenApi });
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0TokenApi, decorators: [{
|
|
88
|
-
type: Injectable
|
|
89
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
90
|
-
type: Inject,
|
|
91
|
-
args: [NICE_AUTH0_OPTIONS]
|
|
92
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL2xpYi9hcGkvdG9rZW4vdG9rZW4uYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBa0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBSS9ELE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQUN2QyxZQUFnRCxPQUF5QixFQUFVLElBQWdCO1FBQy9GLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRGEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO0lBRW5HLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQ2pCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9B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QyxPQUFPLENBQUMsWUFBWTtZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQy9CLFVBQVUsRUFBRSxlQUFlO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtZQUMzQyxhQUFhLEVBQUUsWUFBWTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBb0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbEI7WUFDSSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7WUFDeEMsS0FBSyxFQUFFLFlBQVk7U0FDdEIsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7MEdBNUZRLGFBQWEsa0JBQ0Ysa0JBQWtCOzhHQUQ3QixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTklDRV9BVVRIMF9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQXV0aDBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0Lm9wdGlvbnNcIjtcbmltcG9ydCB7IEF1dGgwQXBpIH0gZnJvbSBcIi4uL2F1dGgwLmFwaVwiO1xuaW1wb3J0IHsgQXV0aDBNZmFSZXF1aXJlZEV4Y2VwdGlvbiB9IGZyb20gXCIuL2V4Y2VwdGlvbnMvbWZhLXJlcXVpcmVkLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgVG9rZW5FeGNlcHRpb25zIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy90b2tlbi5leGNlcHRpb25cIjtcbmltcG9ydCB7IEF1dGgwVG9rZW5SZXNwb25zZSB9IGZyb20gXCIuL21vZGVscy90b2tlbi1yZXNwb25zZS5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aDBUb2tlbkFwaSBleHRlbmRzIEF1dGgwQXBpIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucy5kb21haW4sIFwib2F1dGhcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhXaXRoUGFzc3dvcmQodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0aDBUb2tlblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBdXRoMFRva2VuUmVzcG9uc2U+KFxuICAgICAgICAgICAgdGhpcy51cmwoXCJ0b2tlblwiKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLm9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIGF1ZGllbmNlOiB0aGlzLm9wdGlvbnMuYXVkaWVuY2UsXG4gICAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgIHNjb3BlOiB0aGlzLm9wdGlvbnM/LnNjb3Blcy5qb2luKFwiIFwiKSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkXG4gICAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZS5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yID09PSBUb2tlbkV4Y2VwdGlvbnMuTWZhUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbjogZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZhVG9rZW46IGVycm9yLm1mYV90b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhdXRoV2l0aE9vYkNvZGUobWZhVG9rZW46IHN0cmluZywgb29iQ29kZTogc3RyaW5nLCBiaW5kaW5nQ29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcImh0dHA6Ly9hdXRoMC5jb20vb2F1dGgvZ3JhbnQtdHlwZS9tZmEtb29iXCIsXG4gICAgICAgICAgICAgICAgc2NvcGU6IHRoaXMub3B0aW9ucz8uc2NvcGVzLmpvaW4oXCIgXCIpID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgbWZhX3Rva2VuOiBtZmFUb2tlbixcbiAgICAgICAgICAgICAgICBvb2JfY29kZTogb29iQ29kZSxcbiAgICAgICAgICAgICAgICBiaW5kaW5nX2NvZGU6IGJpbmRpbmdDb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhXaXRoQXV0aG9yaXphdGlvbkNvZGUoYXV0aENvZGU6IHN0cmluZywgcmVkaXJlY3RVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0aDBUb2tlblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgY29kZTogYXV0aENvZGUsXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVybCxcbiAgICAgICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLm9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIGF1ZGllbmNlOiB0aGlzLm9wdGlvbnMuYXVkaWVuY2UsXG4gICAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJhdXRob3JpemF0aW9uX2NvZGVcIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zLnNjb3Blcy5qb2luKFwiIFwiKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXV0aDBUb2tlblJlc3BvbnNlPih0aGlzLnVybChcInRva2VuXCIpLCBib2R5LnRvU3RyaW5nKCksIHsgaGVhZGVycyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zPy5zY29wZXMuam9pbihcIiBcIikgPz8gXCJcIixcbiAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPihcbiAgICAgICAgICAgIHRoaXMudXJsKFwicmV2b2tlXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgdG9rZW46IHJlZnJlc2hUb2tlblxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import jwtDecode from "jwt-decode";
|
|
3
|
-
import { BehaviorSubject, of, throwError } from "rxjs";
|
|
4
|
-
import { catchError, map, tap } from "rxjs/operators";
|
|
5
|
-
import { Auth0AssociationRequiredException } from "../api/mfa/exceptions/association-required.exception";
|
|
6
|
-
import { NiceAuth0Service } from "../api";
|
|
7
|
-
import { Auth0MfaRequiredException } from "../api/token/exceptions/mfa-required.exception";
|
|
8
|
-
import { NICE_AUTH0_OPTIONS } from "../nice-auth0-kit.constant";
|
|
9
|
-
import { NoAuthenticatorException } from "./exceptions/no-authenticator.exception";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../api";
|
|
12
|
-
export var AuthorizationStateValidationResult;
|
|
13
|
-
(function (AuthorizationStateValidationResult) {
|
|
14
|
-
AuthorizationStateValidationResult["Omitted"] = "omitted";
|
|
15
|
-
AuthorizationStateValidationResult["Success"] = "success";
|
|
16
|
-
AuthorizationStateValidationResult["Failure"] = "failure";
|
|
17
|
-
})(AuthorizationStateValidationResult || (AuthorizationStateValidationResult = {}));
|
|
18
|
-
export class NiceAuthenticationService {
|
|
19
|
-
constructor(options, auth0Service) {
|
|
20
|
-
this.options = options;
|
|
21
|
-
this.auth0Service = auth0Service;
|
|
22
|
-
this.currentUser$ = new BehaviorSubject(this.currentUser);
|
|
23
|
-
}
|
|
24
|
-
get idToken() {
|
|
25
|
-
return localStorage.getItem("auth0_id_token");
|
|
26
|
-
}
|
|
27
|
-
set idToken(accessToken) {
|
|
28
|
-
localStorage.setItem("auth0_id_token", accessToken);
|
|
29
|
-
this.currentUser$.next(this.currentUser);
|
|
30
|
-
}
|
|
31
|
-
get accessToken() {
|
|
32
|
-
return localStorage.getItem("auth0_access_token");
|
|
33
|
-
}
|
|
34
|
-
set accessToken(accessToken) {
|
|
35
|
-
localStorage.setItem("auth0_access_token", accessToken);
|
|
36
|
-
}
|
|
37
|
-
get refreshToken() {
|
|
38
|
-
return localStorage.getItem("auth0_refresh_token");
|
|
39
|
-
}
|
|
40
|
-
set refreshToken(refreshToken) {
|
|
41
|
-
localStorage.setItem("auth0_refresh_token", refreshToken);
|
|
42
|
-
}
|
|
43
|
-
get authToken() {
|
|
44
|
-
if (this.options.authToken === "idToken") {
|
|
45
|
-
return this.idToken;
|
|
46
|
-
}
|
|
47
|
-
return this.accessToken;
|
|
48
|
-
}
|
|
49
|
-
get idTokenPayload() {
|
|
50
|
-
try {
|
|
51
|
-
return jwtDecode(this.idToken);
|
|
52
|
-
}
|
|
53
|
-
catch (e) {
|
|
54
|
-
console.log("Failed to decode payload: " + e);
|
|
55
|
-
return {};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
get accessTokenPayload() {
|
|
59
|
-
try {
|
|
60
|
-
const decodedPayload = atob(this.accessToken.split(".")[1]);
|
|
61
|
-
return JSON.parse(decodedPayload);
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
console.log("Failed to decode payload: " + e);
|
|
65
|
-
return {};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
get authTokenPayload() {
|
|
69
|
-
if (this.options.authToken === "idToken") {
|
|
70
|
-
return this.idTokenPayload;
|
|
71
|
-
}
|
|
72
|
-
return this.accessTokenPayload;
|
|
73
|
-
}
|
|
74
|
-
get currentUser() {
|
|
75
|
-
return this.idTokenPayload;
|
|
76
|
-
}
|
|
77
|
-
checkLoggedIn() {
|
|
78
|
-
if (this.validateToken()) {
|
|
79
|
-
return of(true);
|
|
80
|
-
}
|
|
81
|
-
return this.getAuthorizationToken().pipe(map((token) => token != null), catchError(() => of(false)));
|
|
82
|
-
}
|
|
83
|
-
getAuthorizationToken() {
|
|
84
|
-
if (!this.authToken) {
|
|
85
|
-
return of(null);
|
|
86
|
-
}
|
|
87
|
-
if (this.validateToken()) {
|
|
88
|
-
return of(this.authToken);
|
|
89
|
-
}
|
|
90
|
-
if (this.refreshToken) {
|
|
91
|
-
return this.generateNewToken();
|
|
92
|
-
}
|
|
93
|
-
return of(null);
|
|
94
|
-
}
|
|
95
|
-
validateToken() {
|
|
96
|
-
if (!this.authToken) {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
const exp = this.authTokenPayload.exp;
|
|
100
|
-
const now = new Date().getTime() / 1000;
|
|
101
|
-
return now < exp;
|
|
102
|
-
}
|
|
103
|
-
passwordGrant(username, password) {
|
|
104
|
-
return this.auth0Service.token.authWithPassword(username, password).pipe(map(value => {
|
|
105
|
-
this.refreshToken = value.refresh_token;
|
|
106
|
-
this.idToken = value.id_token;
|
|
107
|
-
this.accessToken = value.access_token;
|
|
108
|
-
return {
|
|
109
|
-
success: true,
|
|
110
|
-
mfaRequired: false
|
|
111
|
-
};
|
|
112
|
-
}), catchError((e) => this.catchGrantError(e)));
|
|
113
|
-
}
|
|
114
|
-
authorizationCodeGrant(code, redirectUrl) {
|
|
115
|
-
return this.auth0Service.token.authWithAuthorizationCode(code, redirectUrl).pipe(map(value => {
|
|
116
|
-
this.refreshToken = value.refresh_token;
|
|
117
|
-
this.idToken = value.id_token;
|
|
118
|
-
this.accessToken = value.access_token;
|
|
119
|
-
return {
|
|
120
|
-
success: true,
|
|
121
|
-
mfaRequired: false
|
|
122
|
-
};
|
|
123
|
-
}), catchError((e) => this.catchGrantError(e)));
|
|
124
|
-
}
|
|
125
|
-
getAuthFlowRequestUri(redirectUrl, options) {
|
|
126
|
-
return this.auth0Service.authorization.buildAuthFlowRequest(redirectUrl, options?.connection ?? undefined).pipe(map(request => {
|
|
127
|
-
if (options?.useStateValidation) {
|
|
128
|
-
localStorage.setItem("auth0_auth_flow_state", request.state);
|
|
129
|
-
}
|
|
130
|
-
return request.uri;
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
checkAuthFlowResponse(expectedResponsePath) {
|
|
134
|
-
if (typeof expectedResponsePath === "string") {
|
|
135
|
-
expectedResponsePath = [expectedResponsePath];
|
|
136
|
-
}
|
|
137
|
-
const path = expectedResponsePath?.find(x => window.location.pathname === x);
|
|
138
|
-
if (!expectedResponsePath || path) {
|
|
139
|
-
const params = new URLSearchParams(window.location.search);
|
|
140
|
-
if (!params.has("code")) {
|
|
141
|
-
return of(null);
|
|
142
|
-
}
|
|
143
|
-
const response = {
|
|
144
|
-
path,
|
|
145
|
-
code: params.get("code"),
|
|
146
|
-
stateValidationResult: AuthorizationStateValidationResult.Omitted
|
|
147
|
-
};
|
|
148
|
-
const savedAuthorizationState = localStorage.getItem("auth0_auth_flow_state");
|
|
149
|
-
if (savedAuthorizationState) {
|
|
150
|
-
if (!params.has("state") || savedAuthorizationState !== params.get("state")) {
|
|
151
|
-
response.stateValidationResult = AuthorizationStateValidationResult.Failure;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
response.stateValidationResult = AuthorizationStateValidationResult.Success;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return of(response);
|
|
158
|
-
}
|
|
159
|
-
return of(null);
|
|
160
|
-
}
|
|
161
|
-
validateOobCode(code) {
|
|
162
|
-
return this.auth0Service.token.authWithOobCode(this.lastMfaChallengeToken, this.lastMfaOobCode, code).pipe(map(value => {
|
|
163
|
-
this.refreshToken = value.refresh_token;
|
|
164
|
-
this.idToken = value.id_token;
|
|
165
|
-
this.accessToken = value.access_token;
|
|
166
|
-
}));
|
|
167
|
-
}
|
|
168
|
-
logout() {
|
|
169
|
-
const refreshToken = localStorage.getItem("auth0_refresh_token");
|
|
170
|
-
localStorage.removeItem("auth0_id_token");
|
|
171
|
-
localStorage.removeItem("auth0_access_token");
|
|
172
|
-
localStorage.removeItem("auth0_refresh_token");
|
|
173
|
-
return this.auth0Service.token.revokeRefreshToken(refreshToken);
|
|
174
|
-
}
|
|
175
|
-
generateNewToken() {
|
|
176
|
-
return this.auth0Service.token.refreshToken(this.refreshToken).pipe(tap(value => {
|
|
177
|
-
this.refreshToken = value.refresh_token;
|
|
178
|
-
this.idToken = value.id_token;
|
|
179
|
-
this.accessToken = value.access_token;
|
|
180
|
-
}), map(value => value.access_token), catchError(e => {
|
|
181
|
-
return of(null);
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
addMfaAuthenticator(authenticator) {
|
|
185
|
-
return this.auth0Service.mfa.associateOobAuthenticator({
|
|
186
|
-
mfaToken: this.lastMfaChallengeToken,
|
|
187
|
-
channels: [authenticator.type],
|
|
188
|
-
email: authenticator.email,
|
|
189
|
-
phoneNumber: authenticator.phoneNumber
|
|
190
|
-
}).pipe(map(value => {
|
|
191
|
-
this.lastMfaOobCode = value.oob_code;
|
|
192
|
-
}));
|
|
193
|
-
}
|
|
194
|
-
triggerMfaChallenge() {
|
|
195
|
-
return this.auth0Service.mfa.challenge({
|
|
196
|
-
type: "oob",
|
|
197
|
-
mfaToken: this.lastMfaChallengeToken
|
|
198
|
-
}).pipe(map(value => {
|
|
199
|
-
this.lastMfaOobCode = value.oob_code;
|
|
200
|
-
}));
|
|
201
|
-
}
|
|
202
|
-
catchGrantError(e) {
|
|
203
|
-
if (e instanceof Auth0MfaRequiredException) {
|
|
204
|
-
this.lastMfaChallengeToken = e.mfaToken;
|
|
205
|
-
return this.triggerMfaChallenge().pipe(map(() => ({
|
|
206
|
-
success: true,
|
|
207
|
-
mfaRequired: true
|
|
208
|
-
})), catchError((err) => {
|
|
209
|
-
if (err instanceof Auth0AssociationRequiredException) {
|
|
210
|
-
return throwError(() => new NoAuthenticatorException());
|
|
211
|
-
}
|
|
212
|
-
return throwError(() => err);
|
|
213
|
-
}));
|
|
214
|
-
}
|
|
215
|
-
return throwError(() => e);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
NiceAuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
219
|
-
NiceAuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthenticationService });
|
|
220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthenticationService, decorators: [{
|
|
221
|
-
type: Injectable
|
|
222
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
223
|
-
type: Inject,
|
|
224
|
-
args: [NICE_AUTH0_OPTIONS]
|
|
225
|
-
}] }, { type: i1.NiceAuth0Service }]; } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvcHJvdmlkZXJzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQXNCbkYsTUFBTSxDQUFOLElBQVksa0NBSVg7QUFKRCxXQUFZLGtDQUFrQztJQUMxQyx5REFBbUIsQ0FBQTtJQUNuQix5REFBbUIsQ0FBQTtJQUNuQix5REFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsa0NBQWtDLEtBQWxDLGtDQUFrQyxRQUk3QztBQVNELE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsWUFDd0MsT0FBeUIsRUFDckQsWUFBOEI7UUFERixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNyRCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFKbkMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENB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QUNmLElBQUksR0FBRyxZQUFZLGlDQUFpQyxFQUFFO29CQUNsRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLHdCQUF3QixFQUFFLENBQUMsQ0FBQztpQkFDM0Q7Z0JBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7c0hBalFRLHlCQUF5QixrQkFPdEIsa0JBQWtCOzBIQVByQix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBUUYsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IGp3dERlY29kZSBmcm9tIFwiand0LWRlY29kZVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgQXV0aDBBc3NvY2lhdGlvblJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4uL2FwaS9tZmEvZXhjZXB0aW9ucy9hc3NvY2lhdGlvbi1yZXF1aXJlZC5leGNlcHRpb25cIjtcbmltcG9ydCB7IE5pY2VBdXRoMFNlcnZpY2UgfSBmcm9tIFwiLi4vYXBpXCI7XG5pbXBvcnQgeyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4uL2FwaS90b2tlbi9leGNlcHRpb25zL21mYS1yZXF1aXJlZC5leGNlcHRpb25cIjtcbmltcG9ydCB7IE5JQ0VfQVVUSDBfT1BUSU9OUyB9IGZyb20gXCIuLi9uaWNlLWF1dGgwLWtpdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUF1dGgwT3B0aW9ucyB9IGZyb20gXCIuLi9uaWNlLWF1dGgwLWtpdC5vcHRpb25zXCI7XG5pbXBvcnQgeyBOb0F1dGhlbnRpY2F0b3JFeGNlcHRpb24gfSBmcm9tIFwiLi9leGNlcHRpb25zL25vLWF1dGhlbnRpY2F0b3IuZXhjZXB0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5SZXNwb25zZSB7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICBtZmFSZXF1aXJlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbXNBdXRoZW50aWNhdG9yIHtcbiAgICB0eXBlOiBcInNtc1wiO1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxBdXRoZW50aWNhdG9yIHtcbiAgICB0eXBlOiBcImVtYWlsXCI7XG4gICAgZW1haWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uRmxvd09wdGlvbnMge1xuICAgIGNvbm5lY3Rpb24/OiBzdHJpbmc7XG4gICAgdXNlU3RhdGVWYWxpZGF0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgT21pdHRlZCA9IFwib21pdHRlZFwiLFxuICAgIFN1Y2Nlc3MgPSBcInN1Y2Nlc3NcIixcbiAgICBGYWlsdXJlID0gXCJmYWlsdXJlXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uRmxvd1Jlc3BvbnNlIHtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBzdGF0ZVZhbGlkYXRpb25SZXN1bHQ6IEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOaWNlQXV0aGVudGljYXRpb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIGxhc3RNZmFDaGFsbGVuZ2VUb2tlbjogc3RyaW5nO1xuICAgIHByaXZhdGUgbGFzdE1mYU9vYkNvZGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBjdXJyZW50VXNlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY3VycmVudFVzZXIpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTklDRV9BVVRIMF9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IE5pY2VBdXRoME9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgYXV0aDBTZXJ2aWNlOiBOaWNlQXV0aDBTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGdldCBpZFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2lkX3Rva2VuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaWRUb2tlbihhY2Nlc3NUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0aDBfaWRfdG9rZW5cIiwgYWNjZXNzVG9rZW4pO1xuICAgICAgICB0aGlzLmN1cnJlbnRVc2VyJC5uZXh0KHRoaXMuY3VycmVudFVzZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXNzVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfYWNjZXNzX3Rva2VuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYWNjZXNzVG9rZW4oYWNjZXNzVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX2FjY2Vzc190b2tlblwiLCBhY2Nlc3NUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZWZyZXNoVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIiwgcmVmcmVzaFRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dGhUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dGhUb2tlbiA9PT0gXCJpZFRva2VuXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlkVG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZFRva2VuUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGp3dERlY29kZSh0aGlzLmlkVG9rZW4pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZhaWxlZCB0byBkZWNvZGUgcGF5bG9hZDogXCIgKyBlKTtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXNzVG9rZW5QYXlsb2FkKCk6IGFueSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkUGF5bG9hZCA9IGF0b2IodGhpcy5hY2Nlc3NUb2tlbi5zcGxpdChcIi5cIilbMV0pO1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZFBheWxvYWQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZhaWxlZCB0byBkZWNvZGUgcGF5bG9hZDogXCIgKyBlKTtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXV0aFRva2VuUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dGhUb2tlbiA9PT0gXCJpZFRva2VuXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlkVG9rZW5QYXlsb2FkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuUGF5bG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRVc2VyKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkVG9rZW5QYXlsb2FkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0xvZ2dlZEluKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZVRva2VuKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldEF1dGhvcml6YXRpb25Ub2tlbigpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHRva2VuOiBzdHJpbmcpID0+IHRva2VuICE9IG51bGwpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF1dGhvcml6YXRpb25Ub2tlbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuYXV0aFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZVRva2VuKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmF1dGhUb2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlTmV3VG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVUb2tlbigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwID0gdGhpcy5hdXRoVG9rZW5QYXlsb2FkLmV4cDtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xuICAgICAgICByZXR1cm4gbm93IDwgZXhwO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXNzd29yZEdyYW50KHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLmF1dGhXaXRoUGFzc3dvcmQodXNlcm5hbWUsIHBhc3N3b3JkKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB0aGlzLmNhdGNoR3JhbnRFcnJvcihlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXV0aG9yaXphdGlvbkNvZGVHcmFudChjb2RlOiBzdHJpbmcsIHJlZGlyZWN0VXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLmF1dGhXaXRoQXV0aG9yaXphdGlvbkNvZGUoY29kZSwgcmVkaXJlY3RVcmwpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1mYVJlcXVpcmVkOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHRoaXMuY2F0Y2hHcmFudEVycm9yKGUpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdXRoRmxvd1JlcXVlc3RVcmkocmVkaXJlY3RVcmw6IHN0cmluZywgb3B0aW9ucz86IEF1dGhvcml6YXRpb25GbG93T3B0aW9ucyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5hdXRob3JpemF0aW9uLmJ1aWxkQXV0aEZsb3dSZXF1ZXN0KHJlZGlyZWN0VXJsLCBvcHRpb25zPy5jb25uZWN0aW9uID8/IHVuZGVmaW5lZCkucGlwZShtYXAocmVxdWVzdCA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucz8udXNlU3RhdGVWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9hdXRoX2Zsb3dfc3RhdGVcIiwgcmVxdWVzdC5zdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdC51cmk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tBdXRoRmxvd1Jlc3BvbnNlKGV4cGVjdGVkUmVzcG9uc2VQYXRoPzogc3RyaW5nIHwgc3RyaW5nW10pOiBPYnNlcnZhYmxlPEF1dGhvcml6YXRpb25GbG93UmVzcG9uc2UgfCBudWxsPiB7XG4gICAgICAgIGlmICh0eXBlb2YgZXhwZWN0ZWRSZXNwb25zZVBhdGggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGV4cGVjdGVkUmVzcG9uc2VQYXRoID0gW2V4cGVjdGVkUmVzcG9uc2VQYXRoXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhdGggPSBleHBlY3RlZFJlc3BvbnNlUGF0aD8uZmluZCh4ID0+IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9PT0geCk7XG4gICAgICAgIGlmICghZXhwZWN0ZWRSZXNwb25zZVBhdGggfHwgcGF0aCkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgICAgICAgIGlmICghcGFyYW1zLmhhcyhcImNvZGVcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgY29kZTogcGFyYW1zLmdldChcImNvZGVcIiksXG4gICAgICAgICAgICAgICAgc3RhdGVWYWxpZGF0aW9uUmVzdWx0OiBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0Lk9taXR0ZWRcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHNhdmVkQXV0aG9yaXphdGlvblN0YXRlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9hdXRoX2Zsb3dfc3RhdGVcIik7XG4gICAgICAgICAgICBpZiAoc2F2ZWRBdXRob3JpemF0aW9uU3RhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcmFtcy5oYXMoXCJzdGF0ZVwiKSB8fCBzYXZlZEF1dGhvcml6YXRpb25TdGF0ZSAhPT0gcGFyYW1zLmdldChcInN0YXRlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXRlVmFsaWRhdGlvblJlc3VsdCA9IEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQuRmFpbHVyZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0ZVZhbGlkYXRpb25SZXN1bHQgPSBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0LlN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb2YocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZU9vYkNvZGUoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aE9vYkNvZGUodGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW4sIHRoaXMubGFzdE1mYU9vYkNvZGUsIGNvZGUpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9nb3V0KCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4ucmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdlbmVyYXRlTmV3VG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLnJlZnJlc2hUb2tlbih0aGlzLnJlZnJlc2hUb2tlbikucGlwZShcbiAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB2YWx1ZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZS5hY2Nlc3NfdG9rZW4pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRNZmFBdXRoZW50aWNhdG9yKGF1dGhlbnRpY2F0b3I6IFNtc0F1dGhlbnRpY2F0b3IgfCBFbWFpbEF1dGhlbnRpY2F0b3IpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLm1mYS5hc3NvY2lhdGVPb2JBdXRoZW50aWNhdG9yKHtcbiAgICAgICAgICAgIG1mYVRva2VuOiB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbixcbiAgICAgICAgICAgIGNoYW5uZWxzOiBbYXV0aGVudGljYXRvci50eXBlXSxcbiAgICAgICAgICAgIGVtYWlsOiAoYXV0aGVudGljYXRvciBhcyBFbWFpbEF1dGhlbnRpY2F0b3IpLmVtYWlsLFxuICAgICAgICAgICAgcGhvbmVOdW1iZXI6IChhdXRoZW50aWNhdG9yIGFzIFNtc0F1dGhlbnRpY2F0b3IpLnBob25lTnVtYmVyXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE1mYU9vYkNvZGUgPSB2YWx1ZS5vb2JfY29kZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJNZmFDaGFsbGVuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5tZmEuY2hhbGxlbmdlKHtcbiAgICAgICAgICAgIHR5cGU6IFwib29iXCIsXG4gICAgICAgICAgICBtZmFUb2tlbjogdGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW5cbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0TWZhT29iQ29kZSA9IHZhbHVlLm9vYl9jb2RlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhdGNoR3JhbnRFcnJvcihlOiBhbnkpOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2U+IHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbiA9IGUubWZhVG9rZW47XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyTWZhQ2hhbGxlbmdlKCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWZhUmVxdWlyZWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBdXRoMEFzc29jaWF0aW9uUmVxdWlyZWRFeGNlcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBOb0F1dGhlbnRpY2F0b3JFeGNlcHRpb24oKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICB9XG5cbn1cbiJdfQ==
|