@igo2/auth 18.0.0 → 18.0.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/fesm2022/igo2-auth-facebook.mjs +3 -3
  2. package/fesm2022/igo2-auth-facebook.mjs.map +1 -1
  3. package/fesm2022/igo2-auth-form.mjs +8 -8
  4. package/fesm2022/igo2-auth-form.mjs.map +1 -1
  5. package/fesm2022/igo2-auth-google.mjs +3 -3
  6. package/fesm2022/igo2-auth-google.mjs.map +1 -1
  7. package/fesm2022/igo2-auth-internal.mjs +4 -4
  8. package/fesm2022/igo2-auth-internal.mjs.map +1 -1
  9. package/fesm2022/igo2-auth-microsoft.mjs +14 -14
  10. package/fesm2022/igo2-auth-microsoft.mjs.map +1 -1
  11. package/fesm2022/igo2-auth-monitoring.mjs +8 -10
  12. package/fesm2022/igo2-auth-monitoring.mjs.map +1 -1
  13. package/fesm2022/igo2-auth.mjs +24 -24
  14. package/fesm2022/igo2-auth.mjs.map +1 -1
  15. package/form/src/auth-form/auth-intern.theme.scss +3 -2
  16. package/monitoring/auth-monitoring/auth-monitoring.provider.d.ts +2 -2
  17. package/package.json +10 -26
  18. package/esm2022/environment/environment.interface.mjs +0 -2
  19. package/esm2022/environment/igo2-auth-environment.mjs +0 -5
  20. package/esm2022/environment/public_api.mjs +0 -2
  21. package/esm2022/facebook/auth-facebook/auth-facebook.component.mjs +0 -65
  22. package/esm2022/facebook/igo2-auth-facebook.mjs +0 -5
  23. package/esm2022/facebook/public_api.mjs +0 -3
  24. package/esm2022/facebook/shared/auth-facebook.interface.mjs +0 -2
  25. package/esm2022/facebook/shared/index.mjs +0 -2
  26. package/esm2022/form/auth-form/auth-form.component.mjs +0 -166
  27. package/esm2022/form/auth-form.module.mjs +0 -73
  28. package/esm2022/form/igo2-auth-form.mjs +0 -5
  29. package/esm2022/form/public_api.mjs +0 -7
  30. package/esm2022/form/shared/auth-form.interface.mjs +0 -2
  31. package/esm2022/form/shared/index.mjs +0 -2
  32. package/esm2022/google/auth-google/auth-google.component.mjs +0 -108
  33. package/esm2022/google/igo2-auth-google.mjs +0 -5
  34. package/esm2022/google/public_api.mjs +0 -3
  35. package/esm2022/google/shared/auth-google.interface.mjs +0 -2
  36. package/esm2022/google/shared/index.mjs +0 -2
  37. package/esm2022/igo2-auth.mjs +0 -5
  38. package/esm2022/internal/auth-intern/auth-intern.component.mjs +0 -84
  39. package/esm2022/internal/igo2-auth-internal.mjs +0 -5
  40. package/esm2022/internal/public_api.mjs +0 -2
  41. package/esm2022/lib/auth.provider.mjs +0 -22
  42. package/esm2022/lib/shared/admin.guard.mjs +0 -38
  43. package/esm2022/lib/shared/auth-storage.interface.mjs +0 -2
  44. package/esm2022/lib/shared/auth-storage.service.mjs +0 -100
  45. package/esm2022/lib/shared/auth.guard.mjs +0 -38
  46. package/esm2022/lib/shared/auth.interceptor.mjs +0 -159
  47. package/esm2022/lib/shared/auth.interface.mjs +0 -5
  48. package/esm2022/lib/shared/auth.service.mjs +0 -175
  49. package/esm2022/lib/shared/index.mjs +0 -12
  50. package/esm2022/lib/shared/logged.guard.mjs +0 -38
  51. package/esm2022/lib/shared/profils.guard.mjs +0 -43
  52. package/esm2022/lib/shared/token.interface.mjs +0 -2
  53. package/esm2022/lib/shared/token.service.mjs +0 -48
  54. package/esm2022/microsoft/auth-microsoft/auth-microsoft.component.mjs +0 -100
  55. package/esm2022/microsoft/auth-microsoft.provider.mjs +0 -104
  56. package/esm2022/microsoft/auth-microsoftb2c/auth-microsoftb2c.component.mjs +0 -98
  57. package/esm2022/microsoft/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.mjs +0 -47
  58. package/esm2022/microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.mjs +0 -85
  59. package/esm2022/microsoft/igo2-auth-microsoft.mjs +0 -5
  60. package/esm2022/microsoft/public_api.mjs +0 -5
  61. package/esm2022/microsoft/shared/auth-microsoft.interface.mjs +0 -2
  62. package/esm2022/microsoft/shared/index.mjs +0 -2
  63. package/esm2022/monitoring/auth-monitoring/auth-monitoring.provider.mjs +0 -24
  64. package/esm2022/monitoring/auth-monitoring/auth-monitoring.service.mjs +0 -54
  65. package/esm2022/monitoring/igo2-auth-monitoring.mjs +0 -5
  66. package/esm2022/monitoring/public_api.mjs +0 -3
  67. package/esm2022/public_api.mjs +0 -6
@@ -1,22 +0,0 @@
1
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
- import { makeEnvironmentProviders } from '@angular/core';
3
- import { StorageService } from '@igo2/core/storage';
4
- import { AuthInterceptor, AuthStorageService } from './shared';
5
- export function provideAuthentification(...features) {
6
- const providers = [
7
- {
8
- provide: HTTP_INTERCEPTORS,
9
- useClass: AuthInterceptor,
10
- multi: true
11
- },
12
- {
13
- provide: StorageService,
14
- useClass: AuthStorageService
15
- }
16
- ];
17
- for (const feature of features) {
18
- providers.push(...feature.providers);
19
- }
20
- return makeEnvironmentProviders(providers);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9hdXRoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFHTCx3QkFBd0IsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFHTCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ25CLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsR0FBRyxRQUF3QztJQUUzQyxNQUFNLFNBQVMsR0FBZTtRQUM1QjtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLGVBQWU7WUFDekIsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsUUFBUSxFQUFFLGtCQUFrQjtTQUM3QjtLQUNGLENBQUM7SUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFByb3ZpZGVyLFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9zdG9yYWdlJztcblxuaW1wb3J0IHtcbiAgQXV0aEZlYXR1cmUsXG4gIEF1dGhGZWF0dXJlS2luZCxcbiAgQXV0aEludGVyY2VwdG9yLFxuICBBdXRoU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnLi9zaGFyZWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF1dGhlbnRpZmljYXRpb24oXG4gIC4uLmZlYXR1cmVzOiBBdXRoRmVhdHVyZTxBdXRoRmVhdHVyZUtpbmQ+W11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IEF1dGhJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTdG9yYWdlU2VydmljZSxcbiAgICAgIHVzZUNsYXNzOiBBdXRoU3RvcmFnZVNlcnZpY2VcbiAgICB9XG4gIF07XG5cbiAgZm9yIChjb25zdCBmZWF0dXJlIG9mIGZlYXR1cmVzKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goLi4uZmVhdHVyZS5wcm92aWRlcnMpO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
@@ -1,38 +0,0 @@
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 AdminGuard {
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.isAdmin) {
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: AdminGuard, 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: AdminGuard, providedIn: 'root' });
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdminGuard, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2FkbWluLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLE1BQU0sRUFFUCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxVQUFVO0lBRVg7SUFDQTtJQUNBO0lBSFYsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUV6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQWdCLENBQUM7UUFDaEUsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBcEJVLFVBQVU7NEdBQVYsVUFBVSxjQUZULE1BQU07OzRGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IEF1dGhPcHRpb25zIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5HdWFyZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmlzQWRtaW4pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XG5cbiAgICBjb25zdCBhdXRoQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgYXMgQXV0aE9wdGlvbnM7XG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdG9yYWdlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC1zdG9yYWdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmFnZU9wdGlvbnMgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhTdG9yYWdlT3B0aW9ucyBleHRlbmRzIFN0b3JhZ2VPcHRpb25zIHtcbiAgdXJsOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,100 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { ConfigService } from '@igo2/core/config';
4
- import { BaseStorage, StorageScope } from '@igo2/core/storage';
5
- import { AuthService } from './auth.service';
6
- import { TokenService } from './token.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@igo2/core/config";
9
- import * as i2 from "@angular/common/http";
10
- import * as i3 from "./auth.service";
11
- import * as i4 from "./token.service";
12
- export class AuthStorageService extends BaseStorage {
13
- http;
14
- authService;
15
- tokenService;
16
- constructor(config, http, authService, tokenService) {
17
- super(config);
18
- this.http = http;
19
- this.authService = authService;
20
- this.tokenService = tokenService;
21
- this.authService.authenticate$.subscribe((isAuthenticated) => {
22
- if (isAuthenticated && this.options.url) {
23
- this.http
24
- .get(this.options.url)
25
- .subscribe((userIgo) => {
26
- if (userIgo && userIgo.preference) {
27
- for (const key of Object.keys(userIgo.preference)) {
28
- const value = userIgo.preference[key];
29
- super.set(key, value);
30
- }
31
- }
32
- });
33
- }
34
- });
35
- }
36
- set(key, value, scope = StorageScope.LOCAL) {
37
- if (scope === StorageScope.LOCAL &&
38
- this.authService.authenticated &&
39
- this.options.url) {
40
- const preference = {};
41
- preference[key] = value;
42
- this.http.patch(this.options.url, { preference }).subscribe();
43
- }
44
- super.set(key, value, scope);
45
- }
46
- remove(key, scope = StorageScope.LOCAL) {
47
- if (scope === StorageScope.LOCAL &&
48
- this.authService.authenticated &&
49
- this.options.url) {
50
- const preference = {};
51
- preference[key] = undefined;
52
- this.http.patch(this.options.url, { preference }).subscribe();
53
- }
54
- super.remove(key, scope);
55
- }
56
- clear(scope = StorageScope.LOCAL) {
57
- if (scope === StorageScope.LOCAL &&
58
- this.authService.authenticated &&
59
- this.options.url) {
60
- this.http
61
- .patch(this.options.url, { preference: {} }, {
62
- params: {
63
- mergePreference: 'false'
64
- }
65
- })
66
- .subscribe();
67
- }
68
- let token;
69
- if (scope === StorageScope.LOCAL) {
70
- token = this.tokenService.get();
71
- }
72
- super.clear(scope);
73
- if (token) {
74
- this.tokenService.set(token);
75
- }
76
- if (scope === StorageScope.LOCAL &&
77
- this.authService.authenticated &&
78
- this.options.url) {
79
- this.http
80
- .get(this.options.url)
81
- .subscribe((userIgo) => {
82
- if (userIgo && userIgo.preference) {
83
- for (const key of Object.keys(userIgo.preference)) {
84
- const value = userIgo.preference[key];
85
- super.set(key, value);
86
- }
87
- }
88
- });
89
- }
90
- }
91
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthStorageService, deps: [{ token: i1.ConfigService }, { token: i2.HttpClient }, { token: i3.AuthService }, { token: i4.TokenService }], target: i0.ɵɵFactoryTarget.Injectable });
92
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthStorageService, providedIn: 'root' });
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthStorageService, decorators: [{
95
- type: Injectable,
96
- args: [{
97
- providedIn: 'root'
98
- }]
99
- }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.HttpClient }, { type: i3.AuthService }, { type: i4.TokenService }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2F1dGgtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUsvQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBK0I7SUFHM0Q7SUFDQTtJQUNBO0lBSlYsWUFDRSxNQUFxQixFQUNiLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUpOLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFJbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDM0QsSUFBSSxlQUFlLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLElBQUk7cUJBQ04sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO3FCQUNyQixTQUFTLENBQUMsQ0FBQyxPQUErQixFQUFFLEVBQUU7b0JBQzdDLElBQUksT0FBTyxJQUFJLE9B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QUFHLEVBQ2hCLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSTtpQkFDTixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ3JCLFNBQVMsQ0FBQyxDQUFDLE9BQStCLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7d0JBQ2xELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUN4QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO3dHQXJHVSxrQkFBa0I7NEdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IEJhc2VTdG9yYWdlLCBTdG9yYWdlU2NvcGUgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuXG5pbXBvcnQgeyBBdXRoU3RvcmFnZU9wdGlvbnMgfSBmcm9tICcuL2F1dGgtc3RvcmFnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU3RvcmFnZTxBdXRoU3RvcmFnZU9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGNvbmZpZyk7XG5cbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKChpc0F1dGhlbnRpY2F0ZWQpID0+IHtcbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQgJiYgdGhpcy5vcHRpb25zLnVybCkge1xuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAuZ2V0KHRoaXMub3B0aW9ucy51cmwpXG4gICAgICAgICAgLnN1YnNjcmliZSgodXNlcklnbzogeyBwcmVmZXJlbmNlOiBvYmplY3QgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKHVzZXJJZ28gJiYgdXNlcklnby5wcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVzZXJJZ28ucHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVzZXJJZ28ucHJlZmVyZW5jZVtrZXldO1xuICAgICAgICAgICAgICAgIHN1cGVyLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0KFxuICAgIGtleTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBvYmplY3QgfCBib29sZWFuIHwgbnVtYmVyLFxuICAgIHNjb3BlOiBTdG9yYWdlU2NvcGUgPSBTdG9yYWdlU2NvcGUuTE9DQUxcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgc2NvcGUgPT09IFN0b3JhZ2VTY29wZS5MT0NBTCAmJlxuICAgICAgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkICYmXG4gICAgICB0aGlzLm9wdGlvbnMudXJsXG4gICAgKSB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlID0ge307XG4gICAgICBwcmVmZXJlbmNlW2tleV0gPSB2YWx1ZTtcbiAgICAgIHRoaXMuaHR0cC5wYXRjaCh0aGlzLm9wdGlvbnMudXJsLCB7IHByZWZlcmVuY2UgfSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHN1cGVyLnNldChrZXksIHZhbHVlLCBzY29wZSk7XG4gIH1cblxuICByZW1vdmUoa2V5OiBzdHJpbmcsIHNjb3BlOiBTdG9yYWdlU2NvcGUgPSBTdG9yYWdlU2NvcGUuTE9DQUwpIHtcbiAgICBpZiAoXG4gICAgICBzY29wZSA9PT0gU3RvcmFnZVNjb3BlLkxPQ0FMICYmXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQgJiZcbiAgICAgIHRoaXMub3B0aW9ucy51cmxcbiAgICApIHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2UgPSB7fTtcbiAgICAgIHByZWZlcmVuY2Vba2V5XSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuaHR0cC5wYXRjaCh0aGlzLm9wdGlvbnMudXJsLCB7IHByZWZlcmVuY2UgfSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHN1cGVyLnJlbW92ZShrZXksIHNjb3BlKTtcbiAgfVxuXG4gIGNsZWFyKHNjb3BlOiBTdG9yYWdlU2NvcGUgPSBTdG9yYWdlU2NvcGUuTE9DQUwpIHtcbiAgICBpZiAoXG4gICAgICBzY29wZSA9PT0gU3RvcmFnZVNjb3BlLkxPQ0FMICYmXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQgJiZcbiAgICAgIHRoaXMub3B0aW9ucy51cmxcbiAgICApIHtcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAucGF0Y2goXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnVybCxcbiAgICAgICAgICB7IHByZWZlcmVuY2U6IHt9IH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgIG1lcmdlUHJlZmVyZW5jZTogJ2ZhbHNlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbGV0IHRva2VuOiBzdHJpbmc7XG4gICAgaWYgKHNjb3BlID09PSBTdG9yYWdlU2NvcGUuTE9DQUwpIHtcbiAgICAgIHRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuXG4gICAgc3VwZXIuY2xlYXIoc2NvcGUpO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQodG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHNjb3BlID09PSBTdG9yYWdlU2NvcGUuTE9DQUwgJiZcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCAmJlxuICAgICAgdGhpcy5vcHRpb25zLnVybFxuICAgICkge1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQodGhpcy5vcHRpb25zLnVybClcbiAgICAgICAgLnN1YnNjcmliZSgodXNlcklnbzogeyBwcmVmZXJlbmNlOiBvYmplY3QgfSkgPT4ge1xuICAgICAgICAgIGlmICh1c2VySWdvICYmIHVzZXJJZ28ucHJlZmVyZW5jZSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXNlcklnby5wcmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVzZXJJZ28ucHJlZmVyZW5jZVtrZXldO1xuICAgICAgICAgICAgICBzdXBlci5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,38 +0,0 @@
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 AuthGuard {
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.authenticated) {
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: AuthGuard, 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: AuthGuard, providedIn: 'root' });
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUs3QyxNQUFNLE9BQU8sU0FBUztJQUVWO0lBQ0E7SUFDQTtJQUhWLFlBQ1UsV0FBd0IsRUFDeEIsTUFBcUIsRUFDckIsTUFBYztRQUZkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1FBQ2hFLElBQUksVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQXBCVSxTQUFTOzRHQUFULFNBQVMsY0FGUixNQUFNOzs0RkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuXG5pbXBvcnQgeyBBdXRoT3B0aW9ucyB9IGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XG5cbiAgICBjb25zdCBhdXRoQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgYXMgQXV0aE9wdGlvbnM7XG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,159 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { ConfigService } from '@igo2/core/config';
4
- import { Md5 } from 'ts-md5';
5
- import { TokenService } from './token.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@igo2/core/config";
8
- import * as i2 from "./token.service";
9
- import * as i3 from "@angular/common/http";
10
- export class AuthInterceptor {
11
- config;
12
- tokenService;
13
- http;
14
- authOptions;
15
- refreshInProgress = false;
16
- trustHosts;
17
- hostsWithCredentials;
18
- hostsWithAuthByKey;
19
- constructor(config, tokenService, http) {
20
- this.config = config;
21
- this.tokenService = tokenService;
22
- this.http = http;
23
- this.authOptions = this.config.getConfig('auth');
24
- this.trustHosts = this.authOptions?.trustHosts || [];
25
- this.trustHosts.push(window.location.hostname);
26
- this.hostsWithCredentials = this.authOptions?.hostsWithCredentials || [];
27
- this.hostsWithAuthByKey = this.authOptions?.hostsByKey || [];
28
- }
29
- intercept(originalReq, next) {
30
- const withCredentials = this.handleHostsWithCredentials(originalReq.url);
31
- let req = originalReq.clone();
32
- const hostWithKey = this.handleHostsAuthByKey(originalReq.url);
33
- if (hostWithKey) {
34
- req = req.clone({
35
- params: req.params.set(hostWithKey.key, hostWithKey.value)
36
- });
37
- }
38
- if (withCredentials) {
39
- req = originalReq.clone({
40
- withCredentials
41
- });
42
- return next.handle(req);
43
- }
44
- this.refreshToken();
45
- const token = this.tokenService.get();
46
- const element = document.createElement('a');
47
- element.href = req.url;
48
- if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
49
- return next.handle(req);
50
- }
51
- const authHeader = `Bearer ${token}`;
52
- let authReq = req.clone({
53
- headers: req.headers.set('Authorization', authHeader)
54
- });
55
- const tokenDecoded = this.tokenService.decode();
56
- if (authReq.params.get('_i') === 'true' && tokenDecoded?.user?.sourceId) {
57
- const hashUser = Md5.hashStr(tokenDecoded.user.sourceId);
58
- authReq = authReq.clone({
59
- params: authReq.params.set('_i', hashUser)
60
- });
61
- }
62
- else if (authReq.params.get('_i') === 'true') {
63
- authReq = authReq.clone({
64
- params: authReq.params.delete('_i')
65
- });
66
- }
67
- return next.handle(authReq);
68
- }
69
- interceptXhr(xhr, url) {
70
- const withCredentials = this.handleHostsWithCredentials(url);
71
- if (withCredentials) {
72
- xhr.withCredentials = withCredentials;
73
- return true;
74
- }
75
- this.refreshToken();
76
- const element = document.createElement('a');
77
- element.href = url;
78
- const token = this.tokenService.get();
79
- if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
80
- return false;
81
- }
82
- xhr.setRequestHeader('Authorization', 'Bearer ' + token);
83
- return true;
84
- }
85
- alterUrlWithKeyAuth(url) {
86
- const hostWithKey = this.handleHostsAuthByKey(url);
87
- const interceptedUrl = url;
88
- if (hostWithKey) {
89
- const urlDecomposed = interceptedUrl.split(/[?&]/);
90
- let urlWithKeyAdded = urlDecomposed.shift();
91
- const paramsToKeep = urlDecomposed.filter((p) => p.length !== 0);
92
- paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);
93
- if (paramsToKeep.length) {
94
- urlWithKeyAdded += '?' + paramsToKeep.join('&');
95
- }
96
- return urlWithKeyAdded;
97
- }
98
- return;
99
- }
100
- handleHostsWithCredentials(reqUrl) {
101
- let withCredentials = false;
102
- for (const hostWithCredentials of this.hostsWithCredentials) {
103
- const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);
104
- if (domainRegex.test(reqUrl)) {
105
- withCredentials =
106
- hostWithCredentials.withCredentials !== undefined
107
- ? hostWithCredentials.withCredentials
108
- : undefined;
109
- break;
110
- }
111
- }
112
- return withCredentials;
113
- }
114
- handleHostsAuthByKey(reqUrl) {
115
- let hostWithKey;
116
- for (const hostWithAuthByKey of this.hostsWithAuthByKey) {
117
- const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);
118
- if (domainRegex.test(reqUrl)) {
119
- const replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;
120
- const keyAdded = new RegExp(replace, 'gm');
121
- if (!keyAdded.test(reqUrl)) {
122
- hostWithKey = {
123
- key: hostWithAuthByKey.keyProperty,
124
- value: hostWithAuthByKey.keyValue
125
- };
126
- break;
127
- }
128
- }
129
- }
130
- return hostWithKey;
131
- }
132
- refreshToken() {
133
- const jwt = this.tokenService.decode();
134
- const currentTime = new Date().getTime() / 1000;
135
- if (!this.refreshInProgress &&
136
- jwt &&
137
- currentTime < jwt.exp &&
138
- currentTime > jwt.exp - 1800) {
139
- this.refreshInProgress = true;
140
- const url = this.authOptions?.url;
141
- return this.http.post(`${url}/refresh`, {}).subscribe((data) => {
142
- this.tokenService.set(data.token);
143
- this.refreshInProgress = false;
144
- }, (err) => {
145
- err.error.caught = true;
146
- return err;
147
- });
148
- }
149
- }
150
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.ConfigService }, { token: i2.TokenService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
151
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, providedIn: 'root' });
152
- }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, decorators: [{
154
- type: Injectable,
155
- args: [{
156
- providedIn: 'root'
157
- }]
158
- }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.TokenService }, { type: i3.HttpClient }] });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQU83QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBSy9DLE1BQU0sT0FBTyxlQUFlO0lBUWhCO0lBQ0E7SUFDQTtJQVRGLFdBQVcsQ0FBYztJQUN6QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsVUFBVSxDQUFXO0lBQ3JCLG9CQUFvQixDQUEyQjtJQUMvQyxrQkFBa0IsQ0FBcUI7SUFFL0MsWUFDVSxNQUFxQixFQUNyQixZQUEwQixFQUMxQixJQUFnQjtRQUZoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFFeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQWdCLENBQUM7UUFFaEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsSUFBSSxFQUFF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QUFDO2dCQUN4QixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7d0dBaktVLGVBQWU7NEdBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEh0dHBFdmVudCxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZDUgfSBmcm9tICd0cy1tZDUnO1xuXG5pbXBvcnQge1xuICBBdXRoQnlLZXlPcHRpb25zLFxuICBBdXRoT3B0aW9ucyxcbiAgV2l0aENyZWRlbnRpYWxzT3B0aW9uc1xufSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xuICBwcml2YXRlIHJlZnJlc2hJblByb2dyZXNzID0gZmFsc2U7XG4gIHByaXZhdGUgdHJ1c3RIb3N0czogc3RyaW5nW107XG4gIHByaXZhdGUgaG9zdHNXaXRoQ3JlZGVudGlhbHM6IFdpdGhDcmVkZW50aWFsc09wdGlvbnNbXTtcbiAgcHJpdmF0ZSBob3N0c1dpdGhBdXRoQnlLZXk6IEF1dGhCeUtleU9wdGlvbnNbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICB0aGlzLmF1dGhPcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgYXMgQXV0aE9wdGlvbnM7XG5cbiAgICB0aGlzLnRydXN0SG9zdHMgPSB0aGlzLmF1dGhPcHRpb25zPy50cnVzdEhvc3RzIHx8IFtdO1xuICAgIHRoaXMudHJ1c3RIb3N0cy5wdXNoKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk7XG5cbiAgICB0aGlzLmhvc3RzV2l0aENyZWRlbnRpYWxzID0gdGhpcy5hdXRoT3B0aW9ucz8uaG9zdHNXaXRoQ3JlZGVudGlhbHMgfHwgW107XG4gICAgdGhpcy5ob3N0c1dpdGhBdXRoQnlLZXkgPSB0aGlzLmF1dGhPcHRpb25zPy5ob3N0c0J5S2V5IHx8IFtdO1xuICB9XG5cbiAgaW50ZXJjZXB0KFxuICAgIG9yaWdpbmFsUmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKG9yaWdpbmFsUmVxLnVybCk7XG4gICAgbGV0IHJlcSA9IG9yaWdpbmFsUmVxLmNsb25lKCk7XG4gICAgY29uc3QgaG9zdFdpdGhLZXkgPSB0aGlzLmhhbmRsZUhvc3RzQXV0aEJ5S2V5KG9yaWdpbmFsUmVxLnVybCk7XG4gICAgaWYgKGhvc3RXaXRoS2V5KSB7XG4gICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICBwYXJhbXM6IHJlcS5wYXJhbXMuc2V0KGhvc3RXaXRoS2V5LmtleSwgaG9zdFdpdGhLZXkudmFsdWUpXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHdpdGhDcmVkZW50aWFscykge1xuICAgICAgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoe1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHNcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuaHJlZiA9IHJlcS51cmw7XG5cbiAgICBpZiAoIXRva2VuIHx8IHRoaXMudHJ1c3RIb3N0cy5pbmRleE9mKGVsZW1lbnQuaG9zdG5hbWUpID09PSAtMSkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXV0aEhlYWRlciA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICAgIGxldCBhdXRoUmVxID0gcmVxLmNsb25lKHtcbiAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGF1dGhIZWFkZXIpXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2tlbkRlY29kZWQgPSB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcbiAgICBpZiAoYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScgJiYgdG9rZW5EZWNvZGVkPy51c2VyPy5zb3VyY2VJZCkge1xuICAgICAgY29uc3QgaGFzaFVzZXIgPSBNZDUuaGFzaFN0cih0b2tlbkRlY29kZWQudXNlci5zb3VyY2VJZCkgYXMgc3RyaW5nO1xuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xuICAgICAgICBwYXJhbXM6IGF1dGhSZXEucGFyYW1zLnNldCgnX2knLCBoYXNoVXNlcilcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScpIHtcbiAgICAgIGF1dGhSZXEgPSBhdXRoUmVxLmNsb25lKHtcbiAgICAgICAgcGFyYW1zOiBhdXRoUmVxLnBhcmFtcy5kZWxldGUoJ19pJylcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKTtcbiAgfVxuXG4gIGludGVyY2VwdFhocih4aHIsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgd2l0aENyZWRlbnRpYWxzID0gdGhpcy5oYW5kbGVIb3N0c1dpdGhDcmVkZW50aWFscyh1cmwpO1xuICAgIGlmICh3aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZWxlbWVudC5ocmVmID0gdXJsO1xuXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgICBpZiAoIXRva2VuIHx8IHRoaXMudHJ1c3RIb3N0cy5pbmRleE9mKGVsZW1lbnQuaG9zdG5hbWUpID09PSAtMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHRva2VuKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFsdGVyVXJsV2l0aEtleUF1dGgodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhvc3RXaXRoS2V5ID0gdGhpcy5oYW5kbGVIb3N0c0F1dGhCeUtleSh1cmwpO1xuICAgIGNvbnN0IGludGVyY2VwdGVkVXJsID0gdXJsO1xuICAgIGlmIChob3N0V2l0aEtleSkge1xuICAgICAgY29uc3QgdXJsRGVjb21wb3NlZCA9IGludGVyY2VwdGVkVXJsLnNwbGl0KC9bPyZdLyk7XG4gICAgICBsZXQgdXJsV2l0aEtleUFkZGVkID0gdXJsRGVjb21wb3NlZC5zaGlmdCgpO1xuICAgICAgY29uc3QgcGFyYW1zVG9LZWVwID0gdXJsRGVjb21wb3NlZC5maWx0ZXIoKHApID0+IHAubGVuZ3RoICE9PSAwKTtcbiAgICAgIHBhcmFtc1RvS2VlcC5wdXNoKGAke2hvc3RXaXRoS2V5LmtleX09JHtob3N0V2l0aEtleS52YWx1ZX1gKTtcbiAgICAgIGlmIChwYXJhbXNUb0tlZXAubGVuZ3RoKSB7XG4gICAgICAgIHVybFdpdGhLZXlBZGRlZCArPSAnPycgKyBwYXJhbXNUb0tlZXAuam9pbignJicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVybFdpdGhLZXlBZGRlZDtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIb3N0c1dpdGhDcmVkZW50aWFscyhyZXFVcmw6IHN0cmluZykge1xuICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGhvc3RXaXRoQ3JlZGVudGlhbHMgb2YgdGhpcy5ob3N0c1dpdGhDcmVkZW50aWFscykge1xuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGhvc3RXaXRoQ3JlZGVudGlhbHMuZG9tYWluUmVnRmlsdGVycyk7XG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdChyZXFVcmwpKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9XG4gICAgICAgICAgaG9zdFdpdGhDcmVkZW50aWFscy53aXRoQ3JlZGVudGlhbHMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBob3N0V2l0aENyZWRlbnRpYWxzLndpdGhDcmVkZW50aWFsc1xuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gd2l0aENyZWRlbnRpYWxzO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIb3N0c0F1dGhCeUtleShyZXFVcmw6IHN0cmluZyk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSB7XG4gICAgbGV0IGhvc3RXaXRoS2V5O1xuICAgIGZvciAoY29uc3QgaG9zdFdpdGhBdXRoQnlLZXkgb2YgdGhpcy5ob3N0c1dpdGhBdXRoQnlLZXkpIHtcbiAgICAgIGNvbnN0IGRvbWFpblJlZ2V4ID0gbmV3IFJlZ0V4cChob3N0V2l0aEF1dGhCeUtleS5kb21haW5SZWdGaWx0ZXJzKTtcbiAgICAgIGlmIChkb21haW5SZWdleC50ZXN0KHJlcVVybCkpIHtcbiAgICAgICAgY29uc3QgcmVwbGFjZSA9IGAke2hvc3RXaXRoQXV0aEJ5S2V5LmtleVByb3BlcnR5fT0ke2hvc3RXaXRoQXV0aEJ5S2V5LmtleVZhbHVlfWA7XG4gICAgICAgIGNvbnN0IGtleUFkZGVkID0gbmV3IFJlZ0V4cChyZXBsYWNlLCAnZ20nKTtcbiAgICAgICAgaWYgKCFrZXlBZGRlZC50ZXN0KHJlcVVybCkpIHtcbiAgICAgICAgICBob3N0V2l0aEtleSA9IHtcbiAgICAgICAgICAgIGtleTogaG9zdFdpdGhBdXRoQnlLZXkua2V5UHJvcGVydHksXG4gICAgICAgICAgICB2YWx1ZTogaG9zdFdpdGhBdXRoQnlLZXkua2V5VmFsdWVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBob3N0V2l0aEtleTtcbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICBjb25zdCBqd3QgPSB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcblxuICAgIGlmIChcbiAgICAgICF0aGlzLnJlZnJlc2hJblByb2dyZXNzICYmXG4gICAgICBqd3QgJiZcbiAgICAgIGN1cnJlbnRUaW1lIDwgand0LmV4cCAmJlxuICAgICAgY3VycmVudFRpbWUgPiBqd3QuZXhwIC0gMTgwMFxuICAgICkge1xuICAgICAgdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYXV0aE9wdGlvbnM/LnVybDtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cmx9L3JlZnJlc2hgLCB7fSkuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xuICAgICAgICAgIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBlcnI7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- export var AuthFeatureKind;
2
- (function (AuthFeatureKind) {
3
- AuthFeatureKind[AuthFeatureKind["Microsoft"] = 0] = "Microsoft";
4
- })(AuthFeatureKind || (AuthFeatureKind = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2F1dGguaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtEQSxNQUFNLENBQU4sSUFBWSxlQUVYO0FBRkQsV0FBWSxlQUFlO0lBQ3pCLCtEQUFhLENBQUE7QUFDZixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlVXNlciB9IGZyb20gJ0BpZ28yL2NvcmUvdXNlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciBleHRlbmRzIEJhc2VVc2VyIHtcbiAgc291cmNlPzogc3RyaW5nO1xuICBzb3VyY2VJZD86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBpc0V4cGlyZWQ/OiBib29sZWFuO1xuICBpc0FkbWluPzogYm9vbGVhbjtcbiAgZGVmYXVsdENvbnRleHRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW5mb3NVc2VyIHtcbiAgdG9rZW5JZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhPcHRpb25zIHtcbiAgdXJsPzogc3RyaW5nO1xuICB0b2tlbktleT86IHN0cmluZztcbiAgYWxsb3dBbm9ueW1vdXM/OiBib29sZWFuO1xuICBsb2dpblJvdXRlPzogc3RyaW5nO1xuICBsb2dvdXRSb3V0ZT86IHN0cmluZztcbiAgaG9tZVJvdXRlPzogc3RyaW5nO1xuICB0cnVzdEhvc3RzPzogc3RyaW5nW107XG4gIHByb2ZpbHNHdWFyZD86IHN0cmluZ1tdO1xuICBob3N0c1dpdGhDcmVkZW50aWFscz86IFdpdGhDcmVkZW50aWFsc09wdGlvbnNbXTtcbiAgaG9zdHNCeUtleT86IEF1dGhCeUtleU9wdGlvbnNbXTtcbiAgaW50ZXJuPzogQXV0aEludGVybk9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEJ5S2V5T3B0aW9ucyB7XG4gIGRvbWFpblJlZ0ZpbHRlcnM/OiBzdHJpbmc7XG4gIGtleVByb3BlcnR5Pzogc3RyaW5nO1xuICBrZXlWYWx1ZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aENyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIGRvbWFpblJlZ0ZpbHRlcnM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEludGVybk9wdGlvbnMge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoRmVhdHVyZTxLaW5kVCBleHRlbmRzIEF1dGhGZWF0dXJlS2luZD4ge1xuICBraW5kOiBLaW5kVDtcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG5leHBvcnQgZW51bSBBdXRoRmVhdHVyZUtpbmQge1xuICBNaWNyb3NvZnQgPSAwXG59XG4iXX0=
@@ -1,175 +0,0 @@
1
- import { HttpClient, HttpHeaders } from '@angular/common/http';
2
- import { Injectable, Optional } from '@angular/core';
3
- import { Router } from '@angular/router';
4
- import { ConfigService } from '@igo2/core/config';
5
- import { LanguageService } from '@igo2/core/language';
6
- import { MessageService } from '@igo2/core/message';
7
- import { Base64 } from '@igo2/utils';
8
- import { BehaviorSubject, of } from 'rxjs';
9
- import { catchError, tap } from 'rxjs/operators';
10
- import { globalCacheBusterNotifier } from 'ts-cacheable';
11
- import { TokenService } from './token.service';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "./token.service";
15
- import * as i3 from "@igo2/core/config";
16
- import * as i4 from "@igo2/core/language";
17
- import * as i5 from "@igo2/core/message";
18
- import * as i6 from "@angular/router";
19
- export class AuthService {
20
- http;
21
- tokenService;
22
- config;
23
- languageService;
24
- messageService;
25
- router;
26
- authenticate$ = new BehaviorSubject(undefined);
27
- logged$ = new BehaviorSubject(undefined);
28
- redirectUrl;
29
- languageForce = false;
30
- anonymous = false;
31
- authOptions;
32
- get hasAuthService() {
33
- return this.authOptions?.url !== undefined;
34
- }
35
- get user() {
36
- const decodedToken = this.decodeToken();
37
- return decodedToken?.user ? decodedToken.user : null;
38
- }
39
- constructor(http, tokenService, config, languageService, messageService, router) {
40
- this.http = http;
41
- this.tokenService = tokenService;
42
- this.config = config;
43
- this.languageService = languageService;
44
- this.messageService = messageService;
45
- this.router = router;
46
- this.authOptions = this.config.getConfig('auth');
47
- this.authenticate$.next(this.authenticated);
48
- this.authenticate$.subscribe((authenticated) => {
49
- this.logged$.next(authenticated);
50
- globalCacheBusterNotifier.next();
51
- });
52
- }
53
- login(username, password) {
54
- const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
55
- const body = {
56
- username,
57
- password: this.encodePassword(password)
58
- };
59
- return this.loginCall(body, myHeader);
60
- }
61
- loginWithToken(token, type, infosUser) {
62
- const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });
63
- const body = {
64
- token,
65
- typeConnection: type,
66
- infosUser
67
- };
68
- return this.loginCall(body, myHeader);
69
- }
70
- loginAnonymous() {
71
- this.anonymous = true;
72
- this.logged$.next(true);
73
- return of(true);
74
- }
75
- refresh() {
76
- return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(tap((data) => {
77
- this.tokenService.set(data.token);
78
- }), catchError((err) => {
79
- err.error.caught = true;
80
- throw err;
81
- }));
82
- }
83
- logout() {
84
- this.anonymous = false;
85
- this.tokenService.remove();
86
- this.authenticate$.next(false);
87
- return of(true);
88
- }
89
- isAuthenticated() {
90
- return !this.tokenService.isExpired();
91
- }
92
- getToken() {
93
- return this.tokenService.get();
94
- }
95
- decodeToken() {
96
- if (this.isAuthenticated()) {
97
- return this.tokenService.decode();
98
- }
99
- return;
100
- }
101
- goToRedirectUrl() {
102
- if (!this.router) {
103
- return;
104
- }
105
- const redirectUrl = this.redirectUrl || this.router.url;
106
- if (redirectUrl === this.authOptions.loginRoute) {
107
- const homeRoute = this.authOptions.homeRoute || '/';
108
- this.router.navigateByUrl(homeRoute);
109
- }
110
- else if (redirectUrl) {
111
- this.router.navigateByUrl(redirectUrl);
112
- }
113
- }
114
- getUserInfo() {
115
- const url = this.authOptions?.url + '/info';
116
- return this.http.get(url);
117
- }
118
- getProfils() {
119
- return this.http.get(`${this.authOptions?.url}/profils`);
120
- }
121
- updateUser(user) {
122
- return this.http.patch(this.authOptions?.url, user);
123
- }
124
- encodePassword(password) {
125
- return Base64.encode(password);
126
- }
127
- // authenticated or anonymous
128
- get logged() {
129
- return this.authenticated || this.isAnonymous;
130
- }
131
- get isAnonymous() {
132
- return this.anonymous;
133
- }
134
- get authenticated() {
135
- return this.isAuthenticated();
136
- }
137
- get isAdmin() {
138
- const token = this.decodeToken();
139
- if (token?.user?.isAdmin) {
140
- return true;
141
- }
142
- return false;
143
- }
144
- loginCall(body, headers) {
145
- return this.http
146
- .post(`${this.authOptions?.url}/login`, body, { headers })
147
- .pipe(tap((data) => {
148
- this.tokenService.set(data.token);
149
- const tokenDecoded = this.decodeToken();
150
- if (tokenDecoded?.user) {
151
- if (tokenDecoded.user.locale && !this.languageForce) {
152
- this.languageService.setLanguage(tokenDecoded.user.locale);
153
- }
154
- if (tokenDecoded.user.isExpired) {
155
- this.messageService.alert('igo.auth.error.Password expired');
156
- }
157
- }
158
- this.authenticate$.next(true);
159
- }), catchError((err) => {
160
- err.error.caught = true;
161
- throw err;
162
- }));
163
- }
164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.TokenService }, { token: i3.ConfigService }, { token: i4.LanguageService }, { token: i5.MessageService }, { token: i6.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
165
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' });
166
- }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
168
- type: Injectable,
169
- args: [{
170
- providedIn: 'root'
171
- }]
172
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TokenService }, { type: i3.ConfigService }, { type: i4.LanguageService }, { type: i5.MessageService }, { type: i6.Router, decorators: [{
173
- type: Optional
174
- }] }] });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUl6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBSy9DLE1BQU0sT0FBTyxXQUFXO0lBa0JaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDWTtJQXRCZixhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7SUFDeEQsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFVLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELFdBQVcsQ0FBUztJQUNwQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsV0FBVyxDQUFjO0lBRWpDLElB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QUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLElBQUksWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN2QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDeEIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzt3R0FoTFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXdCSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgQmFzZTY0IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcblxuaW1wb3J0IHsgQXV0aE9wdGlvbnMsIElJbmZvc1VzZXIsIFVzZXIgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IElnb0p3dFBheWxvYWQgfSBmcm9tICcuL3Rva2VuLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHB1YmxpYyBhdXRoZW50aWNhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgbG9nZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBsYW5ndWFnZUZvcmNlID0gZmFsc2U7XG4gIHByaXZhdGUgYW5vbnltb3VzID0gZmFsc2U7XG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xuXG4gIGdldCBoYXNBdXRoU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoT3B0aW9ucz8udXJsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgdXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGVUb2tlbigpO1xuICAgIHJldHVybiBkZWNvZGVkVG9rZW4/LnVzZXIgPyBkZWNvZGVkVG9rZW4udXNlciA6IG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5hdXRoT3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpO1xuICAgIHRoaXMuYXV0aGVudGljYXRlJC5uZXh0KHRoaXMuYXV0aGVudGljYXRlZCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoYXV0aGVudGljYXRlZCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZWQkLm5leHQoYXV0aGVudGljYXRlZCk7XG4gICAgICBnbG9iYWxDYWNoZUJ1c3Rlck5vdGlmaWVyLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBteUhlYWRlciA9IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgdXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogdGhpcy5lbmNvZGVQYXNzd29yZChwYXNzd29yZClcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcbiAgfVxuXG4gIGxvZ2luV2l0aFRva2VuKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGluZm9zVXNlcj86IElJbmZvc1VzZXJcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbXlIZWFkZXIgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHRva2VuLFxuICAgICAgdHlwZUNvbm5lY3Rpb246IHR5cGUsXG4gICAgICBpbmZvc1VzZXJcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9naW5DYWxsKGJvZHksIG15SGVhZGVyKTtcbiAgfVxuXG4gIGxvZ2luQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHRoaXMuYW5vbnltb3VzID0gdHJ1ZTtcbiAgICB0aGlzLmxvZ2dlZCQubmV4dCh0cnVlKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICByZWZyZXNoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1dGhPcHRpb25zPy51cmx9L3JlZnJlc2hgLCB7fSkucGlwZShcbiAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhLnRva2VuKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2dvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgdGhpcy5hbm9ueW1vdXMgPSBmYWxzZTtcbiAgICB0aGlzLnRva2VuU2VydmljZS5yZW1vdmUoKTtcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZSQubmV4dChmYWxzZSk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50b2tlblNlcnZpY2UuaXNFeHBpcmVkKCk7XG4gIH1cblxuICBnZXRUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIGRlY29kZVRva2VuKCk6IElnb0p3dFBheWxvYWQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG9rZW5TZXJ2aWNlLmRlY29kZSgpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBnb1RvUmVkaXJlY3RVcmwoKSB7XG4gICAgaWYgKCF0aGlzLnJvdXRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWRpcmVjdFVybCA9IHRoaXMucmVkaXJlY3RVcmwgfHwgdGhpcy5yb3V0ZXIudXJsO1xuXG4gICAgaWYgKHJlZGlyZWN0VXJsID09PSB0aGlzLmF1dGhPcHRpb25zLmxvZ2luUm91dGUpIHtcbiAgICAgIGNvbnN0IGhvbWVSb3V0ZSA9IHRoaXMuYXV0aE9wdGlvbnMuaG9tZVJvdXRlIHx8ICcvJztcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaG9tZVJvdXRlKTtcbiAgICB9IGVsc2UgaWYgKHJlZGlyZWN0VXJsKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VXJsKTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2VySW5mbygpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmF1dGhPcHRpb25zPy51cmwgKyAnL2luZm8nO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXI+KHVybCk7XG4gIH1cblxuICBnZXRQcm9maWxzKCk6IE9ic2VydmFibGU8eyBwcm9maWxzOiBzdHJpbmdbXSB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBwcm9maWxzOiBzdHJpbmdbXSB9PihcbiAgICAgIGAke3RoaXMuYXV0aE9wdGlvbnM/LnVybH0vcHJvZmlsc2BcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlVXNlcih1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxVc2VyPih0aGlzLmF1dGhPcHRpb25zPy51cmwsIHVzZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEJhc2U2NC5lbmNvZGUocGFzc3dvcmQpO1xuICB9XG5cbiAgLy8gYXV0aGVudGljYXRlZCBvciBhbm9ueW1vdXNcbiAgZ2V0IGxvZ2dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdGVkIHx8IHRoaXMuaXNBbm9ueW1vdXM7XG4gIH1cblxuICBnZXQgaXNBbm9ueW1vdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzO1xuICB9XG5cbiAgZ2V0IGF1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBdXRoZW50aWNhdGVkKCk7XG4gIH1cblxuICBnZXQgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcbiAgICBpZiAodG9rZW4/LnVzZXI/LmlzQWRtaW4pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGxvZ2luQ2FsbChib2R5LCBoZWFkZXJzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYCR7dGhpcy5hdXRoT3B0aW9ucz8udXJsfS9sb2dpbmAsIGJvZHksIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xuICAgICAgICAgIGNvbnN0IHRva2VuRGVjb2RlZCA9IHRoaXMuZGVjb2RlVG9rZW4oKTtcbiAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkPy51c2VyKSB7XG4gICAgICAgICAgICBpZiAodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlICYmICF0aGlzLmxhbmd1YWdlRm9yY2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2V0TGFuZ3VhZ2UodG9rZW5EZWNvZGVkLnVzZXIubG9jYWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbkRlY29kZWQudXNlci5pc0V4cGlyZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydCgnaWdvLmF1dGguZXJyb3IuUGFzc3dvcmQgZXhwaXJlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0ZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==