@igo2/auth 1.15.4 → 1.15.5

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 (55) hide show
  1. package/esm2020/igo2-auth.mjs +4 -4
  2. package/esm2020/lib/auth-form/auth-facebook.component.mjs +61 -61
  3. package/esm2020/lib/auth-form/auth-form.component.mjs +277 -277
  4. package/esm2020/lib/auth-form/auth-google.component.mjs +99 -99
  5. package/esm2020/lib/auth-form/auth-intern.component.mjs +119 -119
  6. package/esm2020/lib/auth-form/auth-microsoft.component.mjs +94 -94
  7. package/esm2020/lib/auth-form/auth-microsoftb2c.component.mjs +93 -93
  8. package/esm2020/lib/auth-form/index.mjs +5 -5
  9. package/esm2020/lib/auth-routing.module.mjs +24 -24
  10. package/esm2020/lib/auth.module.mjs +91 -91
  11. package/esm2020/lib/shared/admin.guard.mjs +33 -33
  12. package/esm2020/lib/shared/auth-microsoft.provider.mjs +84 -84
  13. package/esm2020/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +38 -38
  14. package/esm2020/lib/shared/auth-msalServiceb2c.service..mjs +80 -80
  15. package/esm2020/lib/shared/auth.guard.mjs +32 -32
  16. package/esm2020/lib/shared/auth.interceptor.mjs +155 -155
  17. package/esm2020/lib/shared/auth.interface.mjs +2 -2
  18. package/esm2020/lib/shared/auth.service.mjs +158 -158
  19. package/esm2020/lib/shared/logged.guard.mjs +32 -32
  20. package/esm2020/lib/shared/profils.guard.mjs +37 -37
  21. package/esm2020/lib/shared/protected.directive.mjs +19 -19
  22. package/esm2020/lib/shared/storage.interface.mjs +2 -2
  23. package/esm2020/lib/shared/storage.service.mjs +91 -91
  24. package/esm2020/lib/shared/token.service.mjs +47 -47
  25. package/esm2020/public_api.mjs +19 -19
  26. package/fesm2015/igo2-auth.mjs +1577 -1577
  27. package/fesm2015/igo2-auth.mjs.map +1 -1
  28. package/fesm2020/igo2-auth.mjs +1475 -1475
  29. package/fesm2020/igo2-auth.mjs.map +1 -1
  30. package/index.d.ts +5 -5
  31. package/lib/auth-form/auth-facebook.component.d.ts +18 -18
  32. package/lib/auth-form/auth-form.component.d.ts +42 -42
  33. package/lib/auth-form/auth-google.component.d.ts +24 -24
  34. package/lib/auth-form/auth-intern.component.d.ts +21 -21
  35. package/lib/auth-form/auth-microsoft.component.d.ts +23 -23
  36. package/lib/auth-form/auth-microsoftb2c.component.d.ts +23 -23
  37. package/lib/auth-form/index.d.ts +4 -4
  38. package/lib/auth-routing.module.d.ts +7 -7
  39. package/lib/auth.module.d.ts +23 -23
  40. package/lib/shared/admin.guard.d.ts +13 -13
  41. package/lib/shared/auth-microsoft.provider.d.ts +30 -30
  42. package/lib/shared/auth-msalBroadcastServiceb2c.service.d.ts +15 -15
  43. package/lib/shared/auth-msalServiceb2c.service..d.ts +33 -33
  44. package/lib/shared/auth.guard.d.ts +13 -13
  45. package/lib/shared/auth.interceptor.d.ts +24 -24
  46. package/lib/shared/auth.interface.d.ts +99 -99
  47. package/lib/shared/auth.service.d.ts +44 -44
  48. package/lib/shared/logged.guard.d.ts +13 -13
  49. package/lib/shared/profils.guard.d.ts +13 -13
  50. package/lib/shared/protected.directive.d.ts +8 -8
  51. package/lib/shared/storage.interface.d.ts +4 -4
  52. package/lib/shared/storage.service.d.ts +18 -18
  53. package/lib/shared/token.service.d.ts +15 -15
  54. package/package.json +3 -3
  55. package/public_api.d.ts +15 -15
@@ -1,158 +1,158 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { BehaviorSubject, of } from 'rxjs';
4
- import { tap, catchError } from 'rxjs/operators';
5
- import { globalCacheBusterNotifier } from 'ts-cacheable';
6
- import { Base64 } from '@igo2/utils';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "./token.service";
10
- import * as i3 from "@igo2/core";
11
- import * as i4 from "@angular/router";
12
- export class AuthService {
13
- constructor(http, tokenService, config, languageService, messageService, router) {
14
- this.http = http;
15
- this.tokenService = tokenService;
16
- this.config = config;
17
- this.languageService = languageService;
18
- this.messageService = messageService;
19
- this.router = router;
20
- this.authenticate$ = new BehaviorSubject(undefined);
21
- this.logged$ = new BehaviorSubject(undefined);
22
- this.languageForce = false;
23
- this.anonymous = false;
24
- this.authenticate$.next(this.authenticated);
25
- this.authenticate$.subscribe((authenticated) => {
26
- this.logged$.next(authenticated);
27
- globalCacheBusterNotifier.next();
28
- });
29
- }
30
- get hasAuthService() {
31
- return this.config.getConfig('auth.url') !== undefined;
32
- }
33
- login(username, password) {
34
- const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
35
- const body = {
36
- username,
37
- password: this.encodePassword(password)
38
- };
39
- return this.loginCall(body, myHeader);
40
- }
41
- loginWithToken(token, type, infosUser) {
42
- const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
43
- const body = {
44
- token,
45
- typeConnection: type,
46
- infosUser
47
- };
48
- return this.loginCall(body, myHeader);
49
- }
50
- loginAnonymous() {
51
- this.anonymous = true;
52
- this.logged$.next(true);
53
- return of(true);
54
- }
55
- refresh() {
56
- const url = this.config.getConfig('auth.url');
57
- return this.http.post(`${url}/refresh`, {}).pipe(tap((data) => {
58
- this.tokenService.set(data.token);
59
- }), catchError((err) => {
60
- err.error.caught = true;
61
- throw err;
62
- }));
63
- }
64
- logout() {
65
- this.anonymous = false;
66
- this.tokenService.remove();
67
- this.authenticate$.next(false);
68
- return of(true);
69
- }
70
- isAuthenticated() {
71
- return !this.tokenService.isExpired();
72
- }
73
- getToken() {
74
- return this.tokenService.get();
75
- }
76
- decodeToken() {
77
- if (this.isAuthenticated()) {
78
- return this.tokenService.decode();
79
- }
80
- return false;
81
- }
82
- goToRedirectUrl() {
83
- if (!this.router) {
84
- return;
85
- }
86
- const redirectUrl = this.redirectUrl || this.router.url;
87
- const options = this.config.getConfig('auth') || {};
88
- if (redirectUrl === options.loginRoute) {
89
- const homeRoute = options.homeRoute || '/';
90
- this.router.navigateByUrl(homeRoute);
91
- }
92
- else if (redirectUrl) {
93
- this.router.navigateByUrl(redirectUrl);
94
- }
95
- }
96
- getUserInfo() {
97
- const url = this.config.getConfig('auth.url') + '/info';
98
- return this.http.get(url);
99
- }
100
- getProfils() {
101
- const url = this.config.getConfig('auth.url');
102
- return this.http.get(`${url}/profils`);
103
- }
104
- updateUser(user) {
105
- const url = this.config.getConfig('auth.url');
106
- return this.http.patch(url, user);
107
- }
108
- encodePassword(password) {
109
- return Base64.encode(password);
110
- }
111
- // authenticated or anonymous
112
- get logged() {
113
- return this.authenticated || this.isAnonymous;
114
- }
115
- get isAnonymous() {
116
- return this.anonymous;
117
- }
118
- get authenticated() {
119
- return this.isAuthenticated();
120
- }
121
- get isAdmin() {
122
- const token = this.decodeToken();
123
- if (token && token.user && token.user.isAdmin) {
124
- return true;
125
- }
126
- return false;
127
- }
128
- loginCall(body, headers) {
129
- const url = this.config.getConfig('auth.url');
130
- return this.http.post(`${url}/login`, body, { headers }).pipe(tap((data) => {
131
- this.tokenService.set(data.token);
132
- const tokenDecoded = this.decodeToken();
133
- if (tokenDecoded && tokenDecoded.user) {
134
- if (tokenDecoded.user.locale && !this.languageForce) {
135
- this.languageService.setLanguage(tokenDecoded.user.locale);
136
- }
137
- if (tokenDecoded.user.isExpired) {
138
- this.messageService.alert('igo.auth.error.Password expired');
139
- }
140
- }
141
- this.authenticate$.next(true);
142
- }), catchError((err) => {
143
- err.error.caught = true;
144
- throw err;
145
- }));
146
- }
147
- }
148
- AuthService.ɵfac = function AuthService_Factory(t) { return new (t || AuthService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.TokenService), i0.ɵɵinject(i3.ConfigService), i0.ɵɵinject(i3.LanguageService), i0.ɵɵinject(i3.MessageService), i0.ɵɵinject(i4.Router, 8)); };
149
- AuthService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthService, factory: AuthService.ɵfac, providedIn: 'root' });
150
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthService, [{
151
- type: Injectable,
152
- args: [{
153
- providedIn: 'root'
154
- }]
155
- }], function () { return [{ type: i1.HttpClient }, { type: i2.TokenService }, { type: i3.ConfigService }, { type: i3.LanguageService }, { type: i3.MessageService }, { type: i4.Router, decorators: [{
156
- type: Optional
157
- }] }]; }, null); })();
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVFyQyxNQUFNLE9BQU8sV0FBVztJQVd0QixZQUNVLElBQWdCLEVBQ2hCLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGNBQThCLEVBQ2xCLE1BQWM7UUFMMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhCN0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7UUFFbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQWN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENB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RUFBRTtvQkFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDNUQ7Z0JBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztpQkFDaEU7YUFDRjtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN4QixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztzRUF0S1UsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFrQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdsb2JhbENhY2hlQnVzdGVyTm90aWZpZXIgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlNjQgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBVc2VyLCBJSW5mb3NVc2VyIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgcHVibGljIGF1dGhlbnRpY2F0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIGxvZ2dlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIGxhbmd1YWdlRm9yY2UgPSBmYWxzZTtcclxuICBwcml2YXRlIGFub255bW91cyA9IGZhbHNlO1xyXG5cclxuICBnZXQgaGFzQXV0aFNlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLnVybCcpICE9PSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBUb2tlblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KHRoaXMuYXV0aGVudGljYXRlZCk7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKChhdXRoZW50aWNhdGVkKSA9PiB7XHJcbiAgICAgIHRoaXMubG9nZ2VkJC5uZXh0KGF1dGhlbnRpY2F0ZWQpO1xyXG4gICAgICBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgbXlIZWFkZXIgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgIHVzZXJuYW1lLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5lbmNvZGVQYXNzd29yZChwYXNzd29yZClcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcclxuICB9XHJcblxyXG4gIGxvZ2luV2l0aFRva2VuKHRva2VuOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgaW5mb3NVc2VyPzogSUluZm9zVXNlcik6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgbXlIZWFkZXIgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgIHRva2VuLFxyXG4gICAgICB0eXBlQ29ubmVjdGlvbjogdHlwZSxcclxuICAgICAgaW5mb3NVc2VyXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmxvZ2luQ2FsbChib2R5LCBteUhlYWRlcik7XHJcbiAgfVxyXG5cclxuICBsb2dpbkFub255bW91cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMuYW5vbnltb3VzID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nZ2VkJC5uZXh0KHRydWUpO1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cmx9L3JlZnJlc2hgLCB7fSkucGlwZShcclxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQoZGF0YS50b2tlbik7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBlcnIuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5hbm9ueW1vdXMgPSBmYWxzZTtcclxuICAgIHRoaXMudG9rZW5TZXJ2aWNlLnJlbW92ZSgpO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGUkLm5leHQoZmFsc2UpO1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnRva2VuU2VydmljZS5pc0V4cGlyZWQoKTtcclxuICB9XHJcblxyXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVUb2tlbigpIHtcclxuICAgIGlmICh0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdvVG9SZWRpcmVjdFVybCgpIHtcclxuICAgIGlmICghdGhpcy5yb3V0ZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSB0aGlzLnJlZGlyZWN0VXJsIHx8IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgfHwge307XHJcbiAgICBpZiAocmVkaXJlY3RVcmwgPT09IG9wdGlvbnMubG9naW5Sb3V0ZSkge1xyXG4gICAgICBjb25zdCBob21lUm91dGUgPSBvcHRpb25zLmhvbWVSb3V0ZSB8fCAnLyc7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaG9tZVJvdXRlKTtcclxuICAgIH0gZWxzZSBpZiAocmVkaXJlY3RVcmwpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFVybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVc2VySW5mbygpOiBPYnNlcnZhYmxlPFVzZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKSArICcvaW5mbyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyPih1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZmlscygpOiBPYnNlcnZhYmxlPHsgcHJvZmlsczogc3RyaW5nW10gfT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLnVybCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBwcm9maWxzOiBzdHJpbmdbXSB9PihgJHt1cmx9L3Byb2ZpbHNgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXIodXNlcjogVXNlcik6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLnVybCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxVc2VyPih1cmwsIHVzZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbmNvZGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gQmFzZTY0LmVuY29kZShwYXNzd29yZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhdXRoZW50aWNhdGVkIG9yIGFub255bW91c1xyXG4gIGdldCBsb2dnZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdGVkIHx8IHRoaXMuaXNBbm9ueW1vdXM7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNBbm9ueW1vdXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXM7XHJcbiAgfVxyXG5cclxuICBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcclxuICAgIGlmICh0b2tlbiAmJiB0b2tlbi51c2VyICYmIHRva2VuLnVzZXIuaXNBZG1pbikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9naW5DYWxsKGJvZHksIGhlYWRlcnMpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cmx9L2xvZ2luYCwgYm9keSwgeyBoZWFkZXJzIH0pLnBpcGUoXHJcbiAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xyXG4gICAgICAgIGNvbnN0IHRva2VuRGVjb2RlZCA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcclxuICAgICAgICBpZiAodG9rZW5EZWNvZGVkICYmIHRva2VuRGVjb2RlZC51c2VyKSB7XHJcbiAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlICYmICF0aGlzLmxhbmd1YWdlRm9yY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2V0TGFuZ3VhZ2UodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0b2tlbkRlY29kZWQudXNlci5pc0V4cGlyZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KCdpZ28uYXV0aC5lcnJvci5QYXNzd29yZCBleHBpcmVkJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KHRydWUpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import { BehaviorSubject, of } from 'rxjs';
4
+ import { tap, catchError } from 'rxjs/operators';
5
+ import { globalCacheBusterNotifier } from 'ts-cacheable';
6
+ import { Base64 } from '@igo2/utils';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "./token.service";
10
+ import * as i3 from "@igo2/core";
11
+ import * as i4 from "@angular/router";
12
+ export class AuthService {
13
+ constructor(http, tokenService, config, languageService, messageService, router) {
14
+ this.http = http;
15
+ this.tokenService = tokenService;
16
+ this.config = config;
17
+ this.languageService = languageService;
18
+ this.messageService = messageService;
19
+ this.router = router;
20
+ this.authenticate$ = new BehaviorSubject(undefined);
21
+ this.logged$ = new BehaviorSubject(undefined);
22
+ this.languageForce = false;
23
+ this.anonymous = false;
24
+ this.authenticate$.next(this.authenticated);
25
+ this.authenticate$.subscribe((authenticated) => {
26
+ this.logged$.next(authenticated);
27
+ globalCacheBusterNotifier.next();
28
+ });
29
+ }
30
+ get hasAuthService() {
31
+ return this.config.getConfig('auth.url') !== undefined;
32
+ }
33
+ login(username, password) {
34
+ const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
35
+ const body = {
36
+ username,
37
+ password: this.encodePassword(password)
38
+ };
39
+ return this.loginCall(body, myHeader);
40
+ }
41
+ loginWithToken(token, type, infosUser) {
42
+ const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
43
+ const body = {
44
+ token,
45
+ typeConnection: type,
46
+ infosUser
47
+ };
48
+ return this.loginCall(body, myHeader);
49
+ }
50
+ loginAnonymous() {
51
+ this.anonymous = true;
52
+ this.logged$.next(true);
53
+ return of(true);
54
+ }
55
+ refresh() {
56
+ const url = this.config.getConfig('auth.url');
57
+ return this.http.post(`${url}/refresh`, {}).pipe(tap((data) => {
58
+ this.tokenService.set(data.token);
59
+ }), catchError((err) => {
60
+ err.error.caught = true;
61
+ throw err;
62
+ }));
63
+ }
64
+ logout() {
65
+ this.anonymous = false;
66
+ this.tokenService.remove();
67
+ this.authenticate$.next(false);
68
+ return of(true);
69
+ }
70
+ isAuthenticated() {
71
+ return !this.tokenService.isExpired();
72
+ }
73
+ getToken() {
74
+ return this.tokenService.get();
75
+ }
76
+ decodeToken() {
77
+ if (this.isAuthenticated()) {
78
+ return this.tokenService.decode();
79
+ }
80
+ return false;
81
+ }
82
+ goToRedirectUrl() {
83
+ if (!this.router) {
84
+ return;
85
+ }
86
+ const redirectUrl = this.redirectUrl || this.router.url;
87
+ const options = this.config.getConfig('auth') || {};
88
+ if (redirectUrl === options.loginRoute) {
89
+ const homeRoute = options.homeRoute || '/';
90
+ this.router.navigateByUrl(homeRoute);
91
+ }
92
+ else if (redirectUrl) {
93
+ this.router.navigateByUrl(redirectUrl);
94
+ }
95
+ }
96
+ getUserInfo() {
97
+ const url = this.config.getConfig('auth.url') + '/info';
98
+ return this.http.get(url);
99
+ }
100
+ getProfils() {
101
+ const url = this.config.getConfig('auth.url');
102
+ return this.http.get(`${url}/profils`);
103
+ }
104
+ updateUser(user) {
105
+ const url = this.config.getConfig('auth.url');
106
+ return this.http.patch(url, user);
107
+ }
108
+ encodePassword(password) {
109
+ return Base64.encode(password);
110
+ }
111
+ // authenticated or anonymous
112
+ get logged() {
113
+ return this.authenticated || this.isAnonymous;
114
+ }
115
+ get isAnonymous() {
116
+ return this.anonymous;
117
+ }
118
+ get authenticated() {
119
+ return this.isAuthenticated();
120
+ }
121
+ get isAdmin() {
122
+ const token = this.decodeToken();
123
+ if (token && token.user && token.user.isAdmin) {
124
+ return true;
125
+ }
126
+ return false;
127
+ }
128
+ loginCall(body, headers) {
129
+ const url = this.config.getConfig('auth.url');
130
+ return this.http.post(`${url}/login`, body, { headers }).pipe(tap((data) => {
131
+ this.tokenService.set(data.token);
132
+ const tokenDecoded = this.decodeToken();
133
+ if (tokenDecoded && tokenDecoded.user) {
134
+ if (tokenDecoded.user.locale && !this.languageForce) {
135
+ this.languageService.setLanguage(tokenDecoded.user.locale);
136
+ }
137
+ if (tokenDecoded.user.isExpired) {
138
+ this.messageService.alert('igo.auth.error.Password expired');
139
+ }
140
+ }
141
+ this.authenticate$.next(true);
142
+ }), catchError((err) => {
143
+ err.error.caught = true;
144
+ throw err;
145
+ }));
146
+ }
147
+ }
148
+ AuthService.ɵfac = function AuthService_Factory(t) { return new (t || AuthService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.TokenService), i0.ɵɵinject(i3.ConfigService), i0.ɵɵinject(i3.LanguageService), i0.ɵɵinject(i3.MessageService), i0.ɵɵinject(i4.Router, 8)); };
149
+ AuthService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthService, factory: AuthService.ɵfac, providedIn: 'root' });
150
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthService, [{
151
+ type: Injectable,
152
+ args: [{
153
+ providedIn: 'root'
154
+ }]
155
+ }], function () { return [{ type: i1.HttpClient }, { type: i2.TokenService }, { type: i3.ConfigService }, { type: i3.LanguageService }, { type: i3.MessageService }, { type: i4.Router, decorators: [{
156
+ type: Optional
157
+ }] }]; }, null); })();
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVFyQyxNQUFNLE9BQU8sV0FBVztJQVd0QixZQUNVLElBQWdCLEVBQ2hCLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGNBQThCLEVBQ2xCLE1BQWM7UUFMMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhCN0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7UUFFbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQWN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENB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RUFBRTtvQkFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDNUQ7Z0JBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztpQkFDaEU7YUFDRjtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN4QixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztzRUF0S1UsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFrQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGdsb2JhbENhY2hlQnVzdGVyTm90aWZpZXIgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBCYXNlNjQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IFVzZXIsIElJbmZvc1VzZXIgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgcHVibGljIGF1dGhlbnRpY2F0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBsb2dnZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZztcbiAgcHVibGljIGxhbmd1YWdlRm9yY2UgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhbm9ueW1vdXMgPSBmYWxzZTtcblxuICBnZXQgaGFzQXV0aFNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KHRoaXMuYXV0aGVudGljYXRlZCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoYXV0aGVudGljYXRlZCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZWQkLm5leHQoYXV0aGVudGljYXRlZCk7XG4gICAgICBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBteUhlYWRlciA9IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgdXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogdGhpcy5lbmNvZGVQYXNzd29yZChwYXNzd29yZClcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcbiAgfVxuXG4gIGxvZ2luV2l0aFRva2VuKHRva2VuOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgaW5mb3NVc2VyPzogSUluZm9zVXNlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IG15SGVhZGVyID0gbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICB0b2tlbixcbiAgICAgIHR5cGVDb25uZWN0aW9uOiB0eXBlLFxuICAgICAgaW5mb3NVc2VyXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmxvZ2luQ2FsbChib2R5LCBteUhlYWRlcik7XG4gIH1cblxuICBsb2dpbkFub255bW91cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmFub255bW91cyA9IHRydWU7XG4gICAgdGhpcy5sb2dnZWQkLm5leHQodHJ1ZSk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudXJsJyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3VybH0vcmVmcmVzaGAsIHt9KS5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvZ291dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmFub255bW91cyA9IGZhbHNlO1xuICAgIHRoaXMudG9rZW5TZXJ2aWNlLnJlbW92ZSgpO1xuICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KGZhbHNlKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnRva2VuU2VydmljZS5pc0V4cGlyZWQoKTtcbiAgfVxuXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpO1xuICB9XG5cbiAgZGVjb2RlVG9rZW4oKSB7XG4gICAgaWYgKHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ29Ub1JlZGlyZWN0VXJsKCkge1xuICAgIGlmICghdGhpcy5yb3V0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSB0aGlzLnJlZGlyZWN0VXJsIHx8IHRoaXMucm91dGVyLnVybDtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKSB8fCB7fTtcbiAgICBpZiAocmVkaXJlY3RVcmwgPT09IG9wdGlvbnMubG9naW5Sb3V0ZSkge1xuICAgICAgY29uc3QgaG9tZVJvdXRlID0gb3B0aW9ucy5ob21lUm91dGUgfHwgJy8nO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChob21lUm91dGUpO1xuICAgIH0gZWxzZSBpZiAocmVkaXJlY3RVcmwpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocmVkaXJlY3RVcmwpO1xuICAgIH1cbiAgfVxuXG4gIGdldFVzZXJJbmZvKCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKSArICcvaW5mbyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcj4odXJsKTtcbiAgfVxuXG4gIGdldFByb2ZpbHMoKTogT2JzZXJ2YWJsZTx7IHByb2ZpbHM6IHN0cmluZ1tdIH0+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudXJsJyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBwcm9maWxzOiBzdHJpbmdbXSB9PihgJHt1cmx9L3Byb2ZpbHNgKTtcbiAgfVxuXG4gIHVwZGF0ZVVzZXIodXNlcjogVXNlcik6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC51cmwnKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFVzZXI+KHVybCwgdXNlcik7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZVBhc3N3b3JkKHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gQmFzZTY0LmVuY29kZShwYXNzd29yZCk7XG4gIH1cblxuICAvLyBhdXRoZW50aWNhdGVkIG9yIGFub255bW91c1xuICBnZXQgbG9nZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhlbnRpY2F0ZWQgfHwgdGhpcy5pc0Fub255bW91cztcbiAgfVxuXG4gIGdldCBpc0Fub255bW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXM7XG4gIH1cblxuICBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgfVxuXG4gIGdldCBpc0FkbWluKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5kZWNvZGVUb2tlbigpO1xuICAgIGlmICh0b2tlbiAmJiB0b2tlbi51c2VyICYmIHRva2VuLnVzZXIuaXNBZG1pbikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbG9naW5DYWxsKGJvZHksIGhlYWRlcnMpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudXJsJyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3VybH0vbG9naW5gLCBib2R5LCB7IGhlYWRlcnMgfSkucGlwZShcbiAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhLnRva2VuKTtcbiAgICAgICAgY29uc3QgdG9rZW5EZWNvZGVkID0gdGhpcy5kZWNvZGVUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW5EZWNvZGVkICYmIHRva2VuRGVjb2RlZC51c2VyKSB7XG4gICAgICAgICAgaWYgKHRva2VuRGVjb2RlZC51c2VyLmxvY2FsZSAmJiAhdGhpcy5sYW5ndWFnZUZvcmNlKSB7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS5zZXRMYW5ndWFnZSh0b2tlbkRlY29kZWQudXNlci5sb2NhbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkLnVzZXIuaXNFeHBpcmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWxlcnQoJ2lnby5hdXRoLmVycm9yLlBhc3N3b3JkIGV4cGlyZWQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGUkLm5leHQodHJ1ZSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBlcnIuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,32 +1,32 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./auth.service";
4
- import * as i2 from "@igo2/core";
5
- import * as i3 from "@angular/router";
6
- export class LoggedGuard {
7
- constructor(authService, config, router) {
8
- this.authService = authService;
9
- this.config = config;
10
- this.router = router;
11
- }
12
- canActivate(route, state) {
13
- if (this.authService.logged) {
14
- return true;
15
- }
16
- this.authService.redirectUrl = state.url;
17
- const authConfig = this.config.getConfig('auth');
18
- if (authConfig && authConfig.loginRoute) {
19
- this.router.navigateByUrl(authConfig.loginRoute);
20
- }
21
- return false;
22
- }
23
- }
24
- LoggedGuard.ɵfac = function LoggedGuard_Factory(t) { return new (t || LoggedGuard)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.ConfigService), i0.ɵɵinject(i3.Router)); };
25
- LoggedGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoggedGuard, factory: LoggedGuard.ɵfac, providedIn: 'root' });
26
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoggedGuard, [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root'
30
- }]
31
- }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9sb2dnZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFjM0MsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztzRUFwQlUsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENhbkFjdGl2YXRlLFxyXG4gIFJvdXRlcixcclxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2dlZEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UubG9nZ2VkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpO1xyXG4gICAgaWYgKGF1dGhDb25maWcgJiYgYXV0aENvbmZpZy5sb2dpblJvdXRlKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./auth.service";
4
+ import * as i2 from "@igo2/core";
5
+ import * as i3 from "@angular/router";
6
+ export class LoggedGuard {
7
+ constructor(authService, config, router) {
8
+ this.authService = authService;
9
+ this.config = config;
10
+ this.router = router;
11
+ }
12
+ canActivate(route, state) {
13
+ if (this.authService.logged) {
14
+ return true;
15
+ }
16
+ this.authService.redirectUrl = state.url;
17
+ const authConfig = this.config.getConfig('auth');
18
+ if (authConfig && authConfig.loginRoute) {
19
+ this.router.navigateByUrl(authConfig.loginRoute);
20
+ }
21
+ return false;
22
+ }
23
+ }
24
+ LoggedGuard.ɵfac = function LoggedGuard_Factory(t) { return new (t || LoggedGuard)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.ConfigService), i0.ɵɵinject(i3.Router)); };
25
+ LoggedGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoggedGuard, factory: LoggedGuard.ɵfac, providedIn: 'root' });
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoggedGuard, [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9sb2dnZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFjM0MsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztzRUFwQlUsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2FuQWN0aXZhdGUsXG4gIFJvdXRlcixcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9nZ2VkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcblxuICAgIGNvbnN0IGF1dGhDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKTtcbiAgICBpZiAoYXV0aENvbmZpZyAmJiBhdXRoQ29uZmlnLmxvZ2luUm91dGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,37 +1,37 @@
1
- import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./auth.service";
5
- import * as i2 from "@igo2/core";
6
- import * as i3 from "@angular/router";
7
- export class ProfilsGuard {
8
- constructor(authService, config, router) {
9
- this.authService = authService;
10
- this.config = config;
11
- this.router = router;
12
- }
13
- canActivate(_route, state) {
14
- return this.authService.getProfils().pipe(map((profils) => {
15
- const authConfig = this.config.getConfig('auth');
16
- if (profils &&
17
- profils.profils &&
18
- profils.profils.some(v => authConfig.profilsGuard.indexOf(v) !== -1)) {
19
- return true;
20
- }
21
- this.authService.redirectUrl = state.url;
22
- if (authConfig && authConfig.loginRoute) {
23
- this.router.navigateByUrl(authConfig.loginRoute);
24
- }
25
- return false;
26
- }));
27
- }
28
- }
29
- ProfilsGuard.ɵfac = function ProfilsGuard_Factory(t) { return new (t || ProfilsGuard)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.ConfigService), i0.ɵɵinject(i3.Router)); };
30
- ProfilsGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProfilsGuard, factory: ProfilsGuard.ɵfac, providedIn: 'root' });
31
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProfilsGuard, [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlscy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvZmlscy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFRckMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsTUFBOEIsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsSUFDRSxPQUFPO2dCQUNQLE9BQU8sQ0FBQyxPQUFPO2dCQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDcEU7Z0JBQ0EsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFekMsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xEO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7d0VBNUJVLFlBQVk7a0VBQVosWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDYW5BY3RpdmF0ZSxcclxuICBSb3V0ZXIsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbHNHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7fVxyXG5cclxuICBjYW5BY3RpdmF0ZShfcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRQcm9maWxzKCkucGlwZShcclxuICAgICAgbWFwKChwcm9maWxzOiB7IHByb2ZpbHM6IHN0cmluZ1tdIH0pID0+IHtcclxuICAgICAgICBjb25zdCBhdXRoQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJyk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgcHJvZmlscyAmJlxyXG4gICAgICAgICAgcHJvZmlscy5wcm9maWxzICYmXHJcbiAgICAgICAgICBwcm9maWxzLnByb2ZpbHMuc29tZSh2ID0+IGF1dGhDb25maWcucHJvZmlsc0d1YXJkLmluZGV4T2YodikgIT09IC0xKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJlZGlyZWN0VXJsID0gc3RhdGUudXJsO1xyXG5cclxuICAgICAgICBpZiAoYXV0aENvbmZpZyAmJiBhdXRoQ29uZmlnLmxvZ2luUm91dGUpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./auth.service";
5
+ import * as i2 from "@igo2/core";
6
+ import * as i3 from "@angular/router";
7
+ export class ProfilsGuard {
8
+ constructor(authService, config, router) {
9
+ this.authService = authService;
10
+ this.config = config;
11
+ this.router = router;
12
+ }
13
+ canActivate(_route, state) {
14
+ return this.authService.getProfils().pipe(map((profils) => {
15
+ const authConfig = this.config.getConfig('auth');
16
+ if (profils &&
17
+ profils.profils &&
18
+ profils.profils.some(v => authConfig.profilsGuard.indexOf(v) !== -1)) {
19
+ return true;
20
+ }
21
+ this.authService.redirectUrl = state.url;
22
+ if (authConfig && authConfig.loginRoute) {
23
+ this.router.navigateByUrl(authConfig.loginRoute);
24
+ }
25
+ return false;
26
+ }));
27
+ }
28
+ }
29
+ ProfilsGuard.ɵfac = function ProfilsGuard_Factory(t) { return new (t || ProfilsGuard)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.ConfigService), i0.ɵɵinject(i3.Router)); };
30
+ ProfilsGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProfilsGuard, factory: ProfilsGuard.ɵfac, providedIn: 'root' });
31
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProfilsGuard, [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root'
35
+ }]
36
+ }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlscy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvZmlscy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFRckMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsTUFBOEIsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsSUFDRSxPQUFPO2dCQUNQLE9BQU8sQ0FBQyxPQUFPO2dCQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDcEU7Z0JBQ0EsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFekMsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xEO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7d0VBNUJVLFlBQVk7a0VBQVosWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhbkFjdGl2YXRlLFxuICBSb3V0ZXIsXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIFJvdXRlclN0YXRlU25hcHNob3Rcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbHNHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgY2FuQWN0aXZhdGUoX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFByb2ZpbHMoKS5waXBlKFxuICAgICAgbWFwKChwcm9maWxzOiB7IHByb2ZpbHM6IHN0cmluZ1tdIH0pID0+IHtcbiAgICAgICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJvZmlscyAmJlxuICAgICAgICAgIHByb2ZpbHMucHJvZmlscyAmJlxuICAgICAgICAgIHByb2ZpbHMucHJvZmlscy5zb21lKHYgPT4gYXV0aENvbmZpZy5wcm9maWxzR3VhcmQuaW5kZXhPZih2KSAhPT0gLTEpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcblxuICAgICAgICBpZiAoYXV0aENvbmZpZyAmJiBhdXRoQ29uZmlnLmxvZ2luUm91dGUpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGF1dGhDb25maWcubG9naW5Sb3V0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,19 +1,19 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./auth.service";
4
- export class ProtectedDirective {
5
- constructor(authentication, el) {
6
- if (!authentication.isAuthenticated()) {
7
- el.nativeElement.parentNode.removeChild(el.nativeElement);
8
- }
9
- }
10
- }
11
- ProtectedDirective.ɵfac = function ProtectedDirective_Factory(t) { return new (t || ProtectedDirective)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
12
- ProtectedDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ProtectedDirective, selectors: [["", "igoProtected", ""]] });
13
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProtectedDirective, [{
14
- type: Directive,
15
- args: [{
16
- selector: '[igoProtected]'
17
- }]
18
- }], function () { return [{ type: i1.AuthService }, { type: i0.ElementRef }]; }, null); })();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdGVjdGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvdGVjdGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFZLGNBQTJCLEVBQUUsRUFBYztRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3JDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDOztvRkFMVSxrQkFBa0I7cUVBQWxCLGtCQUFrQjt1RkFBbEIsa0JBQWtCO2NBSDlCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbaWdvUHJvdGVjdGVkXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3RlY3RlZERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IoYXV0aGVudGljYXRpb246IEF1dGhTZXJ2aWNlLCBlbDogRWxlbWVudFJlZikge1xyXG4gICAgaWYgKCFhdXRoZW50aWNhdGlvbi5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICBlbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./auth.service";
4
+ export class ProtectedDirective {
5
+ constructor(authentication, el) {
6
+ if (!authentication.isAuthenticated()) {
7
+ el.nativeElement.parentNode.removeChild(el.nativeElement);
8
+ }
9
+ }
10
+ }
11
+ ProtectedDirective.ɵfac = function ProtectedDirective_Factory(t) { return new (t || ProtectedDirective)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
12
+ ProtectedDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ProtectedDirective, selectors: [["", "igoProtected", ""]] });
13
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProtectedDirective, [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[igoProtected]'
17
+ }]
18
+ }], function () { return [{ type: i1.AuthService }, { type: i0.ElementRef }]; }, null); })();
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdGVjdGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvdGVjdGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFZLGNBQTJCLEVBQUUsRUFBYztRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3JDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDOztvRkFMVSxrQkFBa0I7cUVBQWxCLGtCQUFrQjt1RkFBbEIsa0JBQWtCO2NBSDlCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lnb1Byb3RlY3RlZF0nXG59KVxuZXhwb3J0IGNsYXNzIFByb3RlY3RlZERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKGF1dGhlbnRpY2F0aW9uOiBBdXRoU2VydmljZSwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBpZiAoIWF1dGhlbnRpY2F0aW9uLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICBlbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL3N0b3JhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRoU3RvcmFnZU9wdGlvbnMgZXh0ZW5kcyBTdG9yYWdlT3B0aW9ucyB7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbn1cclxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL3N0b3JhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhTdG9yYWdlT3B0aW9ucyBleHRlbmRzIFN0b3JhZ2VPcHRpb25zIHtcbiAgdXJsOiBzdHJpbmc7XG59XG4iXX0=