@recursyve/nice-auth0-kit 18.0.0-beta.22 → 21.0.0-beta.21

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.
Files changed (52) hide show
  1. package/fesm2022/recursyve-nice-auth0-kit.mjs +24 -24
  2. package/fesm2022/recursyve-nice-auth0-kit.mjs.map +1 -1
  3. package/package.json +5 -7
  4. package/types/recursyve-nice-auth0-kit.d.ts +170 -0
  5. package/esm2022/lib/api/auth0.api.mjs +0 -13
  6. package/esm2022/lib/api/authorization/authorization.api.mjs +0 -40
  7. package/esm2022/lib/api/authorization/models/authorization-flow-request.model.mjs +0 -2
  8. package/esm2022/lib/api/exceptions/base.exception.mjs +0 -6
  9. package/esm2022/lib/api/index.mjs +0 -3
  10. package/esm2022/lib/api/interceptors/auth.interceptor.mjs +0 -42
  11. package/esm2022/lib/api/mfa/exceptions/association-required.exception.mjs +0 -4
  12. package/esm2022/lib/api/mfa/exceptions/mfa.exception.mjs +0 -5
  13. package/esm2022/lib/api/mfa/mfa.api.mjs +0 -59
  14. package/esm2022/lib/api/mfa/model/mfa-request.model.mjs +0 -2
  15. package/esm2022/lib/api/mfa/model/mfa-response.model.mjs +0 -2
  16. package/esm2022/lib/api/nice-auth0.service.mjs +0 -24
  17. package/esm2022/lib/api/token/exceptions/mfa-required.exception.mjs +0 -7
  18. package/esm2022/lib/api/token/exceptions/token.exception.mjs +0 -5
  19. package/esm2022/lib/api/token/models/token-response.model.mjs +0 -2
  20. package/esm2022/lib/api/token/token.api.mjs +0 -93
  21. package/esm2022/lib/nice-auht0-kit.module.mjs +0 -49
  22. package/esm2022/lib/nice-auth0-kit.constant.mjs +0 -3
  23. package/esm2022/lib/nice-auth0-kit.options.mjs +0 -2
  24. package/esm2022/lib/providers/authentication.service.mjs +0 -247
  25. package/esm2022/lib/providers/exceptions/no-authenticator.exception.mjs +0 -3
  26. package/esm2022/lib/providers/index.mjs +0 -3
  27. package/esm2022/public-api.mjs +0 -8
  28. package/esm2022/recursyve-nice-auth0-kit.mjs +0 -5
  29. package/index.d.ts +0 -5
  30. package/lib/api/auth0.api.d.ts +0 -6
  31. package/lib/api/authorization/authorization.api.d.ts +0 -12
  32. package/lib/api/authorization/models/authorization-flow-request.model.d.ts +0 -4
  33. package/lib/api/exceptions/base.exception.d.ts +0 -5
  34. package/lib/api/index.d.ts +0 -2
  35. package/lib/api/interceptors/auth.interceptor.d.ts +0 -13
  36. package/lib/api/mfa/exceptions/association-required.exception.d.ts +0 -3
  37. package/lib/api/mfa/exceptions/mfa.exception.d.ts +0 -3
  38. package/lib/api/mfa/mfa.api.d.ts +0 -16
  39. package/lib/api/mfa/model/mfa-request.model.d.ts +0 -10
  40. package/lib/api/mfa/model/mfa-response.model.d.ts +0 -6
  41. package/lib/api/nice-auth0.service.d.ts +0 -12
  42. package/lib/api/token/exceptions/mfa-required.exception.d.ts +0 -5
  43. package/lib/api/token/exceptions/token.exception.d.ts +0 -3
  44. package/lib/api/token/models/token-response.model.d.ts +0 -7
  45. package/lib/api/token/token.api.d.ts +0 -18
  46. package/lib/nice-auht0-kit.module.d.ts +0 -9
  47. package/lib/nice-auth0-kit.constant.d.ts +0 -2
  48. package/lib/nice-auth0-kit.options.d.ts +0 -12
  49. package/lib/providers/authentication.service.d.ts +0 -65
  50. package/lib/providers/exceptions/no-authenticator.exception.d.ts +0 -2
  51. package/lib/providers/index.d.ts +0 -2
  52. package/public-api.d.ts +0 -4
@@ -1,247 +0,0 @@
1
- import { Inject, Injectable } from "@angular/core";
2
- import { jwtDecode } from "jwt-decode";
3
- import { BehaviorSubject, of, shareReplay, throwError } from "rxjs";
4
- import { catchError, map, share, tap } from "rxjs/operators";
5
- import { NiceAuth0Service } from "../api";
6
- import { Auth0AssociationRequiredException } from "../api/mfa/exceptions/association-required.exception";
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.activeRefreshTokenRequest = null;
23
- this.currentUser$ = new BehaviorSubject(this.currentUser);
24
- }
25
- get idToken() {
26
- return localStorage.getItem("auth0_id_token");
27
- }
28
- set idToken(accessToken) {
29
- localStorage.setItem("auth0_id_token", accessToken);
30
- this.currentUser$.next(this.currentUser);
31
- }
32
- get accessToken() {
33
- return localStorage.getItem("auth0_access_token");
34
- }
35
- set accessToken(accessToken) {
36
- localStorage.setItem("auth0_access_token", accessToken);
37
- }
38
- get refreshToken() {
39
- return localStorage.getItem("auth0_refresh_token");
40
- }
41
- set refreshToken(refreshToken) {
42
- localStorage.setItem("auth0_refresh_token", refreshToken);
43
- }
44
- get authToken() {
45
- if (this.options.authToken === "idToken") {
46
- return this.idToken;
47
- }
48
- return this.accessToken;
49
- }
50
- get idTokenPayload() {
51
- try {
52
- return jwtDecode(this.idToken);
53
- }
54
- catch (e) {
55
- console.log("Failed to decode payload: " + e);
56
- return {};
57
- }
58
- }
59
- get accessTokenPayload() {
60
- try {
61
- const decodedPayload = atob(this.accessToken.split(".")[1]);
62
- return JSON.parse(decodedPayload);
63
- }
64
- catch (e) {
65
- console.log("Failed to decode payload: " + e);
66
- return {};
67
- }
68
- }
69
- get authTokenPayload() {
70
- if (this.options.authToken === "idToken") {
71
- return this.idTokenPayload;
72
- }
73
- return this.accessTokenPayload;
74
- }
75
- get currentUser() {
76
- return this.idTokenPayload;
77
- }
78
- checkLoggedIn() {
79
- if (this.validateToken()) {
80
- return of(true);
81
- }
82
- return this.getAuthorizationToken().pipe(map((token) => token != null), catchError(() => of(false)));
83
- }
84
- getAuthorizationToken() {
85
- if (!this.authToken) {
86
- return of(null);
87
- }
88
- if (this.validateToken()) {
89
- return of(this.authToken);
90
- }
91
- if (this.refreshToken) {
92
- return this.generateNewToken();
93
- }
94
- return of(null);
95
- }
96
- validateToken() {
97
- if (!this.authToken) {
98
- return false;
99
- }
100
- const exp = this.authTokenPayload.exp;
101
- const now = new Date().getTime() / 1000;
102
- return now < exp;
103
- }
104
- passwordGrant(username, password) {
105
- return this.auth0Service.token.authWithPassword(username, password).pipe(map(value => {
106
- if (value) {
107
- this.refreshToken = value.refresh_token;
108
- this.idToken = value.id_token;
109
- this.accessToken = value.access_token;
110
- }
111
- return {
112
- success: true,
113
- mfaRequired: false
114
- };
115
- }), catchError((e) => this.catchGrantError(e)));
116
- }
117
- authorizationCodeGrant(code, redirectUrl) {
118
- return this.auth0Service.token.authWithAuthorizationCode(code, redirectUrl).pipe(map(value => {
119
- this.refreshToken = value.refresh_token;
120
- this.idToken = value.id_token;
121
- this.accessToken = value.access_token;
122
- return {
123
- success: true,
124
- mfaRequired: false
125
- };
126
- }), catchError((e) => this.catchGrantError(e)));
127
- }
128
- getAuthFlowRequestUri(redirectUrl, options) {
129
- return this.auth0Service.authorization.buildAuthFlowRequest(redirectUrl, options?.connection ?? undefined).pipe(map(request => {
130
- if (options?.useStateValidation) {
131
- localStorage.setItem("auth0_auth_flow_state", request.state);
132
- }
133
- return request.uri;
134
- }));
135
- }
136
- checkAuthFlowResponse(expectedResponsePath) {
137
- if (typeof expectedResponsePath === "string") {
138
- expectedResponsePath = [expectedResponsePath];
139
- }
140
- const path = expectedResponsePath?.find(x => window.location.pathname === x);
141
- if (!expectedResponsePath || path) {
142
- const params = new URLSearchParams(window.location.search);
143
- const code = params.get("code");
144
- if (!code) {
145
- return of(null);
146
- }
147
- const response = {
148
- path,
149
- code,
150
- stateValidationResult: AuthorizationStateValidationResult.Omitted
151
- };
152
- const savedAuthorizationState = localStorage.getItem("auth0_auth_flow_state");
153
- if (savedAuthorizationState) {
154
- if (!params.has("state") || savedAuthorizationState !== params.get("state")) {
155
- response.stateValidationResult = AuthorizationStateValidationResult.Failure;
156
- }
157
- else {
158
- response.stateValidationResult = AuthorizationStateValidationResult.Success;
159
- }
160
- }
161
- return of(response);
162
- }
163
- return of(null);
164
- }
165
- validateOobCode(code) {
166
- return this.auth0Service.token.authWithOobCode(this.lastMfaChallengeToken, this.lastMfaOobCode, code).pipe(map(value => {
167
- this.refreshToken = value.refresh_token;
168
- this.idToken = value.id_token;
169
- this.accessToken = value.access_token;
170
- }));
171
- }
172
- logout() {
173
- const refreshToken = localStorage.getItem("auth0_refresh_token");
174
- if (!refreshToken) {
175
- return of();
176
- }
177
- localStorage.removeItem("auth0_id_token");
178
- localStorage.removeItem("auth0_access_token");
179
- localStorage.removeItem("auth0_refresh_token");
180
- return this.auth0Service.token.revokeRefreshToken(refreshToken);
181
- }
182
- generateNewToken() {
183
- if (this.activeRefreshTokenRequest) {
184
- return this.activeRefreshTokenRequest.pipe(map(value => value?.access_token ?? null));
185
- }
186
- const refreshToken = this.refreshToken;
187
- if (!refreshToken) {
188
- return of(null);
189
- }
190
- this.activeRefreshTokenRequest = this.auth0Service.token.refreshToken(refreshToken).pipe(catchError(() => of(null)), shareReplay());
191
- return this.activeRefreshTokenRequest.pipe(share(), tap({
192
- next: value => {
193
- if (!value) {
194
- return;
195
- }
196
- this.refreshToken = value.refresh_token;
197
- this.idToken = value.id_token;
198
- this.accessToken = value.access_token;
199
- },
200
- finalize: () => {
201
- this.activeRefreshTokenRequest = null;
202
- }
203
- }), map(value => value?.access_token ?? null));
204
- }
205
- addMfaAuthenticator(authenticator) {
206
- return this.auth0Service.mfa.associateOobAuthenticator({
207
- mfaToken: this.lastMfaChallengeToken,
208
- channels: [authenticator.type],
209
- email: authenticator.email,
210
- phoneNumber: authenticator.phoneNumber
211
- }).pipe(map(value => {
212
- this.lastMfaOobCode = value.oob_code;
213
- }));
214
- }
215
- triggerMfaChallenge() {
216
- return this.auth0Service.mfa.challenge({
217
- type: "oob",
218
- mfaToken: this.lastMfaChallengeToken
219
- }).pipe(map(value => {
220
- this.lastMfaOobCode = value.oob_code;
221
- }));
222
- }
223
- catchGrantError(e) {
224
- if (e instanceof Auth0MfaRequiredException) {
225
- this.lastMfaChallengeToken = e.mfaToken;
226
- return this.triggerMfaChallenge().pipe(map(() => ({
227
- success: true,
228
- mfaRequired: true
229
- })), catchError((err) => {
230
- if (err instanceof Auth0AssociationRequiredException) {
231
- return throwError(() => new NoAuthenticatorException());
232
- }
233
- return throwError(() => err);
234
- }));
235
- }
236
- return throwError(() => e);
237
- }
238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: NICE_AUTH0_OPTIONS }, { token: i1.NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
239
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAuthenticationService }); }
240
- }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAuthenticationService, decorators: [{
242
- type: Injectable
243
- }], ctorParameters: () => [{ type: undefined, decorators: [{
244
- type: Inject,
245
- args: [NICE_AUTH0_OPTIONS]
246
- }] }, { type: i1.NiceAuth0Service }] });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvcHJvdmlkZXJzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDekcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQXNCbkYsTUFBTSxDQUFOLElBQVksa0NBSVg7QUFKRCxXQUFZLGtDQUFrQztJQUMxQyx5REFBbUIsQ0FBQTtJQUNuQix5REFBbUIsQ0FBQTtJQUNuQix5REFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsa0NBQWtDLEtBQWxDLGtDQUFrQyxRQUk3QztBQVNELE1BQU0sT0FBTyx5QkFBeUI7SUFPbEMsWUFDd0MsT0FBeUIsRUFDckQsWUFBOEI7UUFERixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNyRCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFObEMsOEJB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QUFDLEdBQUcsRUFBRSxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0E1UlEseUJBQXlCLGtCQVF0QixrQkFBa0I7bUhBUnJCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBU0YsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgand0RGVjb2RlIH0gZnJvbSBcImp3dC1kZWNvZGVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmUsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTmljZUF1dGgwU2VydmljZSB9IGZyb20gXCIuLi9hcGlcIjtcbmltcG9ydCB7IEF1dGgwQXNzb2NpYXRpb25SZXF1aXJlZEV4Y2VwdGlvbiB9IGZyb20gXCIuLi9hcGkvbWZhL2V4Y2VwdGlvbnMvYXNzb2NpYXRpb24tcmVxdWlyZWQuZXhjZXB0aW9uXCI7XG5pbXBvcnQgeyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4uL2FwaS90b2tlbi9leGNlcHRpb25zL21mYS1yZXF1aXJlZC5leGNlcHRpb25cIjtcbmltcG9ydCB7IEF1dGgwVG9rZW5SZXNwb25zZSB9IGZyb20gXCIuLi9hcGkvdG9rZW4vbW9kZWxzL3Rva2VuLXJlc3BvbnNlLm1vZGVsXCI7XG5pbXBvcnQgeyBOSUNFX0FVVEgwX09QVElPTlMgfSBmcm9tIFwiLi4vbmljZS1hdXRoMC1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBdXRoME9wdGlvbnMgfSBmcm9tIFwiLi4vbmljZS1hdXRoMC1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgTm9BdXRoZW50aWNhdG9yRXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9uby1hdXRoZW50aWNhdG9yLmV4Y2VwdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2Uge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgbWZhUmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21zQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJzbXNcIjtcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJlbWFpbFwiO1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dPcHRpb25zIHtcbiAgICBjb25uZWN0aW9uPzogc3RyaW5nO1xuICAgIHVzZVN0YXRlVmFsaWRhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQge1xuICAgIE9taXR0ZWQgPSBcIm9taXR0ZWRcIixcbiAgICBTdWNjZXNzID0gXCJzdWNjZXNzXCIsXG4gICAgRmFpbHVyZSA9IFwiZmFpbHVyZVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dSZXNwb25zZSB7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgc3RhdGVWYWxpZGF0aW9uUmVzdWx0OiBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUF1dGhlbnRpY2F0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSBsYXN0TWZhQ2hhbGxlbmdlVG9rZW46IHN0cmluZztcbiAgICBwcml2YXRlIGxhc3RNZmFPb2JDb2RlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBhY3RpdmVSZWZyZXNoVG9rZW5SZXF1ZXN0OiBPYnNlcnZhYmxlPEF1dGgwVG9rZW5SZXNwb25zZSB8IG51bGw+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY3VycmVudFVzZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRVc2VyKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLFxuICAgICAgICBwcml2YXRlIGF1dGgwU2VydmljZTogTmljZUF1dGgwU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBnZXQgaWRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlkVG9rZW4oYWNjZXNzVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX2lkX3Rva2VuXCIsIGFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlciQubmV4dCh0aGlzLmN1cnJlbnRVc2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2FjY2Vzc190b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIiwgYWNjZXNzVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVmcmVzaFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9yZWZyZXNoX3Rva2VuXCIsIHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRoVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRoVG9rZW4gPT09IFwiaWRUb2tlblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWRUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBqd3REZWNvZGUodGhpcy5pZFRva2VuKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gZGVjb2RlIHBheWxvYWQ6IFwiICsgZSk7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFBheWxvYWQgPSBhdG9iKHRoaXMuYWNjZXNzVG9rZW4uc3BsaXQoXCIuXCIpWzFdKTtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWRQYXlsb2FkKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gZGVjb2RlIHBheWxvYWQ6IFwiICsgZSk7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dGhUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRoVG9rZW4gPT09IFwiaWRUb2tlblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuUGF5bG9hZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NUb2tlblBheWxvYWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW50VXNlcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuUGF5bG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tMb2dnZWRJbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVUb2tlbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBdXRob3JpemF0aW9uVG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh0b2tlbjogc3RyaW5nIHwgbnVsbCkgPT4gdG9rZW4gIT0gbnVsbCksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGZhbHNlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXV0aG9yaXphdGlvblRva2VuKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICBpZiAoIXRoaXMuYXV0aFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZVRva2VuKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmF1dGhUb2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlTmV3VG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVUb2tlbigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwID0gdGhpcy5hdXRoVG9rZW5QYXlsb2FkLmV4cDtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xuICAgICAgICByZXR1cm4gbm93IDwgZXhwO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXNzd29yZEdyYW50KHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLmF1dGhXaXRoUGFzc3dvcmQodXNlcm5hbWUsIHBhc3N3b3JkKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWZhUmVxdWlyZWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhpcy5jYXRjaEdyYW50RXJyb3IoZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhvcml6YXRpb25Db2RlR3JhbnQoY29kZTogc3RyaW5nLCByZWRpcmVjdFVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aEF1dGhvcml6YXRpb25Db2RlKGNvZGUsIHJlZGlyZWN0VXJsKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB0aGlzLmNhdGNoR3JhbnRFcnJvcihlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXV0aEZsb3dSZXF1ZXN0VXJpKHJlZGlyZWN0VXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBBdXRob3JpemF0aW9uRmxvd09wdGlvbnMpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UuYXV0aG9yaXphdGlvbi5idWlsZEF1dGhGbG93UmVxdWVzdChyZWRpcmVjdFVybCwgb3B0aW9ucz8uY29ubmVjdGlvbiA/PyB1bmRlZmluZWQpLnBpcGUobWFwKHJlcXVlc3QgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnM/LnVzZVN0YXRlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0aDBfYXV0aF9mbG93X3N0YXRlXCIsIHJlcXVlc3Quc3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QudXJpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrQXV0aEZsb3dSZXNwb25zZShleHBlY3RlZFJlc3BvbnNlUGF0aD86IHN0cmluZyB8IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBdXRob3JpemF0aW9uRmxvd1Jlc3BvbnNlIHwgbnVsbD4ge1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkUmVzcG9uc2VQYXRoID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBleHBlY3RlZFJlc3BvbnNlUGF0aCA9IFtleHBlY3RlZFJlc3BvbnNlUGF0aF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXRoID0gZXhwZWN0ZWRSZXNwb25zZVBhdGg/LmZpbmQoeCA9PiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT09IHgpO1xuICAgICAgICBpZiAoIWV4cGVjdGVkUmVzcG9uc2VQYXRoIHx8IHBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gcGFyYW1zLmdldChcImNvZGVcIik7XG4gICAgICAgICAgICBpZiAoIWNvZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlOiBBdXRob3JpemF0aW9uRmxvd1Jlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICBzdGF0ZVZhbGlkYXRpb25SZXN1bHQ6IEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQuT21pdHRlZFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc2F2ZWRBdXRob3JpemF0aW9uU3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2F1dGhfZmxvd19zdGF0ZVwiKTtcbiAgICAgICAgICAgIGlmIChzYXZlZEF1dGhvcml6YXRpb25TdGF0ZSkge1xuICAgICAgICAgICAgICAgIGlmICghcGFyYW1zLmhhcyhcInN0YXRlXCIpIHx8IHNhdmVkQXV0aG9yaXphdGlvblN0YXRlICE9PSBwYXJhbXMuZ2V0KFwic3RhdGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdGVWYWxpZGF0aW9uUmVzdWx0ID0gQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdC5GYWlsdXJlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXRlVmFsaWRhdGlvblJlc3VsdCA9IEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQuU3VjY2VzcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvZihyZXNwb25zZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlT29iQ29kZShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLmF1dGhXaXRoT29iQ29kZSh0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbiwgdGhpcy5sYXN0TWZhT29iQ29kZSwgY29kZSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB2YWx1ZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dvdXQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4ucmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdlbmVyYXRlTmV3VG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVJlZnJlc2hUb2tlblJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVJlZnJlc2hUb2tlblJlcXVlc3QucGlwZShtYXAodmFsdWUgPT4gdmFsdWU/LmFjY2Vzc190b2tlbiA/PyBudWxsKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSB0aGlzLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlUmVmcmVzaFRva2VuUmVxdWVzdCA9IHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLnJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG51bGwpKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KClcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUmVmcmVzaFRva2VuUmVxdWVzdC5waXBlKFxuICAgICAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgICAgIHRhcCh7XG4gICAgICAgICAgICAgICAgbmV4dDogdmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmluYWxpemU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVSZWZyZXNoVG9rZW5SZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZT8uYWNjZXNzX3Rva2VuID8/IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZE1mYUF1dGhlbnRpY2F0b3IoYXV0aGVudGljYXRvcjogU21zQXV0aGVudGljYXRvciB8IEVtYWlsQXV0aGVudGljYXRvcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UubWZhLmFzc29jaWF0ZU9vYkF1dGhlbnRpY2F0b3Ioe1xuICAgICAgICAgICAgbWZhVG9rZW46IHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuLFxuICAgICAgICAgICAgY2hhbm5lbHM6IFthdXRoZW50aWNhdG9yLnR5cGVdLFxuICAgICAgICAgICAgZW1haWw6IChhdXRoZW50aWNhdG9yIGFzIEVtYWlsQXV0aGVudGljYXRvcikuZW1haWwsXG4gICAgICAgICAgICBwaG9uZU51bWJlcjogKGF1dGhlbnRpY2F0b3IgYXMgU21zQXV0aGVudGljYXRvcikucGhvbmVOdW1iZXJcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0TWZhT29iQ29kZSA9IHZhbHVlLm9vYl9jb2RlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJpZ2dlck1mYUNoYWxsZW5nZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLm1mYS5jaGFsbGVuZ2Uoe1xuICAgICAgICAgICAgdHlwZTogXCJvb2JcIixcbiAgICAgICAgICAgIG1mYVRva2VuOiB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlblxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNZmFPb2JDb2RlID0gdmFsdWUub29iX2NvZGU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2F0Y2hHcmFudEVycm9yKGU6IGFueSk6IE9ic2VydmFibGU8TG9naW5SZXNwb25zZT4ge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEF1dGgwTWZhUmVxdWlyZWRFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuID0gZS5tZmFUb2tlbjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXJNZmFDaGFsbGVuZ2UoKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEF1dGgwQXNzb2NpYXRpb25SZXF1aXJlZEV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IE5vQXV0aGVudGljYXRvckV4Y2VwdGlvbigpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export class NoAuthenticatorException {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tYXV0aGVudGljYXRvci5leGNlcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWF1dGgwLWtpdC9zcmMvbGliL3Byb3ZpZGVycy9leGNlcHRpb25zL25vLWF1dGhlbnRpY2F0b3IuZXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx3QkFBd0I7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBOb0F1dGhlbnRpY2F0b3JFeGNlcHRpb24ge31cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from "./exceptions/no-authenticator.exception";
2
- export * from "./authentication.service";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWF1dGgwLWtpdC9zcmMvbGliL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9leGNlcHRpb25zL25vLWF1dGhlbnRpY2F0b3IuZXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlXCI7XG4iXX0=
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of nice-auth0-kit
3
- */
4
- export * from "./lib/nice-auht0-kit.module";
5
- export * from "./lib/nice-auth0-kit.options";
6
- export * from "./lib/api";
7
- export * from "./lib/providers";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5pY2UtYXV0aDAta2l0XG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL25pY2UtYXVodDAta2l0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL25pY2UtYXV0aDAta2l0Lm9wdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9wcm92aWRlcnNcIjtcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzeXZlLW5pY2UtYXV0aDAta2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL3JlY3Vyc3l2ZS1uaWNlLWF1dGgwLWtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@recursyve/nice-auth0-kit" />
5
- export * from './public-api';
@@ -1,6 +0,0 @@
1
- export declare class Auth0Api {
2
- private domain;
3
- private path;
4
- constructor(domain: string, path: string);
5
- protected url(route?: string): string;
6
- }
@@ -1,12 +0,0 @@
1
- import { Auth0Api } from "../auth0.api";
2
- import { NiceAuth0Options } from "../../nice-auth0-kit.options";
3
- import { Observable } from "rxjs";
4
- import { AuthorizationFlowRequest } from "./models/authorization-flow-request.model";
5
- import * as i0 from "@angular/core";
6
- export declare class Auth0AuthorizationApi extends Auth0Api {
7
- private options;
8
- constructor(options: NiceAuth0Options);
9
- buildAuthFlowRequest(redirectUrl: string, connection?: string): Observable<AuthorizationFlowRequest>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<Auth0AuthorizationApi, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<Auth0AuthorizationApi>;
12
- }
@@ -1,4 +0,0 @@
1
- export interface AuthorizationFlowRequest {
2
- uri: string;
3
- state: string;
4
- }
@@ -1,5 +0,0 @@
1
- export declare class Auth0BaseException {
2
- error: string;
3
- errorDescription: string;
4
- constructor(value: Auth0BaseException);
5
- }
@@ -1,2 +0,0 @@
1
- export * from "./nice-auth0.service";
2
- export * from "./auth0.api";
@@ -1,13 +0,0 @@
1
- import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http";
2
- import { Observable } from "rxjs";
3
- import { NiceAuth0Options } from "../../nice-auth0-kit.options";
4
- import { NiceAuthenticationService } from "../../providers/authentication.service";
5
- import * as i0 from "@angular/core";
6
- export declare class NiceAuthInterceptor implements HttpInterceptor {
7
- private options;
8
- private authService;
9
- constructor(options: NiceAuth0Options, authService: NiceAuthenticationService);
10
- intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<NiceAuthInterceptor, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<NiceAuthInterceptor>;
13
- }
@@ -1,3 +0,0 @@
1
- import { Auth0BaseException } from "../../exceptions/base.exception";
2
- export declare class Auth0AssociationRequiredException extends Auth0BaseException {
3
- }
@@ -1,3 +0,0 @@
1
- export declare enum MfaExceptions {
2
- AssociationRequired = "association_required"
3
- }
@@ -1,16 +0,0 @@
1
- import { HttpClient } from "@angular/common/http";
2
- import { Observable } from "rxjs";
3
- import { NiceAuth0Options } from "../../nice-auth0-kit.options";
4
- import { Auth0Api } from "../auth0.api";
5
- import { Auth0MfaAddOobAuthenticatorRequest, Auth0MfaChallengeRequest } from "./model/mfa-request.model";
6
- import { Auth0ChallengeResponse } from "./model/mfa-response.model";
7
- import * as i0 from "@angular/core";
8
- export declare class Auth0MfaApi extends Auth0Api {
9
- private options;
10
- private http;
11
- constructor(options: NiceAuth0Options, http: HttpClient);
12
- challenge(req: Auth0MfaChallengeRequest): Observable<Auth0ChallengeResponse>;
13
- associateOobAuthenticator(req: Auth0MfaAddOobAuthenticatorRequest): Observable<Auth0ChallengeResponse>;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<Auth0MfaApi, never>;
15
- static ɵprov: i0.ɵɵInjectableDeclaration<Auth0MfaApi>;
16
- }
@@ -1,10 +0,0 @@
1
- export interface Auth0MfaChallengeRequest {
2
- type: string;
3
- mfaToken: string;
4
- }
5
- export interface Auth0MfaAddOobAuthenticatorRequest {
6
- mfaToken: string;
7
- channels: string[];
8
- phoneNumber?: string;
9
- email?: string;
10
- }
@@ -1,6 +0,0 @@
1
- export interface Auth0ChallengeResponse {
2
- authenticator_type: string;
3
- binding_method: string;
4
- oob_channel: string;
5
- oob_code: string;
6
- }
@@ -1,12 +0,0 @@
1
- import { Auth0MfaApi } from "./mfa/mfa.api";
2
- import { Auth0TokenApi } from "./token/token.api";
3
- import { Auth0AuthorizationApi } from "./authorization/authorization.api";
4
- import * as i0 from "@angular/core";
5
- export declare class NiceAuth0Service {
6
- mfa: Auth0MfaApi;
7
- token: Auth0TokenApi;
8
- authorization: Auth0AuthorizationApi;
9
- constructor(mfa: Auth0MfaApi, token: Auth0TokenApi, authorization: Auth0AuthorizationApi);
10
- static ɵfac: i0.ɵɵFactoryDeclaration<NiceAuth0Service, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<NiceAuth0Service>;
12
- }
@@ -1,5 +0,0 @@
1
- import { Auth0BaseException } from "../../exceptions/base.exception";
2
- export declare class Auth0MfaRequiredException extends Auth0BaseException {
3
- mfaToken: string;
4
- constructor(value: Auth0MfaRequiredException);
5
- }
@@ -1,3 +0,0 @@
1
- export declare enum TokenExceptions {
2
- MfaRequired = "mfa_required"
3
- }
@@ -1,7 +0,0 @@
1
- export interface Auth0TokenResponse {
2
- id_token: string;
3
- access_token: string;
4
- refresh_token: string;
5
- token_type: string;
6
- expires_in: number;
7
- }
@@ -1,18 +0,0 @@
1
- import { HttpClient } from "@angular/common/http";
2
- import { Observable } from "rxjs";
3
- import { NiceAuth0Options } from "../../nice-auth0-kit.options";
4
- import { Auth0Api } from "../auth0.api";
5
- import { Auth0TokenResponse } from "./models/token-response.model";
6
- import * as i0 from "@angular/core";
7
- export declare class Auth0TokenApi extends Auth0Api {
8
- private options;
9
- private http;
10
- constructor(options: NiceAuth0Options, http: HttpClient);
11
- authWithPassword(username: string, password: string): Observable<Auth0TokenResponse>;
12
- authWithOobCode(mfaToken: string, oobCode: string, bindingCode: string): Observable<Auth0TokenResponse>;
13
- authWithAuthorizationCode(authCode: string, redirectUrl: string): Observable<Auth0TokenResponse>;
14
- refreshToken(refreshToken: string): Observable<Auth0TokenResponse>;
15
- revokeRefreshToken(refreshToken: string): Observable<void>;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<Auth0TokenApi, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<Auth0TokenApi>;
18
- }
@@ -1,9 +0,0 @@
1
- import { ModuleWithProviders } from "@angular/core";
2
- import { NiceAuth0Options } from "./nice-auth0-kit.options";
3
- import * as i0 from "@angular/core";
4
- export declare class NiceAuth0Module {
5
- static forRoot(options: NiceAuth0Options): ModuleWithProviders<NiceAuth0Module>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<NiceAuth0Module, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<NiceAuth0Module, never, never, never>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<NiceAuth0Module>;
9
- }
@@ -1,2 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export declare const NICE_AUTH0_OPTIONS: InjectionToken<unknown>;
@@ -1,12 +0,0 @@
1
- export interface NiceAuth0Options {
2
- domain: string;
3
- clientId: string;
4
- clientSecret: string;
5
- audience: string;
6
- scopes: string[];
7
- urlWhiteList?: string[];
8
- /**
9
- * Token to send in the Authorization Header
10
- */
11
- authToken?: "accessToken" | "idToken";
12
- }
@@ -1,65 +0,0 @@
1
- import { BehaviorSubject, Observable } from "rxjs";
2
- import { NiceAuth0Service } from "../api";
3
- import { NiceAuth0Options } from "../nice-auth0-kit.options";
4
- import * as i0 from "@angular/core";
5
- export interface LoginResponse {
6
- success: boolean;
7
- mfaRequired: boolean;
8
- }
9
- export interface SmsAuthenticator {
10
- type: "sms";
11
- phoneNumber: string;
12
- }
13
- export interface EmailAuthenticator {
14
- type: "email";
15
- email: string;
16
- }
17
- export interface AuthorizationFlowOptions {
18
- connection?: string;
19
- useStateValidation?: boolean;
20
- }
21
- export declare enum AuthorizationStateValidationResult {
22
- Omitted = "omitted",
23
- Success = "success",
24
- Failure = "failure"
25
- }
26
- export interface AuthorizationFlowResponse {
27
- path?: string;
28
- code: string;
29
- stateValidationResult: AuthorizationStateValidationResult;
30
- }
31
- export declare class NiceAuthenticationService {
32
- private options;
33
- private auth0Service;
34
- private lastMfaChallengeToken;
35
- private lastMfaOobCode;
36
- private activeRefreshTokenRequest;
37
- currentUser$: BehaviorSubject<any>;
38
- constructor(options: NiceAuth0Options, auth0Service: NiceAuth0Service);
39
- get idToken(): string;
40
- set idToken(accessToken: string);
41
- get accessToken(): string;
42
- set accessToken(accessToken: string);
43
- get refreshToken(): string;
44
- set refreshToken(refreshToken: string);
45
- get authToken(): string;
46
- get idTokenPayload(): any;
47
- get accessTokenPayload(): any;
48
- get authTokenPayload(): any;
49
- get currentUser(): any;
50
- checkLoggedIn(): Observable<boolean>;
51
- getAuthorizationToken(): Observable<string | null>;
52
- validateToken(): boolean;
53
- passwordGrant(username: string, password: string): Observable<LoginResponse>;
54
- authorizationCodeGrant(code: string, redirectUrl: string): Observable<LoginResponse>;
55
- getAuthFlowRequestUri(redirectUrl: string, options?: AuthorizationFlowOptions): Observable<string>;
56
- checkAuthFlowResponse(expectedResponsePath?: string | string[]): Observable<AuthorizationFlowResponse | null>;
57
- validateOobCode(code: string): Observable<void>;
58
- logout(): Observable<void>;
59
- generateNewToken(): Observable<string | null>;
60
- addMfaAuthenticator(authenticator: SmsAuthenticator | EmailAuthenticator): Observable<void>;
61
- triggerMfaChallenge(): Observable<void>;
62
- private catchGrantError;
63
- static ɵfac: i0.ɵɵFactoryDeclaration<NiceAuthenticationService, never>;
64
- static ɵprov: i0.ɵɵInjectableDeclaration<NiceAuthenticationService>;
65
- }
@@ -1,2 +0,0 @@
1
- export declare class NoAuthenticatorException {
2
- }
@@ -1,2 +0,0 @@
1
- export * from "./exceptions/no-authenticator.exception";
2
- export * from "./authentication.service";
package/public-api.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from "./lib/nice-auht0-kit.module";
2
- export * from "./lib/nice-auth0-kit.options";
3
- export * from "./lib/api";
4
- export * from "./lib/providers";