@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.
- package/esm2022/environment/environment.interface.mjs +2 -0
- package/esm2022/environment/igo2-auth-environment.mjs +5 -0
- package/esm2022/environment/public_api.mjs +2 -0
- package/esm2022/facebook/auth-facebook/auth-facebook.component.mjs +65 -0
- package/esm2022/facebook/igo2-auth-facebook.mjs +5 -0
- package/esm2022/facebook/public_api.mjs +3 -0
- package/esm2022/facebook/shared/auth-facebook.interface.mjs +2 -0
- package/esm2022/facebook/shared/index.mjs +2 -0
- package/esm2022/form/auth-form/auth-form.component.mjs +166 -0
- package/esm2022/form/auth-form.module.mjs +73 -0
- package/esm2022/form/igo2-auth-form.mjs +5 -0
- package/esm2022/form/public_api.mjs +7 -0
- package/esm2022/form/shared/auth-form.interface.mjs +2 -0
- package/esm2022/form/shared/index.mjs +2 -0
- package/esm2022/google/auth-google/auth-google.component.mjs +108 -0
- package/esm2022/google/igo2-auth-google.mjs +5 -0
- package/esm2022/google/public_api.mjs +3 -0
- package/esm2022/google/shared/auth-google.interface.mjs +2 -0
- package/esm2022/google/shared/index.mjs +2 -0
- package/esm2022/igo2-auth.mjs +5 -0
- package/esm2022/internal/auth-intern/auth-intern.component.mjs +84 -0
- package/esm2022/internal/igo2-auth-internal.mjs +5 -0
- package/esm2022/internal/public_api.mjs +2 -0
- package/esm2022/lib/auth.provider.mjs +22 -0
- package/esm2022/lib/shared/admin.guard.mjs +38 -0
- package/esm2022/lib/shared/auth-storage.interface.mjs +2 -0
- package/esm2022/lib/shared/auth-storage.service.mjs +100 -0
- package/esm2022/lib/shared/auth.guard.mjs +38 -0
- package/esm2022/lib/shared/auth.interceptor.mjs +159 -0
- package/esm2022/lib/shared/auth.interface.mjs +5 -0
- package/esm2022/lib/shared/auth.service.mjs +175 -0
- package/esm2022/lib/shared/index.mjs +12 -0
- package/esm2022/lib/shared/logged.guard.mjs +38 -0
- package/esm2022/lib/shared/profils.guard.mjs +43 -0
- package/esm2022/lib/shared/token.interface.mjs +2 -0
- package/esm2022/lib/shared/token.service.mjs +48 -0
- package/esm2022/microsoft/auth-microsoft/auth-microsoft.component.mjs +100 -0
- package/esm2022/microsoft/auth-microsoft.provider.mjs +104 -0
- package/esm2022/microsoft/auth-microsoftb2c/auth-microsoftb2c.component.mjs +98 -0
- package/esm2022/microsoft/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.mjs +47 -0
- package/esm2022/microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.mjs +85 -0
- package/esm2022/microsoft/igo2-auth-microsoft.mjs +5 -0
- package/esm2022/microsoft/public_api.mjs +5 -0
- package/esm2022/microsoft/shared/auth-microsoft.interface.mjs +2 -0
- package/esm2022/microsoft/shared/index.mjs +2 -0
- package/esm2022/monitoring/auth-monitoring/auth-monitoring.provider.mjs +24 -0
- package/esm2022/monitoring/auth-monitoring/auth-monitoring.service.mjs +54 -0
- package/esm2022/monitoring/igo2-auth-monitoring.mjs +5 -0
- package/esm2022/monitoring/public_api.mjs +3 -0
- package/esm2022/public_api.mjs +6 -0
- package/fesm2022/igo2-auth-facebook.mjs +3 -3
- package/fesm2022/igo2-auth-facebook.mjs.map +1 -1
- package/fesm2022/igo2-auth-form.mjs +8 -8
- package/fesm2022/igo2-auth-form.mjs.map +1 -1
- package/fesm2022/igo2-auth-google.mjs +3 -3
- package/fesm2022/igo2-auth-google.mjs.map +1 -1
- package/fesm2022/igo2-auth-internal.mjs +4 -4
- package/fesm2022/igo2-auth-internal.mjs.map +1 -1
- package/fesm2022/igo2-auth-microsoft.mjs +14 -14
- package/fesm2022/igo2-auth-microsoft.mjs.map +1 -1
- package/fesm2022/igo2-auth-monitoring.mjs +10 -8
- package/fesm2022/igo2-auth-monitoring.mjs.map +1 -1
- package/fesm2022/igo2-auth.mjs +24 -24
- package/fesm2022/igo2-auth.mjs.map +1 -1
- package/form/src/auth-form/auth-intern.theme.scss +2 -3
- package/monitoring/auth-monitoring/auth-monitoring.provider.d.ts +2 -2
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUl6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBSy9DLE1BQU0sT0FBTyxXQUFXO0lBa0JaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDWTtJQXRCZixhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7SUFDeEQsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFVLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELFdBQVcsQ0FBUztJQUNwQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsV0FBVyxDQUFjO0lBRWpDLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxZQUNVLElBQWdCLEVBQ2hCLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGNBQThCLEVBQ2xCLE1BQWM7UUFMMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUV6RSxNQUFNLElBQUksR0FBRztZQUNYLFFBQVE7WUFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDeEMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWMsQ0FDWixLQUFhLEVBQ2IsSUFBWSxFQUNaLFNBQXNCO1FBRXRCLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUV6RSxNQUFNLElBQUksR0FBRztZQUNYLEtBQUs7WUFDTCxjQUFjLEVBQUUsSUFBSTtZQUNwQixTQUFTO1NBQ1YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN4QixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUV4RCxJQUFJLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLFVBQVUsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBZ0I7UUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ3pELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLElBQUksWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN2QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDeEIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzt3R0FoTFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXdCSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgQmFzZTY0IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcblxuaW1wb3J0IHsgQXV0aE9wdGlvbnMsIElJbmZvc1VzZXIsIFVzZXIgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IElnb0p3dFBheWxvYWQgfSBmcm9tICcuL3Rva2VuLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHB1YmxpYyBhdXRoZW50aWNhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgbG9nZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBsYW5ndWFnZUZvcmNlID0gZmFsc2U7XG4gIHByaXZhdGUgYW5vbnltb3VzID0gZmFsc2U7XG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xuXG4gIGdldCBoYXNBdXRoU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoT3B0aW9ucz8udXJsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgdXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGVUb2tlbigpO1xuICAgIHJldHVybiBkZWNvZGVkVG9rZW4/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==
|