valtech-components 4.0.42 → 4.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +53 -5
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +49 -4
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/services/auth/oauth-callback.component.d.ts +21 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, Inject, Optional } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { VALTECH_AUTH_CONFIG } from './config';
|
|
3
4
|
import { SplashComponent } from '../../components/atoms/splash/splash.component';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
import * as i2 from "./auth.service";
|
|
5
8
|
/**
|
|
6
9
|
* Componente de callback para OAuth.
|
|
7
10
|
*
|
|
@@ -26,7 +29,10 @@ import * as i0 from "@angular/core";
|
|
|
26
29
|
* `/auth/oauth/callback?error=INVALID_CODE&error_description=...`
|
|
27
30
|
*/
|
|
28
31
|
export class OAuthCallbackComponent {
|
|
29
|
-
constructor() {
|
|
32
|
+
constructor(router, authService, config) {
|
|
33
|
+
this.router = router;
|
|
34
|
+
this.authService = authService;
|
|
35
|
+
this.config = config;
|
|
30
36
|
this.message = 'Procesando autenticación...';
|
|
31
37
|
/**
|
|
32
38
|
* Nonce que el opener generó y pasó por el flujo (round-trip backend). Se
|
|
@@ -38,6 +44,36 @@ export class OAuthCallbackComponent {
|
|
|
38
44
|
ngOnInit() {
|
|
39
45
|
this.processCallback();
|
|
40
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Indica si este callback corre como la VENTANA PRINCIPAL (flujo redirect),
|
|
49
|
+
* no como popup. El popup se abre con window.name 'oauth'/'oauth-link'
|
|
50
|
+
* (OAuthService), nombre que persiste aunque COOP anule window.opener tras el
|
|
51
|
+
* bounce cross-origin. En la ventana principal nadie consume el localStorage,
|
|
52
|
+
* así que el callback debe instalar la sesión y navegar él mismo.
|
|
53
|
+
*/
|
|
54
|
+
isMainWindow() {
|
|
55
|
+
if (window.name === 'oauth' || window.name === 'oauth-link')
|
|
56
|
+
return false;
|
|
57
|
+
return !window.opener && window.parent === window;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Completa el login en la ventana principal: instala la sesión desde los
|
|
61
|
+
* tokens del callback y navega al home.
|
|
62
|
+
*/
|
|
63
|
+
completeInMainWindow(result) {
|
|
64
|
+
if (!this.authService)
|
|
65
|
+
return false;
|
|
66
|
+
this.authService.setExternalAuth({
|
|
67
|
+
accessToken: result.accessToken,
|
|
68
|
+
refreshToken: result.refreshToken,
|
|
69
|
+
firebaseToken: result.firebaseToken,
|
|
70
|
+
expiresIn: result.expiresIn,
|
|
71
|
+
roles: result.roles,
|
|
72
|
+
permissions: result.permissions,
|
|
73
|
+
});
|
|
74
|
+
this.router.navigateByUrl(this.config?.homeRoute || '/', { replaceUrl: true });
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
41
77
|
processCallback() {
|
|
42
78
|
const params = new URLSearchParams(window.location.search);
|
|
43
79
|
this.clientNonce = params.get('client_nonce');
|
|
@@ -135,6 +171,11 @@ export class OAuthCallbackComponent {
|
|
|
135
171
|
type: 'oauth-callback',
|
|
136
172
|
tokens: result,
|
|
137
173
|
});
|
|
174
|
+
// Flujo redirect (ventana principal, sin opener que consuma el localStorage):
|
|
175
|
+
// instalar la sesión acá mismo y navegar al home, en vez de quedar pegado.
|
|
176
|
+
if (this.isMainWindow() && this.completeInMainWindow(result)) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
138
179
|
this.message = 'Autenticación exitosa';
|
|
139
180
|
this.closeAfterDelay();
|
|
140
181
|
}
|
|
@@ -180,7 +221,7 @@ export class OAuthCallbackComponent {
|
|
|
180
221
|
}
|
|
181
222
|
}, 500);
|
|
182
223
|
}
|
|
183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [{ token: i1.Router }, { token: i2.AuthService, optional: true }, { token: VALTECH_AUTH_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
184
225
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template: `<val-splash />`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SplashComponent, selector: "val-splash", inputs: ["logoLight", "logoDark", "alt"] }] }); }
|
|
185
226
|
}
|
|
186
227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, decorators: [{
|
|
@@ -193,5 +234,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
193
234
|
// casi-duplicado: el callback OAuth es una carga fundamental y debe verse igual.
|
|
194
235
|
template: `<val-splash />`,
|
|
195
236
|
}]
|
|
196
|
-
}] }
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBRWpGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVNFLFlBQU8sR0FBRyw2QkFBNkIsQ0FBQztRQUV4Qzs7OztXQUlHO1FBQ0ssZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO0tBOEozQztJQTVKQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlDLGlDQUFpQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxFQUFFO1lBQ2xELEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQzFDLGVBQWUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUM1QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMs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LEVBQUU7WUFDZCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQXJLVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw4RUFGdkIsZ0JBQWdCLDJEQUhoQixZQUFZLCtCQUFFLGVBQWU7OzRGQUs1QixzQkFBc0I7a0JBUmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7b0JBQ3hDLCtFQUErRTtvQkFDL0UsaUZBQWlGO29CQUNqRixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNwbGFzaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZGUgY2FsbGJhY2sgcGFyYSBPQXV0aC5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgcHJvY2VzYSBsYSByZXNwdWVzdGEgZGVsIHNlcnZpZG9yIE9BdXRoIHkgZW52w61hXG4gKiBsb3MgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZSB2aWEgcG9zdE1lc3NhZ2UuXG4gKlxuICogRGViZSBhZ3JlZ2Fyc2UgYSBsYXMgcnV0YXMgZGUgbGEgYXBsaWNhY2nDs246XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHsgcGF0aDogJ2F1dGgvb2F1dGgvY2FsbGJhY2snLCBjb21wb25lbnQ6IE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgfSxcbiAqICAgLy8gLi4uIG90cmFzIHJ1dGFzXG4gKiBdO1xuICogYGBgXG4gKlxuICogRWwgYmFja2VuZCByZWRpcmlnZSBhIGVzdGEgcnV0YSBjb24gbG9zIHRva2VucyBlbiBxdWVyeSBwYXJhbXM6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/YWNjZXNzX3Rva2VuPXh4eCZyZWZyZXNoX3Rva2VuPXh4eCZleHBpcmVzX2luPTkwMGBcbiAqXG4gKiBPIGNvbiBlcnJvcjpcbiAqIGAvYXV0aC9vYXV0aC9jYWxsYmFjaz9lcnJvcj1JTlZBTElEX0NPREUmZXJyb3JfZGVzY3JpcHRpb249Li4uYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtb2F1dGgtY2FsbGJhY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTcGxhc2hDb21wb25lbnRdLFxuICAvLyBNaXNtbyBzcGxhc2ggZGUgYXJyYW5xdWUgZGUgbGEgYXBwIChsb2dvICsgcHVsc2UpIGVuIHZleiBkZSB1biBsb2FkZXIgcHJvcGlvXG4gIC8vIGNhc2ktZHVwbGljYWRvOiBlbCBjYWxsYmFjayBPQXV0aCBlcyB1bmEgY2FyZ2EgZnVuZGFtZW50YWwgeSBkZWJlIHZlcnNlIGlndWFsLlxuICB0ZW1wbGF0ZTogYDx2YWwtc3BsYXNoIC8+YCxcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1lc3NhZ2UgPSAnUHJvY2VzYW5kbyBhdXRlbnRpY2FjacOzbi4uLic7XG5cbiAgLyoqXG4gICAqIE5vbmNlIHF1ZSBlbCBvcGVuZXIgZ2VuZXLDsyB5IHBhc8OzIHBvciBlbCBmbHVqbyAocm91bmQtdHJpcCBiYWNrZW5kKS4gU2VcbiAgICogcmVlbnbDrWEgYWwgb3BlbmVyIGVuIGNhZGEgbWVuc2FqZSBwYXJhIHF1ZSB2ZXJpZmlxdWUgZWwgb3JpZ2VuIGRlbCBjYWxsYmFja1xuICAgKiB5IHJlY2hhY2UgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIChNLTA3KS5cbiAgICovXG4gIHByaXZhdGUgY2xpZW50Tm9uY2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0NhbGxiYWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIHRoaXMuY2xpZW50Tm9uY2UgPSBwYXJhbXMuZ2V0KCdjbGllbnRfbm9uY2UnKTtcblxuICAgIC8vIERFQlVHOiBMb2cgYWxsIHJlY2VpdmVkIHBhcmFtc1xuICAgIGNvbnNvbGUubG9nKCdbT0F1dGhDYWxsYmFja10gVVJMIHBhcmFtcyByZWNlaXZlZDonLCB7XG4gICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgaGFzQWNjZXNzVG9rZW46IHBhcmFtcy5oYXMoJ2FjY2Vzc190b2tlbicpLFxuICAgICAgaGFzUmVmcmVzaFRva2VuOiBwYXJhbXMuaGFzKCdyZWZyZXNoX3Rva2VuJyksXG4gICAgICBoYXNGaXJlYmFzZVRva2VuOiBwYXJhbXMuaGFzKCdmaXJlYmFzZV90b2tlbicpLFxuICAgICAgZmlyZWJhc2VUb2tlbkxlbmd0aDogcGFyYW1zLmdldCgnZmlyZWJhc2VfdG9rZW4nKT8ubGVuZ3RoIHx8IDAsXG4gICAgICBlcnJvcjogcGFyYW1zLmdldCgnZXJyb3InKSxcbiAgICB9KTtcblxuICAgIC8vIFZlcmlmaWNhciBzaSBoYXkgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHBhcmFtcy5nZXQoJ2Vycm9yJyk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogcGFyYW1zLmdldCgnZXJyb3JfZGVzY3JpcHRpb24nKSB8fCAnRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbic7XG4gICAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1GQSByZXF1ZXJpZG8g4oCUIGVsIGJhY2tlbmQgcmVkaXJpZ2Ugc2luIHRva2VucywgY29uIG1mYV90b2tlbi4gRWwgZmx1am9cbiAgICAvLyBjb250aW7DumEgY29uIGVsIGNoYWxsZW5nZSBNRkEgKEF1dGhTZXJ2aWNlLnNldE1GQVBlbmRpbmcg4oaSIG1vZGFsIHZlcmlmeSkuXG4gICAgaWYgKHBhcmFtcy5nZXQoJ21mYV9yZXF1aXJlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgdG9rZW5zOiB7XG4gICAgICAgICAgYWNjZXNzVG9rZW46ICcnLFxuICAgICAgICAgIHJlZnJlc2hUb2tlbjogJycsXG4gICAgICAgICAgZXhwaXJlc0luOiAwLFxuICAgICAgICAgIG1mYVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1mYVRva2VuOiBwYXJhbXMuZ2V0KCdtZmFfdG9rZW4nKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgbWZhTWV0aG9kOiAocGFyYW1zLmdldCgnbWZhX21ldGhvZCcpIGFzIE1GQU1ldGhvZCkgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnVmVyaWZpY2FjacOzbiBhZGljaW9uYWwgcmVxdWVyaWRhJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciB0b2tlbnNcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHBhcmFtcy5nZXQoJ2FjY2Vzc190b2tlbicpO1xuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHBhcmFtcy5nZXQoJ3JlZnJlc2hfdG9rZW4nKTtcbiAgICBjb25zdCBleHBpcmVzSW4gPSBwYXJhbXMuZ2V0KCdleHBpcmVzX2luJyk7XG4gICAgY29uc3QgZmlyZWJhc2VUb2tlbiA9IHBhcmFtcy5nZXQoJ2ZpcmViYXNlX3Rva2VuJyk7XG5cbiAgICBpZiAoIWFjY2Vzc1Rva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAnTUlTU0lOR19UT0tFTlMnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdObyBzZSByZWNpYmllcm9uIGxvcyB0b2tlbnMgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdFcnJvcjogdG9rZW5zIG5vIHJlY2liaWRvcyc7XG4gICAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgcm9sZXMgeSBwZXJtaXNvcyAocHVlZGVuIHZlbmlyIGNvbW8gSlNPTiBlbiBiYXNlNjQpXG4gICAgbGV0IHJvbGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgcGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgcm9sZXNQYXJhbSA9IHBhcmFtcy5nZXQoJ3JvbGVzJyk7XG4gICAgY29uc3QgcGVybWlzc2lvbnNQYXJhbSA9IHBhcmFtcy5nZXQoJ3Blcm1pc3Npb25zJyk7XG5cbiAgICBpZiAocm9sZXNQYXJhbSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcm9sZXMgPSBKU09OLnBhcnNlKGF0b2Iocm9sZXNQYXJhbSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJvbGVzID0gcm9sZXNQYXJhbS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwZXJtaXNzaW9uc1BhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UoYXRvYihwZXJtaXNzaW9uc1BhcmFtKSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uc1BhcmFtLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW52aWFyIHRva2VucyBhIGxhIHZlbnRhbmEgcGFkcmVcbiAgICBjb25zdCByZXN1bHQ6IE9BdXRoUmVzdWx0ID0ge1xuICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW4sXG4gICAgICBleHBpcmVzSW46IGV4cGlyZXNJbiA/IHBhcnNlSW50KGV4cGlyZXNJbiwgMTApIDogOTAwLFxuICAgICAgZmlyZWJhc2VUb2tlbjogZmlyZWJhc2VUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICByb2xlcyxcbiAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgaXNOZXdVc2VyOiBwYXJhbXMuZ2V0KCdpc19uZXdfdXNlcicpID09PSAndHJ1ZScsXG4gICAgICBsaW5rZWQ6IHBhcmFtcy5nZXQoJ2xpbmtlZCcpID09PSAndHJ1ZScsXG4gICAgfTtcblxuICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICB0b2tlbnM6IHJlc3VsdCxcbiAgICB9KTtcblxuICAgIHRoaXMubWVzc2FnZSA9ICdBdXRlbnRpY2FjacOzbiBleGl0b3NhJztcbiAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9QYXJlbnQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiB2b2lkIHtcbiAgICAvLyBBZGp1bnRhciBlbCBub25jZSBkZWwgb3BlbmVyIChNLTA3KSBhIFRPRE8gbWVuc2FqZSAoc3VjY2VzcywgTUZBLCBlcnJvcilcbiAgICAvLyBwYXJhIHF1ZSBlbCBvcGVuZXIgdmVyaWZpcXVlIHF1ZSBlbCBjYWxsYmFjayBlcyBkZSBzdSBwcm9waW8gZmx1am8uXG4gICAgaWYgKHRoaXMuY2xpZW50Tm9uY2UpIHtcbiAgICAgIGRhdGEubm9uY2UgPSB0aGlzLmNsaWVudE5vbmNlO1xuICAgIH1cblxuICAgIC8vIFNpZW1wcmUgZ3VhcmRhciBlbiBsb2NhbFN0b3JhZ2UgY29tbyBmYWxsYmFjayAocGFyYSBDT09QIGlzc3VlcylcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdbT0F1dGhDYWxsYmFja10gU2F2ZWQgdG8gbG9jYWxTdG9yYWdlIGFzIGZhbGxiYWNrJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbT0F1dGhDYWxsYmFja10gQ291bGQgbm90IHNhdmUgdG8gbG9jYWxTdG9yYWdlOicsIGUpO1xuICAgIH1cblxuICAgIC8vIEludGVudGFyIHBvc3RNZXNzYWdlIChwdWVkZSBmYWxsYXIgcG9yIENPT1ApXG4gICAgdHJ5IHtcbiAgICAgIGlmICh3aW5kb3cub3BlbmVyICYmICF3aW5kb3cub3BlbmVyLmNsb3NlZCkge1xuICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIHNlbnQgdG8gb3BlbmVyJyk7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykge1xuICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIHNlbnQgdG8gcGFyZW50Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIE5vIG9wZW5lci9wYXJlbnQgYXZhaWxhYmxlLCB1c2luZyBsb2NhbFN0b3JhZ2Ugb25seScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENPT1AgYmxvY2tzIHBvc3RNZXNzYWdlIC0gbG9jYWxTdG9yYWdlIGZhbGxiYWNrIGFscmVhZHkgc2F2ZWRcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIGJsb2NrZWQgKENPT1ApLCB1c2luZyBsb2NhbFN0b3JhZ2UgZmFsbGJhY2s6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUFmdGVyRGVsYXkoKTogdm9pZCB7XG4gICAgLy8gRGFyIHRpZW1wbyBwYXJhIHF1ZSBlbCBtZW5zYWplIHNlIGVudsOtZSBhbnRlcyBkZSBjZXJyYXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cbn1cbiJdfQ==
|
|
237
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.AuthService, decorators: [{
|
|
238
|
+
type: Optional
|
|
239
|
+
}] }, { type: undefined, decorators: [{
|
|
240
|
+
type: Optional
|
|
241
|
+
}, {
|
|
242
|
+
type: Inject,
|
|
243
|
+
args: [VALTECH_AUTH_CONFIG]
|
|
244
|
+
}] }] });
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFFakY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFTSCxNQUFNLE9BQU8sc0JBQXNCO0lBVWpDLFlBQ1UsTUFBYyxFQUNGLFdBQStCLEVBQ0YsTUFBZ0M7UUFGekUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNGLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUNGLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBWm5GLFlBQU8sR0FBRyw2QkFBNkIsQ0FBQztRQUV4Qzs7OztXQUlHO1FBQ0ssZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO0lBTXZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxZQUFZO1FBQ2xCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDMUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQixDQUFDLE1BQW1CO1FBQzlDLElBQUks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QUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsMERBQTBEO1FBQzFELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQS9NVSxzQkFBc0IsbUZBYVgsbUJBQW1CO21HQWI5QixzQkFBc0IsOEVBRnZCLGdCQUFnQiwyREFIaEIsWUFBWSwrQkFBRSxlQUFlOzs0RkFLNUIsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QywrRUFBK0U7b0JBQy9FLGlGQUFpRjtvQkFDakYsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OzBCQWFJLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IsIFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2F0b21zL3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21wb25lbnRlIGRlIGNhbGxiYWNrIHBhcmEgT0F1dGguXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIHByb2Nlc2EgbGEgcmVzcHVlc3RhIGRlbCBzZXJ2aWRvciBPQXV0aCB5IGVudsOtYVxuICogbG9zIHRva2VucyBhIGxhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlLlxuICpcbiAqIERlYmUgYWdyZWdhcnNlIGEgbGFzIHJ1dGFzIGRlIGxhIGFwbGljYWNpw7NuOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gYXBwLnJvdXRlcy50c1xuICogaW1wb3J0IHsgT0F1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICogICB7IHBhdGg6ICdhdXRoL29hdXRoL2NhbGxiYWNrJywgY29tcG9uZW50OiBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0sXG4gKiAgIC8vIC4uLiBvdHJhcyBydXRhc1xuICogXTtcbiAqIGBgYFxuICpcbiAqIEVsIGJhY2tlbmQgcmVkaXJpZ2UgYSBlc3RhIHJ1dGEgY29uIGxvcyB0b2tlbnMgZW4gcXVlcnkgcGFyYW1zOlxuICogYC9hdXRoL29hdXRoL2NhbGxiYWNrP2FjY2Vzc190b2tlbj14eHgmcmVmcmVzaF90b2tlbj14eHgmZXhwaXJlc19pbj05MDBgXG4gKlxuICogTyBjb24gZXJyb3I6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/ZXJyb3I9SU5WQUxJRF9DT0RFJmVycm9yX2Rlc2NyaXB0aW9uPS4uLmBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW9hdXRoLWNhbGxiYWNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3BsYXNoQ29tcG9uZW50XSxcbiAgLy8gTWlzbW8gc3BsYXNoIGRlIGFycmFucXVlIGRlIGxhIGFwcCAobG9nbyArIHB1bHNlKSBlbiB2ZXogZGUgdW4gbG9hZGVyIHByb3Bpb1xuICAvLyBjYXNpLWR1cGxpY2FkbzogZWwgY2FsbGJhY2sgT0F1dGggZXMgdW5hIGNhcmdhIGZ1bmRhbWVudGFsIHkgZGViZSB2ZXJzZSBpZ3VhbC5cbiAgdGVtcGxhdGU6IGA8dmFsLXNwbGFzaCAvPmAsXG59KVxuZXhwb3J0IGNsYXNzIE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtZXNzYWdlID0gJ1Byb2Nlc2FuZG8gYXV0ZW50aWNhY2nDs24uLi4nO1xuXG4gIC8qKlxuICAgKiBOb25jZSBxdWUgZWwgb3BlbmVyIGdlbmVyw7MgeSBwYXPDsyBwb3IgZWwgZmx1am8gKHJvdW5kLXRyaXAgYmFja2VuZCkuIFNlXG4gICAqIHJlZW52w61hIGFsIG9wZW5lciBlbiBjYWRhIG1lbnNhamUgcGFyYSBxdWUgdmVyaWZpcXVlIGVsIG9yaWdlbiBkZWwgY2FsbGJhY2tcbiAgICogeSByZWNoYWNlIHVuIG9hdXRoX2NhbGxiYWNrX2RhdGEgZm9yamFkbyBlbiBsb2NhbFN0b3JhZ2UgcG9yIFhTUyAoTS0wNykuXG4gICAqL1xuICBwcml2YXRlIGNsaWVudE5vbmNlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyB8IG51bGxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0NhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhIHNpIGVzdGUgY2FsbGJhY2sgY29ycmUgY29tbyBsYSBWRU5UQU5BIFBSSU5DSVBBTCAoZmx1am8gcmVkaXJlY3QpLFxuICAgKiBubyBjb21vIHBvcHVwLiBFbCBwb3B1cCBzZSBhYnJlIGNvbiB3aW5kb3cubmFtZSAnb2F1dGgnLydvYXV0aC1saW5rJ1xuICAgKiAoT0F1dGhTZXJ2aWNlKSwgbm9tYnJlIHF1ZSBwZXJzaXN0ZSBhdW5xdWUgQ09PUCBhbnVsZSB3aW5kb3cub3BlbmVyIHRyYXMgZWxcbiAgICogYm91bmNlIGNyb3NzLW9yaWdpbi4gRW4gbGEgdmVudGFuYSBwcmluY2lwYWwgbmFkaWUgY29uc3VtZSBlbCBsb2NhbFN0b3JhZ2UsXG4gICAqIGFzw60gcXVlIGVsIGNhbGxiYWNrIGRlYmUgaW5zdGFsYXIgbGEgc2VzacOzbiB5IG5hdmVnYXIgw6lsIG1pc21vLlxuICAgKi9cbiAgcHJpdmF0ZSBpc01haW5XaW5kb3coKTogYm9vbGVhbiB7XG4gICAgaWYgKHdpbmRvdy5uYW1lID09PSAnb2F1dGgnIHx8IHdpbmRvdy5uYW1lID09PSAnb2F1dGgtbGluaycpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXdpbmRvdy5vcGVuZXIgJiYgd2luZG93LnBhcmVudCA9PT0gd2luZG93O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRhIGVsIGxvZ2luIGVuIGxhIHZlbnRhbmEgcHJpbmNpcGFsOiBpbnN0YWxhIGxhIHNlc2nDs24gZGVzZGUgbG9zXG4gICAqIHRva2VucyBkZWwgY2FsbGJhY2sgeSBuYXZlZ2EgYWwgaG9tZS5cbiAgICovXG4gIHByaXZhdGUgY29tcGxldGVJbk1haW5XaW5kb3cocmVzdWx0OiBPQXV0aFJlc3VsdCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5hdXRoU2VydmljZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0RXh0ZXJuYWxBdXRoKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiByZXN1bHQuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW46IHJlc3VsdC5yZWZyZXNoVG9rZW4sXG4gICAgICBmaXJlYmFzZVRva2VuOiByZXN1bHQuZmlyZWJhc2VUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogcmVzdWx0LmV4cGlyZXNJbixcbiAgICAgIHJvbGVzOiByZXN1bHQucm9sZXMsXG4gICAgICBwZXJtaXNzaW9uczogcmVzdWx0LnBlcm1pc3Npb25zLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5jb25maWc/LmhvbWVSb3V0ZSB8fCAnLycsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0NhbGxiYWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgdGhpcy5jbGllbnROb25jZSA9IHBhcmFtcy5nZXQoJ2NsaWVudF9ub25jZScpO1xuXG4gICAgLy8gREVCVUc6IExvZyBhbGwgcmVjZWl2ZWQgcGFyYW1zXG4gICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBVUkwgcGFyYW1zIHJlY2VpdmVkOicsIHtcbiAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICBoYXNBY2Nlc3NUb2tlbjogcGFyYW1zLmhhcygnYWNjZXNzX3Rva2VuJyksXG4gICAgICBoYXNSZWZyZXNoVG9rZW46IHBhcmFtcy5oYXMoJ3JlZnJlc2hfdG9rZW4nKSxcbiAgICAgIGhhc0ZpcmViYXNlVG9rZW46IHBhcmFtcy5oYXMoJ2ZpcmViYXNlX3Rva2VuJyksXG4gICAgICBmaXJlYmFzZVRva2VuTGVuZ3RoOiBwYXJhbXMuZ2V0KCdmaXJlYmFzZV90b2tlbicpPy5sZW5ndGggfHwgMCxcbiAgICAgIGVycm9yOiBwYXJhbXMuZ2V0KCdlcnJvcicpLFxuICAgIH0pO1xuXG4gICAgLy8gVmVyaWZpY2FyIHNpIGhheSBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gcGFyYW1zLmdldCgnZXJyb3InKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiBlcnJvcixcbiAgICAgICAgICBtZXNzYWdlOiBwYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTUZBIHJlcXVlcmlkbyDigJQgZWwgYmFja2VuZCByZWRpcmlnZSBzaW4gdG9rZW5zLCBjb24gbWZhX3Rva2VuLiBFbCBmbHVqb1xuICAgIC8vIGNvbnRpbsO6YSBjb24gZWwgY2hhbGxlbmdlIE1GQSAoQXV0aFNlcnZpY2Uuc2V0TUZBUGVuZGluZyDihpIgbW9kYWwgdmVyaWZ5KS5cbiAgICBpZiAocGFyYW1zLmdldCgnbWZhX3JlcXVpcmVkJykgPT09ICd0cnVlJykge1xuICAgICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgICB0b2tlbnM6IHtcbiAgICAgICAgICBhY2Nlc3NUb2tlbjogJycsXG4gICAgICAgICAgcmVmcmVzaFRva2VuOiAnJyxcbiAgICAgICAgICBleHBpcmVzSW46IDAsXG4gICAgICAgICAgbWZhUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWZhVG9rZW46IHBhcmFtcy5nZXQoJ21mYV90b2tlbicpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICBtZmFNZXRob2Q6IChwYXJhbXMuZ2V0KCdtZmFfbWV0aG9kJykgYXMgTUZBTWV0aG9kKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdWZXJpZmljYWNpw7NuIGFkaWNpb25hbCByZXF1ZXJpZGEnO1xuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWVyIHRva2Vuc1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gcGFyYW1zLmdldCgnYWNjZXNzX3Rva2VuJyk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gcGFyYW1zLmdldCgncmVmcmVzaF90b2tlbicpO1xuICAgIGNvbnN0IGV4cGlyZXNJbiA9IHBhcmFtcy5nZXQoJ2V4cGlyZXNfaW4nKTtcbiAgICBjb25zdCBmaXJlYmFzZVRva2VuID0gcGFyYW1zLmdldCgnZmlyZWJhc2VfdG9rZW4nKTtcblxuICAgIGlmICghYWNjZXNzVG9rZW4gfHwgIXJlZnJlc2hUb2tlbikge1xuICAgICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6ICdNSVNTSU5HX1RPS0VOUycsXG4gICAgICAgICAgbWVzc2FnZTogJ05vIHNlIHJlY2liaWVyb24gbG9zIHRva2VucyBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yOiB0b2tlbnMgbm8gcmVjaWJpZG9zJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciByb2xlcyB5IHBlcm1pc29zIChwdWVkZW4gdmVuaXIgY29tbyBKU09OIGVuIGJhc2U2NClcbiAgICBsZXQgcm9sZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIGxldCBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCByb2xlc1BhcmFtID0gcGFyYW1zLmdldCgncm9sZXMnKTtcbiAgICBjb25zdCBwZXJtaXNzaW9uc1BhcmFtID0gcGFyYW1zLmdldCgncGVybWlzc2lvbnMnKTtcblxuICAgIGlmIChyb2xlc1BhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICByb2xlcyA9IEpTT04ucGFyc2UoYXRvYihyb2xlc1BhcmFtKSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcm9sZXMgPSByb2xlc1BhcmFtLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBlcm1pc3Npb25zUGFyYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShhdG9iKHBlcm1pc3Npb25zUGFyYW0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBwZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zUGFyYW0uc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnZpYXIgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZVxuICAgIGNvbnN0IHJlc3VsdDogT0F1dGhSZXN1bHQgPSB7XG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogZXhwaXJlc0luID8gcGFyc2VJbnQoZXhwaXJlc0luLCAxMCkgOiA5MDAsXG4gICAgICBmaXJlYmFzZVRva2VuOiBmaXJlYmFzZVRva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgIHJvbGVzLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBpc05ld1VzZXI6IHBhcmFtcy5nZXQoJ2lzX25ld191c2VyJykgPT09ICd0cnVlJyxcbiAgICAgIGxpbmtlZDogcGFyYW1zLmdldCgnbGlua2VkJykgPT09ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgIHRva2VuczogcmVzdWx0LFxuICAgIH0pO1xuXG4gICAgLy8gRmx1am8gcmVkaXJlY3QgKHZlbnRhbmEgcHJpbmNpcGFsLCBzaW4gb3BlbmVyIHF1ZSBjb25zdW1hIGVsIGxvY2FsU3RvcmFnZSk6XG4gICAgLy8gaW5zdGFsYXIgbGEgc2VzacOzbiBhY8OhIG1pc21vIHkgbmF2ZWdhciBhbCBob21lLCBlbiB2ZXogZGUgcXVlZGFyIHBlZ2Fkby5cbiAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSAmJiB0aGlzLmNvbXBsZXRlSW5NYWluV2luZG93KHJlc3VsdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1lc3NhZ2UgPSAnQXV0ZW50aWNhY2nDs24gZXhpdG9zYSc7XG4gICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZFRvUGFyZW50KGRhdGE6IE9BdXRoQ2FsbGJhY2tEYXRhKTogdm9pZCB7XG4gICAgLy8gQWRqdW50YXIgZWwgbm9uY2UgZGVsIG9wZW5lciAoTS0wNykgYSBUT0RPIG1lbnNhamUgKHN1Y2Nlc3MsIE1GQSwgZXJyb3IpXG4gICAgLy8gcGFyYSBxdWUgZWwgb3BlbmVyIHZlcmlmaXF1ZSBxdWUgZWwgY2FsbGJhY2sgZXMgZGUgc3UgcHJvcGlvIGZsdWpvLlxuICAgIGlmICh0aGlzLmNsaWVudE5vbmNlKSB7XG4gICAgICBkYXRhLm5vbmNlID0gdGhpcy5jbGllbnROb25jZTtcbiAgICB9XG5cbiAgICAvLyBTaWVtcHJlIGd1YXJkYXIgZW4gbG9jYWxTdG9yYWdlIGNvbW8gZmFsbGJhY2sgKHBhcmEgQ09PUCBpc3N1ZXMpXG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX3RpbWVzdGFtcCcsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG4gICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIFNhdmVkIHRvIGxvY2FsU3RvcmFnZSBhcyBmYWxsYmFjaycpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoQ2FsbGJhY2tdIENvdWxkIG5vdCBzYXZlIHRvIGxvY2FsU3RvcmFnZTonLCBlKTtcbiAgICB9XG5cbiAgICAvLyBJbnRlbnRhciBwb3N0TWVzc2FnZSAocHVlZGUgZmFsbGFyIHBvciBDT09QKVxuICAgIHRyeSB7XG4gICAgICBpZiAod2luZG93Lm9wZW5lciAmJiAhd2luZG93Lm9wZW5lci5jbG9zZWQpIHtcbiAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShkYXRhLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBzZW50IHRvIG9wZW5lcicpO1xuICAgICAgfSBlbHNlIGlmICh3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHtcbiAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShkYXRhLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBzZW50IHRvIHBhcmVudCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBObyBvcGVuZXIvcGFyZW50IGF2YWlsYWJsZSwgdXNpbmcgbG9jYWxTdG9yYWdlIG9ubHknKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBDT09QIGJsb2NrcyBwb3N0TWVzc2FnZSAtIGxvY2FsU3RvcmFnZSBmYWxsYmFjayBhbHJlYWR5IHNhdmVkXG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBibG9ja2VkIChDT09QKSwgdXNpbmcgbG9jYWxTdG9yYWdlIGZhbGxiYWNrOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VBZnRlckRlbGF5KCk6IHZvaWQge1xuICAgIC8vIERhciB0aWVtcG8gcGFyYSBxdWUgZWwgbWVuc2FqZSBzZSBlbnbDrWUgYW50ZXMgZGUgY2VycmFyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAod2luZG93Lm9wZW5lcikge1xuICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.43';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40Myc7XG4iXX0=
|
|
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
|
|
|
56
56
|
* Current version of valtech-components.
|
|
57
57
|
* This is automatically updated during the publish process.
|
|
58
58
|
*/
|
|
59
|
-
const VERSION = '4.0.
|
|
59
|
+
const VERSION = '4.0.43';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -33036,7 +33036,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33036
33036
|
* `/auth/oauth/callback?error=INVALID_CODE&error_description=...`
|
|
33037
33037
|
*/
|
|
33038
33038
|
class OAuthCallbackComponent {
|
|
33039
|
-
constructor() {
|
|
33039
|
+
constructor(router, authService, config) {
|
|
33040
|
+
this.router = router;
|
|
33041
|
+
this.authService = authService;
|
|
33042
|
+
this.config = config;
|
|
33040
33043
|
this.message = 'Procesando autenticación...';
|
|
33041
33044
|
/**
|
|
33042
33045
|
* Nonce que el opener generó y pasó por el flujo (round-trip backend). Se
|
|
@@ -33048,6 +33051,36 @@ class OAuthCallbackComponent {
|
|
|
33048
33051
|
ngOnInit() {
|
|
33049
33052
|
this.processCallback();
|
|
33050
33053
|
}
|
|
33054
|
+
/**
|
|
33055
|
+
* Indica si este callback corre como la VENTANA PRINCIPAL (flujo redirect),
|
|
33056
|
+
* no como popup. El popup se abre con window.name 'oauth'/'oauth-link'
|
|
33057
|
+
* (OAuthService), nombre que persiste aunque COOP anule window.opener tras el
|
|
33058
|
+
* bounce cross-origin. En la ventana principal nadie consume el localStorage,
|
|
33059
|
+
* así que el callback debe instalar la sesión y navegar él mismo.
|
|
33060
|
+
*/
|
|
33061
|
+
isMainWindow() {
|
|
33062
|
+
if (window.name === 'oauth' || window.name === 'oauth-link')
|
|
33063
|
+
return false;
|
|
33064
|
+
return !window.opener && window.parent === window;
|
|
33065
|
+
}
|
|
33066
|
+
/**
|
|
33067
|
+
* Completa el login en la ventana principal: instala la sesión desde los
|
|
33068
|
+
* tokens del callback y navega al home.
|
|
33069
|
+
*/
|
|
33070
|
+
completeInMainWindow(result) {
|
|
33071
|
+
if (!this.authService)
|
|
33072
|
+
return false;
|
|
33073
|
+
this.authService.setExternalAuth({
|
|
33074
|
+
accessToken: result.accessToken,
|
|
33075
|
+
refreshToken: result.refreshToken,
|
|
33076
|
+
firebaseToken: result.firebaseToken,
|
|
33077
|
+
expiresIn: result.expiresIn,
|
|
33078
|
+
roles: result.roles,
|
|
33079
|
+
permissions: result.permissions,
|
|
33080
|
+
});
|
|
33081
|
+
this.router.navigateByUrl(this.config?.homeRoute || '/', { replaceUrl: true });
|
|
33082
|
+
return true;
|
|
33083
|
+
}
|
|
33051
33084
|
processCallback() {
|
|
33052
33085
|
const params = new URLSearchParams(window.location.search);
|
|
33053
33086
|
this.clientNonce = params.get('client_nonce');
|
|
@@ -33145,6 +33178,11 @@ class OAuthCallbackComponent {
|
|
|
33145
33178
|
type: 'oauth-callback',
|
|
33146
33179
|
tokens: result,
|
|
33147
33180
|
});
|
|
33181
|
+
// Flujo redirect (ventana principal, sin opener que consuma el localStorage):
|
|
33182
|
+
// instalar la sesión acá mismo y navegar al home, en vez de quedar pegado.
|
|
33183
|
+
if (this.isMainWindow() && this.completeInMainWindow(result)) {
|
|
33184
|
+
return;
|
|
33185
|
+
}
|
|
33148
33186
|
this.message = 'Autenticación exitosa';
|
|
33149
33187
|
this.closeAfterDelay();
|
|
33150
33188
|
}
|
|
@@ -33190,7 +33228,7 @@ class OAuthCallbackComponent {
|
|
|
33190
33228
|
}
|
|
33191
33229
|
}, 500);
|
|
33192
33230
|
}
|
|
33193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [{ token: i1$4.Router }, { token: AuthService, optional: true }, { token: VALTECH_AUTH_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33194
33232
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template: `<val-splash />`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SplashComponent, selector: "val-splash", inputs: ["logoLight", "logoDark", "alt"] }] }); }
|
|
33195
33233
|
}
|
|
33196
33234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, decorators: [{
|
|
@@ -33203,7 +33241,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33203
33241
|
// casi-duplicado: el callback OAuth es una carga fundamental y debe verse igual.
|
|
33204
33242
|
template: `<val-splash />`,
|
|
33205
33243
|
}]
|
|
33206
|
-
}] }
|
|
33244
|
+
}], ctorParameters: () => [{ type: i1$4.Router }, { type: AuthService, decorators: [{
|
|
33245
|
+
type: Optional
|
|
33246
|
+
}] }, { type: undefined, decorators: [{
|
|
33247
|
+
type: Optional
|
|
33248
|
+
}, {
|
|
33249
|
+
type: Inject,
|
|
33250
|
+
args: [VALTECH_AUTH_CONFIG]
|
|
33251
|
+
}] }] });
|
|
33207
33252
|
|
|
33208
33253
|
/**
|
|
33209
33254
|
* Name of the query param that carries the handoff token. Apps may override
|