@dontdrinkandroot/ngx-extensions 0.6.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/fesm2022/dontdrinkandroot-ngx-extensions.mjs +203 -736
  2. package/fesm2022/dontdrinkandroot-ngx-extensions.mjs.map +1 -1
  3. package/index.d.ts +161 -5
  4. package/package.json +6 -7
  5. package/esm2022/dontdrinkandroot-ngx-extensions.mjs +0 -5
  6. package/esm2022/public-api.mjs +0 -29
  7. package/esm2022/src/cookie/cookie.service.mjs +0 -135
  8. package/esm2022/src/ddr-extensions.module.mjs +0 -67
  9. package/esm2022/src/http/redirect-to-login-interceptor.service.mjs +0 -35
  10. package/esm2022/src/http/url-info.mjs +0 -26
  11. package/esm2022/src/http/with-credentials-interceptor.service.mjs +0 -19
  12. package/esm2022/src/image/lazy-image.directive.mjs +0 -132
  13. package/esm2022/src/jwt/jwt-interceptor.service.mjs +0 -26
  14. package/esm2022/src/jwt/jwt-refresh-token-interceptor.service.mjs +0 -50
  15. package/esm2022/src/jwt/jwt-token-response.mjs +0 -2
  16. package/esm2022/src/jwt/jwt.service.mjs +0 -81
  17. package/esm2022/src/logger/console-logger.service.mjs +0 -43
  18. package/esm2022/src/logger/logger.service.mjs +0 -9
  19. package/esm2022/src/methoddecorator/debounce.mjs +0 -13
  20. package/esm2022/src/methoddecorator/limit.mjs +0 -16
  21. package/esm2022/src/oauth/json-web-token.mjs +0 -2
  22. package/esm2022/src/oauth/oauth2-access-token-interceptor.service.mjs +0 -26
  23. package/esm2022/src/oauth/oauth2-config.mjs +0 -11
  24. package/esm2022/src/oauth/oauth2-error.mjs +0 -8
  25. package/esm2022/src/oauth/oauth2-refresh-token-interceptor.service.mjs +0 -24
  26. package/esm2022/src/oauth/oauth2.module.mjs +0 -44
  27. package/esm2022/src/oauth/oauth2.service.mjs +0 -125
  28. package/esm2022/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +0 -41
  29. package/esm2022/src/oauth/token-response.mjs +0 -2
  30. package/esm2022/src/scroll/bottom-hit.directive.mjs +0 -60
  31. package/esm2022/src/scroll/scroll.service.mjs +0 -38
  32. package/esm2022/src/storage/local-storage.service.mjs +0 -53
  33. package/esm2022/src/storage/storage.service.mjs +0 -5
  34. package/esm2022/src/typeguard/is-non-null.mjs +0 -4
  35. package/esm2022/src/util/collection-utils.mjs +0 -27
  36. package/esm2022/src/util/number-utils.mjs +0 -10
  37. package/esm2022/src/util/object-utils.mjs +0 -9
  38. package/esm2022/src/util/string-utils.mjs +0 -35
  39. package/esm2022/src/util/type-utils.mjs +0 -9
  40. package/esm2022/src/visibility/visibility.service.mjs +0 -19
  41. package/public-api.d.ts +0 -25
  42. package/src/cookie/cookie.service.d.ts +0 -41
  43. package/src/ddr-extensions.module.d.ts +0 -11
  44. package/src/http/redirect-to-login-interceptor.service.d.ts +0 -15
  45. package/src/http/url-info.d.ts +0 -13
  46. package/src/http/with-credentials-interceptor.service.d.ts +0 -11
  47. package/src/image/lazy-image.directive.d.ts +0 -29
  48. package/src/jwt/jwt-interceptor.service.d.ts +0 -14
  49. package/src/jwt/jwt-refresh-token-interceptor.service.d.ts +0 -18
  50. package/src/jwt/jwt-token-response.d.ts +0 -4
  51. package/src/jwt/jwt.service.d.ts +0 -48
  52. package/src/logger/console-logger.service.d.ts +0 -22
  53. package/src/logger/logger.service.d.ts +0 -10
  54. package/src/methoddecorator/debounce.d.ts +0 -1
  55. package/src/methoddecorator/limit.d.ts +0 -1
  56. package/src/oauth/json-web-token.d.ts +0 -30
  57. package/src/oauth/oauth2-access-token-interceptor.service.d.ts +0 -14
  58. package/src/oauth/oauth2-config.d.ts +0 -9
  59. package/src/oauth/oauth2-error.d.ts +0 -5
  60. package/src/oauth/oauth2-refresh-token-interceptor.service.d.ts +0 -14
  61. package/src/oauth/oauth2.module.d.ts +0 -9
  62. package/src/oauth/oauth2.service.d.ts +0 -35
  63. package/src/oauth/redirect-to-oauth2-login-interceptor.service.d.ts +0 -18
  64. package/src/oauth/token-response.d.ts +0 -6
  65. package/src/scroll/bottom-hit.directive.d.ts +0 -14
  66. package/src/scroll/scroll.service.d.ts +0 -12
  67. package/src/storage/local-storage.service.d.ts +0 -23
  68. package/src/storage/storage.service.d.ts +0 -7
  69. package/src/typeguard/is-non-null.d.ts +0 -1
  70. package/src/util/collection-utils.d.ts +0 -10
  71. package/src/util/number-utils.d.ts +0 -3
  72. package/src/util/object-utils.d.ts +0 -4
  73. package/src/util/string-utils.d.ts +0 -6
  74. package/src/util/type-utils.d.ts +0 -3
  75. package/src/visibility/visibility.service.d.ts +0 -9
@@ -1,81 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../storage/storage.service";
4
- import * as i2 from "../logger/logger.service";
5
- export class JwtService {
6
- constructor(storageService, loggerService) {
7
- this.storageService = storageService;
8
- this.loggerService = loggerService;
9
- /**
10
- * The current token.
11
- */
12
- this.token = null;
13
- /**
14
- * The expiry of the current token.
15
- */
16
- this.tokenExpiry = null;
17
- }
18
- /**
19
- * Sets the current token and a refresh token.
20
- */
21
- setTokens(token, refreshToken) {
22
- this.setToken(token);
23
- this.storageService.store(this.getRefreshTokenStorageKey(), refreshToken);
24
- }
25
- /**
26
- * Sets the current token.
27
- */
28
- setToken(token) {
29
- this.token = token;
30
- const decodedToken = JSON.parse(atob(token.split('.')[1]));
31
- this.tokenExpiry = decodedToken.exp * 1000;
32
- this.loggerService.info('New refresh token, expiry', new Date(this.tokenExpiry));
33
- }
34
- /**
35
- * Gets the current token.
36
- */
37
- getToken() {
38
- return this.token;
39
- }
40
- /**
41
- * Gets the refresh token.
42
- */
43
- getRefreshToken() {
44
- return this.storageService.retrieve(this.getRefreshTokenStorageKey());
45
- }
46
- /**
47
- * Checks if the current token expired.
48
- */
49
- isExpired() {
50
- const now = new Date().getTime();
51
- return null == this.tokenExpiry || this.tokenExpiry < now;
52
- }
53
- /**
54
- * Checks if the current token is about to expire.
55
- * @param expiryMs
56
- */
57
- isAboutToExpire(expiryMs = 60000) {
58
- const now = new Date().getTime();
59
- return null == this.tokenExpiry || this.tokenExpiry - expiryMs < now;
60
- }
61
- /**
62
- * Clears all token information.
63
- */
64
- clear() {
65
- this.token = null;
66
- this.tokenExpiry = null;
67
- this.storageService.remove(this.getRefreshTokenStorageKey());
68
- }
69
- getRefreshTokenStorageKey() {
70
- return 'jwt.refresh_token';
71
- }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: JwtService, deps: [{ token: i1.StorageService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
73
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: JwtService, providedIn: 'root' }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: JwtService, decorators: [{
76
- type: Injectable,
77
- args: [{
78
- providedIn: 'root'
79
- }]
80
- }], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.Logger }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvand0L2p3dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekMsTUFBTSxPQUFPLFVBQVU7SUFZbkIsWUFDWSxjQUE4QixFQUM5QixhQUFxQjtRQURyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFaakM7O1dBRUc7UUFDSyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNLLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQU8xQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLFlBQW9CO1FBRWhELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFFekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBRVgsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFFbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFFWixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxXQUFtQixLQUFLO1FBRTNDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUVSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVPLHlCQUF5QjtRQUU3QixPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7OEdBdkZRLFVBQVU7a0hBQVYsVUFBVSxjQUZQLE1BQU07OzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEp3dFNlcnZpY2VcbntcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBleHBpcnkgb2YgdGhlIGN1cnJlbnQgdG9rZW4uXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b2tlbkV4cGlyeTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9nZ2VyU2VydmljZTogTG9nZ2VyXG4gICAgKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRva2VuIGFuZCBhIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIHNldFRva2Vucyh0b2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW4odG9rZW4pO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKHRoaXMuZ2V0UmVmcmVzaFRva2VuU3RvcmFnZUtleSgpLCByZWZyZXNoVG9rZW4pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gSlNPTi5wYXJzZShhdG9iKHRva2VuLnNwbGl0KCcuJylbMV0pKTtcbiAgICAgICAgdGhpcy50b2tlbkV4cGlyeSA9IGRlY29kZWRUb2tlbi5leHAgKiAxMDAwO1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnTmV3IHJlZnJlc2ggdG9rZW4sIGV4cGlyeScsIG5ldyBEYXRlKHRoaXMudG9rZW5FeHBpcnkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UucmV0cmlldmUodGhpcy5nZXRSZWZyZXNoVG9rZW5TdG9yYWdlS2V5KCkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHRva2VuIGV4cGlyZWQuXG4gICAgICovXG4gICAgcHVibGljIGlzRXhwaXJlZCgpOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IDwgbm93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCB0b2tlbiBpcyBhYm91dCB0byBleHBpcmUuXG4gICAgICogQHBhcmFtIGV4cGlyeU1zXG4gICAgICovXG4gICAgcHVibGljIGlzQWJvdXRUb0V4cGlyZShleHBpcnlNczogbnVtYmVyID0gNjAwMDApOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IC0gZXhwaXJ5TXMgPCBub3c7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy50b2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMudG9rZW5FeHBpcnkgPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZSh0aGlzLmdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gJ2p3dC5yZWZyZXNoX3Rva2VuJztcbiAgICB9XG59XG4iXX0=
@@ -1,43 +0,0 @@
1
- import { Logger } from './logger.service';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class ConsoleLogger extends Logger {
5
- /**
6
- * @override
7
- */
8
- debug(...data) {
9
- if (this.debugEnabled) {
10
- console.debug(...data);
11
- }
12
- }
13
- /**
14
- * @override
15
- */
16
- info(...data) {
17
- if (this.infoEnabled) {
18
- console.info(...data);
19
- }
20
- }
21
- /**
22
- * @override
23
- */
24
- warn(...data) {
25
- if (this.warnEnabled) {
26
- console.warn(...data);
27
- }
28
- }
29
- /**
30
- * @override
31
- */
32
- error(...data) {
33
- if (this.errorEnabled) {
34
- console.error(...data);
35
- }
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleLogger, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleLogger }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConsoleLogger, decorators: [{
41
- type: Injectable
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1sb2dnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dnZXIvY29uc29sZS1sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLGFBQWMsU0FBUSxNQUFNO0lBRXJDOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsSUFBVztRQUV2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxHQUFHLElBQVc7UUFFdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBRXRCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsSUFBVztRQUV2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7OEdBeENRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25zb2xlTG9nZ2VyIGV4dGVuZHMgTG9nZ2VyXG57XG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGRlYnVnKC4uLmRhdGE6IGFueVtdKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZGVidWdFbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGluZm8oLi4uZGF0YTogYW55W10pOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy5pbmZvRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIHdhcm4oLi4uZGF0YTogYW55W10pOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy53YXJuRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGVycm9yKC4uLmRhdGE6IGFueVtdKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JFbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- export class Logger {
2
- constructor() {
3
- this.debugEnabled = false;
4
- this.infoEnabled = true;
5
- this.warnEnabled = true;
6
- this.errorEnabled = true;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsTUFBTTtJQUE1QjtRQUVXLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0lBUy9CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2dnZXJcbntcbiAgICBwdWJsaWMgZGVidWdFbmFibGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5mb0VuYWJsZWQgPSB0cnVlO1xuXG4gICAgcHVibGljIHdhcm5FbmFibGVkID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBlcnJvckVuYWJsZWQgPSB0cnVlO1xuXG4gICAgcHVibGljIGFic3RyYWN0IGRlYnVnKC4uLmRhdGE6IGFueVtdKTogdm9pZDtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBpbmZvKC4uLmRhdGE6IGFueVtdKTogdm9pZDtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCB3YXJuKC4uLmRhdGE6IGFueVtdKTogdm9pZDtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBlcnJvciguLi5kYXRhOiBhbnlbXSk6IHZvaWQ7XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- export function Debounce(delay = 250) {
2
- let timeoutReference = null;
3
- return (target, propertyKey, descriptor) => {
4
- const original = descriptor.value;
5
- descriptor.value = function (...args) {
6
- if (null != timeoutReference)
7
- clearTimeout(timeoutReference);
8
- timeoutReference = setTimeout(() => original.apply(this, args), delay);
9
- };
10
- return descriptor;
11
- };
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWV0aG9kZGVjb3JhdG9yL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxRQUFRLENBQUMsUUFBZ0IsR0FBRztJQUV4QyxJQUFJLGdCQUFnQixHQUFRLElBQUksQ0FBQztJQUVqQyxPQUFPLENBQUMsTUFBYyxFQUFFLFdBQTRCLEVBQUUsVUFBd0MsRUFBRSxFQUFFO1FBQzlGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBUztZQUNyQyxJQUFJLElBQUksSUFBSSxnQkFBZ0I7Z0JBQUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDN0QsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gRGVib3VuY2UoZGVsYXk6IG51bWJlciA9IDI1MCk6IE1ldGhvZERlY29yYXRvclxue1xuICAgIGxldCB0aW1lb3V0UmVmZXJlbmNlOiBhbnkgPSBudWxsO1xuXG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCwgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55KSB7XG4gICAgICAgICAgICBpZiAobnVsbCAhPSB0aW1lb3V0UmVmZXJlbmNlKSBjbGVhclRpbWVvdXQodGltZW91dFJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aW1lb3V0UmVmZXJlbmNlID0gc2V0VGltZW91dCgoKSA9PiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKSwgZGVsYXkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH07XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- export function Limit(rate = 250) {
2
- let timeoutReference = null;
3
- return (target, propertyKey, descriptor) => {
4
- const original = descriptor.value;
5
- descriptor.value = function (...args) {
6
- if (null == timeoutReference) {
7
- timeoutReference = setTimeout(() => {
8
- original.apply(this, args);
9
- timeoutReference = undefined;
10
- }, rate);
11
- }
12
- };
13
- return descriptor;
14
- };
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWV0aG9kZGVjb3JhdG9yL2xpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZSxHQUFHO0lBRXBDLElBQUksZ0JBQWdCLEdBQVEsSUFBSSxDQUFDO0lBRWpDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsV0FBNEIsRUFBRSxVQUF3QyxFQUFFLEVBQUU7UUFDOUYsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNsQyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFTO1lBQ3JDLElBQUksSUFBSSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQzNCLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQy9CLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMzQixnQkFBZ0IsR0FBRyxTQUFTLENBQUE7Z0JBQ2hDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIExpbWl0KHJhdGU6IG51bWJlciA9IDI1MCk6IE1ldGhvZERlY29yYXRvclxue1xuICAgIGxldCB0aW1lb3V0UmVmZXJlbmNlOiBhbnkgPSBudWxsO1xuXG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCwgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55KSB7XG4gICAgICAgICAgICBpZiAobnVsbCA9PSB0aW1lb3V0UmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgdGltZW91dFJlZmVyZW5jZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dFJlZmVyZW5jZSA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0sIHJhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH07XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi13ZWItdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvanNvbi13ZWItdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSnNvbldlYlRva2VuXG57XG4gICAgLyoqXG4gICAgICogQXVkaWVuY2VcbiAgICAgKi9cbiAgICBhdWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEV4cGlyYXRpb24gVGltZVxuICAgICAqL1xuICAgIGV4cDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogSXNzdWVkIEF0XG4gICAgICovXG4gICAgaWF0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBKV1QgSURcbiAgICAgKi9cbiAgICBqdGk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5vdCBCZWZvcmVcbiAgICAgKi9cbiAgICBuYmY6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNjb3Blc1xuICAgICAqL1xuICAgIHNjb3Blczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBTdWJqZWN0XG4gICAgICovXG4gICAgc3ViOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./oauth2.service";
4
- export class OAuth2AccessTokenInterceptor {
5
- constructor(oAuth2Service) {
6
- this.oAuth2Service = oAuth2Service;
7
- }
8
- /**
9
- * @override
10
- */
11
- intercept(req, next) {
12
- const accessTokenString = this.oAuth2Service.getAccessTokenString();
13
- if (null !== accessTokenString && !this.oAuth2Service.isAccessTokenExpired()) {
14
- req = req.clone({
15
- headers: req.headers.set('Authorization', 'Bearer ' + accessTokenString)
16
- });
17
- }
18
- return next.handle(req);
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2AccessTokenInterceptor, deps: [{ token: i1.OAuth2Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2AccessTokenInterceptor }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2AccessTokenInterceptor, decorators: [{
24
- type: Injectable
25
- }], ctorParameters: () => [{ type: i1.OAuth2Service }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLWFjY2Vzcy10b2tlbi1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL29hdXRoL29hdXRoMi1hY2Nlc3MtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFLekMsTUFBTSxPQUFPLDRCQUE0QjtJQUVyQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUVoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUVwRSxJQUFJLElBQUksS0FBSyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzNFLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLGlCQUFpQixDQUFDO2FBQzNFLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FwQlEsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9BdXRoMkFjY2Vzc1Rva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9BdXRoMlNlcnZpY2U6IE9BdXRoMlNlcnZpY2UpXG4gICAge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+XG4gICAge1xuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlblN0cmluZyA9IHRoaXMub0F1dGgyU2VydmljZS5nZXRBY2Nlc3NUb2tlblN0cmluZygpO1xuXG4gICAgICAgIGlmIChudWxsICE9PSBhY2Nlc3NUb2tlblN0cmluZyAmJiAhdGhpcy5vQXV0aDJTZXJ2aWNlLmlzQWNjZXNzVG9rZW5FeHBpcmVkKCkpIHtcbiAgICAgICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5TdHJpbmcpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const DDR_OAUTH2_CONFIG = new InjectionToken('DDR_OAUTH2_CONFIG');
3
- export class OAuth2Config {
4
- constructor(clientId, redirectUri, authorizeUri, tokenUri) {
5
- this.clientId = clientId;
6
- this.redirectUri = redirectUri;
7
- this.authorizeUri = authorizeUri;
8
- this.tokenUri = tokenUri;
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9vYXV0aC9vYXV0aDItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWUsbUJBQW1CLENBQUMsQ0FBQztBQUV2RixNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUNvQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixZQUFvQixFQUNwQixRQUFnQjtRQUhoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFHcEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBERFJfT0FVVEgyX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPQXV0aDJDb25maWc+KCdERFJfT0FVVEgyX0NPTkZJRycpO1xuXG5leHBvcnQgY2xhc3MgT0F1dGgyQ29uZmlnXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjbGllbnRJZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcmVkaXJlY3RVcmk6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGF1dGhvcml6ZVVyaTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Vcmk6IHN0cmluZ1xuICAgIClcbiAgICB7XG4gICAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- export class OAuth2Error extends Error {
2
- static { this.CODE_NOT_FOUND = 'code_not_found'; }
3
- static { this.ACCESS_DENIED = 'access_denied'; }
4
- constructor(error) {
5
- super(error);
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL29hdXRoL29hdXRoMi1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBWSxTQUFRLEtBQUs7YUFFWCxtQkFBYyxHQUFHLGdCQUFnQixDQUFDO2FBRWxDLGtCQUFhLEdBQUcsZUFBZSxDQUFDO0lBRXZELFlBQVksS0FBYTtRQUVyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBPQXV0aDJFcnJvciBleHRlbmRzIEVycm9yXG57XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT0RFX05PVF9GT1VORCA9ICdjb2RlX25vdF9mb3VuZCc7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDQ0VTU19ERU5JRUQgPSAnYWNjZXNzX2RlbmllZCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlcnJvcjogc3RyaW5nKVxuICAgIHtcbiAgICAgICAgc3VwZXIoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { switchMap } from 'rxjs/operators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./oauth2.service";
5
- export class OAuth2RefreshTokenInterceptor {
6
- constructor(oAuth2Service) {
7
- this.oAuth2Service = oAuth2Service;
8
- }
9
- /**
10
- * @override
11
- */
12
- intercept(req, next) {
13
- if (this.oAuth2Service.isRefreshPossibleAndRequired(req)) {
14
- return this.oAuth2Service.performRefresh().pipe(switchMap(() => next.handle(req)));
15
- }
16
- return next.handle(req);
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2RefreshTokenInterceptor, deps: [{ token: i1.OAuth2Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2RefreshTokenInterceptor }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2RefreshTokenInterceptor, decorators: [{
22
- type: Injectable
23
- }], ctorParameters: () => [{ type: i1.OAuth2Service }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9vYXV0aC9vYXV0aDItcmVmcmVzaC10b2tlbi1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFJekMsTUFBTSxPQUFPLDZCQUE2QjtJQUV0QyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUVoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUMzQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNwQyxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQWxCUSw2QkFBNkI7a0hBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9BdXRoMlJlZnJlc2hUb2tlbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvQXV0aDJTZXJ2aWNlOiBPQXV0aDJTZXJ2aWNlKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PlxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMub0F1dGgyU2VydmljZS5pc1JlZnJlc2hQb3NzaWJsZUFuZFJlcXVpcmVkKHJlcSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9BdXRoMlNlcnZpY2UucGVyZm9ybVJlZnJlc2goKS5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXh0LmhhbmRsZShyZXEpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,44 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { DDR_OAUTH2_CONFIG } from './oauth2-config';
3
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
4
- import { OAuth2RefreshTokenInterceptor } from './oauth2-refresh-token-interceptor.service';
5
- import { RedirectToOAuth2LoginInterceptor } from './redirect-to-oauth2-login-interceptor.service';
6
- import { OAuth2AccessTokenInterceptor } from './oauth2-access-token-interceptor.service';
7
- import { OAuth2Service } from './oauth2.service';
8
- import * as i0 from "@angular/core";
9
- export class OAuth2Module {
10
- static forRoot(config) {
11
- return {
12
- ngModule: OAuth2Module,
13
- providers: [
14
- OAuth2Service,
15
- {
16
- provide: DDR_OAUTH2_CONFIG,
17
- useValue: config
18
- },
19
- {
20
- provide: HTTP_INTERCEPTORS,
21
- useClass: OAuth2RefreshTokenInterceptor,
22
- multi: true
23
- },
24
- {
25
- provide: HTTP_INTERCEPTORS,
26
- useClass: RedirectToOAuth2LoginInterceptor,
27
- multi: true
28
- },
29
- {
30
- provide: HTTP_INTERCEPTORS,
31
- useClass: OAuth2AccessTokenInterceptor,
32
- multi: true
33
- }
34
- ],
35
- };
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
38
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Module }); }
39
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Module }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Module, decorators: [{
42
- type: NgModule
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9vYXV0aC9vYXV0aDIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHL0MsTUFBTSxPQUFPLFlBQVk7SUFFckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUUvQixPQUFPO1lBQ0gsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2I7b0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsUUFBUSxFQUFFLE1BQU07aUJBQ25CO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs4R0E3QlEsWUFBWTsrR0FBWixZQUFZOytHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcbmltcG9ydCB7SFRUUF9JTlRFUkNFUFRPUlN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T0F1dGgyUmVmcmVzaFRva2VuSW50ZXJjZXB0b3J9IGZyb20gJy4vb2F1dGgyLXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQge1JlZGlyZWN0VG9PQXV0aDJMb2dpbkludGVyY2VwdG9yfSBmcm9tICcuL3JlZGlyZWN0LXRvLW9hdXRoMi1sb2dpbi1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7T0F1dGgyQWNjZXNzVG9rZW5JbnRlcmNlcHRvcn0gZnJvbSAnLi9vYXV0aDItYWNjZXNzLXRva2VuLWludGVyY2VwdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBPQXV0aDJNb2R1bGVcbntcbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc6IE9BdXRoMkNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T0F1dGgyTW9kdWxlPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBPQXV0aDJNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBPQXV0aDJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRERSX09BVVRIMl9DT05GSUcsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBPQXV0aDJSZWZyZXNoVG9rZW5JbnRlcmNlcHRvcixcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBSZWRpcmVjdFRvT0F1dGgyTG9naW5JbnRlcmNlcHRvcixcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBPQXV0aDJBY2Nlc3NUb2tlbkludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -1,125 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { throwError } from 'rxjs';
3
- import { HttpParams } from '@angular/common/http';
4
- import { catchError, map, shareReplay } from 'rxjs/operators';
5
- import { DDR_OAUTH2_CONFIG } from './oauth2-config';
6
- import { OAuth2Error } from './oauth2-error';
7
- import { TypeUtils } from '../util/type-utils';
8
- import { StringUtils } from '../util/string-utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/router";
11
- import * as i2 from "@angular/common/http";
12
- import * as i3 from "../logger/logger.service";
13
- import * as i4 from "./oauth2-config";
14
- export class OAuth2Service {
15
- static { this.STORAGE_KEY_CHALLENGE = 'ddr_oauth2_challenge'; }
16
- static { this.STORAGE_KEY_REFRESH_TOKEN = 'ddr_oauth2_refresh_token'; }
17
- static { this.STORAGE_KEY_RETURN_URL = 'ddr_oauth2_return_url'; }
18
- constructor(route, httpClient, loggerService, config) {
19
- this.route = route;
20
- this.httpClient = httpClient;
21
- this.loggerService = loggerService;
22
- this.config = config;
23
- this.accessTokenString = null;
24
- this.accessToken = null;
25
- this.REFRESH_MARGIN_SECONDS = 60 * 10;
26
- this.refreshTokenRequest$ = null;
27
- }
28
- redirectToLogin() {
29
- const challenge = this.createChallenge();
30
- localStorage.setItem(OAuth2Service.STORAGE_KEY_CHALLENGE, challenge);
31
- const params = new HttpParams()
32
- .set('client_id', this.config.clientId)
33
- .set('response_type', 'code')
34
- .set('redirect_uri', this.config.redirectUri)
35
- .set('code_challenge', challenge)
36
- .set('code_challenge_method', 'plain');
37
- window.location.href = this.config.authorizeUri + '?' + params.toString();
38
- }
39
- handleCode() {
40
- if (this.route.snapshot.queryParamMap.has('error')) {
41
- const error = this.route.snapshot.queryParamMap.get('error');
42
- return throwError(() => new OAuth2Error(error ?? 'Unknown error'));
43
- }
44
- if (!this.route.snapshot.queryParamMap.has('code')) {
45
- return throwError(() => new OAuth2Error(OAuth2Error.CODE_NOT_FOUND));
46
- }
47
- const code = TypeUtils.notNull(this.route.snapshot.queryParamMap.get('code'));
48
- const params = new HttpParams()
49
- .set('grant_type', 'authorization_code')
50
- .set('code', code)
51
- .set('redirect_uri', this.config.redirectUri)
52
- .set('code_verifier', TypeUtils.notNull(localStorage.getItem(OAuth2Service.STORAGE_KEY_CHALLENGE)))
53
- .set('client_id', this.config.clientId);
54
- return this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => this.processTokenResponse(tokenResponse)));
55
- }
56
- createChallenge() {
57
- return StringUtils.createRandomString(64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-._~');
58
- }
59
- getRefreshToken() {
60
- return localStorage.getItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
61
- }
62
- getAccessTokenString() {
63
- return this.accessTokenString;
64
- }
65
- isAccessTokenExpired() {
66
- return (null == this.accessToken
67
- || this.accessToken.exp * 1000 < Date.now());
68
- }
69
- isRefreshPossibleAndRequired(req = null) {
70
- return ((null == req || !req.url.endsWith(this.config.tokenUri))
71
- && null != this.getRefreshToken()
72
- && (null == this.accessToken
73
- || (this.accessToken.exp - this.REFRESH_MARGIN_SECONDS) * 1000 < Date.now()));
74
- }
75
- performRefresh() {
76
- if (null == this.refreshTokenRequest$) {
77
- this.loggerService.info('Performing token refesh');
78
- const params = new HttpParams()
79
- .set('grant_type', 'refresh_token')
80
- .set('refresh_token', TypeUtils.notNull(this.getRefreshToken()))
81
- .set('client_id', this.config.clientId);
82
- this.refreshTokenRequest$ = this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => {
83
- const token = this.processTokenResponse(tokenResponse);
84
- this.refreshTokenRequest$ = null;
85
- return token;
86
- }), catchError(error => {
87
- this.accessTokenString = null;
88
- this.accessToken = null;
89
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
90
- this.refreshTokenRequest$ = null;
91
- return throwError(error);
92
- }), shareReplay(1));
93
- }
94
- return this.refreshTokenRequest$;
95
- }
96
- processTokenResponse(tokenResponse) {
97
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_CHALLENGE);
98
- this.accessTokenString = tokenResponse.access_token;
99
- this.accessToken = JSON.parse(atob(tokenResponse.access_token.split('.')[1]));
100
- this.loggerService.info('Access Token Expiry', new Date(this.accessToken.exp * 1000));
101
- localStorage.setItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN, tokenResponse.refresh_token);
102
- return this.accessToken;
103
- }
104
- clear() {
105
- this.accessToken = null;
106
- this.accessTokenString = null;
107
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
108
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
109
- }
110
- setReturnUrl(url) {
111
- localStorage.setItem(OAuth2Service.STORAGE_KEY_RETURN_URL, url);
112
- }
113
- getReturnUrl() {
114
- return localStorage.getItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
115
- }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Service, deps: [{ token: i1.ActivatedRoute }, { token: i2.HttpClient }, { token: i3.Logger }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Service }); }
118
- }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OAuth2Service, decorators: [{
120
- type: Injectable
121
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.HttpClient }, { type: i3.Logger }, { type: i4.OAuth2Config, decorators: [{
122
- type: Inject,
123
- args: [DDR_OAUTH2_CONFIG]
124
- }] }] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvb2F1dGgyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQWEsVUFBVSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUQsT0FBTyxFQUFDLGlCQUFpQixFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUlqRCxNQUFNLE9BQU8sYUFBYTthQUVQLDBCQUFxQixHQUFHLHNCQUFzQixBQUF6QixDQUEwQjthQUUvQyw4QkFBeUIsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7YUFFeEQsMkJBQXNCLEdBQUcsdUJBQXVCLEFBQTFCLENBQTJCO0lBVS9ELFlBQ1ksS0FBcUIsRUFDckIsVUFBc0IsRUFDdEIsYUFBcUIsRUFDTSxNQUFvQjtRQUgvQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ00sV0FBTSxHQUFOLE1BQU0sQ0FBYztRQVpuRCxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO1FBRXhDLGdCQUFXLEdBQXdCLElBQUksQ0FBQztRQUUvQiwyQkFBc0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRTFDLHlC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QUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMseUJBQXlCLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNGLE9BQU8sSUFBSSxDQUFDLFdBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSztRQUVSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNqRSxZQUFZLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxZQUFZLENBQUMsR0FBVztRQUUzQixZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sWUFBWTtRQUVmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQTVKUSxhQUFhLGdHQW9CVixpQkFBaUI7a0hBcEJwQixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFxQkYsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUb2tlblJlc3BvbnNlfSBmcm9tICcuL3Rva2VuLXJlc3BvbnNlJztcbmltcG9ydCB7SnNvbldlYlRva2VufSBmcm9tICcuL2pzb24td2ViLXRva2VuJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcbmltcG9ydCB7T0F1dGgyRXJyb3J9IGZyb20gJy4vb2F1dGgyLWVycm9yJztcbmltcG9ydCB7VHlwZVV0aWxzfSBmcm9tICcuLi91dGlsL3R5cGUtdXRpbHMnO1xuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSAnLi4vdXRpbC9zdHJpbmctdXRpbHMnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPQXV0aDJTZXJ2aWNlXG57XG4gICAgcHJpdmF0ZSBzdGF0aWMgU1RPUkFHRV9LRVlfQ0hBTExFTkdFID0gJ2Rkcl9vYXV0aDJfY2hhbGxlbmdlJztcblxuICAgIHByaXZhdGUgc3RhdGljIFNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4gPSAnZGRyX29hdXRoMl9yZWZyZXNoX3Rva2VuJztcblxuICAgIHB1YmxpYyBzdGF0aWMgU1RPUkFHRV9LRVlfUkVUVVJOX1VSTCA9ICdkZHJfb2F1dGgyX3JldHVybl91cmwnO1xuXG4gICAgcHJpdmF0ZSBhY2Nlc3NUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGFjY2Vzc1Rva2VuOiBKc29uV2ViVG9rZW4gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgUkVGUkVTSF9NQVJHSU5fU0VDT05EUyA9IDYwICogMTA7XG5cbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblJlcXVlc3QkOiBPYnNlcnZhYmxlPEpzb25XZWJUb2tlbj4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGxvZ2dlclNlcnZpY2U6IExvZ2dlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZGlyZWN0VG9Mb2dpbigpXG4gICAge1xuICAgICAgICBjb25zdCBjaGFsbGVuZ2UgPSB0aGlzLmNyZWF0ZUNoYWxsZW5nZSgpO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX0NIQUxMRU5HRSwgY2hhbGxlbmdlKTtcblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KCdjbGllbnRfaWQnLCB0aGlzLmNvbmZpZy5jbGllbnRJZClcbiAgICAgICAgICAgIC5zZXQoJ3Jlc3BvbnNlX3R5cGUnLCAnY29kZScpXG4gICAgICAgICAgICAuc2V0KCdyZWRpcmVjdF91cmknLCB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSlcbiAgICAgICAgICAgIC5zZXQoJ2NvZGVfY2hhbGxlbmdlJywgY2hhbGxlbmdlKVxuICAgICAgICAgICAgLnNldCgnY29kZV9jaGFsbGVuZ2VfbWV0aG9kJywgJ3BsYWluJyk7XG5cbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmNvbmZpZy5hdXRob3JpemVVcmkgKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ29kZSgpOiBPYnNlcnZhYmxlPEpzb25XZWJUb2tlbj5cbiAgICB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuaGFzKCdlcnJvcicpKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2Vycm9yJyk7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgT0F1dGgyRXJyb3IoZXJyb3IgPz8gJ1Vua25vd24gZXJyb3InKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5oYXMoJ2NvZGUnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IE9BdXRoMkVycm9yKE9BdXRoMkVycm9yLkNPREVfTk9UX0ZPVU5EKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2RlID0gVHlwZVV0aWxzLm5vdE51bGwodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnY29kZScpKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgLnNldCgnZ3JhbnRfdHlwZScsICdhdXRob3JpemF0aW9uX2NvZGUnKVxuICAgICAgICAgICAgLnNldCgnY29kZScsIGNvZGUpXG4gICAgICAgICAgICAuc2V0KCdyZWRpcmVjdF91cmknLCB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSlcbiAgICAgICAgICAgIC5zZXQoJ2NvZGVfdmVyaWZpZXInLCBUeXBlVXRpbHMubm90TnVsbChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX0NIQUxMRU5HRSkpKVxuICAgICAgICAgICAgLnNldCgnY2xpZW50X2lkJywgdGhpcy5jb25maWcuY2xpZW50SWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VG9rZW5SZXNwb25zZT4odGhpcy5jb25maWcudG9rZW5VcmksIHBhcmFtcykucGlwZShcbiAgICAgICAgICAgIG1hcCh0b2tlblJlc3BvbnNlID0+IHRoaXMucHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGFsbGVuZ2UoKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZ1V0aWxzLmNyZWF0ZVJhbmRvbVN0cmluZyg2NCwgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MC0uX34nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWNjZXNzVG9rZW5TdHJpbmcoKTogc3RyaW5nIHwgbnVsbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQWNjZXNzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsID09IHRoaXMuYWNjZXNzVG9rZW5cbiAgICAgICAgICAgIHx8IHRoaXMuYWNjZXNzVG9rZW4uZXhwICogMTAwMCA8IERhdGUubm93KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSZWZyZXNoUG9zc2libGVBbmRSZXF1aXJlZChyZXE6IEh0dHBSZXF1ZXN0PGFueT4gfCBudWxsID0gbnVsbCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobnVsbCA9PSByZXEgfHwgIXJlcS51cmwuZW5kc1dpdGgodGhpcy5jb25maWcudG9rZW5VcmkpKVxuICAgICAgICAgICAgJiYgbnVsbCAhPSB0aGlzLmdldFJlZnJlc2hUb2tlbigpXG4gICAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAgICAgbnVsbCA9PSB0aGlzLmFjY2Vzc1Rva2VuXG4gICAgICAgICAgICAgICAgfHwgKHRoaXMuYWNjZXNzVG9rZW4uZXhwIC0gdGhpcy5SRUZSRVNIX01BUkdJTl9TRUNPTkRTKSAqIDEwMDAgPCBEYXRlLm5vdygpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHBlcmZvcm1SZWZyZXNoKCk6IE9ic2VydmFibGU8SnNvbldlYlRva2VuPlxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgPT0gdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCkge1xuXG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnUGVyZm9ybWluZyB0b2tlbiByZWZlc2gnKTtcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgICAgIC5zZXQoJ2dyYW50X3R5cGUnLCAncmVmcmVzaF90b2tlbicpXG4gICAgICAgICAgICAgICAgLnNldCgncmVmcmVzaF90b2tlbicsIFR5cGVVdGlscy5ub3ROdWxsKHRoaXMuZ2V0UmVmcmVzaFRva2VuKCkpKVxuICAgICAgICAgICAgICAgIC5zZXQoJ2NsaWVudF9pZCcsIHRoaXMuY29uZmlnLmNsaWVudElkKTtcblxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IHRoaXMuaHR0cENsaWVudC5wb3N0PFRva2VuUmVzcG9uc2U+KHRoaXMuY29uZmlnLnRva2VuVXJpLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHRva2VuUmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMucHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZTogVG9rZW5SZXNwb25zZSk6IEpzb25XZWJUb2tlblxuICAgIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9DSEFMTEVOR0UpO1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuU3RyaW5nID0gdG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBKU09OLnBhcnNlKGF0b2IodG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW4uc3BsaXQoJy4nKVsxXSkpO1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnQWNjZXNzIFRva2VuIEV4cGlyeScsIG5ldyBEYXRlKHRoaXMuYWNjZXNzVG9rZW4hLmV4cCAqIDEwMDApKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOLCB0b2tlblJlc3BvbnNlLnJlZnJlc2hfdG9rZW4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuITtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKVxuICAgIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmcgPSBudWxsO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFVFVSTl9VUkwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSZXR1cm5VcmwodXJsOiBzdHJpbmcpXG4gICAge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFVFVSTl9VUkwsIHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJldHVyblVybCgpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRVRVUk5fVVJMKTtcbiAgICB9XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { HttpErrorResponse } from '@angular/common/http';
2
- import { throwError } from 'rxjs';
3
- import { Inject, Injectable } from '@angular/core';
4
- import { catchError } from 'rxjs/operators';
5
- import { DDR_OAUTH2_CONFIG } from './oauth2-config';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./oauth2.service";
8
- import * as i2 from "@angular/router";
9
- import * as i3 from "./oauth2-config";
10
- export class RedirectToOAuth2LoginInterceptor {
11
- constructor(oAuth2Service, router, oAuth2Config) {
12
- this.oAuth2Service = oAuth2Service;
13
- this.router = router;
14
- this.oAuth2Config = oAuth2Config;
15
- }
16
- /**
17
- * @override
18
- */
19
- intercept(req, next) {
20
- return next.handle(req).pipe(catchError((err) => {
21
- if (err instanceof HttpErrorResponse) {
22
- if (err.status === 401) {
23
- if (!window.location.href.startsWith(this.oAuth2Config.redirectUri)) {
24
- this.oAuth2Service.setReturnUrl(this.router.routerState.snapshot.url);
25
- this.oAuth2Service.redirectToLogin();
26
- }
27
- }
28
- }
29
- return throwError(err);
30
- }));
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, deps: [{ token: i1.OAuth2Service }, { token: i2.Router }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RedirectToOAuth2LoginInterceptor }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
36
- type: Injectable
37
- }], ctorParameters: () => [{ type: i1.OAuth2Service }, { type: i2.Router }, { type: i3.OAuth2Config, decorators: [{
38
- type: Inject,
39
- args: [DDR_OAUTH2_CONFIG]
40
- }] }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvcmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUdoRSxNQUFNLE9BQU8sZ0NBQWdDO0lBRXpDLFlBQ1ksYUFBNEIsRUFDNUIsTUFBYyxFQUNhLFlBQTBCO1FBRnJELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUdqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRTVDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFLENBQUM7Z0JBQ25DLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDekMsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzhHQTVCUSxnQ0FBZ0MscUVBSzdCLGlCQUFpQjtrSEFMcEIsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVOzswQkFNRixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0VG9PQXV0aDJMb2dpbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBvQXV0aDJDb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKHRoaXMub0F1dGgyQ29uZmlnLnJlZGlyZWN0VXJpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnNldFJldHVyblVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnJlZGlyZWN0VG9Mb2dpbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvdG9rZW4tcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZXNwb25zZVxue1xuICAgIHRva2VuX3R5cGU6IHN0cmluZztcbiAgICBleHBpcmVzX2luOiBudW1iZXI7XG4gICAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xufVxuIl19
@@ -1,60 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
3
- import { Limit } from '../methoddecorator/limit';
4
- import * as i0 from "@angular/core";
5
- export class BottomHitDirective {
6
- constructor() {
7
- this.offset = 1000;
8
- this.onWindowBottomHit = new EventEmitter();
9
- this.onElementBottomHit = new EventEmitter();
10
- }
11
- scrolled($event) {
12
- this.elementScrollEvent($event);
13
- }
14
- windowScrolled($event) {
15
- this.windowScrollEvent($event);
16
- }
17
- windowScrollEvent($event) {
18
- const pageHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);
19
- const viewportHeight = document.documentElement.clientHeight;
20
- const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
21
- const distanceToBottom = pageHeight - (scrollPosition + viewportHeight);
22
- if (distanceToBottom < this.offset) {
23
- this.onWindowBottomHit.emit();
24
- }
25
- }
26
- elementScrollEvent($event) {
27
- const target = $event.target;
28
- const scrollPosition = target.scrollHeight - target.scrollTop;
29
- const offsetHeight = target.offsetHeight;
30
- const isReachingBottom = (scrollPosition - offsetHeight) < this.offset;
31
- if (isReachingBottom) {
32
- this.onElementBottomHit.emit();
33
- }
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 }); }
37
- }
38
- __decorate([
39
- Limit()
40
- ], BottomHitDirective.prototype, "scrolled", null);
41
- __decorate([
42
- Limit()
43
- ], BottomHitDirective.prototype, "windowScrolled", null);
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BottomHitDirective, decorators: [{
45
- type: Directive,
46
- args: [{
47
- selector: '[ddrBottomHit]'
48
- }]
49
- }], ctorParameters: () => [], propDecorators: { onWindowBottomHit: [{
50
- type: Output
51
- }], onElementBottomHit: [{
52
- type: Output
53
- }], scrolled: [{
54
- type: HostListener,
55
- args: ['scroll', ['$event']]
56
- }], windowScrolled: [{
57
- type: HostListener,
58
- args: ['window:scroll', ['$event']]
59
- }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLWhpdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL2JvdHRvbS1oaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQjtRQVJPLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJaEQsQ0FBQztJQUlNLFFBQVEsQ0FBQyxNQUFhO1FBRXpCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBSU0sY0FBYyxDQUFDLE1BQWE7UUFFL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUFhO1FBRXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksRUFDakUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3BFLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUNoSCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsR0FBRyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxNQUFhO1FBRXRDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFxQixDQUFDO1FBQzVDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM5RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOzhHQXBEUSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7QUFnQnBCO0lBRE4sS0FBSyxFQUFFO2tEQUlQO0FBSU07SUFETixLQUFLLEVBQUU7d0RBSVA7MkZBMUJRLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3Qjt3REFNVSxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBSUMsa0JBQWtCO3NCQUR6QixNQUFNO2dCQVNBLFFBQVE7c0JBRmQsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUzNCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaW1pdH0gZnJvbSAnLi4vbWV0aG9kZGVjb3JhdG9yL2xpbWl0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZGRyQm90dG9tSGl0XSdcbn0pXG5leHBvcnQgY2xhc3MgQm90dG9tSGl0RGlyZWN0aXZlXG57XG4gICAgcHVibGljIG9mZnNldCA9IDEwMDA7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25XaW5kb3dCb3R0b21IaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwcml2YXRlIG9uRWxlbWVudEJvdHRvbUhpdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKClcbiAgICB7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignc2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgICBATGltaXQoKVxuICAgIHB1YmxpYyBzY3JvbGxlZCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5lbGVtZW50U2Nyb2xsRXZlbnQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgICBATGltaXQoKVxuICAgIHB1YmxpYyB3aW5kb3dTY3JvbGxlZCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy53aW5kb3dTY3JvbGxFdmVudCgkZXZlbnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB3aW5kb3dTY3JvbGxFdmVudCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgcGFnZUhlaWdodCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCxcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fCAwO1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gcGFnZUhlaWdodCAtIChzY3JvbGxQb3NpdGlvbiArIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaWYgKGRpc3RhbmNlVG9Cb3R0b20gPCB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5vbldpbmRvd0JvdHRvbUhpdC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudFNjcm9sbEV2ZW50KCRldmVudDogRXZlbnQpOiB2b2lkXG4gICAge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHRhcmdldC5zY3JvbGxIZWlnaHQgLSB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBvZmZzZXRIZWlnaHQgPSB0YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBpc1JlYWNoaW5nQm90dG9tID0gKHNjcm9sbFBvc2l0aW9uIC0gb2Zmc2V0SGVpZ2h0KSA8IHRoaXMub2Zmc2V0O1xuICAgICAgICBpZiAoaXNSZWFjaGluZ0JvdHRvbSkge1xuICAgICAgICAgICAgdGhpcy5vbkVsZW1lbnRCb3R0b21IaXQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19