@igo2/auth 18.0.1-next.2 → 18.0.2

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 (67) hide show
  1. package/esm2022/environment/environment.interface.mjs +2 -0
  2. package/esm2022/environment/igo2-auth-environment.mjs +5 -0
  3. package/esm2022/environment/public_api.mjs +2 -0
  4. package/esm2022/facebook/auth-facebook/auth-facebook.component.mjs +65 -0
  5. package/esm2022/facebook/igo2-auth-facebook.mjs +5 -0
  6. package/esm2022/facebook/public_api.mjs +3 -0
  7. package/esm2022/facebook/shared/auth-facebook.interface.mjs +2 -0
  8. package/esm2022/facebook/shared/index.mjs +2 -0
  9. package/esm2022/form/auth-form/auth-form.component.mjs +166 -0
  10. package/esm2022/form/auth-form.module.mjs +73 -0
  11. package/esm2022/form/igo2-auth-form.mjs +5 -0
  12. package/esm2022/form/public_api.mjs +7 -0
  13. package/esm2022/form/shared/auth-form.interface.mjs +2 -0
  14. package/esm2022/form/shared/index.mjs +2 -0
  15. package/esm2022/google/auth-google/auth-google.component.mjs +108 -0
  16. package/esm2022/google/igo2-auth-google.mjs +5 -0
  17. package/esm2022/google/public_api.mjs +3 -0
  18. package/esm2022/google/shared/auth-google.interface.mjs +2 -0
  19. package/esm2022/google/shared/index.mjs +2 -0
  20. package/esm2022/igo2-auth.mjs +5 -0
  21. package/esm2022/internal/auth-intern/auth-intern.component.mjs +84 -0
  22. package/esm2022/internal/igo2-auth-internal.mjs +5 -0
  23. package/esm2022/internal/public_api.mjs +2 -0
  24. package/esm2022/lib/auth.provider.mjs +22 -0
  25. package/esm2022/lib/shared/admin.guard.mjs +38 -0
  26. package/esm2022/lib/shared/auth-storage.interface.mjs +2 -0
  27. package/esm2022/lib/shared/auth-storage.service.mjs +100 -0
  28. package/esm2022/lib/shared/auth.guard.mjs +38 -0
  29. package/esm2022/lib/shared/auth.interceptor.mjs +159 -0
  30. package/esm2022/lib/shared/auth.interface.mjs +5 -0
  31. package/esm2022/lib/shared/auth.service.mjs +175 -0
  32. package/esm2022/lib/shared/index.mjs +12 -0
  33. package/esm2022/lib/shared/logged.guard.mjs +38 -0
  34. package/esm2022/lib/shared/profils.guard.mjs +43 -0
  35. package/esm2022/lib/shared/token.interface.mjs +2 -0
  36. package/esm2022/lib/shared/token.service.mjs +48 -0
  37. package/esm2022/microsoft/auth-microsoft/auth-microsoft.component.mjs +100 -0
  38. package/esm2022/microsoft/auth-microsoft.provider.mjs +104 -0
  39. package/esm2022/microsoft/auth-microsoftb2c/auth-microsoftb2c.component.mjs +98 -0
  40. package/esm2022/microsoft/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.mjs +47 -0
  41. package/esm2022/microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.mjs +85 -0
  42. package/esm2022/microsoft/igo2-auth-microsoft.mjs +5 -0
  43. package/esm2022/microsoft/public_api.mjs +5 -0
  44. package/esm2022/microsoft/shared/auth-microsoft.interface.mjs +2 -0
  45. package/esm2022/microsoft/shared/index.mjs +2 -0
  46. package/esm2022/monitoring/auth-monitoring/auth-monitoring.provider.mjs +24 -0
  47. package/esm2022/monitoring/auth-monitoring/auth-monitoring.service.mjs +54 -0
  48. package/esm2022/monitoring/igo2-auth-monitoring.mjs +5 -0
  49. package/esm2022/monitoring/public_api.mjs +3 -0
  50. package/esm2022/public_api.mjs +6 -0
  51. package/fesm2022/igo2-auth-facebook.mjs +3 -3
  52. package/fesm2022/igo2-auth-facebook.mjs.map +1 -1
  53. package/fesm2022/igo2-auth-form.mjs +8 -8
  54. package/fesm2022/igo2-auth-form.mjs.map +1 -1
  55. package/fesm2022/igo2-auth-google.mjs +3 -3
  56. package/fesm2022/igo2-auth-google.mjs.map +1 -1
  57. package/fesm2022/igo2-auth-internal.mjs +4 -4
  58. package/fesm2022/igo2-auth-internal.mjs.map +1 -1
  59. package/fesm2022/igo2-auth-microsoft.mjs +14 -14
  60. package/fesm2022/igo2-auth-microsoft.mjs.map +1 -1
  61. package/fesm2022/igo2-auth-monitoring.mjs +10 -8
  62. package/fesm2022/igo2-auth-monitoring.mjs.map +1 -1
  63. package/fesm2022/igo2-auth.mjs +24 -24
  64. package/fesm2022/igo2-auth.mjs.map +1 -1
  65. package/form/src/auth-form/auth-intern.theme.scss +2 -3
  66. package/monitoring/auth-monitoring/auth-monitoring.provider.d.ts +2 -2
  67. package/package.json +26 -10
@@ -0,0 +1,175 @@
1
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
2
+ import { Injectable, Optional } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { ConfigService } from '@igo2/core/config';
5
+ import { LanguageService } from '@igo2/core/language';
6
+ import { MessageService } from '@igo2/core/message';
7
+ import { Base64 } from '@igo2/utils';
8
+ import { BehaviorSubject, of } from 'rxjs';
9
+ import { catchError, tap } from 'rxjs/operators';
10
+ import { globalCacheBusterNotifier } from 'ts-cacheable';
11
+ import { TokenService } from './token.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common/http";
14
+ import * as i2 from "./token.service";
15
+ import * as i3 from "@igo2/core/config";
16
+ import * as i4 from "@igo2/core/language";
17
+ import * as i5 from "@igo2/core/message";
18
+ import * as i6 from "@angular/router";
19
+ export class AuthService {
20
+ http;
21
+ tokenService;
22
+ config;
23
+ languageService;
24
+ messageService;
25
+ router;
26
+ authenticate$ = new BehaviorSubject(undefined);
27
+ logged$ = new BehaviorSubject(undefined);
28
+ redirectUrl;
29
+ languageForce = false;
30
+ anonymous = false;
31
+ authOptions;
32
+ get hasAuthService() {
33
+ return this.authOptions?.url !== undefined;
34
+ }
35
+ get user() {
36
+ const decodedToken = this.decodeToken();
37
+ return decodedToken?.user ? decodedToken.user : null;
38
+ }
39
+ constructor(http, tokenService, config, languageService, messageService, router) {
40
+ this.http = http;
41
+ this.tokenService = tokenService;
42
+ this.config = config;
43
+ this.languageService = languageService;
44
+ this.messageService = messageService;
45
+ this.router = router;
46
+ this.authOptions = this.config.getConfig('auth');
47
+ this.authenticate$.next(this.authenticated);
48
+ this.authenticate$.subscribe((authenticated) => {
49
+ this.logged$.next(authenticated);
50
+ globalCacheBusterNotifier.next();
51
+ });
52
+ }
53
+ login(username, password) {
54
+ const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
55
+ const body = {
56
+ username,
57
+ password: this.encodePassword(password)
58
+ };
59
+ return this.loginCall(body, myHeader);
60
+ }
61
+ loginWithToken(token, type, infosUser) {
62
+ const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
63
+ const body = {
64
+ token,
65
+ typeConnection: type,
66
+ infosUser
67
+ };
68
+ return this.loginCall(body, myHeader);
69
+ }
70
+ loginAnonymous() {
71
+ this.anonymous = true;
72
+ this.logged$.next(true);
73
+ return of(true);
74
+ }
75
+ refresh() {
76
+ return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(tap((data) => {
77
+ this.tokenService.set(data.token);
78
+ }), catchError((err) => {
79
+ err.error.caught = true;
80
+ throw err;
81
+ }));
82
+ }
83
+ logout() {
84
+ this.anonymous = false;
85
+ this.tokenService.remove();
86
+ this.authenticate$.next(false);
87
+ return of(true);
88
+ }
89
+ isAuthenticated() {
90
+ return !this.tokenService.isExpired();
91
+ }
92
+ getToken() {
93
+ return this.tokenService.get();
94
+ }
95
+ decodeToken() {
96
+ if (this.isAuthenticated()) {
97
+ return this.tokenService.decode();
98
+ }
99
+ return;
100
+ }
101
+ goToRedirectUrl() {
102
+ if (!this.router) {
103
+ return;
104
+ }
105
+ const redirectUrl = this.redirectUrl || this.router.url;
106
+ if (redirectUrl === this.authOptions.loginRoute) {
107
+ const homeRoute = this.authOptions.homeRoute || '/';
108
+ this.router.navigateByUrl(homeRoute);
109
+ }
110
+ else if (redirectUrl) {
111
+ this.router.navigateByUrl(redirectUrl);
112
+ }
113
+ }
114
+ getUserInfo() {
115
+ const url = this.authOptions?.url + '/info';
116
+ return this.http.get(url);
117
+ }
118
+ getProfils() {
119
+ return this.http.get(`${this.authOptions?.url}/profils`);
120
+ }
121
+ updateUser(user) {
122
+ return this.http.patch(this.authOptions?.url, user);
123
+ }
124
+ encodePassword(password) {
125
+ return Base64.encode(password);
126
+ }
127
+ // authenticated or anonymous
128
+ get logged() {
129
+ return this.authenticated || this.isAnonymous;
130
+ }
131
+ get isAnonymous() {
132
+ return this.anonymous;
133
+ }
134
+ get authenticated() {
135
+ return this.isAuthenticated();
136
+ }
137
+ get isAdmin() {
138
+ const token = this.decodeToken();
139
+ if (token?.user?.isAdmin) {
140
+ return true;
141
+ }
142
+ return false;
143
+ }
144
+ loginCall(body, headers) {
145
+ return this.http
146
+ .post(`${this.authOptions?.url}/login`, body, { headers })
147
+ .pipe(tap((data) => {
148
+ this.tokenService.set(data.token);
149
+ const tokenDecoded = this.decodeToken();
150
+ if (tokenDecoded?.user) {
151
+ if (tokenDecoded.user.locale && !this.languageForce) {
152
+ this.languageService.setLanguage(tokenDecoded.user.locale);
153
+ }
154
+ if (tokenDecoded.user.isExpired) {
155
+ this.messageService.alert('igo.auth.error.Password expired');
156
+ }
157
+ }
158
+ this.authenticate$.next(true);
159
+ }), catchError((err) => {
160
+ err.error.caught = true;
161
+ throw err;
162
+ }));
163
+ }
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.TokenService }, { token: i3.ConfigService }, { token: i4.LanguageService }, { token: i5.MessageService }, { token: i6.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
165
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' });
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
168
+ type: Injectable,
169
+ args: [{
170
+ providedIn: 'root'
171
+ }]
172
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TokenService }, { type: i3.ConfigService }, { type: i4.LanguageService }, { type: i5.MessageService }, { type: i6.Router, decorators: [{
173
+ type: Optional
174
+ }] }] });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUl6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBSy9DLE1BQU0sT0FBTyxXQUFXO0lBa0JaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDWTtJQXRCZixhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7SUFDeEQsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFVLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELFdBQVcsQ0FBUztJQUNwQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsV0FBVyxDQUFjO0lBRWpDLElB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QUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLElBQUksWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN2QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDeEIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzt3R0FoTFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXdCSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgQmFzZTY0IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcblxuaW1wb3J0IHsgQXV0aE9wdGlvbnMsIElJbmZvc1VzZXIsIFVzZXIgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IElnb0p3dFBheWxvYWQgfSBmcm9tICcuL3Rva2VuLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHB1YmxpYyBhdXRoZW50aWNhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgbG9nZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBsYW5ndWFnZUZvcmNlID0gZmFsc2U7XG4gIHByaXZhdGUgYW5vbnltb3VzID0gZmFsc2U7XG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xuXG4gIGdldCBoYXNBdXRoU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoT3B0aW9ucz8udXJsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgdXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGVUb2tlbigpO1xuICAgIHJldHVybiBkZWNvZGVkVG9rZW4/LnVzZXIgPyBkZWNvZGVkVG9rZW4udXNlciA6IG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5hdXRoT3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpO1xuICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KHRoaXMuYXV0aGVudGljYXRlZCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoYXV0aGVudGljYXRlZCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZWQkLm5leHQoYXV0aGVudGljYXRlZCk7XG4gICAgICBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBteUhlYWRlciA9IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgdXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogdGhpcy5lbmNvZGVQYXNzd29yZChwYXNzd29yZClcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcbiAgfVxuXG4gIGxvZ2luV2l0aFRva2VuKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGluZm9zVXNlcj86IElJbmZvc1VzZXJcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbXlIZWFkZXIgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHRva2VuLFxuICAgICAgdHlwZUNvbm5lY3Rpb246IHR5cGUsXG4gICAgICBpbmZvc1VzZXJcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcbiAgfVxuXG4gIGxvZ2luQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHRoaXMuYW5vbnltb3VzID0gdHJ1ZTtcbiAgICB0aGlzLmxvZ2dlZCQubmV4dCh0cnVlKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICByZWZyZXNoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1dGhPcHRpb25zPy51cmx9L3JlZnJlc2hgLCB7fSkucGlwZShcbiAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhLnRva2VuKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2dvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgdGhpcy5hbm9ueW1vdXMgPSBmYWxzZTtcbiAgICB0aGlzLnRva2VuU2VydmljZS5yZW1vdmUoKTtcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZSQubmV4dChmYWxzZSk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50b2tlblNlcnZpY2UuaXNFeHBpcmVkKCk7XG4gIH1cblxuICBnZXRUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIGRlY29kZVRva2VuKCk6IElnb0p3dFBheWxvYWQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG9rZW5TZXJ2aWNlLmRlY29kZSgpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBnb1RvUmVkaXJlY3RVcmwoKSB7XG4gICAgaWYgKCF0aGlzLnJvdXRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWRpcmVjdFVybCA9IHRoaXMucmVkaXJlY3RVcmwgfHwgdGhpcy5yb3V0ZXIudXJsO1xuXG4gICAgaWYgKHJlZGlyZWN0VXJsID09PSB0aGlzLmF1dGhPcHRpb25zLmxvZ2luUm91dGUpIHtcbiAgICAgIGNvbnN0IGhvbWVSb3V0ZSA9IHRoaXMuYXV0aE9wdGlvbnMuaG9tZVJvdXRlIHx8ICcvJztcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaG9tZVJvdXRlKTtcbiAgICB9IGVsc2UgaWYgKHJlZGlyZWN0VXJsKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VXJsKTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2VySW5mbygpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmF1dGhPcHRpb25zPy51cmwgKyAnL2luZm8nO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXI+KHVybCk7XG4gIH1cblxuICBnZXRQcm9maWxzKCk6IE9ic2VydmFibGU8eyBwcm9maWxzOiBzdHJpbmdbXSB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBwcm9maWxzOiBzdHJpbmdbXSB9PihcbiAgICAgIGAke3RoaXMuYXV0aE9wdGlvbnM/LnVybH0vcHJvZmlsc2BcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlVXNlcih1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxVc2VyPih0aGlzLmF1dGhPcHRpb25zPy51cmwsIHVzZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEJhc2U2NC5lbmNvZGUocGFzc3dvcmQpO1xuICB9XG5cbiAgLy8gYXV0aGVudGljYXRlZCBvciBhbm9ueW1vdXNcbiAgZ2V0IGxvZ2dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdGVkIHx8IHRoaXMuaXNBbm9ueW1vdXM7XG4gIH1cblxuICBnZXQgaXNBbm9ueW1vdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzO1xuICB9XG5cbiAgZ2V0IGF1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBdXRoZW50aWNhdGVkKCk7XG4gIH1cblxuICBnZXQgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcbiAgICBpZiAodG9rZW4/LnVzZXI/LmlzQWRtaW4pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGxvZ2luQ2FsbChib2R5LCBoZWFkZXJzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYCR7dGhpcy5hdXRoT3B0aW9ucz8udXJsfS9sb2dpbmAsIGJvZHksIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xuICAgICAgICAgIGNvbnN0IHRva2VuRGVjb2RlZCA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcbiAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkPy51c2VyKSB7XG4gICAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlICYmICF0aGlzLmxhbmd1YWdlRm9yY2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2V0TGFuZ3VhZ2UodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbkRlY29kZWQudXNlci5pc0V4cGlyZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydCgnaWdvLmF1dGguZXJyb3IuUGFzc3dvcmQgZXhwaXJlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0ZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export * from './token.service';
2
+ export * from './token.interface';
3
+ export * from './auth.service';
4
+ export * from './auth-storage.service';
5
+ export * from './auth-storage.interface';
6
+ export * from './auth.interface';
7
+ export * from './auth.interceptor';
8
+ export * from './logged.guard';
9
+ export * from './auth.guard';
10
+ export * from './admin.guard';
11
+ export * from './profils.guard';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLXN0b3JhZ2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2VkLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2FkbWluLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlscy5ndWFyZCc7XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { ConfigService } from '@igo2/core/config';
4
+ import { AuthService } from './auth.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./auth.service";
7
+ import * as i2 from "@igo2/core/config";
8
+ import * as i3 from "@angular/router";
9
+ export class LoggedGuard {
10
+ authService;
11
+ config;
12
+ router;
13
+ constructor(authService, config, router) {
14
+ this.authService = authService;
15
+ this.config = config;
16
+ this.router = router;
17
+ }
18
+ canActivate(route, state) {
19
+ if (this.authService.logged) {
20
+ return true;
21
+ }
22
+ this.authService.redirectUrl = state.url;
23
+ const authConfig = this.config.getConfig('auth');
24
+ if (authConfig?.loginRoute) {
25
+ this.router.navigateByUrl(authConfig.loginRoute);
26
+ }
27
+ return false;
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggedGuard, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggedGuard, providedIn: 'root' });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggedGuard, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: 'root'
36
+ }]
37
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9sb2dnZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsTUFBTSxFQUVQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLN0MsTUFBTSxPQUFPLFdBQVc7SUFFWjtJQUNBO0lBQ0E7SUFIVixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQWM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0FwQlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3Rcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcblxuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2dnZWRHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcblxuICAgIGNvbnN0IGF1dGhDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKSBhcyBBdXRoT3B0aW9ucztcbiAgICBpZiAoYXV0aENvbmZpZz8ubG9naW5Sb3V0ZSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdXRoQ29uZmlnLmxvZ2luUm91dGUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { ConfigService } from '@igo2/core/config';
4
+ import { map } from 'rxjs/operators';
5
+ import { AuthService } from './auth.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./auth.service";
8
+ import * as i2 from "@igo2/core/config";
9
+ import * as i3 from "@angular/router";
10
+ export class ProfilsGuard {
11
+ authService;
12
+ config;
13
+ router;
14
+ constructor(authService, config, router) {
15
+ this.authService = authService;
16
+ this.config = config;
17
+ this.router = router;
18
+ }
19
+ canActivate(_route, state) {
20
+ return this.authService.getProfils().pipe(map((profils) => {
21
+ const authConfig = this.config.getConfig('auth');
22
+ if (profils &&
23
+ profils.profils &&
24
+ profils.profils.some((v) => authConfig.profilsGuard.indexOf(v) !== -1)) {
25
+ return true;
26
+ }
27
+ this.authService.redirectUrl = state.url;
28
+ if (authConfig?.loginRoute) {
29
+ this.router.navigateByUrl(authConfig.loginRoute);
30
+ }
31
+ return false;
32
+ }));
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfilsGuard, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfilsGuard, providedIn: 'root' });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfilsGuard, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlscy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvZmlscy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLN0MsTUFBTSxPQUFPLFlBQVk7SUFFYjtJQUNBO0lBQ0E7SUFIVixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQWM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxNQUE4QixFQUFFLEtBQTBCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQWdCLENBQUM7WUFDaEUsSUFDRSxPQUFPO2dCQUNQLE9BQU8sQ0FBQyxPQUFPO2dCQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUN0RSxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFekMsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt3R0E1QlUsWUFBWTs0R0FBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3Rcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcblxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRoT3B0aW9ucyB9IGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbHNHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGNhbkFjdGl2YXRlKF9yb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRQcm9maWxzKCkucGlwZShcbiAgICAgIG1hcCgocHJvZmlsczogeyBwcm9maWxzOiBzdHJpbmdbXSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGF1dGhDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKSBhcyBBdXRoT3B0aW9ucztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByb2ZpbHMgJiZcbiAgICAgICAgICBwcm9maWxzLnByb2ZpbHMgJiZcbiAgICAgICAgICBwcm9maWxzLnByb2ZpbHMuc29tZSgodikgPT4gYXV0aENvbmZpZy5wcm9maWxzR3VhcmQuaW5kZXhPZih2KSAhPT0gLTEpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcblxuICAgICAgICBpZiAoYXV0aENvbmZpZz8ubG9naW5Sb3V0ZSkge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC90b2tlbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEp3dFBheWxvYWQgfSBmcm9tICdqd3QtZGVjb2RlJztcblxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElnb0p3dFBheWxvYWQgZXh0ZW5kcyBKd3RQYXlsb2FkIHtcbiAgdXNlcjogVXNlcjtcbn1cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { ConfigService } from '@igo2/core/config';
3
+ import { jwtDecode } from 'jwt-decode';
4
+ import * as i0 from "@angular/core";
5
+ export class TokenService {
6
+ injector;
7
+ options;
8
+ tokenKey;
9
+ constructor(injector) {
10
+ this.injector = injector;
11
+ const config = this.injector.get(ConfigService);
12
+ this.options = config.getConfig('auth');
13
+ this.tokenKey = this.options?.tokenKey;
14
+ }
15
+ set(token) {
16
+ localStorage.setItem(this.tokenKey, token);
17
+ }
18
+ remove() {
19
+ localStorage.removeItem(this.tokenKey);
20
+ }
21
+ get() {
22
+ return localStorage.getItem(this.tokenKey);
23
+ }
24
+ decode() {
25
+ const token = this.get();
26
+ if (!token) {
27
+ return;
28
+ }
29
+ return jwtDecode(token);
30
+ }
31
+ isExpired() {
32
+ const jwt = this.decode();
33
+ const currentTime = new Date().getTime() / 1000;
34
+ if (jwt && currentTime < jwt.exp) {
35
+ return false;
36
+ }
37
+ return true;
38
+ }
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TokenService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
40
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TokenService, providedIn: 'root' });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TokenService, decorators: [{
43
+ type: Injectable,
44
+ args: [{
45
+ providedIn: 'root'
46
+ }]
47
+ }], ctorParameters: () => [{ type: i0.Injector }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFRdkMsTUFBTSxPQUFPLFlBQVk7SUFJSDtJQUhaLE9BQU8sQ0FBZTtJQUN0QixRQUFRLENBQVM7SUFFekIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBZ0IsYUFBYSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFhO1FBQ2YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNO1FBQ0osWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUF5QixDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksR0FBRyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQXJDVSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gJ2p3dC1kZWNvZGUnO1xuXG5pbXBvcnQgeyBBdXRoT3B0aW9ucyB9IGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWdvSnd0UGF5bG9hZCB9IGZyb20gJy4vdG9rZW4uaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBvcHRpb25zPzogQXV0aE9wdGlvbnM7XG4gIHByaXZhdGUgdG9rZW5LZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0PENvbmZpZ1NlcnZpY2U+KENvbmZpZ1NlcnZpY2UpO1xuICAgIHRoaXMub3B0aW9ucyA9IGNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKTtcbiAgICB0aGlzLnRva2VuS2V5ID0gdGhpcy5vcHRpb25zPy50b2tlbktleTtcbiAgfVxuXG4gIHNldCh0b2tlbjogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy50b2tlbktleSwgdG9rZW4pO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMudG9rZW5LZXkpO1xuICB9XG5cbiAgZ2V0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudG9rZW5LZXkpO1xuICB9XG5cbiAgZGVjb2RlKCk6IElnb0p3dFBheWxvYWQgfCBudWxsIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gand0RGVjb2RlKHRva2VuKSBzYXRpc2ZpZXMgSWdvSnd0UGF5bG9hZDtcbiAgfVxuXG4gIGlzRXhwaXJlZCgpIHtcbiAgICBjb25zdCBqd3QgPSB0aGlzLmRlY29kZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xuICAgIGlmIChqd3QgJiYgY3VycmVudFRpbWUgPCBqd3QuZXhwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,100 @@
1
+ import { ApplicationRef, ChangeDetectionStrategy, Component, EventEmitter, Inject, Output } from '@angular/core';
2
+ import { MatButtonModule } from '@angular/material/button';
3
+ import { AuthService } from '@igo2/auth';
4
+ import { IgoIconComponent, MICROSOFT_ICON } from '@igo2/common/icon';
5
+ import { ConfigService } from '@igo2/core/config';
6
+ import { IgoLanguageModule } from '@igo2/core/language';
7
+ import { MSAL_GUARD_CONFIG, MsalBroadcastService, MsalService } from '@azure/msal-angular';
8
+ import { InteractionRequiredAuthError, InteractionStatus, PublicClientApplication } from '@azure/msal-browser';
9
+ import { Subject } from 'rxjs';
10
+ import { filter, takeUntil } from 'rxjs/operators';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@igo2/auth";
13
+ import * as i2 from "@igo2/core/config";
14
+ import * as i3 from "@azure/msal-angular";
15
+ import * as i4 from "@angular/material/button";
16
+ import * as i5 from "@ngx-translate/core";
17
+ export class AuthMicrosoftComponent {
18
+ authService;
19
+ config;
20
+ appRef;
21
+ msalService;
22
+ msalGuardConfig;
23
+ options;
24
+ _destroying$ = new Subject();
25
+ login = new EventEmitter();
26
+ broadcastService;
27
+ svgIcon = MICROSOFT_ICON;
28
+ constructor(authService, config, appRef, msalService, msalGuardConfig) {
29
+ this.authService = authService;
30
+ this.config = config;
31
+ this.appRef = appRef;
32
+ this.msalService = msalService;
33
+ this.msalGuardConfig = msalGuardConfig;
34
+ this.options = this.config.getConfig('auth.microsoft');
35
+ this.msalService.instance = new PublicClientApplication({
36
+ auth: this.options,
37
+ cache: {
38
+ cacheLocation: 'sessionStorage'
39
+ }
40
+ });
41
+ this.broadcastService = new MsalBroadcastService(this.msalService.instance, this.msalService);
42
+ if (this.options?.clientId) {
43
+ this.broadcastService.inProgress$
44
+ .pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
45
+ .subscribe(() => {
46
+ this.checkAccount();
47
+ });
48
+ }
49
+ else {
50
+ console.warn('Microsoft authentification needs "clientId" option');
51
+ }
52
+ }
53
+ loginMicrosoft() {
54
+ this.msalService
55
+ .loginPopup({ ...this.getConf().authRequest })
56
+ .subscribe((response) => {
57
+ this.msalService.instance.setActiveAccount(response.account);
58
+ this.checkAccount();
59
+ });
60
+ }
61
+ checkAccount() {
62
+ this.msalService.instance
63
+ .acquireTokenSilent(this.getConf().authRequest)
64
+ .then((response) => {
65
+ const tokenAccess = response.accessToken;
66
+ const tokenId = response.idToken;
67
+ this.authService
68
+ .loginWithToken(tokenAccess, 'microsoft', { tokenId })
69
+ .subscribe(() => {
70
+ this.appRef.tick();
71
+ this.login.emit(true);
72
+ });
73
+ })
74
+ .catch(async (error) => {
75
+ if (error instanceof InteractionRequiredAuthError) {
76
+ // fallback to interaction when silent call fails
77
+ return this.msalService.acquireTokenPopup(this.getConf().authRequest);
78
+ }
79
+ console.log(error);
80
+ })
81
+ .catch(() => {
82
+ console.log('Silent token fails');
83
+ });
84
+ }
85
+ getConf() {
86
+ return this.msalGuardConfig.filter((conf) => conf.type === 'add')[0];
87
+ }
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthMicrosoftComponent, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i0.ApplicationRef }, { token: i3.MsalService }, { token: MSAL_GUARD_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
89
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuthMicrosoftComponent, isStandalone: true, selector: "igo-auth-microsoft", outputs: { login: "login" }, ngImport: i0, template: "<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoft()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoft.login' | translate }}\n</button>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthMicrosoftComponent, decorators: [{
92
+ type: Component,
93
+ args: [{ selector: 'igo-auth-microsoft', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, IgoLanguageModule, IgoIconComponent], template: "<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoft()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoft.login' | translate }}\n</button>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"] }]
94
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }, { type: i3.MsalService }, { type: undefined, decorators: [{
95
+ type: Inject,
96
+ args: [MSAL_GUARD_CONFIG]
97
+ }] }], propDecorators: { login: [{
98
+ type: Output
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9taWNyb3NvZnQvc3JjL2F1dGgtbWljcm9zb2Z0L2F1dGgtbWljcm9zb2Z0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvbWljcm9zb2Z0L3NyYy9hdXRoLW1pY3Jvc29mdC9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFXLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBRUwsNEJBQTRCLEVBQzVCLGlCQUFpQixFQUVqQix1QkFBdUIsRUFFeEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFlbkQsTUFBTSxPQUFPLHNCQUFzQjtJQVN2QjtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBYkYsT0FBTyxD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QztnQkFDbEQsaURBQWlEO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUE0QixDQUM1QyxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO3dHQXBGVSxzQkFBc0IsbUlBYXZCLGlCQUFpQjs0RkFiaEIsc0JBQXNCLDJHQzVDbkMsOE1BUUEsME5Ea0NZLGVBQWUsMk5BQUUsaUJBQWlCLDRGQUFFLGdCQUFnQjs7NEZBRW5ELHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUM7OzBCQWU1RCxNQUFNOzJCQUFDLGlCQUFpQjt5Q0FWakIsS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpZ28yL2F1dGgnO1xuaW1wb3J0IHsgSWNvblN2ZywgSWdvSWNvbkNvbXBvbmVudCwgTUlDUk9TT0ZUX0lDT04gfSBmcm9tICdAaWdvMi9jb21tb24vaWNvbic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHtcbiAgTVNBTF9HVUFSRF9DT05GSUcsXG4gIE1zYWxCcm9hZGNhc3RTZXJ2aWNlLFxuICBNc2FsU2VydmljZVxufSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEF1dGhlbnRpY2F0aW9uUmVzdWx0LFxuICBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yLFxuICBJbnRlcmFjdGlvblN0YXR1cyxcbiAgUG9wdXBSZXF1ZXN0LFxuICBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbixcbiAgU2lsZW50UmVxdWVzdFxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBBdXRoTWljcm9zb2Z0T3B0aW9ucyxcbiAgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvblxufSBmcm9tICcuLi9zaGFyZWQvYXV0aC1taWNyb3NvZnQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWF1dGgtbWljcm9zb2Z0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGgtbWljcm9zb2Z0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC1taWNyb3NvZnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIElnb0xhbmd1YWdlTW9kdWxlLCBJZ29JY29uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTWljcm9zb2Z0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zPzogQXV0aE1pY3Jvc29mdE9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lpbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGxvZ2luOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZTogTXNhbEJyb2FkY2FzdFNlcnZpY2U7XG5cbiAgc3ZnSWNvbjogSWNvblN2ZyA9IE1JQ1JPU09GVF9JQ09OO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKVxuICAgIHByaXZhdGUgbXNhbEd1YXJkQ29uZmlnOiBNU1BNc2FsR3VhcmRDb25maWd1cmF0aW9uW11cbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLm1pY3Jvc29mdCcpO1xuXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSA9IG5ldyBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbih7XG4gICAgICBhdXRoOiB0aGlzLm9wdGlvbnMsXG4gICAgICBjYWNoZToge1xuICAgICAgICBjYWNoZUxvY2F0aW9uOiAnc2Vzc2lvblN0b3JhZ2UnXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UgPSBuZXcgTXNhbEJyb2FkY2FzdFNlcnZpY2UoXG4gICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLFxuICAgICAgdGhpcy5tc2FsU2VydmljZVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5jbGllbnRJZCkge1xuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmluUHJvZ3Jlc3MkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChzdGF0dXM6IEludGVyYWN0aW9uU3RhdHVzKSA9PiBzdGF0dXMgPT09IEludGVyYWN0aW9uU3RhdHVzLk5vbmVcbiAgICAgICAgICApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95aW5nJClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrQWNjb3VudCgpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdNaWNyb3NvZnQgYXV0aGVudGlmaWNhdGlvbiBuZWVkcyBcImNsaWVudElkXCIgb3B0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvZ2luTWljcm9zb2Z0KCkge1xuICAgIHRoaXMubXNhbFNlcnZpY2VcbiAgICAgIC5sb2dpblBvcHVwKHsgLi4udGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3QgfSBhcyBQb3B1cFJlcXVlc3QpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHJlc3BvbnNlLmFjY291bnQpO1xuICAgICAgICB0aGlzLmNoZWNrQWNjb3VudCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQWNjb3VudCgpIHtcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlXG4gICAgICAuYWNxdWlyZVRva2VuU2lsZW50KHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpXG4gICAgICAudGhlbigocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuQWNjZXNzID0gcmVzcG9uc2UuYWNjZXNzVG9rZW47XG4gICAgICAgIGNvbnN0IHRva2VuSWQgPSByZXNwb25zZS5pZFRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgLmxvZ2luV2l0aFRva2VuKHRva2VuQWNjZXNzLCAnbWljcm9zb2Z0JywgeyB0b2tlbklkIH0pXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICAgICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yKSB7XG4gICAgICAgICAgLy8gZmFsbGJhY2sgdG8gaW50ZXJhY3Rpb24gd2hlbiBzaWxlbnQgY2FsbCBmYWlsc1xuICAgICAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblBvcHVwKFxuICAgICAgICAgICAgdGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3QgYXMgU2lsZW50UmVxdWVzdFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdTaWxlbnQgdG9rZW4gZmFpbHMnKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25mKCk6IE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5maWx0ZXIoKGNvbmYpID0+IGNvbmYudHlwZSA9PT0gJ2FkZCcpWzBdO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwibWljcm9zb2Z0LWxvZ2luLWJ1dHRvblwiXG4gIG1hdC1yYWlzZWQtYnV0dG9uXG4gIChjbGljayk9XCJsb2dpbk1pY3Jvc29mdCgpXCJcbj5cbiAgPGlnby1pY29uIFtpY29uXT1cInN2Z0ljb25cIj48L2lnby1pY29uPlxuICB7eyAnaWdvLmF1dGgubWljcm9zb2Z0LmxvZ2luJyB8IHRyYW5zbGF0ZSB9fVxuPC9idXR0b24+XG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { AuthFeatureKind } from '@igo2/auth';
2
+ import { ConfigService } from '@igo2/core/config';
3
+ import { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MsalService } from '@azure/msal-angular';
4
+ import { InteractionType, PublicClientApplication } from '@azure/msal-browser';
5
+ import { AuthMicrosoftComponent } from './auth-microsoft/auth-microsoft.component';
6
+ import { AuthMicrosoftb2cComponent } from './auth-microsoftb2c/auth-microsoftb2c.component';
7
+ import { MsalServiceb2c } from './auth-microsoftb2c/auth-msalServiceb2c.service';
8
+ export const AUTH_MICROSOFT_DIRECTIVES = [
9
+ AuthMicrosoftComponent,
10
+ AuthMicrosoftb2cComponent
11
+ ];
12
+ export function MSALConfigFactory(config) {
13
+ const msConf = config.getConfig('auth.microsoft');
14
+ if (!msConf) {
15
+ return;
16
+ }
17
+ msConf.redirectUri = msConf?.redirectUri || window.location.href;
18
+ msConf.authority =
19
+ msConf?.authority || 'https://login.microsoftonline.com/organizations';
20
+ const myMsalObj = new PublicClientApplication({
21
+ auth: msConf,
22
+ cache: {
23
+ cacheLocation: 'sessionStorage'
24
+ }
25
+ });
26
+ return myMsalObj;
27
+ }
28
+ export function MSALConfigFactoryb2c(config) {
29
+ const msConf = config.getConfig('auth.microsoftb2c.browserAuthOptions');
30
+ if (!msConf) {
31
+ return;
32
+ }
33
+ msConf.redirectUri = msConf?.redirectUri || window.location.href;
34
+ msConf.authority =
35
+ msConf?.authority || 'https://login.microsoftonline.com/organizations';
36
+ const myMsalObj = new PublicClientApplication({
37
+ auth: msConf,
38
+ cache: {
39
+ cacheLocation: 'sessionStorage'
40
+ }
41
+ });
42
+ return myMsalObj;
43
+ }
44
+ export function MSALAngularConfigFactory() {
45
+ return {
46
+ interactionType: InteractionType.Popup,
47
+ authRequest: {
48
+ scopes: ['user.read'],
49
+ loginHint: 'todo'
50
+ },
51
+ type: 'add'
52
+ };
53
+ }
54
+ export function MSALAngularConfigFactoryb2c(config) {
55
+ const msConf = config.getConfig('auth.microsoftb2c.browserAuthOptions');
56
+ return {
57
+ interactionType: InteractionType.Popup,
58
+ authRequest: {
59
+ scopes: [msConf?.clientId]
60
+ },
61
+ type: 'b2c'
62
+ };
63
+ }
64
+ export function withMicrosoftSupport(type) {
65
+ if (type === 'b2c') {
66
+ return {
67
+ kind: AuthFeatureKind.Microsoft,
68
+ providers: [
69
+ {
70
+ provide: MSAL_INSTANCE,
71
+ useFactory: MSALConfigFactoryb2c,
72
+ deps: [ConfigService]
73
+ },
74
+ {
75
+ provide: MSAL_GUARD_CONFIG,
76
+ useFactory: MSALAngularConfigFactoryb2c,
77
+ deps: [ConfigService],
78
+ multi: true
79
+ },
80
+ MsalServiceb2c
81
+ ]
82
+ };
83
+ }
84
+ else {
85
+ return {
86
+ kind: AuthFeatureKind.Microsoft,
87
+ providers: [
88
+ {
89
+ provide: MSAL_INSTANCE,
90
+ useFactory: MSALConfigFactory,
91
+ deps: [ConfigService]
92
+ },
93
+ {
94
+ provide: MSAL_GUARD_CONFIG,
95
+ useFactory: MSALAngularConfigFactory,
96
+ deps: [ConfigService],
97
+ multi: true
98
+ },
99
+ MsalService
100
+ ]
101
+ };
102
+ }
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnQucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL21pY3Jvc29mdC9zcmMvYXV0aC1taWNyb3NvZnQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQU1qRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxzQkFBc0I7SUFDdEIseUJBQXlCO0NBQ2pCLENBQUM7QUFFWCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE1BQXFCO0lBRXJCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQXlCLENBQUM7SUFDMUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDakUsTUFBTSxDQUFDLFNBQVM7UUFDZCxNQUFNLEVBQUUsU0FBUyxJQUFJLGlEQUFpRCxDQUFDO0lBRXpFLE1BQU0sU0FBUyxHQUFHLElBQUksdUJBQXVCLENBQUM7UUFDNUMsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUU7WUFDTCxhQUFhLEVBQUUsZ0JBQWdCO1NBQ2hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBcUI7SUFFckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDN0Isc0NBQXNDLENBQ2pCLENBQUM7SUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDakUsTUFBTSxDQUFDLFNBQVM7UUFDZCxNQUFNLEVBQUUsU0FBUyxJQUFJLGlEQUFpRCxDQUFDO0lBRXpFLE1BQU0sU0FBUyxHQUFHLElBQUksdUJBQXVCLENBQUM7UUFDNUMsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUU7WUFDTCxhQUFhLEVBQUUsZ0JBQWdCO1NBQ2hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTztRQUNMLGVBQWUsRUFBRSxlQUFlLENBQUMsS0FBSztRQUN0QyxXQUFXLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDckIsU0FBUyxFQUFFLE1BQU07U0FDbEI7UUFDRCxJQUFJLEVBQUUsS0FBSztLQUNaLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxNQUFxQjtJQUVyQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUM3QixzQ0FBc0MsQ0FDakIsQ0FBQztJQUV4QixPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxLQUFLO1FBQ3RDLFdBQVcsRUFBRTtZQUNYLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7U0FDM0I7UUFDRCxJQUFJLEVBQUUsS0FBSztLQUNaLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUFhO0lBRWIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTztZQUNMLElBQUksRUFBRSxlQUFlLENBQUMsU0FBUztZQUMvQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFVBQVUsRUFBRSxvQkFBb0I7b0JBQ2hDLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDdEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsVUFBVSxFQUFFLDJCQUEyQjtvQkFDdkMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUNyQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRCxjQUFjO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPO1lBQ0wsSUFBSSxFQUFFLGVBQWUsQ0FBQyxTQUFTO1lBQy9CLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsVUFBVSxFQUFFLGlCQUFpQjtvQkFDN0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN0QjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixVQUFVLEVBQUUsd0JBQXdCO29CQUNwQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3JCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNELFdBQVc7YUFDWjtTQUNGLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhGZWF0dXJlLCBBdXRoRmVhdHVyZUtpbmQgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7XG4gIE1TQUxfR1VBUkRfQ09ORklHLFxuICBNU0FMX0lOU1RBTkNFLFxuICBNc2FsU2VydmljZVxufSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IEludGVyYWN0aW9uVHlwZSwgUHVibGljQ2xpZW50QXBwbGljYXRpb24gfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IEJyb3dzZXJBdXRoT3B0aW9ucyB9IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBBdXRoTWljcm9zb2Z0Q29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLW1pY3Jvc29mdC9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aE1pY3Jvc29mdGIyY0NvbXBvbmVudCB9IGZyb20gJy4vYXV0aC1taWNyb3NvZnRiMmMvYXV0aC1taWNyb3NvZnRiMmMuY29tcG9uZW50JztcbmltcG9ydCB7IE1zYWxTZXJ2aWNlYjJjIH0gZnJvbSAnLi9hdXRoLW1pY3Jvc29mdGIyYy9hdXRoLW1zYWxTZXJ2aWNlYjJjLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXV0aE1pY3Jvc29mdE9wdGlvbnMsXG4gIE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb25cbn0gZnJvbSAnLi9zaGFyZWQvYXV0aC1taWNyb3NvZnQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEFVVEhfTUlDUk9TT0ZUX0RJUkVDVElWRVMgPSBbXG4gIEF1dGhNaWNyb3NvZnRDb21wb25lbnQsXG4gIEF1dGhNaWNyb3NvZnRiMmNDb21wb25lbnRcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBNU0FMQ29uZmlnRmFjdG9yeShcbiAgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4pOiBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiB7XG4gIGNvbnN0IG1zQ29uZiA9IGNvbmZpZy5nZXRDb25maWcoJ2F1dGgubWljcm9zb2Z0JykgYXMgQXV0aE1pY3Jvc29mdE9wdGlvbnM7XG4gIGlmICghbXNDb25mKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbXNDb25mLnJlZGlyZWN0VXJpID0gbXNDb25mPy5yZWRpcmVjdFVyaSB8fCB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgbXNDb25mLmF1dGhvcml0eSA9XG4gICAgbXNDb25mPy5hdXRob3JpdHkgfHwgJ2h0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9vcmdhbml6YXRpb25zJztcblxuICBjb25zdCBteU1zYWxPYmogPSBuZXcgUHVibGljQ2xpZW50QXBwbGljYXRpb24oe1xuICAgIGF1dGg6IG1zQ29uZixcbiAgICBjYWNoZToge1xuICAgICAgY2FjaGVMb2NhdGlvbjogJ3Nlc3Npb25TdG9yYWdlJ1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG15TXNhbE9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1TQUxDb25maWdGYWN0b3J5YjJjKFxuICBjb25maWc6IENvbmZpZ1NlcnZpY2Vcbik6IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcbiAgY29uc3QgbXNDb25mID0gY29uZmlnLmdldENvbmZpZyhcbiAgICAnYXV0aC5taWNyb3NvZnRiMmMuYnJvd3NlckF1dGhPcHRpb25zJ1xuICApIGFzIEJyb3dzZXJBdXRoT3B0aW9ucztcbiAgaWYgKCFtc0NvbmYpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbXNDb25mLnJlZGlyZWN0VXJpID0gbXNDb25mPy5yZWRpcmVjdFVyaSB8fCB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgbXNDb25mLmF1dGhvcml0eSA9XG4gICAgbXNDb25mPy5hdXRob3JpdHkgfHwgJ2h0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9vcmdhbml6YXRpb25zJztcblxuICBjb25zdCBteU1zYWxPYmogPSBuZXcgUHVibGljQ2xpZW50QXBwbGljYXRpb24oe1xuICAgIGF1dGg6IG1zQ29uZixcbiAgICBjYWNoZToge1xuICAgICAgY2FjaGVMb2NhdGlvbjogJ3Nlc3Npb25TdG9yYWdlJ1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG15TXNhbE9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1TQUxBbmd1bGFyQ29uZmlnRmFjdG9yeSgpOiBNU1BNc2FsR3VhcmRDb25maWd1cmF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcbiAgICBhdXRoUmVxdWVzdDoge1xuICAgICAgc2NvcGVzOiBbJ3VzZXIucmVhZCddLFxuICAgICAgbG9naW5IaW50OiAndG9kbydcbiAgICB9LFxuICAgIHR5cGU6ICdhZGQnXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNU0FMQW5ndWxhckNvbmZpZ0ZhY3RvcnliMmMoXG4gIGNvbmZpZzogQ29uZmlnU2VydmljZVxuKTogTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0IG1zQ29uZiA9IGNvbmZpZy5nZXRDb25maWcoXG4gICAgJ2F1dGgubWljcm9zb2Z0YjJjLmJyb3dzZXJBdXRoT3B0aW9ucydcbiAgKSBhcyBCcm93c2VyQXV0aE9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcbiAgICBhdXRoUmVxdWVzdDoge1xuICAgICAgc2NvcGVzOiBbbXNDb25mPy5jbGllbnRJZF1cbiAgICB9LFxuICAgIHR5cGU6ICdiMmMnXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTWljcm9zb2Z0U3VwcG9ydChcbiAgdHlwZT86IHN0cmluZ1xuKTogQXV0aEZlYXR1cmU8QXV0aEZlYXR1cmVLaW5kLk1pY3Jvc29mdD4ge1xuICBpZiAodHlwZSA9PT0gJ2IyYycpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogQXV0aEZlYXR1cmVLaW5kLk1pY3Jvc29mdCxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTVNBTF9JTlNUQU5DRSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBNU0FMQ29uZmlnRmFjdG9yeWIyYyxcbiAgICAgICAgICBkZXBzOiBbQ29uZmlnU2VydmljZV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE1TQUxfR1VBUkRfQ09ORklHLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IE1TQUxBbmd1bGFyQ29uZmlnRmFjdG9yeWIyYyxcbiAgICAgICAgICBkZXBzOiBbQ29uZmlnU2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgTXNhbFNlcnZpY2ViMmNcbiAgICAgIF1cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBraW5kOiBBdXRoRmVhdHVyZUtpbmQuTWljcm9zb2Z0LFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNU0FMX0lOU1RBTkNFLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IE1TQUxDb25maWdGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtDb25maWdTZXJ2aWNlXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTVNBTF9HVUFSRF9DT05GSUcsXG4gICAgICAgICAgdXNlRmFjdG9yeTogTVNBTEFuZ3VsYXJDb25maWdGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtDb25maWdTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBNc2FsU2VydmljZVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==