@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
|
@@ -0,0 +1,226 @@
|
|
|
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
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
218
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService }); }
|
|
219
|
+
}
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService, decorators: [{
|
|
221
|
+
type: Injectable
|
|
222
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
223
|
+
type: Inject,
|
|
224
|
+
args: [NICE_AUTH0_OPTIONS]
|
|
225
|
+
}] }, { type: i1.NiceAuth0Service }] });
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvcHJvdmlkZXJzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFzQm5GLE1BQU0sQ0FBTixJQUFZLGtDQUlYO0FBSkQsV0FBWSxrQ0FBa0M7SUFDMUMseURBQW1CLENBQUE7SUFDbkIseURBQW1CLENBQUE7SUFDbkIseURBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtDQUFrQyxLQUFsQyxrQ0FBa0MsUUFJN0M7QUFTRCxNQUFNLE9BQU8seUJBQXlCO0lBTWxDLFlBQ3dDLE9BQXlCLEVBQ3JELFlBQThCO1FBREYsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDckQsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBSm5DLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENB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LENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNQLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNmLElBQUksR0FBRyxZQUFZLGlDQUFpQyxFQUFFLENBQUM7b0JBQ25ELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0FqUVEseUJBQXlCLGtCQU90QixrQkFBa0I7bUhBUHJCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBUUYsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgand0RGVjb2RlIH0gZnJvbSBcImp3dC1kZWNvZGVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEF1dGgwQXNzb2NpYXRpb25SZXF1aXJlZEV4Y2VwdGlvbiB9IGZyb20gXCIuLi9hcGkvbWZhL2V4Y2VwdGlvbnMvYXNzb2NpYXRpb24tcmVxdWlyZWQuZXhjZXB0aW9uXCI7XG5pbXBvcnQgeyBOaWNlQXV0aDBTZXJ2aWNlIH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgQXV0aDBNZmFSZXF1aXJlZEV4Y2VwdGlvbiB9IGZyb20gXCIuLi9hcGkvdG9rZW4vZXhjZXB0aW9ucy9tZmEtcmVxdWlyZWQuZXhjZXB0aW9uXCI7XG5pbXBvcnQgeyBOSUNFX0FVVEgwX09QVElPTlMgfSBmcm9tIFwiLi4vbmljZS1hdXRoMC1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBdXRoME9wdGlvbnMgfSBmcm9tIFwiLi4vbmljZS1hdXRoMC1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgTm9BdXRoZW50aWNhdG9yRXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9uby1hdXRoZW50aWNhdG9yLmV4Y2VwdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2Uge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgbWZhUmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21zQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJzbXNcIjtcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJlbWFpbFwiO1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dPcHRpb25zIHtcbiAgICBjb25uZWN0aW9uPzogc3RyaW5nO1xuICAgIHVzZVN0YXRlVmFsaWRhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQge1xuICAgIE9taXR0ZWQgPSBcIm9taXR0ZWRcIixcbiAgICBTdWNjZXNzID0gXCJzdWNjZXNzXCIsXG4gICAgRmFpbHVyZSA9IFwiZmFpbHVyZVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dSZXNwb25zZSB7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgc3RhdGVWYWxpZGF0aW9uUmVzdWx0OiBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUF1dGhlbnRpY2F0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSBsYXN0TWZhQ2hhbGxlbmdlVG9rZW46IHN0cmluZztcbiAgICBwcml2YXRlIGxhc3RNZmFPb2JDb2RlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY3VycmVudFVzZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRVc2VyKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLFxuICAgICAgICBwcml2YXRlIGF1dGgwU2VydmljZTogTmljZUF1dGgwU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBnZXQgaWRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlkVG9rZW4oYWNjZXNzVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX2lkX3Rva2VuXCIsIGFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlciQubmV4dCh0aGlzLmN1cnJlbnRVc2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2FjY2Vzc190b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIiwgYWNjZXNzVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVmcmVzaFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9yZWZyZXNoX3Rva2VuXCIsIHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRoVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRoVG9rZW4gPT09IFwiaWRUb2tlblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWRUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBqd3REZWNvZGUodGhpcy5pZFRva2VuKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gZGVjb2RlIHBheWxvYWQ6IFwiICsgZSk7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFBheWxvYWQgPSBhdG9iKHRoaXMuYWNjZXNzVG9rZW4uc3BsaXQoXCIuXCIpWzFdKTtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWRQYXlsb2FkKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gZGVjb2RlIHBheWxvYWQ6IFwiICsgZSk7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dGhUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRoVG9rZW4gPT09IFwiaWRUb2tlblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuUGF5bG9hZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NUb2tlblBheWxvYWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW50VXNlcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuUGF5bG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tMb2dnZWRJbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVUb2tlbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBdXRob3JpemF0aW9uVG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh0b2tlbjogc3RyaW5nKSA9PiB0b2tlbiAhPSBudWxsKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdXRob3JpemF0aW9uVG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVUb2tlbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5hdXRoVG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZU5ld1Rva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5hdXRoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4cCA9IHRoaXMuYXV0aFRva2VuUGF5bG9hZC5leHA7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgcmV0dXJuIG5vdyA8IGV4cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFzc3dvcmRHcmFudCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aFBhc3N3b3JkKHVzZXJuYW1lLCBwYXNzd29yZCkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB2YWx1ZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWZhUmVxdWlyZWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhpcy5jYXRjaEdyYW50RXJyb3IoZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhvcml6YXRpb25Db2RlR3JhbnQoY29kZTogc3RyaW5nLCByZWRpcmVjdFVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aEF1dGhvcml6YXRpb25Db2RlKGNvZGUsIHJlZGlyZWN0VXJsKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB0aGlzLmNhdGNoR3JhbnRFcnJvcihlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXV0aEZsb3dSZXF1ZXN0VXJpKHJlZGlyZWN0VXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBBdXRob3JpemF0aW9uRmxvd09wdGlvbnMpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UuYXV0aG9yaXphdGlvbi5idWlsZEF1dGhGbG93UmVxdWVzdChyZWRpcmVjdFVybCwgb3B0aW9ucz8uY29ubmVjdGlvbiA/PyB1bmRlZmluZWQpLnBpcGUobWFwKHJlcXVlc3QgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnM/LnVzZVN0YXRlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0aDBfYXV0aF9mbG93X3N0YXRlXCIsIHJlcXVlc3Quc3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QudXJpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrQXV0aEZsb3dSZXNwb25zZShleHBlY3RlZFJlc3BvbnNlUGF0aD86IHN0cmluZyB8IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBdXRob3JpemF0aW9uRmxvd1Jlc3BvbnNlIHwgbnVsbD4ge1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkUmVzcG9uc2VQYXRoID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBleHBlY3RlZFJlc3BvbnNlUGF0aCA9IFtleHBlY3RlZFJlc3BvbnNlUGF0aF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXRoID0gZXhwZWN0ZWRSZXNwb25zZVBhdGg/LmZpbmQoeCA9PiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT09IHgpO1xuICAgICAgICBpZiAoIWV4cGVjdGVkUmVzcG9uc2VQYXRoIHx8IHBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgICAgICBpZiAoIXBhcmFtcy5oYXMoXCJjb2RlXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIGNvZGU6IHBhcmFtcy5nZXQoXCJjb2RlXCIpLFxuICAgICAgICAgICAgICAgIHN0YXRlVmFsaWRhdGlvblJlc3VsdDogQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdC5PbWl0dGVkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzYXZlZEF1dGhvcml6YXRpb25TdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfYXV0aF9mbG93X3N0YXRlXCIpO1xuICAgICAgICAgICAgaWYgKHNhdmVkQXV0aG9yaXphdGlvblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMuaGFzKFwic3RhdGVcIikgfHwgc2F2ZWRBdXRob3JpemF0aW9uU3RhdGUgIT09IHBhcmFtcy5nZXQoXCJzdGF0ZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0ZVZhbGlkYXRpb25SZXN1bHQgPSBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0LkZhaWx1cmU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdGVWYWxpZGF0aW9uUmVzdWx0ID0gQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdC5TdWNjZXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVPb2JDb2RlKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4uYXV0aFdpdGhPb2JDb2RlKHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuLCB0aGlzLmxhc3RNZmFPb2JDb2RlLCBjb2RlKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvZ291dCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVmcmVzaFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9yZWZyZXNoX3Rva2VuXCIpO1xuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfaWRfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfYWNjZXNzX3Rva2VuXCIpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLnJldm9rZVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZU5ld1Rva2VuKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5yZWZyZXNoVG9rZW4odGhpcy5yZWZyZXNoVG9rZW4pLnBpcGUoXG4gICAgICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4gdmFsdWUuYWNjZXNzX3Rva2VuKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTWZhQXV0aGVudGljYXRvcihhdXRoZW50aWNhdG9yOiBTbXNBdXRoZW50aWNhdG9yIHwgRW1haWxBdXRoZW50aWNhdG9yKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5tZmEuYXNzb2NpYXRlT29iQXV0aGVudGljYXRvcih7XG4gICAgICAgICAgICBtZmFUb2tlbjogdGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW4sXG4gICAgICAgICAgICBjaGFubmVsczogW2F1dGhlbnRpY2F0b3IudHlwZV0sXG4gICAgICAgICAgICBlbWFpbDogKGF1dGhlbnRpY2F0b3IgYXMgRW1haWxBdXRoZW50aWNhdG9yKS5lbWFpbCxcbiAgICAgICAgICAgIHBob25lTnVtYmVyOiAoYXV0aGVudGljYXRvciBhcyBTbXNBdXRoZW50aWNhdG9yKS5waG9uZU51bWJlclxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNZmFPb2JDb2RlID0gdmFsdWUub29iX2NvZGU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmlnZ2VyTWZhQ2hhbGxlbmdlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UubWZhLmNoYWxsZW5nZSh7XG4gICAgICAgICAgICB0eXBlOiBcIm9vYlwiLFxuICAgICAgICAgICAgbWZhVG9rZW46IHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE1mYU9vYkNvZGUgPSB2YWx1ZS5vb2JfY29kZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXRjaEdyYW50RXJyb3IoZTogYW55KTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgQXV0aDBNZmFSZXF1aXJlZEV4Y2VwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW4gPSBlLm1mYVRva2VuO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJpZ2dlck1mYUNoYWxsZW5nZSgpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1mYVJlcXVpcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQXV0aDBBc3NvY2lhdGlvblJlcXVpcmVkRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgTm9BdXRoZW50aWNhdG9yRXhjZXB0aW9uKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { HttpErrorResponse, HttpHeaders, HttpParams, HttpClientModule, HTTP_INTE
|
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
5
5
|
import { throwError, of, BehaviorSubject, mergeMap } from 'rxjs';
|
|
6
|
-
import jwtDecode from 'jwt-decode';
|
|
6
|
+
import { jwtDecode } from 'jwt-decode';
|
|
7
7
|
import { catchError, map, tap } from 'rxjs/operators';
|
|
8
8
|
import { v4 } from 'uuid';
|
|
9
9
|
|
|
@@ -75,15 +75,15 @@ class Auth0MfaApi extends Auth0Api {
|
|
|
75
75
|
})
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0MfaApi, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
79
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0MfaApi }); }
|
|
78
80
|
}
|
|
79
|
-
|
|
80
|
-
Auth0MfaApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0MfaApi });
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0MfaApi, decorators: [{
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0MfaApi, decorators: [{
|
|
82
82
|
type: Injectable
|
|
83
|
-
}], ctorParameters:
|
|
83
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
84
84
|
type: Inject,
|
|
85
85
|
args: [NICE_AUTH0_OPTIONS]
|
|
86
|
-
}] }, { type: i1.HttpClient }]
|
|
86
|
+
}] }, { type: i1.HttpClient }] });
|
|
87
87
|
|
|
88
88
|
class Auth0MfaRequiredException extends Auth0BaseException {
|
|
89
89
|
constructor(value) {
|
|
@@ -169,15 +169,15 @@ class Auth0TokenApi extends Auth0Api {
|
|
|
169
169
|
token: refreshToken
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0TokenApi, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
173
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0TokenApi }); }
|
|
172
174
|
}
|
|
173
|
-
|
|
174
|
-
Auth0TokenApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0TokenApi });
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0TokenApi, decorators: [{
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0TokenApi, decorators: [{
|
|
176
176
|
type: Injectable
|
|
177
|
-
}], ctorParameters:
|
|
177
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
178
178
|
type: Inject,
|
|
179
179
|
args: [NICE_AUTH0_OPTIONS]
|
|
180
|
-
}] }, { type: i1.HttpClient }]
|
|
180
|
+
}] }, { type: i1.HttpClient }] });
|
|
181
181
|
|
|
182
182
|
class Auth0AuthorizationApi extends Auth0Api {
|
|
183
183
|
constructor(options) {
|
|
@@ -202,15 +202,15 @@ class Auth0AuthorizationApi extends Auth0Api {
|
|
|
202
202
|
state: v4(),
|
|
203
203
|
});
|
|
204
204
|
}
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0AuthorizationApi, deps: [{ token: NICE_AUTH0_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
206
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0AuthorizationApi }); }
|
|
205
207
|
}
|
|
206
|
-
|
|
207
|
-
Auth0AuthorizationApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0AuthorizationApi });
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0AuthorizationApi, decorators: [{
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: Auth0AuthorizationApi, decorators: [{
|
|
209
209
|
type: Injectable
|
|
210
|
-
}], ctorParameters:
|
|
210
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
211
211
|
type: Inject,
|
|
212
212
|
args: [NICE_AUTH0_OPTIONS]
|
|
213
|
-
}] }]
|
|
213
|
+
}] }] });
|
|
214
214
|
|
|
215
215
|
class NiceAuth0Service {
|
|
216
216
|
constructor(mfa, token, authorization) {
|
|
@@ -218,15 +218,15 @@ class NiceAuth0Service {
|
|
|
218
218
|
this.token = token;
|
|
219
219
|
this.authorization = authorization;
|
|
220
220
|
}
|
|
221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Service, deps: [{ token: Auth0MfaApi }, { token: Auth0TokenApi }, { token: Auth0AuthorizationApi }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
222
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Service, providedIn: "root" }); }
|
|
221
223
|
}
|
|
222
|
-
|
|
223
|
-
NiceAuth0Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuth0Service, providedIn: "root" });
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuth0Service, decorators: [{
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Service, decorators: [{
|
|
225
225
|
type: Injectable,
|
|
226
226
|
args: [{
|
|
227
227
|
providedIn: "root"
|
|
228
228
|
}]
|
|
229
|
-
}], ctorParameters:
|
|
229
|
+
}], ctorParameters: () => [{ type: Auth0MfaApi }, { type: Auth0TokenApi }, { type: Auth0AuthorizationApi }] });
|
|
230
230
|
|
|
231
231
|
class NoAuthenticatorException {
|
|
232
232
|
}
|
|
@@ -436,15 +436,15 @@ class NiceAuthenticationService {
|
|
|
436
436
|
}
|
|
437
437
|
return throwError(() => e);
|
|
438
438
|
}
|
|
439
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
440
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService }); }
|
|
439
441
|
}
|
|
440
|
-
|
|
441
|
-
NiceAuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthenticationService });
|
|
442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthenticationService, decorators: [{
|
|
442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthenticationService, decorators: [{
|
|
443
443
|
type: Injectable
|
|
444
|
-
}], ctorParameters:
|
|
444
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
445
445
|
type: Inject,
|
|
446
446
|
args: [NICE_AUTH0_OPTIONS]
|
|
447
|
-
}] }, { type: NiceAuth0Service }]
|
|
447
|
+
}] }, { type: NiceAuth0Service }] });
|
|
448
448
|
|
|
449
449
|
class NiceAuthInterceptor {
|
|
450
450
|
constructor(options, authService) {
|
|
@@ -467,15 +467,15 @@ class NiceAuthInterceptor {
|
|
|
467
467
|
return next.handle(authReq);
|
|
468
468
|
}));
|
|
469
469
|
}
|
|
470
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthInterceptor, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: NiceAuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
471
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthInterceptor }); }
|
|
470
472
|
}
|
|
471
|
-
|
|
472
|
-
NiceAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthInterceptor });
|
|
473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuthInterceptor, decorators: [{
|
|
473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuthInterceptor, decorators: [{
|
|
474
474
|
type: Injectable
|
|
475
|
-
}], ctorParameters:
|
|
475
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
476
476
|
type: Inject,
|
|
477
477
|
args: [NICE_AUTH0_OPTIONS]
|
|
478
|
-
}] }, { type: NiceAuthenticationService }]
|
|
478
|
+
}] }, { type: NiceAuthenticationService }] });
|
|
479
479
|
|
|
480
480
|
class NiceAuth0Module {
|
|
481
481
|
static forRoot(options) {
|
|
@@ -489,18 +489,18 @@ class NiceAuth0Module {
|
|
|
489
489
|
]
|
|
490
490
|
};
|
|
491
491
|
}
|
|
492
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
493
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Module, imports: [HttpClientModule] }); }
|
|
494
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Module, providers: [
|
|
495
|
+
Auth0MfaApi,
|
|
496
|
+
Auth0TokenApi,
|
|
497
|
+
Auth0AuthorizationApi,
|
|
498
|
+
NiceAuth0Service,
|
|
499
|
+
NiceAuthenticationService,
|
|
500
|
+
{ provide: HTTP_INTERCEPTORS, useClass: NiceAuthInterceptor, multi: true }
|
|
501
|
+
], imports: [HttpClientModule] }); }
|
|
492
502
|
}
|
|
493
|
-
|
|
494
|
-
NiceAuth0Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NiceAuth0Module, imports: [HttpClientModule] });
|
|
495
|
-
NiceAuth0Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuth0Module, providers: [
|
|
496
|
-
Auth0MfaApi,
|
|
497
|
-
Auth0TokenApi,
|
|
498
|
-
Auth0AuthorizationApi,
|
|
499
|
-
NiceAuth0Service,
|
|
500
|
-
NiceAuthenticationService,
|
|
501
|
-
{ provide: HTTP_INTERCEPTORS, useClass: NiceAuthInterceptor, multi: true }
|
|
502
|
-
], imports: [HttpClientModule] });
|
|
503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NiceAuth0Module, decorators: [{
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NiceAuth0Module, decorators: [{
|
|
504
504
|
type: NgModule,
|
|
505
505
|
args: [{
|
|
506
506
|
imports: [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recursyve-nice-auth0-kit.mjs","sources":["../../../projects/nice-auth0-kit/src/lib/nice-auth0-kit.constant.ts","../../../projects/nice-auth0-kit/src/lib/api/exceptions/base.exception.ts","../../../projects/nice-auth0-kit/src/lib/api/mfa/exceptions/association-required.exception.ts","../../../projects/nice-auth0-kit/src/lib/api/auth0.api.ts","../../../projects/nice-auth0-kit/src/lib/api/mfa/exceptions/mfa.exception.ts","../../../projects/nice-auth0-kit/src/lib/api/mfa/mfa.api.ts","../../../projects/nice-auth0-kit/src/lib/api/token/exceptions/mfa-required.exception.ts","../../../projects/nice-auth0-kit/src/lib/api/token/exceptions/token.exception.ts","../../../projects/nice-auth0-kit/src/lib/api/token/token.api.ts","../../../projects/nice-auth0-kit/src/lib/api/authorization/authorization.api.ts","../../../projects/nice-auth0-kit/src/lib/api/nice-auth0.service.ts","../../../projects/nice-auth0-kit/src/lib/providers/exceptions/no-authenticator.exception.ts","../../../projects/nice-auth0-kit/src/lib/providers/authentication.service.ts","../../../projects/nice-auth0-kit/src/lib/api/interceptors/auth.interceptor.ts","../../../projects/nice-auth0-kit/src/lib/nice-auht0-kit.module.ts","../../../projects/nice-auth0-kit/src/public-api.ts","../../../projects/nice-auth0-kit/src/recursyve-nice-auth0-kit.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_AUTH0_OPTIONS = new InjectionToken(\"nice_auth0_options\");\n","export class Auth0BaseException {\n public error: string;\n public errorDescription: string;\n\n constructor(value: Auth0BaseException) {\n Object.assign(this, value);\n }\n}\n","import { Auth0BaseException } from \"../../exceptions/base.exception\";\n\nexport class Auth0AssociationRequiredException extends Auth0BaseException {}\n","export class Auth0Api {\n constructor(private domain: string, private path: string) {}\n\n protected url(route = \"\"): string {\n if (route === \"\" && this.path === \"\") {\n return this.domain;\n }\n return `${this.domain}/${this.path}/${route}`;\n }\n}\n","export enum MfaExceptions {\n AssociationRequired = \"association_required\"\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { NICE_AUTH0_OPTIONS } from \"../../nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"../../nice-auth0-kit.options\";\nimport { Auth0Api } from \"../auth0.api\";\nimport { Auth0AssociationRequiredException } from \"./exceptions/association-required.exception\";\nimport { MfaExceptions } from \"./exceptions/mfa.exception\";\nimport { Auth0MfaAddOobAuthenticatorRequest, Auth0MfaChallengeRequest } from \"./model/mfa-request.model\";\nimport { Auth0ChallengeResponse } from \"./model/mfa-response.model\";\n\n@Injectable()\nexport class Auth0MfaApi extends Auth0Api {\n constructor(@Inject(NICE_AUTH0_OPTIONS) private options: NiceAuth0Options, private http: HttpClient) {\n super(options.domain, \"mfa\");\n }\n\n public challenge(req: Auth0MfaChallengeRequest): Observable<Auth0ChallengeResponse> {\n return this.http.post<Auth0ChallengeResponse>(this.url(\"challenge\"), {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n challenge_type: req.type,\n mfa_token: req.mfaToken\n }).pipe(\n catchError((e) => {\n if (e instanceof HttpErrorResponse) {\n const error = e.error;\n if (error.error === MfaExceptions.AssociationRequired) {\n return throwError(() => new Auth0AssociationRequiredException({\n error: error.error,\n errorDescription: error.error_description\n }));\n }\n }\n\n return throwError(() => e);\n })\n );\n }\n\n public associateOobAuthenticator(req: Auth0MfaAddOobAuthenticatorRequest): Observable<Auth0ChallengeResponse> {\n return this.http.post<Auth0ChallengeResponse>(\n this.url(\"associate\"),\n {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n authenticator_types: [\"oob\"],\n oob_channels: req.channels,\n phone_number: req.phoneNumber,\n email: req.email\n },\n {\n headers: new HttpHeaders({\n Authorization: `Bearer ${req.mfaToken}`\n })\n }\n );\n }\n}\n","import { Auth0BaseException } from \"../../exceptions/base.exception\";\n\nexport class Auth0MfaRequiredException extends Auth0BaseException {\n public mfaToken: string;\n\n constructor(value: Auth0MfaRequiredException) {\n super(value);\n }\n}\n","export enum TokenExceptions {\n MfaRequired = \"mfa_required\"\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable, of, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { NICE_AUTH0_OPTIONS } from \"../../nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"../../nice-auth0-kit.options\";\nimport { Auth0Api } from \"../auth0.api\";\nimport { Auth0MfaRequiredException } from \"./exceptions/mfa-required.exception\";\nimport { TokenExceptions } from \"./exceptions/token.exception\";\nimport { Auth0TokenResponse } from \"./models/token-response.model\";\n\n@Injectable()\nexport class Auth0TokenApi extends Auth0Api {\n constructor(@Inject(NICE_AUTH0_OPTIONS) private options: NiceAuth0Options, private http: HttpClient) {\n super(options.domain, \"oauth\");\n }\n\n public authWithPassword(username: string, password: string): Observable<Auth0TokenResponse> {\n return this.http.post<Auth0TokenResponse>(\n this.url(\"token\"),\n {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n audience: this.options.audience,\n grant_type: \"password\",\n scope: this.options?.scopes.join(\" \") ?? \"\",\n username,\n password\n }\n ).pipe(\n catchError((e) => {\n if (e instanceof HttpErrorResponse) {\n const error = e.error;\n if (error.error === TokenExceptions.MfaRequired) {\n return throwError(() => new Auth0MfaRequiredException({\n error: error.error,\n errorDescription: error.error_description,\n mfaToken: error.mfa_token\n }));\n }\n }\n\n return throwError(() => e);\n })\n );\n }\n\n public authWithOobCode(mfaToken: string, oobCode: string, bindingCode: string): Observable<Auth0TokenResponse> {\n return this.http.post<Auth0TokenResponse>(\n this.url(\"token\"),\n {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n audience: this.options.audience,\n grant_type: \"http://auth0.com/oauth/grant-type/mfa-oob\",\n scope: this.options?.scopes.join(\" \") ?? \"\",\n mfa_token: mfaToken,\n oob_code: oobCode,\n binding_code: bindingCode\n }\n );\n }\n\n public authWithAuthorizationCode(authCode: string, redirectUrl: string): Observable<Auth0TokenResponse> {\n const body = new HttpParams({\n fromObject: {\n code: authCode,\n redirect_uri: redirectUrl,\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n audience: this.options.audience,\n grant_type: \"authorization_code\",\n scope: this.options.scopes.join(\" \"),\n }\n });\n\n const headers = new HttpHeaders().set(\"Content-Type\", \"application/x-www-form-urlencoded\");\n\n return this.http.post<Auth0TokenResponse>(this.url(\"token\"), body.toString(), { headers });\n }\n\n public refreshToken(refreshToken: string): Observable<Auth0TokenResponse> {\n return this.http.post<Auth0TokenResponse>(\n this.url(\"token\"),\n {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n audience: this.options.audience,\n grant_type: \"refresh_token\",\n scope: this.options?.scopes.join(\" \") ?? \"\",\n refresh_token: refreshToken\n }\n );\n }\n\n public revokeRefreshToken(refreshToken: string): Observable<void> {\n return this.http.post<void>(\n this.url(\"revoke\"),\n {\n client_id: this.options.clientId,\n client_secret: this.options.clientSecret,\n token: refreshToken\n }\n );\n }\n}\n","import { Auth0Api } from \"../auth0.api\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { NICE_AUTH0_OPTIONS } from \"../../nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"../../nice-auth0-kit.options\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { AuthorizationFlowRequest } from \"./models/authorization-flow-request.model\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n@Injectable()\nexport class Auth0AuthorizationApi extends Auth0Api {\n constructor(@Inject(NICE_AUTH0_OPTIONS) private options: NiceAuth0Options) {\n super(options.domain, \"authorize\");\n }\n\n public buildAuthFlowRequest(redirectUrl: string, connection?: string): Observable<AuthorizationFlowRequest> {\n let query = new HttpParams({\n fromObject: {\n redirect_uri: redirectUrl,\n client_id: this.options.clientId,\n audience: this.options.audience,\n response_type: \"code\",\n scope: this.options.scopes.join(\" \"),\n }\n });\n\n if (connection) {\n query = query.append(\"connection\", connection);\n }\n\n return of({\n uri: this.url(`?${query.toString()}`),\n state: uuidv4(),\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Auth0MfaApi } from \"./mfa/mfa.api\";\nimport { Auth0TokenApi } from \"./token/token.api\";\nimport { Auth0AuthorizationApi } from \"./authorization/authorization.api\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceAuth0Service {\n constructor(public mfa: Auth0MfaApi, public token: Auth0TokenApi, public authorization: Auth0AuthorizationApi) {}\n}\n","export class NoAuthenticatorException {}\n","import { Inject, Injectable } from \"@angular/core\";\nimport { jwtDecode } from \"jwt-decode\";\nimport { BehaviorSubject, Observable, of, throwError } from \"rxjs\";\nimport { catchError, map, tap } from \"rxjs/operators\";\nimport { Auth0AssociationRequiredException } from \"../api/mfa/exceptions/association-required.exception\";\nimport { NiceAuth0Service } from \"../api\";\nimport { Auth0MfaRequiredException } from \"../api/token/exceptions/mfa-required.exception\";\nimport { NICE_AUTH0_OPTIONS } from \"../nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"../nice-auth0-kit.options\";\nimport { NoAuthenticatorException } from \"./exceptions/no-authenticator.exception\";\n\nexport interface LoginResponse {\n success: boolean;\n mfaRequired: boolean;\n}\n\nexport interface SmsAuthenticator {\n type: \"sms\";\n phoneNumber: string;\n}\n\nexport interface EmailAuthenticator {\n type: \"email\";\n email: string;\n}\n\nexport interface AuthorizationFlowOptions {\n connection?: string;\n useStateValidation?: boolean;\n}\n\nexport enum AuthorizationStateValidationResult {\n Omitted = \"omitted\",\n Success = \"success\",\n Failure = \"failure\"\n}\n\nexport interface AuthorizationFlowResponse {\n path?: string;\n code: string;\n stateValidationResult: AuthorizationStateValidationResult;\n}\n\n@Injectable()\nexport class NiceAuthenticationService {\n private lastMfaChallengeToken: string;\n private lastMfaOobCode: string;\n\n public currentUser$ = new BehaviorSubject(this.currentUser);\n\n constructor(\n @Inject(NICE_AUTH0_OPTIONS) private options: NiceAuth0Options,\n private auth0Service: NiceAuth0Service\n ) {}\n\n public get idToken(): string {\n return localStorage.getItem(\"auth0_id_token\");\n }\n\n public set idToken(accessToken: string) {\n localStorage.setItem(\"auth0_id_token\", accessToken);\n this.currentUser$.next(this.currentUser);\n }\n\n public get accessToken(): string {\n return localStorage.getItem(\"auth0_access_token\");\n }\n\n public set accessToken(accessToken: string) {\n localStorage.setItem(\"auth0_access_token\", accessToken);\n }\n\n public get refreshToken(): string {\n return localStorage.getItem(\"auth0_refresh_token\");\n }\n\n public set refreshToken(refreshToken: string) {\n localStorage.setItem(\"auth0_refresh_token\", refreshToken);\n }\n\n public get authToken(): string {\n if (this.options.authToken === \"idToken\") {\n return this.idToken;\n }\n return this.accessToken;\n }\n\n public get idTokenPayload(): any {\n try {\n return jwtDecode(this.idToken);\n } catch (e) {\n console.log(\"Failed to decode payload: \" + e);\n return {};\n }\n }\n\n public get accessTokenPayload(): any {\n try {\n const decodedPayload = atob(this.accessToken.split(\".\")[1]);\n return JSON.parse(decodedPayload);\n } catch (e) {\n console.log(\"Failed to decode payload: \" + e);\n return {};\n }\n }\n\n public get authTokenPayload(): any {\n if (this.options.authToken === \"idToken\") {\n return this.idTokenPayload;\n }\n return this.accessTokenPayload;\n }\n\n public get currentUser(): any {\n return this.idTokenPayload;\n }\n\n public checkLoggedIn(): Observable<boolean> {\n if (this.validateToken()) {\n return of(true);\n }\n\n return this.getAuthorizationToken().pipe(\n map((token: string) => token != null),\n catchError(() => of(false))\n );\n }\n\n public getAuthorizationToken(): Observable<string> {\n if (!this.authToken) {\n return of(null);\n }\n\n if (this.validateToken()) {\n return of(this.authToken);\n }\n\n if (this.refreshToken) {\n return this.generateNewToken();\n }\n\n return of(null);\n }\n\n public validateToken(): boolean {\n if (!this.authToken) {\n return false;\n }\n\n const exp = this.authTokenPayload.exp;\n const now = new Date().getTime() / 1000;\n return now < exp;\n }\n\n public passwordGrant(username: string, password: string): Observable<LoginResponse> {\n return this.auth0Service.token.authWithPassword(username, password).pipe(\n map(value => {\n this.refreshToken = value.refresh_token;\n this.idToken = value.id_token;\n this.accessToken = value.access_token;\n return {\n success: true,\n mfaRequired: false\n };\n }),\n catchError((e) => this.catchGrantError(e))\n );\n }\n\n public authorizationCodeGrant(code: string, redirectUrl: string): Observable<LoginResponse> {\n return this.auth0Service.token.authWithAuthorizationCode(code, redirectUrl).pipe(\n map(value => {\n this.refreshToken = value.refresh_token;\n this.idToken = value.id_token;\n this.accessToken = value.access_token;\n return {\n success: true,\n mfaRequired: false\n };\n }),\n catchError((e) => this.catchGrantError(e))\n );\n }\n\n public getAuthFlowRequestUri(redirectUrl: string, options?: AuthorizationFlowOptions): Observable<string> {\n return this.auth0Service.authorization.buildAuthFlowRequest(redirectUrl, options?.connection ?? undefined).pipe(map(request => {\n if (options?.useStateValidation) {\n localStorage.setItem(\"auth0_auth_flow_state\", request.state);\n }\n return request.uri;\n }));\n }\n\n public checkAuthFlowResponse(expectedResponsePath?: string | string[]): Observable<AuthorizationFlowResponse | null> {\n if (typeof expectedResponsePath === \"string\") {\n expectedResponsePath = [expectedResponsePath];\n }\n\n const path = expectedResponsePath?.find(x => window.location.pathname === x);\n if (!expectedResponsePath || path) {\n const params = new URLSearchParams(window.location.search);\n if (!params.has(\"code\")) {\n return of(null);\n }\n\n const response = {\n path,\n code: params.get(\"code\"),\n stateValidationResult: AuthorizationStateValidationResult.Omitted\n };\n\n const savedAuthorizationState = localStorage.getItem(\"auth0_auth_flow_state\");\n if (savedAuthorizationState) {\n if (!params.has(\"state\") || savedAuthorizationState !== params.get(\"state\")) {\n response.stateValidationResult = AuthorizationStateValidationResult.Failure;\n } else {\n response.stateValidationResult = AuthorizationStateValidationResult.Success;\n }\n }\n\n return of(response);\n }\n\n return of(null);\n }\n\n public validateOobCode(code: string): Observable<void> {\n return this.auth0Service.token.authWithOobCode(this.lastMfaChallengeToken, this.lastMfaOobCode, code).pipe(\n map(value => {\n this.refreshToken = value.refresh_token;\n this.idToken = value.id_token;\n this.accessToken = value.access_token;\n })\n );\n }\n\n public logout(): Observable<void> {\n const refreshToken = localStorage.getItem(\"auth0_refresh_token\");\n\n localStorage.removeItem(\"auth0_id_token\");\n localStorage.removeItem(\"auth0_access_token\");\n localStorage.removeItem(\"auth0_refresh_token\");\n\n return this.auth0Service.token.revokeRefreshToken(refreshToken);\n }\n\n public generateNewToken(): Observable<string> {\n return this.auth0Service.token.refreshToken(this.refreshToken).pipe(\n tap(value => {\n this.refreshToken = value.refresh_token;\n this.idToken = value.id_token;\n this.accessToken = value.access_token;\n }),\n map(value => value.access_token),\n catchError(e => {\n return of(null);\n })\n );\n }\n\n public addMfaAuthenticator(authenticator: SmsAuthenticator | EmailAuthenticator): Observable<void> {\n return this.auth0Service.mfa.associateOobAuthenticator({\n mfaToken: this.lastMfaChallengeToken,\n channels: [authenticator.type],\n email: (authenticator as EmailAuthenticator).email,\n phoneNumber: (authenticator as SmsAuthenticator).phoneNumber\n }).pipe(\n map(value => {\n this.lastMfaOobCode = value.oob_code;\n })\n );\n }\n\n public triggerMfaChallenge(): Observable<void> {\n return this.auth0Service.mfa.challenge({\n type: \"oob\",\n mfaToken: this.lastMfaChallengeToken\n }).pipe(\n map(value => {\n this.lastMfaOobCode = value.oob_code;\n })\n );\n }\n\n private catchGrantError(e: any): Observable<LoginResponse> {\n if (e instanceof Auth0MfaRequiredException) {\n this.lastMfaChallengeToken = e.mfaToken;\n return this.triggerMfaChallenge().pipe(\n map(() => ({\n success: true,\n mfaRequired: true\n })),\n catchError((err) => {\n if (err instanceof Auth0AssociationRequiredException) {\n return throwError(() => new NoAuthenticatorException());\n }\n return throwError(() => err);\n })\n );\n }\n return throwError(() => e);\n }\n\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { mergeMap, Observable } from \"rxjs\";\nimport { NICE_AUTH0_OPTIONS } from \"../../nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"../../nice-auth0-kit.options\";\nimport { NiceAuthenticationService } from \"../../providers/authentication.service\";\n\n@Injectable()\nexport class NiceAuthInterceptor implements HttpInterceptor {\n constructor(@Inject(NICE_AUTH0_OPTIONS) private options: NiceAuth0Options, private authService: NiceAuthenticationService) {}\n\n public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (\n req.url.startsWith(`${this.options.domain}/oauth`) ||\n req.url.startsWith(`${this.options.domain}/authorize`) ||\n req.url.startsWith(`${this.options.domain}/mfa`)\n ) {\n return next.handle(req);\n }\n\n return this.authService.getAuthorizationToken().pipe(\n mergeMap(token => {\n if (!token) {\n return next.handle(req);\n }\n\n const authReq = req.clone({\n headers: req.headers.set(\"Authorization\", `Bearer ${token}`)\n });\n return next.handle(authReq);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS, HttpClientModule } from \"@angular/common/http\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NiceAuthInterceptor } from \"./api/interceptors/auth.interceptor\";\nimport { Auth0MfaApi } from \"./api/mfa/mfa.api\";\nimport { NiceAuth0Service } from \"./api/nice-auth0.service\";\nimport { Auth0TokenApi } from \"./api/token/token.api\";\nimport { NICE_AUTH0_OPTIONS } from \"./nice-auth0-kit.constant\";\nimport { NiceAuth0Options } from \"./nice-auth0-kit.options\";\nimport { NiceAuthenticationService } from \"./providers/authentication.service\";\nimport { Auth0AuthorizationApi } from \"./api/authorization/authorization.api\";\n\n@NgModule({\n imports: [\n HttpClientModule\n ],\n declarations: [],\n providers: [\n Auth0MfaApi,\n Auth0TokenApi,\n Auth0AuthorizationApi,\n NiceAuth0Service,\n NiceAuthenticationService,\n { provide: HTTP_INTERCEPTORS, useClass: NiceAuthInterceptor, multi: true }\n ],\n exports: []\n})\nexport class NiceAuth0Module {\n public static forRoot(options: NiceAuth0Options): ModuleWithProviders<NiceAuth0Module> {\n return {\n ngModule: NiceAuth0Module,\n providers: [\n {\n provide: NICE_AUTH0_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","/*\n * Public API Surface of nice-auth0-kit\n */\n\nexport * from \"./lib/nice-auht0-kit.module\";\nexport * from \"./lib/nice-auth0-kit.options\";\nexport * from \"./lib/api\";\nexport * from \"./lib/providers\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1.Auth0MfaApi","i2.Auth0TokenApi","i3.Auth0AuthorizationApi","i1.NiceAuth0Service","i1.NiceAuthenticationService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@recursyve/nice-auth0-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0-beta.20",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^17.0.0",
|
|
6
|
+
"@angular/core": "^17.0.0",
|
|
7
7
|
"uuid": ">= 9.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.3.0",
|
|
11
|
-
"jwt-decode": "^
|
|
11
|
+
"jwt-decode": "^4.0.0"
|
|
12
12
|
},
|
|
13
|
-
"module": "
|
|
14
|
-
"es2020": "fesm2020/recursyve-nice-auth0-kit.mjs",
|
|
15
|
-
"esm2020": "esm2020/recursyve-nice-auth0-kit.mjs",
|
|
16
|
-
"fesm2020": "fesm2020/recursyve-nice-auth0-kit.mjs",
|
|
17
|
-
"fesm2015": "fesm2015/recursyve-nice-auth0-kit.mjs",
|
|
13
|
+
"module": "fesm2022/recursyve-nice-auth0-kit.mjs",
|
|
18
14
|
"typings": "index.d.ts",
|
|
19
15
|
"exports": {
|
|
20
16
|
"./package.json": {
|
|
@@ -22,11 +18,9 @@
|
|
|
22
18
|
},
|
|
23
19
|
".": {
|
|
24
20
|
"types": "./index.d.ts",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"node": "./fesm2015/recursyve-nice-auth0-kit.mjs",
|
|
29
|
-
"default": "./fesm2020/recursyve-nice-auth0-kit.mjs"
|
|
21
|
+
"esm2022": "./esm2022/recursyve-nice-auth0-kit.mjs",
|
|
22
|
+
"esm": "./esm2022/recursyve-nice-auth0-kit.mjs",
|
|
23
|
+
"default": "./fesm2022/recursyve-nice-auth0-kit.mjs"
|
|
30
24
|
}
|
|
31
25
|
},
|
|
32
26
|
"sideEffects": false
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Auth0Api } from "../auth0.api";
|
|
2
|
-
import { Inject, Injectable } from "@angular/core";
|
|
3
|
-
import { NICE_AUTH0_OPTIONS } from "../../nice-auth0-kit.constant";
|
|
4
|
-
import { HttpParams } from "@angular/common/http";
|
|
5
|
-
import { of } from "rxjs";
|
|
6
|
-
import { v4 as uuidv4 } from "uuid";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class Auth0AuthorizationApi extends Auth0Api {
|
|
9
|
-
constructor(options) {
|
|
10
|
-
super(options.domain, "authorize");
|
|
11
|
-
this.options = options;
|
|
12
|
-
}
|
|
13
|
-
buildAuthFlowRequest(redirectUrl, connection) {
|
|
14
|
-
let query = new HttpParams({
|
|
15
|
-
fromObject: {
|
|
16
|
-
redirect_uri: redirectUrl,
|
|
17
|
-
client_id: this.options.clientId,
|
|
18
|
-
audience: this.options.audience,
|
|
19
|
-
response_type: "code",
|
|
20
|
-
scope: this.options.scopes.join(" "),
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
if (connection) {
|
|
24
|
-
query = query.append("connection", connection);
|
|
25
|
-
}
|
|
26
|
-
return of({
|
|
27
|
-
uri: this.url(`?${query.toString()}`),
|
|
28
|
-
state: uuidv4(),
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
Auth0AuthorizationApi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0AuthorizationApi, deps: [{ token: NICE_AUTH0_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
-
Auth0AuthorizationApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0AuthorizationApi });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Auth0AuthorizationApi, decorators: [{
|
|
35
|
-
type: Injectable
|
|
36
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
37
|
-
type: Inject,
|
|
38
|
-
args: [NICE_AUTH0_OPTIONS]
|
|
39
|
-
}] }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWF1dGgwLWtpdC9zcmMvbGliL2FwaS9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3BDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxRQUFRO0lBQy9DLFlBQWdELE9BQXlCO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRFMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFekUsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsVUFBbUI7UUFDaEUsSUFBSSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDdkIsVUFBVSxFQUFFO2dCQUNSLFlBQVksRUFBRSxXQUFXO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUMvQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDdkM7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRTtZQUNaLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNsRDtRQUVELE9BQU8sRUFBRSxDQUFDO1lBQ04sR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxLQUFLLEVBQUUsTUFBTSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7O2tIQXhCUSxxQkFBcUIsa0JBQ1Ysa0JBQWtCO3NIQUQ3QixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBRU0sTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoMEFwaSB9IGZyb20gXCIuLi9hdXRoMC5hcGlcIjtcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOSUNFX0FVVEgwX09QVElPTlMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBdXRoME9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkZsb3dSZXF1ZXN0IH0gZnJvbSBcIi4vbW9kZWxzL2F1dGhvcml6YXRpb24tZmxvdy1yZXF1ZXN0Lm1vZGVsXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aDBBdXRob3JpemF0aW9uQXBpIGV4dGVuZHMgQXV0aDBBcGkge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTklDRV9BVVRIMF9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IE5pY2VBdXRoME9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucy5kb21haW4sIFwiYXV0aG9yaXplXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZEF1dGhGbG93UmVxdWVzdChyZWRpcmVjdFVybDogc3RyaW5nLCBjb25uZWN0aW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRob3JpemF0aW9uRmxvd1JlcXVlc3Q+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmwsXG4gICAgICAgICAgICAgICAgY2xpZW50X2lkOiB0aGlzLm9wdGlvbnMuY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICByZXNwb25zZV90eXBlOiBcImNvZGVcIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zLnNjb3Blcy5qb2luKFwiIFwiKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkuYXBwZW5kKFwiY29ubmVjdGlvblwiLCBjb25uZWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgICB1cmk6IHRoaXMudXJsKGA/JHtxdWVyeS50b1N0cmluZygpfWApLFxuICAgICAgICAgICAgc3RhdGU6IHV1aWR2NCgpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|