adb-shared 6.0.35 → 6.0.37

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.
@@ -9,6 +9,7 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common/http";
10
10
  import * as i2 from "@angular/router";
11
11
  export class AdbUserService {
12
+ // hasEmitted = false;
12
13
  constructor(config, http, router) {
13
14
  this.config = config;
14
15
  this.http = http;
@@ -17,7 +18,6 @@ export class AdbUserService {
17
18
  this.userSubject = new BehaviorSubject(null);
18
19
  this.user$ = this.userSubject.asObservable();
19
20
  this.lastRefreshTime = 0;
20
- this.hasEmitted = false;
21
21
  this.config = { ...{ scope: 'roles', idleTime: 30, response_type: 'code' }, ...config };
22
22
  }
23
23
  init() {
@@ -36,7 +36,7 @@ export class AdbUserService {
36
36
  }
37
37
  this.router.events.subscribe(event => {
38
38
  if (event instanceof NavigationStart) {
39
- this.login();
39
+ this.login(event.url);
40
40
  }
41
41
  });
42
42
  }
@@ -45,14 +45,16 @@ export class AdbUserService {
45
45
  this.checkStatus();
46
46
  this.intervalId = setInterval(() => this.checkStatus(), 60 * 1000); // 60 seconds * 1000 milliseconds
47
47
  }
48
- login() {
49
- this.log('url when login', this.router.url);
50
- sessionStorage.setItem(UserModuleConstants.CURRENT_URL, this.router.url);
48
+ login(url = null) {
49
+ this.log('url when login', url);
50
+ if (url) {
51
+ sessionStorage.setItem(UserModuleConstants.CURRENT_URL, url);
52
+ }
51
53
  this.authorize();
52
54
  }
53
55
  logout() {
54
56
  clearInterval(this.intervalId);
55
- this.hasEmitted = false;
57
+ // this.hasEmitted = false;
56
58
  sessionStorage.clear();
57
59
  window.location.href = `${this.config.issuer}/connect/endsession?post_logout_redirect_uri=${this.config.postLogoutUrl}`;
58
60
  }
@@ -72,15 +74,20 @@ export class AdbUserService {
72
74
  console.log('token is about to timeout but we will refresh it because user has been active the last 5minutes');
73
75
  this.refreshToken();
74
76
  }
75
- this.log('hasEmitted', this.hasEmitted);
76
- if (!this.hasEmitted) {
77
- const user = this.getUser(accessToken);
78
- this.userSubject.next(user);
79
- this.hasEmitted = true;
80
- }
77
+ //NOTE: Might not be needed in this variant
78
+ // if (!this.hasEmitted) {
79
+ // const user = this.getUser(accessToken);
80
+ // this.userSubject.next(user);
81
+ // this.hasEmitted = true;
82
+ // }
81
83
  }
82
84
  }
83
85
  }
86
+ //TODO: make it not exported by the module
87
+ _internalTriggerUserEvent(token) {
88
+ const user = this.getUser(token);
89
+ this.userSubject.next(user);
90
+ }
84
91
  refreshToken() {
85
92
  const body = `client_id=${encodeURIComponent(this.config.clientId)}&` +
86
93
  `grant_type=${encodeURIComponent("refresh_token")}&` +
@@ -199,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
199
206
  type: Inject,
200
207
  args: [ADB_USER_SERVICE_CONFIG]
201
208
  }] }, { type: i1.HttpClient }, { type: i2.Router }] });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItdXNlci9hZGItdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSTFELE1BQU0sT0FBTyxjQUFjO0lBVXpCLFlBQzBDLE1BQTRCLEVBQzVELElBQWdCLEVBQ2hCLE1BQWM7UUFGa0IsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWGhCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxnQkFBVyxHQUF5QixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMzRSxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV4QyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUVwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBTWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9B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LENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztpSUF6TVUsY0FBYyxrQkFXZix1QkFBdUI7cUlBWHRCLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQVlOLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQURCX1VTRVJfU0VSVklDRV9DT05GSUcsIEFkYlVzZXJTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9hZGItdXNlci1zZXJ2aWNlLWNvbmZpZyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBhZGRTZWNvbmRzLCBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7IFVzZXJNb2R1bGVDb25zdGFudHMgfSBmcm9tICcuL3VzZXItY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFkYlVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgdXNlclN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHVzZXIkID0gdGhpcy51c2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgbGFzdFJlZnJlc2hUaW1lID0gMDtcclxuICBpbnRlcnZhbElkOiBhbnk7XHJcbiAgaGFzRW1pdHRlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoQURCX1VTRVJfU0VSVklDRV9DT05GSUcpIHB1YmxpYyBjb25maWc6IEFkYlVzZXJTZXJ2aWNlQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5jb25maWcgPSB7IC4uLnsgc2NvcGU6ICdyb2xlcycsIGlkbGVUaW1lOiAzMCwgcmVzcG9uc2VfdHlwZTogJ2NvZGUnIH0sIC4uLmNvbmZpZyB9O1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkFDQ0VTU19UT0tFTik7XHJcbiAgICBpZiAoYWNjZXNzVG9rZW4pIHtcclxuICAgICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0VXNlcihhY2Nlc3NUb2tlbik7XHJcbiAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh1c2VyKTtcclxuICAgICAgdGhpcy5zdGFydE1haW5Mb29wKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLmF1dG9Mb2dpbikge1xyXG4gICAgICAvL05PVEU6IEF2b2lkIHJlLXRyaWdnZXJpbmcgbG9naW4gaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYXV0aC1jYWxsYmFjayBoYW5kbGluZ1xyXG4gICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgICBpZiAodXJsUGFyYW1zLmhhcygnY29kZScpKSB7XHJcbiAgICAgICAgdGhpcy5sb2coJ0RldGVjdGVkIGF1dGggY2FsbGJhY2ssIHNraXBwaW5nIGluaXQgbG9naW4uJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgICAgdGhpcy5sb2dpbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydE1haW5Mb29wKCkge1xyXG4gICAgdGhpcy5jaGVja1N0YXR1cygpO1xyXG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5jaGVja1N0YXR1cygpLCA2MCAqIDEwMDApOyAvLyA2MCBzZWNvbmRzICogMTAwMCBtaWxsaXNlY29uZHNcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9naW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZygndXJsIHdoZW4gbG9naW4nLCB0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNVUlJFTlRfVVJMLCB0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgdGhpcy5hdXRob3JpemUoKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpOiB2b2lkIHtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcclxuICAgIHRoaXMuaGFzRW1pdHRlZCA9IGZhbHNlO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5jb25maWcuaXNzdWVyfS9jb25uZWN0L2VuZHNlc3Npb24/cG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPSR7dGhpcy5jb25maWcucG9zdExvZ291dFVybH1gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1N0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nKCdjaGVja1N0YXR1cyBydW5zJylcclxuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkFDQ0VTU19UT0tFTik7XHJcbiAgICBpZiAoYWNjZXNzVG9rZW4pIHtcclxuICAgICAgdGhpcy5sb2coJ2hhcyBhY2Nlc3N0b2tlbicpXHJcbiAgICAgIGNvbnN0IHRpbWVUb0xpdmUgPSB0aGlzLmdldFRva2VuVGltZVRvTGl2ZSgpO1xyXG4gICAgICB0aGlzLmxvZygndGltZVRvTGl2ZScsIHRpbWVUb0xpdmUpXHJcbiAgICAgIGlmICh0aW1lVG9MaXZlID09PSAwKSB7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkFDQ0VTU19UT0tFTik7XHJcbiAgICAgICAgdGhpcy5hdXRob3JpemUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5nZXRUb2tlblRpbWVUb0xpdmUoKSA8PSA2MCAmJiB0aGlzLmhhc1VzZXJCZWVuQWN0aXZlKCkgJiYgdGhpcy5jYW5SZWZyZXNoVG9rZW4oKSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3Rva2VuIGlzIGFib3V0IHRvIHRpbWVvdXQgYnV0IHdlIHdpbGwgcmVmcmVzaCBpdCBiZWNhdXNlIHVzZXIgaGFzIGJlZW4gYWN0aXZlIHRoZSBsYXN0IDVtaW51dGVzJyk7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvZygnaGFzRW1pdHRlZCcsIHRoaXMuaGFzRW1pdHRlZCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0VtaXR0ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIoYWNjZXNzVG9rZW4pO1xyXG4gICAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVzZXIpO1xyXG4gICAgICAgICAgdGhpcy5oYXNFbWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgY29uc3QgYm9keSA9IGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5jb25maWcuY2xpZW50SWQpfSZgICtcclxuICAgICAgYGdyYW50X3R5cGU9JHtlbmNvZGVVUklDb21wb25lbnQoXCJyZWZyZXNoX3Rva2VuXCIpfSZgICtcclxuICAgICAgYHJlZnJlc2hfdG9rZW49JHtlbmNvZGVVUklDb21wb25lbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLlJFRlJFU0hfVE9LRU4pKX1gO1xyXG4gICAgdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5pc3N1ZXJ9L2Nvbm5lY3QvdG9rZW5gLCBib2R5LCB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9KSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb2tlbnNJblNlc3Npb24ocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFJlZnJlc2hUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcblxyXG4gIHNldFRva2Vuc0luU2Vzc2lvbihwYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmFtcy5yZWZyZXNoX3Rva2VuKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5SRUZSRVNIX1RPS0VOLCBwYXJhbXMucmVmcmVzaF90b2tlbik7XHJcbiAgICB9XHJcbiAgICBpZiAocGFyYW1zLmFjY2Vzc190b2tlbikge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQUNDRVNTX1RPS0VOLCBwYXJhbXMuYWNjZXNzX3Rva2VuKTtcclxuICAgIH1cclxuICAgIGlmIChwYXJhbXMuZXhwaXJlc19pbikge1xyXG4gICAgICBjb25zdCBleHBpcmVUaW1lID0gYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCBwYXJhbXMuZXhwaXJlc19pbik7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTLCBmb3JtYXQoZXhwaXJlVGltZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhdXRob3JpemUoKSB7XHJcbiAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBBcnJheS5mcm9tKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoNjQpKSwgYnl0ZSA9PlxyXG4gICAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknWyhieXRlIGFzIG51bWJlcikgJSA2Ml1cclxuICAgICkuam9pbignJyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQ09ERV9WRVJJRklFUiwgY29kZVZlcmlmaWVyKTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XHJcbiAgICBjb25zdCBkYXRhID0gZW5jb2Rlci5lbmNvZGUoY29kZVZlcmlmaWVyKTtcclxuICAgIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xyXG4gICAgY29uc3QgaGFzaEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoaGFzaEJ1ZmZlcik7XHJcbiAgICBsZXQgY29kZUNoYWxsZW5nZSA9IGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5oYXNoQXJyYXkpKTtcclxuICAgIGNvZGVDaGFsbGVuZ2UgPSBjb2RlQ2hhbGxlbmdlLnJlcGxhY2UoLz0vZywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxyXG4gICAgICAucmVwbGFjZSgvXFwvL2csICdfJyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGUsXHJcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWQsXHJcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5jb25maWcucmVkaXJlY3RVcmwsXHJcbiAgICAgIHNjb3BlOiB0aGlzLmNvbmZpZy5zY29wZSxcclxuICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXHJcbiAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogJ1MyNTYnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLmNvbmZpZy5pc3N1ZXIgKyAnL2Nvbm5lY3QvYXV0aG9yaXplJyk7XHJcbiAgICB1cmwuc2VhcmNoID0gdGhpcy5hZGRRdWVyeVBhcmFtcyhwYXJhbXMpLnRvU3RyaW5nKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgYWRkUXVlcnlQYXJhbXMob2JqZWN0OiBhbnkpOiBVUkxTZWFyY2hQYXJhbXMge1xyXG4gICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqZWN0KSB7XHJcbiAgICAgIHVybFBhcmFtcy5hcHBlbmQocHJvcCwgb2JqZWN0W3Byb3BdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmxQYXJhbXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRva2VuVGltZVRvTGl2ZSgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZXhwaXJlcyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTKTtcclxuICAgIGlmIChleHBpcmVzKSB7XHJcbiAgICAgIGNvbnN0IGV4cGlyZURhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcclxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgY29uc3QgdGltZVRvTGl2ZSA9IE1hdGguZmxvb3IoKGV4cGlyZURhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyAxMDAwKTtcclxuICAgICAgcmV0dXJuIHRpbWVUb0xpdmUgPCAwID8gMCA6IHRpbWVUb0xpdmU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vQ29vbGRvd24gZm9yIGF2b2lkaW5nIGluZmluaXRlIHJlZnJlc2hcclxuICBwcml2YXRlIGNhblJlZnJlc2hUb2tlbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBpZiAobm93IC0gdGhpcy5sYXN0UmVmcmVzaFRpbWUgPiAoMiAqIDYwICogMTAwMCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1VzZXJCZWVuQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbGFzdEFjdGl2ZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5VU0VSX0xBU1RfQUNUSVZFKTtcclxuICAgIGlmICghbGFzdEFjdGl2ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0QWN0aXZlID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KGxhc3RBY3RpdmUsIDEwKTtcclxuICAgIGNvbnN0IGlkbGVUaW1lTXMgPSB0aGlzLmNvbmZpZy5pZGxlVGltZSAqIDYwICogMTAwMDtcclxuICAgIHJldHVybiB0aW1lU2luY2VMYXN0QWN0aXZlIDw9IGlkbGVUaW1lTXM7XHJcbiAgfVxyXG5cclxuICBsb2cobWVzc2FnZTogc3RyaW5nLCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nKSB7XHJcbiAgICAgIGlmIChvcHRpb25hbFBhcmFtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIG9wdGlvbmFsUGFyYW1zKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcih0b2tlbjogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IFtoZWFkZXIsIHBheWxvYWQsIHNpZ25hdHVyZV0gPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgICBjb25zdCBiYXNlNjRVcmwgPSBwYXlsb2FkLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XHJcbiAgICAgIGNvbnN0IGRlY29kZWRQYXlsb2FkID0gYXRvYihiYXNlNjRVcmwpO1xyXG4gICAgICBjb25zdCBwYXJzZWRQYXlsb2FkID0gSlNPTi5wYXJzZShkZWNvZGVkUGF5bG9hZCk7XHJcbiAgICAgIHJldHVybiBwYXJzZWRQYXlsb2FkO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVjb2RpbmcgSldUJywgZXJyb3IpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxufSJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItdXNlci9hZGItdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSTFELE1BQU0sT0FBTyxjQUFjO0lBUXpCLHNCQUFzQjtJQUV0QixZQUMwQyxNQUE0QixFQUM1RCxJQUFnQixFQUNoQixNQUFjO1FBRmtCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVhoQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsZ0JBQVcsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDM0UsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFRbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEs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WUFDakQsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO2lJQWxOVSxjQUFjLGtCQVdmLHVCQUF1QjtxSUFYdEIsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBWU4sTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBREJfVVNFUl9TRVJWSUNFX0NPTkZJRywgQWRiVXNlclNlcnZpY2VDb25maWcgfSBmcm9tICcuL2FkYi11c2VyLXNlcnZpY2UtY29uZmlnJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGFkZFNlY29uZHMsIGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgVXNlck1vZHVsZUNvbnN0YW50cyB9IGZyb20gJy4vdXNlci1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRiVXNlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSB1c2VyU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgdXNlciQgPSB0aGlzLnVzZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBsYXN0UmVmcmVzaFRpbWUgPSAwO1xyXG4gIGludGVydmFsSWQ6IGFueTtcclxuICAvLyBoYXNFbWl0dGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChBREJfVVNFUl9TRVJWSUNFX0NPTkZJRykgcHVibGljIGNvbmZpZzogQWRiVXNlclNlcnZpY2VDb25maWcsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4ueyBzY29wZTogJ3JvbGVzJywgaWRsZVRpbWU6IDMwLCByZXNwb25zZV90eXBlOiAnY29kZScgfSwgLi4uY29uZmlnIH07XHJcbiAgfVxyXG5cclxuICBpbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQUNDRVNTX1RPS0VOKTtcclxuICAgIGlmIChhY2Nlc3NUb2tlbikge1xyXG4gICAgICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyKGFjY2Vzc1Rva2VuKTtcclxuICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVzZXIpO1xyXG4gICAgICB0aGlzLnN0YXJ0TWFpbkxvb3AoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuYXV0b0xvZ2luKSB7XHJcbiAgICAgIC8vTk9URTogQXZvaWQgcmUtdHJpZ2dlcmluZyBsb2dpbiBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhdXRoLWNhbGxiYWNrIGhhbmRsaW5nXHJcbiAgICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgIGlmICh1cmxQYXJhbXMuaGFzKCdjb2RlJykpIHtcclxuICAgICAgICB0aGlzLmxvZygnRGV0ZWN0ZWQgYXV0aCBjYWxsYmFjaywgc2tpcHBpbmcgaW5pdCBsb2dpbi4nKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2luKGV2ZW50LnVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0TWFpbkxvb3AoKSB7XHJcbiAgICB0aGlzLmNoZWNrU3RhdHVzKCk7XHJcbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLmNoZWNrU3RhdHVzKCksIDYwICogMTAwMCk7IC8vIDYwIHNlY29uZHMgKiAxMDAwIG1pbGxpc2Vjb25kc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2dpbih1cmw6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nKCd1cmwgd2hlbiBsb2dpbicsIHVybCk7XHJcbiAgICBpZiAodXJsKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DVVJSRU5UX1VSTCwgdXJsKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXV0aG9yaXplKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XHJcbiAgICAvLyB0aGlzLmhhc0VtaXR0ZWQgPSBmYWxzZTtcclxuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuY29uZmlnLmlzc3Vlcn0vY29ubmVjdC9lbmRzZXNzaW9uP3Bvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaT0ke3RoaXMuY29uZmlnLnBvc3RMb2dvdXRVcmx9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZygnY2hlY2tTdGF0dXMgcnVucycpXHJcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5BQ0NFU1NfVE9LRU4pO1xyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMubG9nKCdoYXMgYWNjZXNzdG9rZW4nKVxyXG4gICAgICBjb25zdCB0aW1lVG9MaXZlID0gdGhpcy5nZXRUb2tlblRpbWVUb0xpdmUoKTtcclxuICAgICAgdGhpcy5sb2coJ3RpbWVUb0xpdmUnLCB0aW1lVG9MaXZlKVxyXG4gICAgICBpZiAodGltZVRvTGl2ZSA9PT0gMCkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5BQ0NFU1NfVE9LRU4pO1xyXG4gICAgICAgIHRoaXMuYXV0aG9yaXplKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0VG9rZW5UaW1lVG9MaXZlKCkgPD0gNjAgJiYgdGhpcy5oYXNVc2VyQmVlbkFjdGl2ZSgpICYmIHRoaXMuY2FuUmVmcmVzaFRva2VuKCkpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd0b2tlbiBpcyBhYm91dCB0byB0aW1lb3V0IGJ1dCB3ZSB3aWxsIHJlZnJlc2ggaXQgYmVjYXVzZSB1c2VyIGhhcyBiZWVuIGFjdGl2ZSB0aGUgbGFzdCA1bWludXRlcycpO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9OT1RFOiBNaWdodCBub3QgYmUgbmVlZGVkIGluIHRoaXMgdmFyaWFudFxyXG4gICAgICAgIC8vIGlmICghdGhpcy5oYXNFbWl0dGVkKSB7XHJcbiAgICAgICAgLy8gICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyKGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICAvLyAgIHRoaXMudXNlclN1YmplY3QubmV4dCh1c2VyKTtcclxuICAgICAgICAvLyAgIHRoaXMuaGFzRW1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8vVE9ETzogbWFrZSBpdCBub3QgZXhwb3J0ZWQgYnkgdGhlIG1vZHVsZVxyXG4gIF9pbnRlcm5hbFRyaWdnZXJVc2VyRXZlbnQodG9rZW46c3RyaW5nKTp2b2lke1xyXG4gICAgICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyKHRva2VuKTtcclxuICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVzZXIpO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgY29uc3QgYm9keSA9IGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5jb25maWcuY2xpZW50SWQpfSZgICtcclxuICAgICAgYGdyYW50X3R5cGU9JHtlbmNvZGVVUklDb21wb25lbnQoXCJyZWZyZXNoX3Rva2VuXCIpfSZgICtcclxuICAgICAgYHJlZnJlc2hfdG9rZW49JHtlbmNvZGVVUklDb21wb25lbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLlJFRlJFU0hfVE9LRU4pKX1gO1xyXG4gICAgdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5pc3N1ZXJ9L2Nvbm5lY3QvdG9rZW5gLCBib2R5LCB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9KSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb2tlbnNJblNlc3Npb24ocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFJlZnJlc2hUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcblxyXG4gIHNldFRva2Vuc0luU2Vzc2lvbihwYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmFtcy5yZWZyZXNoX3Rva2VuKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5SRUZSRVNIX1RPS0VOLCBwYXJhbXMucmVmcmVzaF90b2tlbik7XHJcbiAgICB9XHJcbiAgICBpZiAocGFyYW1zLmFjY2Vzc190b2tlbikge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQUNDRVNTX1RPS0VOLCBwYXJhbXMuYWNjZXNzX3Rva2VuKTtcclxuICAgIH1cclxuICAgIGlmIChwYXJhbXMuZXhwaXJlc19pbikge1xyXG4gICAgICBjb25zdCBleHBpcmVUaW1lID0gYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCBwYXJhbXMuZXhwaXJlc19pbik7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTLCBmb3JtYXQoZXhwaXJlVGltZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhdXRob3JpemUoKSB7XHJcbiAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBBcnJheS5mcm9tKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoNjQpKSwgYnl0ZSA9PlxyXG4gICAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknWyhieXRlIGFzIG51bWJlcikgJSA2Ml1cclxuICAgICkuam9pbignJyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQ09ERV9WRVJJRklFUiwgY29kZVZlcmlmaWVyKTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XHJcbiAgICBjb25zdCBkYXRhID0gZW5jb2Rlci5lbmNvZGUoY29kZVZlcmlmaWVyKTtcclxuICAgIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xyXG4gICAgY29uc3QgaGFzaEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoaGFzaEJ1ZmZlcik7XHJcbiAgICBsZXQgY29kZUNoYWxsZW5nZSA9IGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5oYXNoQXJyYXkpKTtcclxuICAgIGNvZGVDaGFsbGVuZ2UgPSBjb2RlQ2hhbGxlbmdlLnJlcGxhY2UoLz0vZywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxyXG4gICAgICAucmVwbGFjZSgvXFwvL2csICdfJyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGUsXHJcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWQsXHJcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5jb25maWcucmVkaXJlY3RVcmwsXHJcbiAgICAgIHNjb3BlOiB0aGlzLmNvbmZpZy5zY29wZSxcclxuICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXHJcbiAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogJ1MyNTYnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLmNvbmZpZy5pc3N1ZXIgKyAnL2Nvbm5lY3QvYXV0aG9yaXplJyk7XHJcbiAgICB1cmwuc2VhcmNoID0gdGhpcy5hZGRRdWVyeVBhcmFtcyhwYXJhbXMpLnRvU3RyaW5nKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgYWRkUXVlcnlQYXJhbXMob2JqZWN0OiBhbnkpOiBVUkxTZWFyY2hQYXJhbXMge1xyXG4gICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqZWN0KSB7XHJcbiAgICAgIHVybFBhcmFtcy5hcHBlbmQocHJvcCwgb2JqZWN0W3Byb3BdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmxQYXJhbXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRva2VuVGltZVRvTGl2ZSgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZXhwaXJlcyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTKTtcclxuICAgIGlmIChleHBpcmVzKSB7XHJcbiAgICAgIGNvbnN0IGV4cGlyZURhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcclxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgY29uc3QgdGltZVRvTGl2ZSA9IE1hdGguZmxvb3IoKGV4cGlyZURhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyAxMDAwKTtcclxuICAgICAgcmV0dXJuIHRpbWVUb0xpdmUgPCAwID8gMCA6IHRpbWVUb0xpdmU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vQ29vbGRvd24gZm9yIGF2b2lkaW5nIGluZmluaXRlIHJlZnJlc2hcclxuICBwcml2YXRlIGNhblJlZnJlc2hUb2tlbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBpZiAobm93IC0gdGhpcy5sYXN0UmVmcmVzaFRpbWUgPiAoMiAqIDYwICogMTAwMCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1VzZXJCZWVuQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbGFzdEFjdGl2ZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5VU0VSX0xBU1RfQUNUSVZFKTtcclxuICAgIGlmICghbGFzdEFjdGl2ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0QWN0aXZlID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KGxhc3RBY3RpdmUsIDEwKTtcclxuICAgIGNvbnN0IGlkbGVUaW1lTXMgPSB0aGlzLmNvbmZpZy5pZGxlVGltZSAqIDYwICogMTAwMDtcclxuICAgIHJldHVybiB0aW1lU2luY2VMYXN0QWN0aXZlIDw9IGlkbGVUaW1lTXM7XHJcbiAgfVxyXG5cclxuICBsb2cobWVzc2FnZTogc3RyaW5nLCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nKSB7XHJcbiAgICAgIGlmIChvcHRpb25hbFBhcmFtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIG9wdGlvbmFsUGFyYW1zKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcih0b2tlbjogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IFtoZWFkZXIsIHBheWxvYWQsIHNpZ25hdHVyZV0gPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgICBjb25zdCBiYXNlNjRVcmwgPSBwYXlsb2FkLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XHJcbiAgICAgIGNvbnN0IGRlY29kZWRQYXlsb2FkID0gYXRvYihiYXNlNjRVcmwpO1xyXG4gICAgICBjb25zdCBwYXJzZWRQYXlsb2FkID0gSlNPTi5wYXJzZShkZWNvZGVkUGF5bG9hZCk7XHJcbiAgICAgIHJldHVybiBwYXJzZWRQYXlsb2FkO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVjb2RpbmcgSldUJywgZXJyb3IpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -26,6 +26,7 @@ export class AuthCallbackComponent {
26
26
  next: response => {
27
27
  this.adbUserService.setTokensInSession(response);
28
28
  let requestedUrl = sessionStorage.getItem(UserModuleConstants.CURRENT_URL) ?? null;
29
+ this.adbUserService._internalTriggerUserEvent(response.access_token);
29
30
  this.adbUserService.log('redirect url in auth-callback', requestedUrl);
30
31
  if (requestedUrl) {
31
32
  this.router.navigate([requestedUrl], { replaceUrl: true }).then(() => {
@@ -53,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
53
54
  template: '<div class="loading-dead-spinner"></div>'
54
55
  }]
55
56
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.HttpClient }, { type: i3.AdbUserService }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jYWxsYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvYXV0aC1jYWxsYmFjay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUNZLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxJQUFnQixFQUNoQixjQUE4QjtRQUg5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTGxDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtHLENBQUM7SUFFL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEdBQUcsK0JBQStCO29CQUN4QyxTQUFTLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtvQkFDbEQsa0JBQWtCLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtvQkFDakcsaUJBQWlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM3RSxjQUFjLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBRTVFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxJQUFJLEVBQzFFLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUM3RixJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7d0JBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDakQsSUFBSSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUM7d0JBQ25GLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN0RSxJQUFJLFlBQVksRUFBRSxDQUFDOzRCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dDQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUN4QyxDQUFDLENBQUMsQ0FBQzs0QkFDSCxjQUFjLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUMvRCxDQUFDOzZCQUFJLENBQUM7NEJBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3hDLENBQUMsQ0FBQyxDQUFDOzRCQUFBLENBQUM7d0JBQ1IsQ0FBQztvQkFDTCxDQUFDO2lCQUNKLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztpSUFyQ1EscUJBQXFCO3FIQUFyQixxQkFBcUIsb0RBRnBCLDBDQUEwQzs7MkZBRTNDLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMENBQTBDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgVXNlck1vZHVsZUNvbnN0YW50cyB9IGZyb20gXCIuL3VzZXItY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEFkYlVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLXVzZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJsb2FkaW5nLWRlYWQtc3Bpbm5lclwiPjwvZGl2PidcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGFkYlVzZXJTZXJ2aWNlOiBBZGJVc2VyU2VydmljZSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKHFQYXJtYXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocVBhcm1hcy5oYXMoJ2NvZGUnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGBncmFudF90eXBlPWF1dGhvcml6YXRpb25fY29kZWAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGAmY29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChxUGFybWFzLmdldCgnY29kZScpKX1gICtcclxuICAgICAgICAgICAgICAgICAgICBgJmNvZGVfdmVyaWZpZXI9JHtlbmNvZGVVUklDb21wb25lbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNPREVfVkVSSUZJRVIpKX1gICtcclxuICAgICAgICAgICAgICAgICAgICBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmFkYlVzZXJTZXJ2aWNlLmNvbmZpZy5yZWRpcmVjdFVybCl9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5hZGJVc2VyU2VydmljZS5jb25maWcuY2xpZW50SWQpfWA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFkYlVzZXJTZXJ2aWNlLmNvbmZpZy5pc3N1ZXJ9L2Nvbm5lY3QvdG9rZW5gLCBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIH0pIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRiVXNlclNlcnZpY2Uuc2V0VG9rZW5zSW5TZXNzaW9uKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ZWRVcmwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQ1VSUkVOVF9VUkwpID8/IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkYlVzZXJTZXJ2aWNlLmxvZygncmVkaXJlY3QgdXJsIGluIGF1dGgtY2FsbGJhY2snLHJlcXVlc3RlZFVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdGVkVXJsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JlcXVlc3RlZFVybF0sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGJVc2VyU2VydmljZS5zdGFydE1haW5Mb29wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNVUlJFTlRfVVJMKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRiVXNlclNlcnZpY2Uuc3RhcnRNYWluTG9vcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59Il19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jYWxsYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvYXV0aC1jYWxsYmFjay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUNZLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxJQUFnQixFQUNoQixjQUE4QjtRQUg5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTGxDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtHLENBQUM7SUFFL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEdBQUcsK0JBQStCO29CQUN4QyxTQUFTLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtvQkFDbEQsa0JBQWtCLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtvQkFDakcsaUJBQWlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM3RSxjQUFjLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBRTVFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxJQUFJLEVBQzFFLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUM3RixJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7d0JBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDakQsSUFBSSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUM7d0JBQ25GLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBQyxZQUFZLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxZQUFZLEVBQUUsQ0FBQzs0QkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQ0FDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDeEMsQ0FBQyxDQUFDLENBQUM7NEJBQ0gsY0FBYyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQzs2QkFBSSxDQUFDOzRCQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dDQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUN4QyxDQUFDLENBQUMsQ0FBQzs0QkFBQSxDQUFDO3dCQUNSLENBQUM7b0JBQ0wsQ0FBQztpQkFDSixDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7aUlBdENRLHFCQUFxQjtxSEFBckIscUJBQXFCLG9EQUZwQiwwQ0FBMEM7OzJGQUUzQyxxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBDQUEwQztpQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFVzZXJNb2R1bGVDb25zdGFudHMgfSBmcm9tIFwiLi91c2VyLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBBZGJVc2VyU2VydmljZSB9IGZyb20gXCIuL2FkYi11c2VyLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwibG9hZGluZy1kZWFkLXNwaW5uZXJcIj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoQ2FsbGJhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJVc2VyU2VydmljZTogQWRiVXNlclNlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtTWFwLnN1YnNjcmliZShxUGFybWFzID0+IHtcclxuICAgICAgICAgICAgaWYgKHFQYXJtYXMuaGFzKCdjb2RlJykpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBgZ3JhbnRfdHlwZT1hdXRob3JpemF0aW9uX2NvZGVgICtcclxuICAgICAgICAgICAgICAgICAgICBgJmNvZGU9JHtlbmNvZGVVUklDb21wb25lbnQocVBhcm1hcy5nZXQoJ2NvZGUnKSl9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZjb2RlX3ZlcmlmaWVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DT0RFX1ZFUklGSUVSKSl9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5hZGJVc2VyU2VydmljZS5jb25maWcucmVkaXJlY3RVcmwpfWAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGAmY2xpZW50X2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuYWRiVXNlclNlcnZpY2UuY29uZmlnLmNsaWVudElkKX1gO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hZGJVc2VyU2VydmljZS5jb25maWcuaXNzdWVyfS9jb25uZWN0L3Rva2VuYCwgYm9keSxcclxuICAgICAgICAgICAgICAgICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9KSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkYlVzZXJTZXJ2aWNlLnNldFRva2Vuc0luU2Vzc2lvbihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdGVkVXJsID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNVUlJFTlRfVVJMKSA/PyBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGJVc2VyU2VydmljZS5faW50ZXJuYWxUcmlnZ2VyVXNlckV2ZW50KHJlc3BvbnNlLmFjY2Vzc190b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkYlVzZXJTZXJ2aWNlLmxvZygncmVkaXJlY3QgdXJsIGluIGF1dGgtY2FsbGJhY2snLHJlcXVlc3RlZFVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdGVkVXJsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JlcXVlc3RlZFVybF0sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGJVc2VyU2VydmljZS5zdGFydE1haW5Mb29wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNVUlJFTlRfVVJMKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRiVXNlclNlcnZpY2Uuc3RhcnRNYWluTG9vcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59Il19
@@ -2041,6 +2041,7 @@ class UserModuleConstants {
2041
2041
  }
2042
2042
 
2043
2043
  class AdbUserService {
2044
+ // hasEmitted = false;
2044
2045
  constructor(config, http, router) {
2045
2046
  this.config = config;
2046
2047
  this.http = http;
@@ -2049,7 +2050,6 @@ class AdbUserService {
2049
2050
  this.userSubject = new BehaviorSubject(null);
2050
2051
  this.user$ = this.userSubject.asObservable();
2051
2052
  this.lastRefreshTime = 0;
2052
- this.hasEmitted = false;
2053
2053
  this.config = { ...{ scope: 'roles', idleTime: 30, response_type: 'code' }, ...config };
2054
2054
  }
2055
2055
  init() {
@@ -2068,7 +2068,7 @@ class AdbUserService {
2068
2068
  }
2069
2069
  this.router.events.subscribe(event => {
2070
2070
  if (event instanceof NavigationStart) {
2071
- this.login();
2071
+ this.login(event.url);
2072
2072
  }
2073
2073
  });
2074
2074
  }
@@ -2077,14 +2077,16 @@ class AdbUserService {
2077
2077
  this.checkStatus();
2078
2078
  this.intervalId = setInterval(() => this.checkStatus(), 60 * 1000); // 60 seconds * 1000 milliseconds
2079
2079
  }
2080
- login() {
2081
- this.log('url when login', this.router.url);
2082
- sessionStorage.setItem(UserModuleConstants.CURRENT_URL, this.router.url);
2080
+ login(url = null) {
2081
+ this.log('url when login', url);
2082
+ if (url) {
2083
+ sessionStorage.setItem(UserModuleConstants.CURRENT_URL, url);
2084
+ }
2083
2085
  this.authorize();
2084
2086
  }
2085
2087
  logout() {
2086
2088
  clearInterval(this.intervalId);
2087
- this.hasEmitted = false;
2089
+ // this.hasEmitted = false;
2088
2090
  sessionStorage.clear();
2089
2091
  window.location.href = `${this.config.issuer}/connect/endsession?post_logout_redirect_uri=${this.config.postLogoutUrl}`;
2090
2092
  }
@@ -2104,15 +2106,20 @@ class AdbUserService {
2104
2106
  console.log('token is about to timeout but we will refresh it because user has been active the last 5minutes');
2105
2107
  this.refreshToken();
2106
2108
  }
2107
- this.log('hasEmitted', this.hasEmitted);
2108
- if (!this.hasEmitted) {
2109
- const user = this.getUser(accessToken);
2110
- this.userSubject.next(user);
2111
- this.hasEmitted = true;
2112
- }
2109
+ //NOTE: Might not be needed in this variant
2110
+ // if (!this.hasEmitted) {
2111
+ // const user = this.getUser(accessToken);
2112
+ // this.userSubject.next(user);
2113
+ // this.hasEmitted = true;
2114
+ // }
2113
2115
  }
2114
2116
  }
2115
2117
  }
2118
+ //TODO: make it not exported by the module
2119
+ _internalTriggerUserEvent(token) {
2120
+ const user = this.getUser(token);
2121
+ this.userSubject.next(user);
2122
+ }
2116
2123
  refreshToken() {
2117
2124
  const body = `client_id=${encodeURIComponent(this.config.clientId)}&` +
2118
2125
  `grant_type=${encodeURIComponent("refresh_token")}&` +
@@ -2252,6 +2259,7 @@ class AuthCallbackComponent {
2252
2259
  next: response => {
2253
2260
  this.adbUserService.setTokensInSession(response);
2254
2261
  let requestedUrl = sessionStorage.getItem(UserModuleConstants.CURRENT_URL) ?? null;
2262
+ this.adbUserService._internalTriggerUserEvent(response.access_token);
2255
2263
  this.adbUserService.log('redirect url in auth-callback', requestedUrl);
2256
2264
  if (requestedUrl) {
2257
2265
  this.router.navigate([requestedUrl], { replaceUrl: true }).then(() => {