@abp/ng.core 7.0.0-rc.5 → 7.0.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 (50) hide show
  1. package/esm2020/lib/abstracts/auth.guard.mjs +17 -0
  2. package/esm2020/lib/abstracts/auth.service.mjs +42 -0
  3. package/esm2020/lib/abstracts/index.mjs +3 -1
  4. package/esm2020/lib/core.module.mjs +6 -34
  5. package/esm2020/lib/guards/index.mjs +1 -2
  6. package/esm2020/lib/interceptors/api.interceptor.mjs +11 -40
  7. package/esm2020/lib/models/auth.mjs +1 -1
  8. package/esm2020/lib/models/environment.mjs +1 -1
  9. package/esm2020/lib/models/index.mjs +2 -2
  10. package/esm2020/lib/services/index.mjs +1 -3
  11. package/esm2020/lib/tokens/check-authentication-state.mjs +3 -0
  12. package/esm2020/lib/tokens/index.mjs +4 -1
  13. package/esm2020/lib/tokens/manage-profile.token.mjs +3 -12
  14. package/esm2020/lib/tokens/pipe-to-login.token.mjs +3 -0
  15. package/esm2020/lib/tokens/set-token-response-to-storage.token.mjs +3 -0
  16. package/esm2020/lib/utils/index.mjs +1 -2
  17. package/esm2020/lib/utils/initial-utils.mjs +15 -18
  18. package/esm2020/public-api.mjs +2 -2
  19. package/fesm2015/abp-ng.core.mjs +188 -522
  20. package/fesm2015/abp-ng.core.mjs.map +1 -1
  21. package/fesm2020/abp-ng.core.mjs +188 -505
  22. package/fesm2020/abp-ng.core.mjs.map +1 -1
  23. package/lib/{guards → abstracts}/auth.guard.d.ts +3 -6
  24. package/lib/{services → abstracts}/auth.service.d.ts +17 -7
  25. package/lib/abstracts/index.d.ts +2 -0
  26. package/lib/core.module.d.ts +7 -10
  27. package/lib/guards/index.d.ts +0 -1
  28. package/lib/interceptors/api.interceptor.d.ts +7 -9
  29. package/lib/models/auth.d.ts +5 -0
  30. package/lib/models/environment.d.ts +1 -1
  31. package/lib/models/index.d.ts +1 -1
  32. package/lib/services/index.d.ts +0 -2
  33. package/lib/tokens/check-authentication-state.d.ts +3 -0
  34. package/lib/tokens/index.d.ts +3 -0
  35. package/lib/tokens/pipe-to-login.token.d.ts +3 -0
  36. package/lib/tokens/set-token-response-to-storage.token.d.ts +3 -0
  37. package/lib/utils/index.d.ts +0 -1
  38. package/lib/utils/initial-utils.d.ts +1 -170
  39. package/package.json +2 -2
  40. package/public-api.d.ts +1 -1
  41. package/esm2020/lib/guards/auth.guard.mjs +0 -29
  42. package/esm2020/lib/handlers/oauth-configuration.handler.mjs +0 -37
  43. package/esm2020/lib/services/auth.service.mjs +0 -44
  44. package/esm2020/lib/services/timeout-limited-oauth.service.mjs +0 -16
  45. package/esm2020/lib/strategies/auth-flow.strategy.mjs +0 -190
  46. package/esm2020/lib/utils/auth-utils.mjs +0 -42
  47. package/lib/handlers/oauth-configuration.handler.d.ts +0 -13
  48. package/lib/services/timeout-limited-oauth.service.d.ts +0 -7
  49. package/lib/strategies/auth-flow.strategy.d.ts +0 -393
  50. package/lib/utils/auth-utils.d.ts +0 -175
@@ -1,190 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Router } from '@angular/router';
3
- import { OAuthErrorEvent, OAuthInfoEvent, OAuthService } from 'angular-oauth2-oidc';
4
- import { from, of, pipe } from 'rxjs';
5
- import { filter, switchMap, tap } from 'rxjs/operators';
6
- import { ConfigStateService } from '../services/config-state.service';
7
- import { EnvironmentService } from '../services/environment.service';
8
- import { HttpErrorReporterService } from '../services/http-error-reporter.service';
9
- import { SessionStateService } from '../services/session-state.service';
10
- import { TENANT_KEY } from '../tokens/tenant-key.token';
11
- import { removeRememberMe, setRememberMe } from '../utils/auth-utils';
12
- import { noop } from '../utils/common-utils';
13
- export const oAuthStorage = localStorage;
14
- export class AuthFlowStrategy {
15
- constructor(injector) {
16
- this.injector = injector;
17
- this.catchError = err => {
18
- this.httpErrorReporter.reportError(err);
19
- return of(null);
20
- };
21
- this.httpErrorReporter = injector.get(HttpErrorReporterService);
22
- this.environment = injector.get(EnvironmentService);
23
- this.configState = injector.get(ConfigStateService);
24
- this.oAuthService = injector.get(OAuthService);
25
- this.sessionState = injector.get(SessionStateService);
26
- this.oAuthConfig = this.environment.getEnvironment().oAuthConfig;
27
- this.tenantKey = injector.get(TENANT_KEY);
28
- this.listenToOauthErrors();
29
- }
30
- async init() {
31
- const shouldClear = shouldStorageClear(this.environment.getEnvironment().oAuthConfig.clientId, oAuthStorage);
32
- if (shouldClear)
33
- clearOAuthStorage(oAuthStorage);
34
- this.oAuthService.configure(this.oAuthConfig);
35
- this.oAuthService.events
36
- .pipe(filter(event => event.type === 'token_refresh_error'))
37
- .subscribe(() => this.navigateToLogin());
38
- return this.oAuthService
39
- .loadDiscoveryDocument()
40
- .then(() => {
41
- if (this.oAuthService.hasValidAccessToken() || !this.oAuthService.getRefreshToken()) {
42
- return Promise.resolve();
43
- }
44
- return this.refreshToken();
45
- })
46
- .catch(this.catchError);
47
- }
48
- refreshToken() {
49
- return this.oAuthService.refreshToken().catch(() => clearOAuthStorage());
50
- }
51
- listenToOauthErrors() {
52
- this.oAuthService.events
53
- .pipe(filter(event => event instanceof OAuthErrorEvent), tap(() => clearOAuthStorage()), switchMap(() => this.configState.refreshAppState()))
54
- .subscribe();
55
- }
56
- }
57
- export class AuthCodeFlowStrategy extends AuthFlowStrategy {
58
- constructor() {
59
- super(...arguments);
60
- this.isInternalAuth = false;
61
- }
62
- async init() {
63
- return super
64
- .init()
65
- .then(() => this.oAuthService.tryLogin().catch(noop))
66
- .then(() => this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token'));
67
- }
68
- navigateToLogin(queryParams) {
69
- this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
70
- }
71
- checkIfInternalAuth(queryParams) {
72
- this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
73
- return false;
74
- }
75
- logout(queryParams) {
76
- return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams)));
77
- }
78
- login(queryParams) {
79
- this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
80
- return of(null);
81
- }
82
- getCultureParams(queryParams) {
83
- const lang = this.sessionState.getLanguage();
84
- const culture = { culture: lang, 'ui-culture': lang };
85
- return { ...(lang && culture), ...queryParams };
86
- }
87
- }
88
- export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
89
- constructor() {
90
- super(...arguments);
91
- this.isInternalAuth = true;
92
- this.cookieKey = 'rememberMe';
93
- this.storageKey = 'passwordFlow';
94
- }
95
- listenToTokenExpiration() {
96
- this.oAuthService.events
97
- .pipe(filter(event => event instanceof OAuthInfoEvent &&
98
- event.type === 'token_expires' &&
99
- event.info === 'access_token'))
100
- .subscribe(() => {
101
- if (this.oAuthService.getRefreshToken()) {
102
- this.refreshToken();
103
- }
104
- else {
105
- this.oAuthService.logOut();
106
- removeRememberMe();
107
- this.configState.refreshAppState().subscribe();
108
- }
109
- });
110
- }
111
- async init() {
112
- if (!getCookieValueByName(this.cookieKey) && localStorage.getItem(this.storageKey)) {
113
- this.oAuthService.logOut();
114
- }
115
- return super.init().then(() => this.listenToTokenExpiration());
116
- }
117
- navigateToLogin(queryParams) {
118
- const router = this.injector.get(Router);
119
- router.navigate(['/account/login'], { queryParams });
120
- }
121
- checkIfInternalAuth() {
122
- return true;
123
- }
124
- login(params) {
125
- const tenant = this.sessionState.getTenant();
126
- return from(this.oAuthService.fetchTokenUsingPasswordFlow(params.username, params.password, new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }))).pipe(this.pipeToLogin(params));
127
- }
128
- pipeToLogin(params) {
129
- const router = this.injector.get(Router);
130
- return pipe(switchMap(() => this.configState.refreshAppState()), tap(() => {
131
- setRememberMe(params.rememberMe);
132
- if (params.redirectUrl)
133
- router.navigate([params.redirectUrl]);
134
- }));
135
- }
136
- logout(queryParams) {
137
- const router = this.injector.get(Router);
138
- return from(this.oAuthService.revokeTokenAndLogout(queryParams)).pipe(switchMap(() => this.configState.refreshAppState()), tap(() => {
139
- router.navigateByUrl('/');
140
- removeRememberMe();
141
- }));
142
- }
143
- refreshToken() {
144
- return this.oAuthService.refreshToken().catch(() => {
145
- clearOAuthStorage();
146
- removeRememberMe();
147
- });
148
- }
149
- }
150
- export const AUTH_FLOW_STRATEGY = {
151
- Code(injector) {
152
- return new AuthCodeFlowStrategy(injector);
153
- },
154
- Password(injector) {
155
- return new AuthPasswordFlowStrategy(injector);
156
- },
157
- };
158
- export function clearOAuthStorage(storage = oAuthStorage) {
159
- const keys = [
160
- 'access_token',
161
- 'id_token',
162
- 'refresh_token',
163
- 'nonce',
164
- 'PKCE_verifier',
165
- 'expires_at',
166
- 'id_token_claims_obj',
167
- 'id_token_expires_at',
168
- 'id_token_stored_at',
169
- 'access_token_stored_at',
170
- 'granted_scopes',
171
- 'session_state',
172
- ];
173
- keys.forEach(key => storage.removeItem(key));
174
- }
175
- function shouldStorageClear(clientId, storage) {
176
- const key = 'abpOAuthClientId';
177
- if (!storage.getItem(key)) {
178
- storage.setItem(key, clientId);
179
- return false;
180
- }
181
- const shouldClear = storage.getItem(key) !== clientId;
182
- if (shouldClear)
183
- storage.setItem(key, clientId);
184
- return shouldClear;
185
- }
186
- function getCookieValueByName(name) {
187
- const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
188
- return match ? match[2] : '';
189
- }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mbG93LnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvYXV0aC1mbG93LnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUVMLGVBQWUsRUFDZixjQUFjLEVBQ2QsWUFBWSxFQUViLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFnQixnQkFBZ0I7SUFxQnBDLFlBQXNCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFMaEMsZUFBVSxHQUFHLEdBQUcsQ0FBQyxF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O1FBQ1AsZUFBZTtRQUNmLFlBQVk7UUFDWixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGVBQWU7S0FDaEIsQ0FBQztJQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxPQUFxQjtJQUNqRSxNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdEQsSUFBSSxXQUFXO1FBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsSUFBWTtJQUN4QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhDb25maWcsXHJcbiAgT0F1dGhFcnJvckV2ZW50LFxyXG4gIE9BdXRoSW5mb0V2ZW50LFxyXG4gIE9BdXRoU2VydmljZSxcclxuICBPQXV0aFN0b3JhZ2VcclxufSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHBpcGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTG9naW5QYXJhbXMgfSBmcm9tICcuLi9tb2RlbHMvYXV0aCc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXNzaW9uLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi4vdG9rZW5zL3RlbmFudC1rZXkudG9rZW4nO1xyXG5pbXBvcnQgeyByZW1vdmVSZW1lbWJlck1lLCBzZXRSZW1lbWJlck1lIH0gZnJvbSAnLi4vdXRpbHMvYXV0aC11dGlscyc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi91dGlscy9jb21tb24tdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IG9BdXRoU3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoRmxvd1N0cmF0ZWd5IHtcclxuICBhYnN0cmFjdCByZWFkb25seSBpc0ludGVybmFsQXV0aDogYm9vbGVhbjtcclxuXHJcbiAgcHJvdGVjdGVkIGh0dHBFcnJvclJlcG9ydGVyOiBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIG9BdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCBvQXV0aENvbmZpZzogQXV0aENvbmZpZztcclxuICBwcm90ZWN0ZWQgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB0ZW5hbnRLZXk6IHN0cmluZztcclxuXHJcbiAgYWJzdHJhY3QgY2hlY2tJZkludGVybmFsQXV0aChxdWVyeVBhcmFtcz86IFBhcmFtcyk6IGJvb2xlYW47XHJcbiAgYWJzdHJhY3QgbmF2aWdhdGVUb0xvZ2luKHF1ZXJ5UGFyYW1zPzogUGFyYW1zKTogdm9pZDtcclxuICBhYnN0cmFjdCBsb2dvdXQocXVlcnlQYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgYWJzdHJhY3QgbG9naW4ocGFyYW1zPzogTG9naW5QYXJhbXMgfCBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHByaXZhdGUgY2F0Y2hFcnJvciA9IGVyciA9PiB7XHJcbiAgICB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKGVycik7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgdGhpcy5odHRwRXJyb3JSZXBvcnRlciA9IGluamVjdG9yLmdldChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG4gICAgdGhpcy5jb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoT0F1dGhTZXJ2aWNlKTtcclxuICAgIHRoaXMuc2Vzc2lvblN0YXRlID0gaW5qZWN0b3IuZ2V0KFNlc3Npb25TdGF0ZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5vQXV0aENvbmZpZyA9IHRoaXMuZW52aXJvbm1lbnQuZ2V0RW52aXJvbm1lbnQoKS5vQXV0aENvbmZpZztcclxuICAgIHRoaXMudGVuYW50S2V5ID0gaW5qZWN0b3IuZ2V0KFRFTkFOVF9LRVkpO1xyXG5cclxuICAgIHRoaXMubGlzdGVuVG9PYXV0aEVycm9ycygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3Qgc2hvdWxkQ2xlYXIgPSBzaG91bGRTdG9yYWdlQ2xlYXIoXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuZ2V0RW52aXJvbm1lbnQoKS5vQXV0aENvbmZpZy5jbGllbnRJZCxcclxuICAgICAgb0F1dGhTdG9yYWdlLFxyXG4gICAgKTtcclxuICAgIGlmIChzaG91bGRDbGVhcikgY2xlYXJPQXV0aFN0b3JhZ2Uob0F1dGhTdG9yYWdlKTtcclxuXHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5jb25maWd1cmUodGhpcy5vQXV0aENvbmZpZyk7XHJcblxyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC50eXBlID09PSAndG9rZW5fcmVmcmVzaF9lcnJvcicpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubmF2aWdhdGVUb0xvZ2luKCkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZVxyXG4gICAgICAubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9BdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCkgfHwgIXRoaXMub0F1dGhTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpKSB7XHJcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKHRoaXMuY2F0Y2hFcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbigpLmNhdGNoKCgpID0+IGNsZWFyT0F1dGhTdG9yYWdlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxpc3RlblRvT2F1dGhFcnJvcnMoKSB7XHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSxcclxuICAgICAgICB0YXAoKCkgPT4gY2xlYXJPQXV0aFN0b3JhZ2UoKSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoQ29kZUZsb3dTdHJhdGVneSBleHRlbmRzIEF1dGhGbG93U3RyYXRlZ3kge1xyXG4gIHJlYWRvbmx5IGlzSW50ZXJuYWxBdXRoID0gZmFsc2U7XHJcblxyXG4gIGFzeW5jIGluaXQoKSB7XHJcbiAgICByZXR1cm4gc3VwZXJcclxuICAgICAgLmluaXQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9BdXRoU2VydmljZS50cnlMb2dpbigpLmNhdGNoKG5vb3ApKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9BdXRoU2VydmljZS5zZXR1cEF1dG9tYXRpY1NpbGVudFJlZnJlc2goe30sICdhY2Nlc3NfdG9rZW4nKSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4ocXVlcnlQYXJhbXM/OiBQYXJhbXMpIHtcclxuICAgIHRoaXMub0F1dGhTZXJ2aWNlLmluaXRDb2RlRmxvdygnJywgdGhpcy5nZXRDdWx0dXJlUGFyYW1zKHF1ZXJ5UGFyYW1zKSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmSW50ZXJuYWxBdXRoKHF1ZXJ5UGFyYW1zPzogUGFyYW1zKSB7XHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0Q29kZUZsb3coJycsIHRoaXMuZ2V0Q3VsdHVyZVBhcmFtcyhxdWVyeVBhcmFtcykpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KHF1ZXJ5UGFyYW1zPzogUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm9BdXRoU2VydmljZS5yZXZva2VUb2tlbkFuZExvZ291dCh0aGlzLmdldEN1bHR1cmVQYXJhbXMocXVlcnlQYXJhbXMpKSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbihxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UuaW5pdENvZGVGbG93KCcnLCB0aGlzLmdldEN1bHR1cmVQYXJhbXMocXVlcnlQYXJhbXMpKTtcclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q3VsdHVyZVBhcmFtcyhxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3QgbGFuZyA9IHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKCk7XHJcbiAgICBjb25zdCBjdWx0dXJlID0geyBjdWx0dXJlOiBsYW5nLCAndWktY3VsdHVyZSc6IGxhbmcgfTtcclxuICAgIHJldHVybiB7IC4uLihsYW5nICYmIGN1bHR1cmUpLCAuLi5xdWVyeVBhcmFtcyB9O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhQYXNzd29yZEZsb3dTdHJhdGVneSBleHRlbmRzIEF1dGhGbG93U3RyYXRlZ3kge1xyXG4gIHJlYWRvbmx5IGlzSW50ZXJuYWxBdXRoID0gdHJ1ZTtcclxuICBwcml2YXRlIGNvb2tpZUtleSA9ICdyZW1lbWJlck1lJztcclxuICBwcml2YXRlIHN0b3JhZ2VLZXkgPSAncGFzc3dvcmRGbG93JztcclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub1Rva2VuRXhwaXJhdGlvbigpIHtcclxuICAgIHRoaXMub0F1dGhTZXJ2aWNlLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldmVudCA9PlxyXG4gICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE9BdXRoSW5mb0V2ZW50ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LnR5cGUgPT09ICd0b2tlbl9leHBpcmVzJyAmJlxyXG4gICAgICAgICAgICBldmVudC5pbmZvID09PSAnYWNjZXNzX3Rva2VuJyxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9BdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKSkge1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vQXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgICByZW1vdmVSZW1lbWJlck1lKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlLnJlZnJlc2hBcHBTdGF0ZSgpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0KCkge1xyXG4gICAgaWYgKCFnZXRDb29raWVWYWx1ZUJ5TmFtZSh0aGlzLmNvb2tpZUtleSkgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KSkge1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5sb2dPdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3VwZXIuaW5pdCgpLnRoZW4oKCkgPT4gdGhpcy5saXN0ZW5Ub1Rva2VuRXhwaXJhdGlvbigpKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Mb2dpbihxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuICAgIHJvdXRlci5uYXZpZ2F0ZShbJy9hY2NvdW50L2xvZ2luJ10sIHsgcXVlcnlQYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmSW50ZXJuYWxBdXRoKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBsb2dpbihwYXJhbXM6IExvZ2luUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHRlbmFudCA9IHRoaXMuc2Vzc2lvblN0YXRlLmdldFRlbmFudCgpO1xyXG5cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5mZXRjaFRva2VuVXNpbmdQYXNzd29yZEZsb3coXHJcbiAgICAgICAgcGFyYW1zLnVzZXJuYW1lLFxyXG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCxcclxuICAgICAgICBuZXcgSHR0cEhlYWRlcnMoeyAuLi4odGVuYW50ICYmIHRlbmFudC5pZCAmJiB7IFt0aGlzLnRlbmFudEtleV06IHRlbmFudC5pZCB9KSB9KSxcclxuICAgICAgKSxcclxuICAgICkucGlwZSh0aGlzLnBpcGVUb0xvZ2luKHBhcmFtcykpO1xyXG4gIH1cclxuXHJcbiAgcGlwZVRvTG9naW4ocGFyYW1zOiBQaWNrPExvZ2luUGFyYW1zLCAncmVkaXJlY3RVcmwnIHwgJ3JlbWVtYmVyTWUnPikge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuXHJcbiAgICByZXR1cm4gcGlwZShcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkpLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHNldFJlbWVtYmVyTWUocGFyYW1zLnJlbWVtYmVyTWUpO1xyXG4gICAgICAgIGlmIChwYXJhbXMucmVkaXJlY3RVcmwpIHJvdXRlci5uYXZpZ2F0ZShbcGFyYW1zLnJlZGlyZWN0VXJsXSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuXHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm9BdXRoU2VydmljZS5yZXZva2VUb2tlbkFuZExvZ291dChxdWVyeVBhcmFtcykpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbmZpZ1N0YXRlLnJlZnJlc2hBcHBTdGF0ZSgpKSxcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xyXG4gICAgICAgIHJlbW92ZVJlbWVtYmVyTWUoKTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oKS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgIGNsZWFyT0F1dGhTdG9yYWdlKCk7XHJcbiAgICAgIHJlbW92ZVJlbWVtYmVyTWUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEFVVEhfRkxPV19TVFJBVEVHWSA9IHtcclxuICBDb2RlKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgcmV0dXJuIG5ldyBBdXRoQ29kZUZsb3dTdHJhdGVneShpbmplY3Rvcik7XHJcbiAgfSxcclxuICBQYXNzd29yZChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHJldHVybiBuZXcgQXV0aFBhc3N3b3JkRmxvd1N0cmF0ZWd5KGluamVjdG9yKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyT0F1dGhTdG9yYWdlKHN0b3JhZ2U6IE9BdXRoU3RvcmFnZSA9IG9BdXRoU3RvcmFnZSkge1xyXG4gIGNvbnN0IGtleXMgPSBbXHJcbiAgICAnYWNjZXNzX3Rva2VuJyxcclxuICAgICdpZF90b2tlbicsXHJcbiAgICAncmVmcmVzaF90b2tlbicsXHJcbiAgICAnbm9uY2UnLFxyXG4gICAgJ1BLQ0VfdmVyaWZpZXInLFxyXG4gICAgJ2V4cGlyZXNfYXQnLFxyXG4gICAgJ2lkX3Rva2VuX2NsYWltc19vYmonLFxyXG4gICAgJ2lkX3Rva2VuX2V4cGlyZXNfYXQnLFxyXG4gICAgJ2lkX3Rva2VuX3N0b3JlZF9hdCcsXHJcbiAgICAnYWNjZXNzX3Rva2VuX3N0b3JlZF9hdCcsXHJcbiAgICAnZ3JhbnRlZF9zY29wZXMnLFxyXG4gICAgJ3Nlc3Npb25fc3RhdGUnLFxyXG4gIF07XHJcblxyXG4gIGtleXMuZm9yRWFjaChrZXkgPT4gc3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaG91bGRTdG9yYWdlQ2xlYXIoY2xpZW50SWQ6IHN0cmluZywgc3RvcmFnZTogT0F1dGhTdG9yYWdlKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qga2V5ID0gJ2FicE9BdXRoQ2xpZW50SWQnO1xyXG4gIGlmICghc3RvcmFnZS5nZXRJdGVtKGtleSkpIHtcclxuICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIGNsaWVudElkKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNob3VsZENsZWFyID0gc3RvcmFnZS5nZXRJdGVtKGtleSkgIT09IGNsaWVudElkO1xyXG4gIGlmIChzaG91bGRDbGVhcikgc3RvcmFnZS5zZXRJdGVtKGtleSwgY2xpZW50SWQpO1xyXG4gIHJldHVybiBzaG91bGRDbGVhcjtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q29va2llVmFsdWVCeU5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58ICknICsgbmFtZSArICc9KFteO10rKScpKTtcclxuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6ICcnO1xyXG59XHJcbiJdfQ==
@@ -1,42 +0,0 @@
1
- import { Router } from '@angular/router';
2
- import { OAuthStorage } from 'angular-oauth2-oidc';
3
- import { pipe } from 'rxjs';
4
- import { switchMap, tap } from 'rxjs/operators';
5
- import { ConfigStateService } from '../services/config-state.service';
6
- const cookieKey = 'rememberMe';
7
- const storageKey = 'passwordFlow';
8
- export function pipeToLogin(params, injector) {
9
- const configState = injector.get(ConfigStateService);
10
- const router = injector.get(Router);
11
- return pipe(switchMap(() => configState.refreshAppState()), tap(() => {
12
- setRememberMe(params.rememberMe);
13
- if (params.redirectUrl)
14
- router.navigate([params.redirectUrl]);
15
- }));
16
- }
17
- export function setTokenResponseToStorage(injector, tokenRes) {
18
- const { access_token, refresh_token, scope: grantedScopes, expires_in } = tokenRes;
19
- const storage = injector.get(OAuthStorage);
20
- storage.setItem('access_token', access_token);
21
- storage.setItem('refresh_token', refresh_token);
22
- storage.setItem('access_token_stored_at', '' + Date.now());
23
- if (grantedScopes) {
24
- storage.setItem('granted_scopes', JSON.stringify(grantedScopes.split(' ')));
25
- }
26
- if (expires_in) {
27
- const expiresInMilliSeconds = expires_in * 1000;
28
- const now = new Date();
29
- const expiresAt = now.getTime() + expiresInMilliSeconds;
30
- storage.setItem('expires_at', '' + expiresAt);
31
- }
32
- }
33
- export function setRememberMe(remember) {
34
- removeRememberMe();
35
- localStorage.setItem(storageKey, 'true');
36
- document.cookie = `${cookieKey}=true; path=/${remember ? ' ;expires=Fri, 31 Dec 9999 23:59:59 GMT' : ''}`;
37
- }
38
- export function removeRememberMe() {
39
- localStorage.removeItem(storageKey);
40
- document.cookie = cookieKey + '= ; path=/; expires = Thu, 01 Jan 1970 00:00:00 GMT';
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9hdXRoLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUM7QUFDL0IsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0FBRWxDLE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQXVELEVBQ3ZELFFBQWtCO0lBRWxCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLE9BQU8sSUFBSSxDQUNULFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsRUFDOUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNQLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsSUFBSSxNQUFNLENBQUMsV0FBVztZQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxRQUFrQixFQUFFLFFBQXVCO0lBQ25GLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ25GLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFM0QsSUFBSSxhQUFhLEVBQUU7UUFDakIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdFO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLHFCQUFxQixHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcscUJBQXFCLENBQUM7UUFDeEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsUUFBaUI7SUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxnQkFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUMsRUFDekQsRUFBRSxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxRQUFRLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxxREFBcUQsQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT0F1dGhTdG9yYWdlLCBUb2tlblJlc3BvbnNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IExvZ2luUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL2F1dGgnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWctc3RhdGUuc2VydmljZSc7XHJcblxyXG5jb25zdCBjb29raWVLZXkgPSAncmVtZW1iZXJNZSc7XHJcbmNvbnN0IHN0b3JhZ2VLZXkgPSAncGFzc3dvcmRGbG93JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwaXBlVG9Mb2dpbihcclxuICBwYXJhbXM6IFBpY2s8TG9naW5QYXJhbXMsICdyZWRpcmVjdFVybCcgfCAncmVtZW1iZXJNZSc+LFxyXG4gIGluamVjdG9yOiBJbmplY3RvcixcclxuKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBjb25zdCByb3V0ZXIgPSBpbmplY3Rvci5nZXQoUm91dGVyKTtcclxuXHJcbiAgcmV0dXJuIHBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKCkgPT4gY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkpLFxyXG4gICAgdGFwKCgpID0+IHtcclxuICAgICAgc2V0UmVtZW1iZXJNZShwYXJhbXMucmVtZW1iZXJNZSk7XHJcbiAgICAgIGlmIChwYXJhbXMucmVkaXJlY3RVcmwpIHJvdXRlci5uYXZpZ2F0ZShbcGFyYW1zLnJlZGlyZWN0VXJsXSk7XHJcbiAgICB9KSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0VG9rZW5SZXNwb25zZVRvU3RvcmFnZShpbmplY3RvcjogSW5qZWN0b3IsIHRva2VuUmVzOiBUb2tlblJlc3BvbnNlKSB7XHJcbiAgY29uc3QgeyBhY2Nlc3NfdG9rZW4sIHJlZnJlc2hfdG9rZW4sIHNjb3BlOiBncmFudGVkU2NvcGVzLCBleHBpcmVzX2luIH0gPSB0b2tlblJlcztcclxuICBjb25zdCBzdG9yYWdlID0gaW5qZWN0b3IuZ2V0KE9BdXRoU3RvcmFnZSk7XHJcblxyXG4gIHN0b3JhZ2Uuc2V0SXRlbSgnYWNjZXNzX3Rva2VuJywgYWNjZXNzX3Rva2VuKTtcclxuICBzdG9yYWdlLnNldEl0ZW0oJ3JlZnJlc2hfdG9rZW4nLCByZWZyZXNoX3Rva2VuKTtcclxuICBzdG9yYWdlLnNldEl0ZW0oJ2FjY2Vzc190b2tlbl9zdG9yZWRfYXQnLCAnJyArIERhdGUubm93KCkpO1xyXG5cclxuICBpZiAoZ3JhbnRlZFNjb3Blcykge1xyXG4gICAgc3RvcmFnZS5zZXRJdGVtKCdncmFudGVkX3Njb3BlcycsIEpTT04uc3RyaW5naWZ5KGdyYW50ZWRTY29wZXMuc3BsaXQoJyAnKSkpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGV4cGlyZXNfaW4pIHtcclxuICAgIGNvbnN0IGV4cGlyZXNJbk1pbGxpU2Vjb25kcyA9IGV4cGlyZXNfaW4gKiAxMDAwO1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGV4cGlyZXNBdCA9IG5vdy5nZXRUaW1lKCkgKyBleHBpcmVzSW5NaWxsaVNlY29uZHM7XHJcbiAgICBzdG9yYWdlLnNldEl0ZW0oJ2V4cGlyZXNfYXQnLCAnJyArIGV4cGlyZXNBdCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtZW1iZXJNZShyZW1lbWJlcjogYm9vbGVhbikge1xyXG4gIHJlbW92ZVJlbWVtYmVyTWUoKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCAndHJ1ZScpO1xyXG4gIGRvY3VtZW50LmNvb2tpZSA9IGAke2Nvb2tpZUtleX09dHJ1ZTsgcGF0aD0vJHtcclxuICAgIHJlbWVtYmVyID8gJyA7ZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCcgOiAnJ1xyXG4gIH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUmVtZW1iZXJNZSgpIHtcclxuICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KTtcclxuICBkb2N1bWVudC5jb29raWUgPSBjb29raWVLZXkgKyAnPSA7IHBhdGg9LzsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UJztcclxufVxyXG4iXX0=
@@ -1,13 +0,0 @@
1
- import { OAuthService } from 'angular-oauth2-oidc';
2
- import { ABP } from '../models/common';
3
- import { EnvironmentService } from '../services/environment.service';
4
- import * as i0 from "@angular/core";
5
- export declare class OAuthConfigurationHandler {
6
- private oAuthService;
7
- private environmentService;
8
- private options;
9
- constructor(oAuthService: OAuthService, environmentService: EnvironmentService, options: ABP.Root);
10
- private listenToSetEnvironment;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<OAuthConfigurationHandler, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<OAuthConfigurationHandler>;
13
- }
@@ -1,7 +0,0 @@
1
- import { OAuthService } from 'angular-oauth2-oidc';
2
- import * as i0 from "@angular/core";
3
- export declare class TimeoutLimitedOAuthService extends OAuthService {
4
- protected calcTimeout(storedAt: number, expiration: number): number;
5
- static ɵfac: i0.ɵɵFactoryDeclaration<TimeoutLimitedOAuthService, never>;
6
- static ɵprov: i0.ɵɵInjectableDeclaration<TimeoutLimitedOAuthService>;
7
- }