@recursyve/nice-auth0-kit 13.0.0-beta.5 → 13.0.0-beta.8

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.
@@ -0,0 +1,40 @@
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
+ const 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,
21
+ }
22
+ });
23
+ if (connection) {
24
+ 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: "13.0.3", ngImport: i0, type: Auth0AuthorizationApi, deps: [{ token: NICE_AUTH0_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
33
+ Auth0AuthorizationApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Auth0AuthorizationApi });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWF1dGgwLWtpdC9zcmMvbGliL2FwaS9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3BDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxRQUFRO0lBQy9DLFlBQWdELE9BQXlCO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRFMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFekUsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsVUFBbUI7UUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDekIsVUFBVSxFQUFFO2dCQUNSLFlBQVksRUFBRSxXQUFXO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUMvQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTthQUM3QjtTQUNKLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxFQUFFO1lBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDckMsS0FBSyxFQUFFLE1BQU0sRUFBRTtTQUNsQixDQUFDLENBQUM7SUFDUCxDQUFDOztrSEF4QlEscUJBQXFCLGtCQUNWLGtCQUFrQjtzSEFEN0IscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aDBBcGkgfSBmcm9tIFwiLi4vYXV0aDAuYXBpXCI7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTklDRV9BVVRIMF9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQXV0aDBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0Lm9wdGlvbnNcIjtcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25GbG93UmVxdWVzdCB9IGZyb20gXCIuL21vZGVscy9hdXRob3JpemF0aW9uLWZsb3ctcmVxdWVzdC5tb2RlbFwiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGgwQXV0aG9yaXphdGlvbkFwaSBleHRlbmRzIEF1dGgwQXBpIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMuZG9tYWluLCBcImF1dGhvcml6ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGRBdXRoRmxvd1JlcXVlc3QocmVkaXJlY3RVcmw6IHN0cmluZywgY29ubmVjdGlvbj86IHN0cmluZyk6IE9ic2VydmFibGU8QXV0aG9yaXphdGlvbkZsb3dSZXF1ZXN0PiB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmwsXG4gICAgICAgICAgICAgICAgY2xpZW50X2lkOiB0aGlzLm9wdGlvbnMuY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICByZXNwb25zZV90eXBlOiBcImNvZGVcIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zLnNjb3BlcyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgIHF1ZXJ5LmFwcGVuZChcImNvbm5lY3Rpb25cIiwgY29ubmVjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgdXJpOiB0aGlzLnVybChgPyR7cXVlcnkudG9TdHJpbmcoKX1gKSxcbiAgICAgICAgICAgIHN0YXRlOiB1dWlkdjQoKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1mbG93LXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWF1dGgwLWtpdC9zcmMvbGliL2FwaS9hdXRob3JpemF0aW9uL21vZGVscy9hdXRob3JpemF0aW9uLWZsb3ctcmVxdWVzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uRmxvd1JlcXVlc3Qge1xuICAgIHVyaTogc3RyaW5nO1xuICAgIHN0YXRlOiBzdHJpbmc7XG59XG4iXX0=
@@ -10,7 +10,7 @@ export class NiceAuthInterceptor {
10
10
  this.authService = authService;
11
11
  }
12
12
  intercept(req, next) {
13
- if (req.url.startsWith(`${this.options.domain}/oauth`)) {
13
+ if (req.url.startsWith(`${this.options.domain}/oauth`) || req.url.startsWith(`${this.options.domain}/authorize`)) {
14
14
  return next.handle(req);
15
15
  }
16
16
  return this.authService.getAccessToken().pipe(mergeMap(token => {
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
32
32
  type: Inject,
33
33
  args: [NICE_AUTH0_OPTIONS]
34
34
  }] }, { type: i1.NiceAuthenticationService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvYXBpL2ludGVyY2VwdG9ycy9hdXRoLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUduRixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQWdELE9BQXlCLEVBQVUsV0FBc0M7UUFBekUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFBRyxDQUFDO0lBRXRILFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ3JELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDekMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0I7WUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQVUsS0FBSyxFQUFFLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOztnSEFwQlEsbUJBQW1CLGtCQUNSLGtCQUFrQjtvSEFEN0IsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5JQ0VfQVVUSDBfT1BUSU9OUyB9IGZyb20gXCIuLi8uLi9uaWNlLWF1dGgwLWtpdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUF1dGgwT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9uaWNlLWF1dGgwLWtpdC5vcHRpb25zXCI7XG5pbXBvcnQgeyBOaWNlQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOaWNlQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBOaWNlQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAocmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMub3B0aW9ucy5kb21haW59L29hdXRoYCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke3Rva2VufWApXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvYXBpL2ludGVyY2VwdG9ycy9hdXRoLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUduRixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQWdELE9BQXlCLEVBQVUsV0FBc0M7UUFBekUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFBRyxDQUFDO0lBRXRILFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ3JELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFDLEVBQUc7WUFDL0csT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDekMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0I7WUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQVUsS0FBSyxFQUFFLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOztnSEFwQlEsbUJBQW1CLGtCQUNSLGtCQUFrQjtvSEFEN0IsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5JQ0VfQVVUSDBfT1BUSU9OUyB9IGZyb20gXCIuLi8uLi9uaWNlLWF1dGgwLWtpdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUF1dGgwT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9uaWNlLWF1dGgwLWtpdC5vcHRpb25zXCI7XG5pbXBvcnQgeyBOaWNlQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOaWNlQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBOaWNlQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAocmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMub3B0aW9ucy5kb21haW59L29hdXRoYCkgfHwgcmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMub3B0aW9ucy5kb21haW59L2F1dGhvcml6ZWApICkge1xuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCh0b2tlbiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoUmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KFwiQXV0aG9yaXphdGlvblwiLCBgQmVhcmVyICR7dG9rZW59YClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,21 +1,24 @@
1
1
  import { Injectable } from "@angular/core";
2
2
  import { Auth0MfaApi } from "./mfa/mfa.api";
3
3
  import { Auth0TokenApi } from "./token/token.api";
4
+ import { Auth0AuthorizationApi } from "./authorization/authorization.api";
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "./mfa/mfa.api";
6
7
  import * as i2 from "./token/token.api";
8
+ import * as i3 from "./authorization/authorization.api";
7
9
  export class NiceAuth0Service {
8
- constructor(mfa, token) {
10
+ constructor(mfa, token, authorization) {
9
11
  this.mfa = mfa;
10
12
  this.token = token;
13
+ this.authorization = authorization;
11
14
  }
12
15
  }
13
- NiceAuth0Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, deps: [{ token: i1.Auth0MfaApi }, { token: i2.Auth0TokenApi }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ NiceAuth0Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, deps: [{ token: i1.Auth0MfaApi }, { token: i2.Auth0TokenApi }, { token: i3.Auth0AuthorizationApi }], target: i0.ɵɵFactoryTarget.Injectable });
14
17
  NiceAuth0Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, providedIn: "root" });
15
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, decorators: [{
16
19
  type: Injectable,
17
20
  args: [{
18
21
  providedIn: "root"
19
22
  }]
20
- }], ctorParameters: function () { return [{ type: i1.Auth0MfaApi }, { type: i2.Auth0TokenApi }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1hdXRoMC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL2xpYi9hcGkvbmljZS1hdXRoMC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFLbEQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixZQUFtQixHQUFnQixFQUFTLEtBQW9CO1FBQTdDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFlO0lBQUcsQ0FBQzs7NkdBRDNELGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoME1mYUFwaSB9IGZyb20gXCIuL21mYS9tZmEuYXBpXCI7XG5pbXBvcnQgeyBBdXRoMFRva2VuQXBpIH0gZnJvbSBcIi4vdG9rZW4vdG9rZW4uYXBpXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQXV0aDBTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWZhOiBBdXRoME1mYUFwaSwgcHVibGljIHRva2VuOiBBdXRoMFRva2VuQXBpKSB7fVxufVxuIl19
23
+ }], ctorParameters: function () { return [{ type: i1.Auth0MfaApi }, { type: i2.Auth0TokenApi }, { type: i3.Auth0AuthorizationApi }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1hdXRoMC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL2xpYi9hcGkvbmljZS1hdXRoMC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7O0FBSzFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBbUIsR0FBZ0IsRUFBUyxLQUFvQixFQUFTLGFBQW9DO1FBQTFGLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUcsQ0FBQzs7NkdBRHhHLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoME1mYUFwaSB9IGZyb20gXCIuL21mYS9tZmEuYXBpXCI7XG5pbXBvcnQgeyBBdXRoMFRva2VuQXBpIH0gZnJvbSBcIi4vdG9rZW4vdG9rZW4uYXBpXCI7XG5pbXBvcnQgeyBBdXRoMEF1dGhvcml6YXRpb25BcGkgfSBmcm9tIFwiLi9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uYXBpXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQXV0aDBTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWZhOiBBdXRoME1mYUFwaSwgcHVibGljIHRva2VuOiBBdXRoMFRva2VuQXBpLCBwdWJsaWMgYXV0aG9yaXphdGlvbjogQXV0aDBBdXRob3JpemF0aW9uQXBpKSB7fVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { HttpClient, HttpErrorResponse } from "@angular/common/http";
1
+ import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from "@angular/common/http";
2
2
  import { Inject, Injectable } from "@angular/core";
3
3
  import { throwError } from "rxjs";
4
4
  import { catchError } from "rxjs/operators";
@@ -49,6 +49,22 @@ export class Auth0TokenApi extends Auth0Api {
49
49
  binding_code: bindingCode
50
50
  });
51
51
  }
52
+ authWithAuthorizationCode(authCode, redirectUrl) {
53
+ const body = new HttpParams({
54
+ fromObject: {
55
+ code: authCode,
56
+ redirect_uri: redirectUrl,
57
+ client_id: this.options.clientId,
58
+ client_secret: this.options.clientSecret,
59
+ audience: this.options.audience,
60
+ grant_type: "authorization_code",
61
+ scope: this.options.scopes,
62
+ }
63
+ });
64
+ const headers = new HttpHeaders();
65
+ headers.set("Content-Type", "application/x-www-form-urlencoded");
66
+ return this.http.post(this.url("token"), body.toString(), { headers });
67
+ }
52
68
  refreshToken(refreshToken) {
53
69
  return this.http.post(this.url("token"), {
54
70
  client_id: this.options.clientId,
@@ -75,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
75
91
  type: Inject,
76
92
  args: [NICE_AUTH0_OPTIONS]
77
93
  }] }, { type: i1.HttpClient }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL2xpYi9hcGkvdG9rZW4vdG9rZW4uYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBSS9ELE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQUN2QyxZQUFnRCxPQUF5QixFQUFVLElBQWdCO1FBQy9GLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRGEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO0lBRW5HLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQ2pCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3hDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDL0IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQzNDLFFBQVE7WUFDUixRQUFRO1NBQ1gsQ0FDSixDQUFDLElBQUksQ0FDRixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLGlCQUFpQixFQUFFO2dCQUNoQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0QixJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLFdBQVcsRUFBRTtvQkFDN0MsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSx5QkFBeUIsQ0FBQzt3QkFDbEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO3dCQUNsQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsaUJBQWlCO3dCQUN6QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVM7cUJBQzVCLENBQUMsQ0FBQyxDQUFDO2lCQUNQO2FBQ0o7WUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVNLGVBQWUsQ0FBQyxRQUFnQixFQUFFLE9BQWUsRUFBRSxXQUFtQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUNqQjtZQUNJLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQy9CLFVBQVUsRUFBRSwyQ0FBMkM7WUFDdkQsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQzNDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFlBQVksRUFBRSxXQUFXO1NBQzVCLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTSxZQUFZLENBQUMsWUFBb0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFDakI7WUFDSSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7WUFDeEMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUMvQixVQUFVLEVBQUUsZUFBZTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDM0MsYUFBYSxFQUFFLFlBQVk7U0FDOUIsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQW9CO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQ2xCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3hDLEtBQUssRUFBRSxZQUFZO1NBQ3RCLENBQ0osQ0FBQztJQUNOLENBQUM7OzBHQTFFUSxhQUFhLGtCQUNGLGtCQUFrQjs4R0FEN0IsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFFTSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBOSUNFX0FVVEgwX09QVElPTlMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBdXRoME9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbmljZS1hdXRoMC1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgQXV0aDBBcGkgfSBmcm9tIFwiLi4vYXV0aDAuYXBpXCI7XG5pbXBvcnQgeyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9tZmEtcmVxdWlyZWQuZXhjZXB0aW9uXCI7XG5pbXBvcnQgeyBUb2tlbkV4Y2VwdGlvbnMgfSBmcm9tIFwiLi9leGNlcHRpb25zL3Rva2VuLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgQXV0aDBUb2tlblJlc3BvbnNlIH0gZnJvbSBcIi4vbW9kZWxzL3Rva2VuLXJlc3BvbnNlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoMFRva2VuQXBpIGV4dGVuZHMgQXV0aDBBcGkge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTklDRV9BVVRIMF9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IE5pY2VBdXRoME9wdGlvbnMsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgICAgICBzdXBlcihvcHRpb25zLmRvbWFpbiwgXCJvYXV0aFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXV0aFdpdGhQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgc2NvcGU6IHRoaXMub3B0aW9ucz8uc2NvcGVzLmpvaW4oXCIgXCIpID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgdXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRcbiAgICAgICAgICAgIH1cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBlLmVycm9yO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IgPT09IFRva2VuRXhjZXB0aW9ucy5NZmFSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEF1dGgwTWZhUmVxdWlyZWRFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvci5lcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRlc2NyaXB0aW9uOiBlcnJvci5lcnJvcl9kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZmFUb2tlbjogZXJyb3IubWZhX3Rva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhXaXRoT29iQ29kZShtZmFUb2tlbjogc3RyaW5nLCBvb2JDb2RlOiBzdHJpbmcsIGJpbmRpbmdDb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEF1dGgwVG9rZW5SZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXV0aDBUb2tlblJlc3BvbnNlPihcbiAgICAgICAgICAgIHRoaXMudXJsKFwidG9rZW5cIiksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xpZW50X2lkOiB0aGlzLm9wdGlvbnMuY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgY2xpZW50X3NlY3JldDogdGhpcy5vcHRpb25zLmNsaWVudFNlY3JldCxcbiAgICAgICAgICAgICAgICBhdWRpZW5jZTogdGhpcy5vcHRpb25zLmF1ZGllbmNlLFxuICAgICAgICAgICAgICAgIGdyYW50X3R5cGU6IFwiaHR0cDovL2F1dGgwLmNvbS9vYXV0aC9ncmFudC10eXBlL21mYS1vb2JcIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zPy5zY29wZXMuam9pbihcIiBcIikgPz8gXCJcIixcbiAgICAgICAgICAgICAgICBtZmFfdG9rZW46IG1mYVRva2VuLFxuICAgICAgICAgICAgICAgIG9vYl9jb2RlOiBvb2JDb2RlLFxuICAgICAgICAgICAgICAgIGJpbmRpbmdfY29kZTogYmluZGluZ0NvZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zPy5zY29wZXMuam9pbihcIiBcIikgPz8gXCJcIixcbiAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPihcbiAgICAgICAgICAgIHRoaXMudXJsKFwicmV2b2tlXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgdG9rZW46IHJlZnJlc2hUb2tlblxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1hdXRoMC1raXQvc3JjL2xpYi9hcGkvdG9rZW4vdG9rZW4uYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBa0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBSS9ELE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQUN2QyxZQUFnRCxPQUF5QixFQUFVLElBQWdCO1FBQy9GLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRGEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO0lBRW5HLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQ2pCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9B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QUMsWUFBWTtZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQy9CLFVBQVUsRUFBRSxlQUFlO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtZQUMzQyxhQUFhLEVBQUUsWUFBWTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBb0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbEI7WUFDSSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7WUFDeEMsS0FBSyxFQUFFLFlBQVk7U0FDdEIsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7MEdBN0ZRLGFBQWEsa0JBQ0Ysa0JBQWtCOzhHQUQ3QixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTklDRV9BVVRIMF9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQXV0aDBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL25pY2UtYXV0aDAta2l0Lm9wdGlvbnNcIjtcbmltcG9ydCB7IEF1dGgwQXBpIH0gZnJvbSBcIi4uL2F1dGgwLmFwaVwiO1xuaW1wb3J0IHsgQXV0aDBNZmFSZXF1aXJlZEV4Y2VwdGlvbiB9IGZyb20gXCIuL2V4Y2VwdGlvbnMvbWZhLXJlcXVpcmVkLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgVG9rZW5FeGNlcHRpb25zIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy90b2tlbi5leGNlcHRpb25cIjtcbmltcG9ydCB7IEF1dGgwVG9rZW5SZXNwb25zZSB9IGZyb20gXCIuL21vZGVscy90b2tlbi1yZXNwb25zZS5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aDBUb2tlbkFwaSBleHRlbmRzIEF1dGgwQXBpIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5JQ0VfQVVUSDBfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBOaWNlQXV0aDBPcHRpb25zLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucy5kb21haW4sIFwib2F1dGhcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhXaXRoUGFzc3dvcmQodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0aDBUb2tlblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBdXRoMFRva2VuUmVzcG9uc2U+KFxuICAgICAgICAgICAgdGhpcy51cmwoXCJ0b2tlblwiKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLm9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIGF1ZGllbmNlOiB0aGlzLm9wdGlvbnMuYXVkaWVuY2UsXG4gICAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgIHNjb3BlOiB0aGlzLm9wdGlvbnM/LnNjb3Blcy5qb2luKFwiIFwiKSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkXG4gICAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZS5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yID09PSBUb2tlbkV4Y2VwdGlvbnMuTWZhUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbjogZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZhVG9rZW46IGVycm9yLm1mYV90b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhdXRoV2l0aE9vYkNvZGUobWZhVG9rZW46IHN0cmluZywgb29iQ29kZTogc3RyaW5nLCBiaW5kaW5nQ29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcImh0dHA6Ly9hdXRoMC5jb20vb2F1dGgvZ3JhbnQtdHlwZS9tZmEtb29iXCIsXG4gICAgICAgICAgICAgICAgc2NvcGU6IHRoaXMub3B0aW9ucz8uc2NvcGVzLmpvaW4oXCIgXCIpID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgbWZhX3Rva2VuOiBtZmFUb2tlbixcbiAgICAgICAgICAgICAgICBvb2JfY29kZTogb29iQ29kZSxcbiAgICAgICAgICAgICAgICBiaW5kaW5nX2NvZGU6IGJpbmRpbmdDb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhXaXRoQXV0aG9yaXphdGlvbkNvZGUoYXV0aENvZGU6IHN0cmluZywgcmVkaXJlY3RVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0aDBUb2tlblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgY29kZTogYXV0aENvZGUsXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVybCxcbiAgICAgICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLm9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIGF1ZGllbmNlOiB0aGlzLm9wdGlvbnMuYXVkaWVuY2UsXG4gICAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJhdXRob3JpemF0aW9uX2NvZGVcIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zLnNjb3BlcyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBoZWFkZXJzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXV0aDBUb2tlblJlc3BvbnNlPih0aGlzLnVybChcInRva2VuXCIpLCBib2R5LnRvU3RyaW5nKCksIHsgaGVhZGVycyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoMFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGgwVG9rZW5SZXNwb25zZT4oXG4gICAgICAgICAgICB0aGlzLnVybChcInRva2VuXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgYXVkaWVuY2U6IHRoaXMub3B0aW9ucy5hdWRpZW5jZSxcbiAgICAgICAgICAgICAgICBncmFudF90eXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgICAgICAgICBzY29wZTogdGhpcy5vcHRpb25zPy5zY29wZXMuam9pbihcIiBcIikgPz8gXCJcIixcbiAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPihcbiAgICAgICAgICAgIHRoaXMudXJsKFwicmV2b2tlXCIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5vcHRpb25zLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMub3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICAgICAgICAgICAgdG9rZW46IHJlZnJlc2hUb2tlblxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -3,11 +3,17 @@ import jwtDecode from "jwt-decode";
3
3
  import { BehaviorSubject, of, throwError } from "rxjs";
4
4
  import { catchError, map, tap } from "rxjs/operators";
5
5
  import { Auth0AssociationRequiredException } from "../api/mfa/exceptions/association-required.exception";
6
- import { NiceAuth0Service } from "../api/nice-auth0.service";
6
+ import { NiceAuth0Service } from "../api";
7
7
  import { Auth0MfaRequiredException } from "../api/token/exceptions/mfa-required.exception";
8
8
  import { NoAuthenticatorException } from "./exceptions/no-authenticator.exception";
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "../api/nice-auth0.service";
10
+ import * as i1 from "../api";
11
+ export var AuthorizationStateValidationResult;
12
+ (function (AuthorizationStateValidationResult) {
13
+ AuthorizationStateValidationResult["Omitted"] = "omitted";
14
+ AuthorizationStateValidationResult["Success"] = "success";
15
+ AuthorizationStateValidationResult["Failure"] = "failure";
16
+ })(AuthorizationStateValidationResult || (AuthorizationStateValidationResult = {}));
11
17
  export class NiceAuthenticationService {
12
18
  constructor(auth0Service) {
13
19
  this.auth0Service = auth0Service;
@@ -89,22 +95,50 @@ export class NiceAuthenticationService {
89
95
  success: true,
90
96
  mfaRequired: false
91
97
  };
92
- }), catchError((e) => {
93
- if (e instanceof Auth0MfaRequiredException) {
94
- this.lastMfaChallengeToken = e.mfaToken;
95
- return this.triggerMfaChallenge().pipe(map(() => ({
96
- success: true,
97
- mfaRequired: true
98
- })), catchError((err) => {
99
- if (err instanceof Auth0AssociationRequiredException) {
100
- return throwError(() => new NoAuthenticatorException());
101
- }
102
- return throwError(() => err);
103
- }));
98
+ }), catchError(this.catchGrantError));
99
+ }
100
+ authorizationCodeGrant(code, redirectUrl) {
101
+ return this.auth0Service.token.authWithAuthorizationCode(code, redirectUrl).pipe(map(value => {
102
+ this.refreshToken = value.refresh_token;
103
+ this.idToken = value.id_token;
104
+ this.accessToken = value.access_token;
105
+ return {
106
+ success: true,
107
+ mfaRequired: false
108
+ };
109
+ }), catchError(this.catchGrantError));
110
+ }
111
+ getAuthFlowRequestUri(redirectUrl, options) {
112
+ return this.auth0Service.authorization.buildAuthFlowRequest(redirectUrl, options?.connection ?? undefined).pipe(map(request => {
113
+ if (options?.useStateValidation) {
114
+ localStorage.setItem("auth0_auth_flow_state", request.state);
104
115
  }
105
- return throwError(() => e);
116
+ return request.uri;
106
117
  }));
107
118
  }
119
+ checkAuthFlowResponse(expectedResponsePath) {
120
+ if (!expectedResponsePath || window.location.pathname === expectedResponsePath) {
121
+ const params = new URLSearchParams(window.location.search);
122
+ if (!params.has("code")) {
123
+ return of(null);
124
+ }
125
+ const response = {
126
+ code: params.get("code"),
127
+ stateValidationResult: AuthorizationStateValidationResult.Omitted
128
+ };
129
+ const savedAuthorizationState = localStorage.getItem("auth0_auth_flow_state");
130
+ if (savedAuthorizationState) {
131
+ if (!params.has("state") || savedAuthorizationState != params.get("state")) {
132
+ response.stateValidationResult = AuthorizationStateValidationResult.Failure;
133
+ }
134
+ else {
135
+ response.stateValidationResult = AuthorizationStateValidationResult.Success;
136
+ }
137
+ }
138
+ return of(response);
139
+ }
140
+ return of(null);
141
+ }
108
142
  validateOobCode(code) {
109
143
  return this.auth0Service.token.authWithOobCode(this.lastMfaChallengeToken, this.lastMfaOobCode, code).pipe(map(value => {
110
144
  this.refreshToken = value.refresh_token;
@@ -146,10 +180,25 @@ export class NiceAuthenticationService {
146
180
  this.lastMfaOobCode = value.oob_code;
147
181
  }));
148
182
  }
183
+ catchGrantError(e) {
184
+ if (e instanceof Auth0MfaRequiredException) {
185
+ this.lastMfaChallengeToken = e.mfaToken;
186
+ return this.triggerMfaChallenge().pipe(map(() => ({
187
+ success: true,
188
+ mfaRequired: true
189
+ })), catchError((err) => {
190
+ if (err instanceof Auth0AssociationRequiredException) {
191
+ return throwError(() => new NoAuthenticatorException());
192
+ }
193
+ return throwError(() => err);
194
+ }));
195
+ }
196
+ return throwError(() => e);
197
+ }
149
198
  }
150
199
  NiceAuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: i1.NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable });
151
200
  NiceAuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuthenticationService });
152
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuthenticationService, decorators: [{
153
202
  type: Injectable
154
203
  }], ctorParameters: function () { return [{ type: i1.NiceAuth0Service }]; } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvcHJvdmlkZXJzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFrQm5GLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsWUFBb0IsWUFBOEI7UUFBOUIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBRjNDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUV0RCxJQUFXLE9BQU87UUFDZCxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsV0FBbUI7UUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FB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LENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxhQUFvRDtRQUMzRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDO1lBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCO1lBQ3BDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsS0FBSyxFQUFHLGFBQW9DLENBQUMsS0FBSztZQUNsRCxXQUFXLEVBQUcsYUFBa0MsQ0FBQyxXQUFXO1NBQy9ELENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sbUJBQW1CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ25DLElBQUksRUFBRSxLQUFLO1lBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDdkMsQ0FBQyxDQUFDLElBQUksQ0FDSCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O3NIQXJMUSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgand0RGVjb2RlIGZyb20gXCJqd3QtZGVjb2RlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBBdXRoMEFzc29jaWF0aW9uUmVxdWlyZWRFeGNlcHRpb24gfSBmcm9tIFwiLi4vYXBpL21mYS9leGNlcHRpb25zL2Fzc29jaWF0aW9uLXJlcXVpcmVkLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgTmljZUF1dGgwU2VydmljZSB9IGZyb20gXCIuLi9hcGkvbmljZS1hdXRoMC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uIH0gZnJvbSBcIi4uL2FwaS90b2tlbi9leGNlcHRpb25zL21mYS1yZXF1aXJlZC5leGNlcHRpb25cIjtcbmltcG9ydCB7IE5vQXV0aGVudGljYXRvckV4Y2VwdGlvbiB9IGZyb20gXCIuL2V4Y2VwdGlvbnMvbm8tYXV0aGVudGljYXRvci5leGNlcHRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJlc3BvbnNlIHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIG1mYVJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtc0F1dGhlbnRpY2F0b3Ige1xuICAgIHR5cGU6IFwic21zXCI7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbWFpbEF1dGhlbnRpY2F0b3Ige1xuICAgIHR5cGU6IFwiZW1haWxcIjtcbiAgICBlbWFpbDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUF1dGhlbnRpY2F0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSBsYXN0TWZhQ2hhbGxlbmdlVG9rZW46IHN0cmluZztcbiAgICBwcml2YXRlIGxhc3RNZmFPb2JDb2RlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY3VycmVudFVzZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRVc2VyKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDBTZXJ2aWNlOiBOaWNlQXV0aDBTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGdldCBpZFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2lkX3Rva2VuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaWRUb2tlbihhY2Nlc3NUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0aDBfaWRfdG9rZW5cIiwgYWNjZXNzVG9rZW4pO1xuICAgICAgICB0aGlzLmN1cnJlbnRVc2VyJC5uZXh0KHRoaXMuY3VycmVudFVzZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXNzVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfYWNjZXNzX3Rva2VuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYWNjZXNzVG9rZW4oYWNjZXNzVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX2FjY2Vzc190b2tlblwiLCBhY2Nlc3NUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZWZyZXNoVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIiwgcmVmcmVzaFRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlkVG9rZW5QYXlsb2FkKCk6IGFueSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gand0RGVjb2RlKHRoaXMuaWRUb2tlbik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRmFpbGVkIHRvIGRlY29kZSBwYXlsb2FkOiBcIiArIGUpO1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY2Nlc3NUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRQYXlsb2FkID0gYXRvYih0aGlzLmFjY2Vzc1Rva2VuLnNwbGl0KFwiLlwiKVsxXSk7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkUGF5bG9hZCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRmFpbGVkIHRvIGRlY29kZSBwYXlsb2FkOiBcIiArIGUpO1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW50VXNlcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5pZFRva2VuUGF5bG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tMb2dnZWRJbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVUb2tlbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbigpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGFjY2Vzc1Rva2VuOiBzdHJpbmcpID0+IGFjY2Vzc1Rva2VuICE9IG51bGwpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdGhpcy5hY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVUb2tlbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5hY2Nlc3NUb2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlTmV3VG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVUb2tlbigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHAgPSB0aGlzLmFjY2Vzc1Rva2VuUGF5bG9hZC5leHA7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgcmV0dXJuIG5vdyA8IGV4cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFzc3dvcmRHcmFudCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aFBhc3N3b3JkKHVzZXJuYW1lLCBwYXNzd29yZCkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB2YWx1ZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWZhUmVxdWlyZWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQXV0aDBNZmFSZXF1aXJlZEV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbiA9IGUubWZhVG9rZW47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXJNZmFDaGFsbGVuZ2UoKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEF1dGgwQXNzb2NpYXRpb25SZXF1aXJlZEV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgTm9BdXRoZW50aWNhdG9yRXhjZXB0aW9uKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVPb2JDb2RlKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4uYXV0aFdpdGhPb2JDb2RlKHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuLCB0aGlzLmxhc3RNZmFPb2JDb2RlLCBjb2RlKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvZ291dCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVmcmVzaFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9yZWZyZXNoX3Rva2VuXCIpO1xuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfaWRfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfYWNjZXNzX3Rva2VuXCIpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLnJldm9rZVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZU5ld1Rva2VuKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5yZWZyZXNoVG9rZW4odGhpcy5yZWZyZXNoVG9rZW4pLnBpcGUoXG4gICAgICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4gdmFsdWUuYWNjZXNzX3Rva2VuKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTWZhQXV0aGVudGljYXRvcihhdXRoZW50aWNhdG9yOiBTbXNBdXRoZW50aWNhdG9yIHwgRW1haWxBdXRoZW50aWNhdG9yKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5tZmEuYXNzb2NpYXRlT29iQXV0aGVudGljYXRvcih7XG4gICAgICAgICAgICBtZmFUb2tlbjogdGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW4sXG4gICAgICAgICAgICBjaGFubmVsczogW2F1dGhlbnRpY2F0b3IudHlwZV0sXG4gICAgICAgICAgICBlbWFpbDogKGF1dGhlbnRpY2F0b3IgYXMgRW1haWxBdXRoZW50aWNhdG9yKS5lbWFpbCxcbiAgICAgICAgICAgIHBob25lTnVtYmVyOiAoYXV0aGVudGljYXRvciBhcyBTbXNBdXRoZW50aWNhdG9yKS5waG9uZU51bWJlclxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNZmFPb2JDb2RlID0gdmFsdWUub29iX2NvZGU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmlnZ2VyTWZhQ2hhbGxlbmdlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UubWZhLmNoYWxsZW5nZSh7XG4gICAgICAgICAgICB0eXBlOiBcIm9vYlwiLFxuICAgICAgICAgICAgbWZhVG9rZW46IHRoaXMubGFzdE1mYUNoYWxsZW5nZVRva2VuXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE1mYU9vYkNvZGUgPSB2YWx1ZS5vb2JfY29kZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtYXV0aDAta2l0L3NyYy9saWIvcHJvdmlkZXJzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBc0JuRixNQUFNLENBQU4sSUFBWSxrQ0FJWDtBQUpELFdBQVksa0NBQWtDO0lBQzFDLHlEQUFtQixDQUFBO0lBQ25CLHlEQUFtQixDQUFBO0lBQ25CLHlEQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxrQ0FBa0MsS0FBbEMsa0NBQWtDLFFBSTdDO0FBUUQsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUFvQixZQUE4QjtRQUE5QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFGM0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRXRELElBQVcsT0FBTztRQUNkLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lB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QyxDQUFNO1FBQzFCLElBQUksQ0FBQyxZQUFZLHlCQUF5QixFQUFFO1lBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDUCxPQUFPLEVBQUUsSUFBSTtnQkFDYixXQUFXLEVBQUUsSUFBSTthQUNwQixDQUFDLENBQUMsRUFDSCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDZixJQUFJLEdBQUcsWUFBWSxpQ0FBaUMsRUFBRTtvQkFDbEQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7aUJBQzNEO2dCQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7O3NIQTFPUSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgand0RGVjb2RlIGZyb20gXCJqd3QtZGVjb2RlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBBdXRoMEFzc29jaWF0aW9uUmVxdWlyZWRFeGNlcHRpb24gfSBmcm9tIFwiLi4vYXBpL21mYS9leGNlcHRpb25zL2Fzc29jaWF0aW9uLXJlcXVpcmVkLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgTmljZUF1dGgwU2VydmljZSB9IGZyb20gXCIuLi9hcGlcIjtcbmltcG9ydCB7IEF1dGgwTWZhUmVxdWlyZWRFeGNlcHRpb24gfSBmcm9tIFwiLi4vYXBpL3Rva2VuL2V4Y2VwdGlvbnMvbWZhLXJlcXVpcmVkLmV4Y2VwdGlvblwiO1xuaW1wb3J0IHsgTm9BdXRoZW50aWNhdG9yRXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9uby1hdXRoZW50aWNhdG9yLmV4Y2VwdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2Uge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgbWZhUmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21zQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJzbXNcIjtcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsQXV0aGVudGljYXRvciB7XG4gICAgdHlwZTogXCJlbWFpbFwiO1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dPcHRpb25zIHtcbiAgICBjb25uZWN0aW9uPzogc3RyaW5nO1xuICAgIHVzZVN0YXRlVmFsaWRhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQge1xuICAgIE9taXR0ZWQgPSBcIm9taXR0ZWRcIixcbiAgICBTdWNjZXNzID0gXCJzdWNjZXNzXCIsXG4gICAgRmFpbHVyZSA9IFwiZmFpbHVyZVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkZsb3dSZXNwb25zZSB7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIHN0YXRlVmFsaWRhdGlvblJlc3VsdDogQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgbGFzdE1mYUNoYWxsZW5nZVRva2VuOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBsYXN0TWZhT29iQ29kZTogc3RyaW5nO1xuXG4gICAgcHVibGljIGN1cnJlbnRVc2VyJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5jdXJyZW50VXNlcik7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGgwU2VydmljZTogTmljZUF1dGgwU2VydmljZSkge31cblxuICAgIHB1YmxpYyBnZXQgaWRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlkVG9rZW4oYWNjZXNzVG9rZW46IHN0cmluZykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGgwX2lkX3Rva2VuXCIsIGFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlciQubmV4dCh0aGlzLmN1cnJlbnRVc2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX2FjY2Vzc190b2tlblwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIiwgYWNjZXNzVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVmcmVzaFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9yZWZyZXNoX3Rva2VuXCIsIHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZFRva2VuUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGp3dERlY29kZSh0aGlzLmlkVG9rZW4pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZhaWxlZCB0byBkZWNvZGUgcGF5bG9hZDogXCIgKyBlKTtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXNzVG9rZW5QYXlsb2FkKCk6IGFueSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkUGF5bG9hZCA9IGF0b2IodGhpcy5hY2Nlc3NUb2tlbi5zcGxpdChcIi5cIilbMV0pO1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZFBheWxvYWQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZhaWxlZCB0byBkZWNvZGUgcGF5bG9hZDogXCIgKyBlKTtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVudFVzZXIoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWRUb2tlblBheWxvYWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrTG9nZ2VkSW4oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlVG9rZW4oKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzVG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWFwKChhY2Nlc3NUb2tlbjogc3RyaW5nKSA9PiBhY2Nlc3NUb2tlbiAhPSBudWxsKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY2Nlc3NUb2tlbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlVG9rZW4oKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuYWNjZXNzVG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZU5ld1Rva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5hY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwID0gdGhpcy5hY2Nlc3NUb2tlblBheWxvYWQuZXhwO1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgIHJldHVybiBub3cgPCBleHA7XG4gICAgfVxuXG4gICAgcHVibGljIHBhc3N3b3JkR3JhbnQodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8TG9naW5SZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4uYXV0aFdpdGhQYXNzd29yZCh1c2VybmFtZSwgcGFzc3dvcmQpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1mYVJlcXVpcmVkOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5jYXRjaEdyYW50RXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhvcml6YXRpb25Db2RlR3JhbnQoY29kZTogc3RyaW5nLCByZWRpcmVjdFVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aEF1dGhvcml6YXRpb25Db2RlKGNvZGUsIHJlZGlyZWN0VXJsKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHZhbHVlLnJlZnJlc2hfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5pZFRva2VuID0gdmFsdWUuaWRfdG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHZhbHVlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZmFSZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuY2F0Y2hHcmFudEVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdXRoRmxvd1JlcXVlc3RVcmkocmVkaXJlY3RVcmw6IHN0cmluZywgb3B0aW9ucz86IEF1dGhvcml6YXRpb25GbG93T3B0aW9ucyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5hdXRob3JpemF0aW9uLmJ1aWxkQXV0aEZsb3dSZXF1ZXN0KHJlZGlyZWN0VXJsLCBvcHRpb25zPy5jb25uZWN0aW9uID8/IHVuZGVmaW5lZCkucGlwZShtYXAocmVxdWVzdCA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucz8udXNlU3RhdGVWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRoMF9hdXRoX2Zsb3dfc3RhdGVcIiwgcmVxdWVzdC5zdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdC51cmk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tBdXRoRmxvd1Jlc3BvbnNlKGV4cGVjdGVkUmVzcG9uc2VQYXRoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRob3JpemF0aW9uRmxvd1Jlc3BvbnNlIHwgbnVsbD4ge1xuICAgICAgICBpZiAoIWV4cGVjdGVkUmVzcG9uc2VQYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9PT0gZXhwZWN0ZWRSZXNwb25zZVBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgICAgICBpZighcGFyYW1zLmhhcyhcImNvZGVcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIGNvZGU6IHBhcmFtcy5nZXQoXCJjb2RlXCIpLFxuICAgICAgICAgICAgICAgIHN0YXRlVmFsaWRhdGlvblJlc3VsdDogQXV0aG9yaXphdGlvblN0YXRlVmFsaWRhdGlvblJlc3VsdC5PbWl0dGVkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzYXZlZEF1dGhvcml6YXRpb25TdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aDBfYXV0aF9mbG93X3N0YXRlXCIpO1xuICAgICAgICAgICAgaWYgKHNhdmVkQXV0aG9yaXphdGlvblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMuaGFzKFwic3RhdGVcIikgfHwgc2F2ZWRBdXRob3JpemF0aW9uU3RhdGUgIT0gcGFyYW1zLmdldChcInN0YXRlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXRlVmFsaWRhdGlvblJlc3VsdCA9IEF1dGhvcml6YXRpb25TdGF0ZVZhbGlkYXRpb25SZXN1bHQuRmFpbHVyZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0ZVZhbGlkYXRpb25SZXN1bHQgPSBBdXRob3JpemF0aW9uU3RhdGVWYWxpZGF0aW9uUmVzdWx0LlN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb2YocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZU9vYkNvZGUoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS50b2tlbi5hdXRoV2l0aE9vYkNvZGUodGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW4sIHRoaXMubGFzdE1mYU9vYkNvZGUsIGNvZGUpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdmFsdWUucmVmcmVzaF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmlkVG9rZW4gPSB2YWx1ZS5pZF90b2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdmFsdWUuYWNjZXNzX3Rva2VuO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9nb3V0KCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGgwX3JlZnJlc2hfdG9rZW5cIik7XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9pZF90b2tlblwiKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRoMF9hY2Nlc3NfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiYXV0aDBfcmVmcmVzaF90b2tlblwiKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoMFNlcnZpY2UudG9rZW4ucmV2b2tlUmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdlbmVyYXRlTmV3VG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLnRva2VuLnJlZnJlc2hUb2tlbih0aGlzLnJlZnJlc2hUb2tlbikucGlwZShcbiAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB2YWx1ZS5yZWZyZXNoX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuaWRUb2tlbiA9IHZhbHVlLmlkX3Rva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB2YWx1ZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZS5hY2Nlc3NfdG9rZW4pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRNZmFBdXRoZW50aWNhdG9yKGF1dGhlbnRpY2F0b3I6IFNtc0F1dGhlbnRpY2F0b3IgfCBFbWFpbEF1dGhlbnRpY2F0b3IpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aDBTZXJ2aWNlLm1mYS5hc3NvY2lhdGVPb2JBdXRoZW50aWNhdG9yKHtcbiAgICAgICAgICAgIG1mYVRva2VuOiB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbixcbiAgICAgICAgICAgIGNoYW5uZWxzOiBbYXV0aGVudGljYXRvci50eXBlXSxcbiAgICAgICAgICAgIGVtYWlsOiAoYXV0aGVudGljYXRvciBhcyBFbWFpbEF1dGhlbnRpY2F0b3IpLmVtYWlsLFxuICAgICAgICAgICAgcGhvbmVOdW1iZXI6IChhdXRoZW50aWNhdG9yIGFzIFNtc0F1dGhlbnRpY2F0b3IpLnBob25lTnVtYmVyXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE1mYU9vYkNvZGUgPSB2YWx1ZS5vb2JfY29kZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJNZmFDaGFsbGVuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGgwU2VydmljZS5tZmEuY2hhbGxlbmdlKHtcbiAgICAgICAgICAgIHR5cGU6IFwib29iXCIsXG4gICAgICAgICAgICBtZmFUb2tlbjogdGhpcy5sYXN0TWZhQ2hhbGxlbmdlVG9rZW5cbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0TWZhT29iQ29kZSA9IHZhbHVlLm9vYl9jb2RlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhdGNoR3JhbnRFcnJvcihlOiBhbnkpOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2U+IHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBdXRoME1mYVJlcXVpcmVkRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RNZmFDaGFsbGVuZ2VUb2tlbiA9IGUubWZhVG9rZW47XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyTWZhQ2hhbGxlbmdlKCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWZhUmVxdWlyZWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBdXRoMEFzc29jaWF0aW9uUmVxdWlyZWRFeGNlcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBOb0F1dGhlbnRpY2F0b3JFeGNlcHRpb24oKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,10 +1,11 @@
1
1
  import * as i1 from '@angular/common/http';
2
- import { HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
2
+ import { HttpErrorResponse, HttpParams, HttpHeaders, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
3
3
  import * as i0 from '@angular/core';
4
4
  import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
5
- import { throwError, BehaviorSubject, of, mergeMap } from 'rxjs';
5
+ import { throwError, of, BehaviorSubject, mergeMap } from 'rxjs';
6
6
  import jwtDecode from 'jwt-decode';
7
7
  import { catchError, map, tap } from 'rxjs/operators';
8
+ import { v4 } from 'uuid';
8
9
 
9
10
  const NICE_AUTH0_OPTIONS = new InjectionToken("nice_auth0_options");
10
11
 
@@ -143,6 +144,22 @@ class Auth0TokenApi extends Auth0Api {
143
144
  binding_code: bindingCode
144
145
  });
145
146
  }
147
+ authWithAuthorizationCode(authCode, redirectUrl) {
148
+ const body = new HttpParams({
149
+ fromObject: {
150
+ code: authCode,
151
+ redirect_uri: redirectUrl,
152
+ client_id: this.options.clientId,
153
+ client_secret: this.options.clientSecret,
154
+ audience: this.options.audience,
155
+ grant_type: "authorization_code",
156
+ scope: this.options.scopes,
157
+ }
158
+ });
159
+ const headers = new HttpHeaders();
160
+ headers.set("Content-Type", "application/x-www-form-urlencoded");
161
+ return this.http.post(this.url("token"), body.toString(), { headers });
162
+ }
146
163
  refreshToken(refreshToken) {
147
164
  var _a, _b;
148
165
  return this.http.post(this.url("token"), {
@@ -173,21 +190,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
173
190
  }] }, { type: i1.HttpClient }];
174
191
  } });
175
192
 
193
+ class Auth0AuthorizationApi extends Auth0Api {
194
+ constructor(options) {
195
+ super(options.domain, "authorize");
196
+ this.options = options;
197
+ }
198
+ buildAuthFlowRequest(redirectUrl, connection) {
199
+ const query = new HttpParams({
200
+ fromObject: {
201
+ redirect_uri: redirectUrl,
202
+ client_id: this.options.clientId,
203
+ audience: this.options.audience,
204
+ response_type: "code",
205
+ scope: this.options.scopes,
206
+ }
207
+ });
208
+ if (connection) {
209
+ query.append("connection", connection);
210
+ }
211
+ return of({
212
+ uri: this.url(`?${query.toString()}`),
213
+ state: v4(),
214
+ });
215
+ }
216
+ }
217
+ Auth0AuthorizationApi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Auth0AuthorizationApi, deps: [{ token: NICE_AUTH0_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
218
+ Auth0AuthorizationApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Auth0AuthorizationApi });
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Auth0AuthorizationApi, decorators: [{
220
+ type: Injectable
221
+ }], ctorParameters: function () {
222
+ return [{ type: undefined, decorators: [{
223
+ type: Inject,
224
+ args: [NICE_AUTH0_OPTIONS]
225
+ }] }];
226
+ } });
227
+
176
228
  class NiceAuth0Service {
177
- constructor(mfa, token) {
229
+ constructor(mfa, token, authorization) {
178
230
  this.mfa = mfa;
179
231
  this.token = token;
232
+ this.authorization = authorization;
180
233
  }
181
234
  }
182
- NiceAuth0Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, deps: [{ token: Auth0MfaApi }, { token: Auth0TokenApi }], target: i0.ɵɵFactoryTarget.Injectable });
235
+ NiceAuth0Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, deps: [{ token: Auth0MfaApi }, { token: Auth0TokenApi }, { token: Auth0AuthorizationApi }], target: i0.ɵɵFactoryTarget.Injectable });
183
236
  NiceAuth0Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, providedIn: "root" });
184
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuth0Service, decorators: [{
185
238
  type: Injectable,
186
239
  args: [{
187
240
  providedIn: "root"
188
241
  }]
189
- }], ctorParameters: function () { return [{ type: Auth0MfaApi }, { type: Auth0TokenApi }]; } });
242
+ }], ctorParameters: function () { return [{ type: Auth0MfaApi }, { type: Auth0TokenApi }, { type: Auth0AuthorizationApi }]; } });
190
243
 
244
+ var AuthorizationStateValidationResult;
245
+ (function (AuthorizationStateValidationResult) {
246
+ AuthorizationStateValidationResult["Omitted"] = "omitted";
247
+ AuthorizationStateValidationResult["Success"] = "success";
248
+ AuthorizationStateValidationResult["Failure"] = "failure";
249
+ })(AuthorizationStateValidationResult || (AuthorizationStateValidationResult = {}));
191
250
  class NiceAuthenticationService {
192
251
  constructor(auth0Service) {
193
252
  this.auth0Service = auth0Service;
@@ -269,22 +328,51 @@ class NiceAuthenticationService {
269
328
  success: true,
270
329
  mfaRequired: false
271
330
  };
272
- }), catchError((e) => {
273
- if (e instanceof Auth0MfaRequiredException) {
274
- this.lastMfaChallengeToken = e.mfaToken;
275
- return this.triggerMfaChallenge().pipe(map(() => ({
276
- success: true,
277
- mfaRequired: true
278
- })), catchError((err) => {
279
- if (err instanceof Auth0AssociationRequiredException) {
280
- return throwError(() => new NoAuthenticatorException());
281
- }
282
- return throwError(() => err);
283
- }));
331
+ }), catchError(this.catchGrantError));
332
+ }
333
+ authorizationCodeGrant(code, redirectUrl) {
334
+ return this.auth0Service.token.authWithAuthorizationCode(code, redirectUrl).pipe(map(value => {
335
+ this.refreshToken = value.refresh_token;
336
+ this.idToken = value.id_token;
337
+ this.accessToken = value.access_token;
338
+ return {
339
+ success: true,
340
+ mfaRequired: false
341
+ };
342
+ }), catchError(this.catchGrantError));
343
+ }
344
+ getAuthFlowRequestUri(redirectUrl, options) {
345
+ var _a;
346
+ return this.auth0Service.authorization.buildAuthFlowRequest(redirectUrl, (_a = options === null || options === void 0 ? void 0 : options.connection) !== null && _a !== void 0 ? _a : undefined).pipe(map(request => {
347
+ if (options === null || options === void 0 ? void 0 : options.useStateValidation) {
348
+ localStorage.setItem("auth0_auth_flow_state", request.state);
284
349
  }
285
- return throwError(() => e);
350
+ return request.uri;
286
351
  }));
287
352
  }
353
+ checkAuthFlowResponse(expectedResponsePath) {
354
+ if (!expectedResponsePath || window.location.pathname === expectedResponsePath) {
355
+ const params = new URLSearchParams(window.location.search);
356
+ if (!params.has("code")) {
357
+ return of(null);
358
+ }
359
+ const response = {
360
+ code: params.get("code"),
361
+ stateValidationResult: AuthorizationStateValidationResult.Omitted
362
+ };
363
+ const savedAuthorizationState = localStorage.getItem("auth0_auth_flow_state");
364
+ if (savedAuthorizationState) {
365
+ if (!params.has("state") || savedAuthorizationState != params.get("state")) {
366
+ response.stateValidationResult = AuthorizationStateValidationResult.Failure;
367
+ }
368
+ else {
369
+ response.stateValidationResult = AuthorizationStateValidationResult.Success;
370
+ }
371
+ }
372
+ return of(response);
373
+ }
374
+ return of(null);
375
+ }
288
376
  validateOobCode(code) {
289
377
  return this.auth0Service.token.authWithOobCode(this.lastMfaChallengeToken, this.lastMfaOobCode, code).pipe(map(value => {
290
378
  this.refreshToken = value.refresh_token;
@@ -326,6 +414,21 @@ class NiceAuthenticationService {
326
414
  this.lastMfaOobCode = value.oob_code;
327
415
  }));
328
416
  }
417
+ catchGrantError(e) {
418
+ if (e instanceof Auth0MfaRequiredException) {
419
+ this.lastMfaChallengeToken = e.mfaToken;
420
+ return this.triggerMfaChallenge().pipe(map(() => ({
421
+ success: true,
422
+ mfaRequired: true
423
+ })), catchError((err) => {
424
+ if (err instanceof Auth0AssociationRequiredException) {
425
+ return throwError(() => new NoAuthenticatorException());
426
+ }
427
+ return throwError(() => err);
428
+ }));
429
+ }
430
+ return throwError(() => e);
431
+ }
329
432
  }
330
433
  NiceAuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuthenticationService, deps: [{ token: NiceAuth0Service }], target: i0.ɵɵFactoryTarget.Injectable });
331
434
  NiceAuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceAuthenticationService });
@@ -339,7 +442,7 @@ class NiceAuthInterceptor {
339
442
  this.authService = authService;
340
443
  }
341
444
  intercept(req, next) {
342
- if (req.url.startsWith(`${this.options.domain}/oauth`)) {
445
+ if (req.url.startsWith(`${this.options.domain}/oauth`) || req.url.startsWith(`${this.options.domain}/authorize`)) {
343
446
  return next.handle(req);
344
447
  }
345
448
  return this.authService.getAccessToken().pipe(mergeMap(token => {
@@ -414,5 +517,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
414
517
  * Generated bundle index. Do not edit.
415
518
  */
416
519
 
417
- export { Auth0Api, NiceAuth0Module, NiceAuth0Service, NiceAuthenticationService, NoAuthenticatorException };
520
+ export { Auth0Api, AuthorizationStateValidationResult, NiceAuth0Module, NiceAuth0Service, NiceAuthenticationService, NoAuthenticatorException };
418
521
  //# sourceMappingURL=recursyve-nice-auth0-kit.mjs.map