valtech-components 4.0.630 → 4.0.632
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/components/organisms/mini-games/chessimals-adventure.component.mjs +75 -20
- package/esm2022/lib/services/auth/auth.service.mjs +71 -1
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +145 -20
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/chessimals-adventure.component.d.ts +4 -1
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +1 -1
- package/lib/services/auth/auth.service.d.ts +28 -0
- package/lib/services/auth/types.d.ts +35 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -24,8 +24,11 @@ export declare class ChessimalsAdventureComponent {
|
|
|
24
24
|
readonly actViews: import("@angular/core").Signal<AdventureActView[]>;
|
|
25
25
|
constructor();
|
|
26
26
|
t(key: string): string;
|
|
27
|
+
private readonly ADV_ACT_THEMES;
|
|
27
28
|
avatarSrc(profileId: string): string;
|
|
28
|
-
|
|
29
|
+
actAssetSrc(actId: string): string;
|
|
30
|
+
actBgSrc(actId: string): string;
|
|
31
|
+
nodeAssetSrc(type: ChessimalsAdventureNode['type']): string;
|
|
29
32
|
onNodeTap(nodeView: AdventureNodeView): void;
|
|
30
33
|
dismissEncounter(): void;
|
|
31
34
|
confirmPlay(): void;
|
|
@@ -133,7 +133,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
|
|
|
133
133
|
readonly botProfiles: ChessimalsBotProfile[];
|
|
134
134
|
readonly challengeLadder: ChessimalsChallengeBot[];
|
|
135
135
|
readonly animals: ChessimalsAnimalView[];
|
|
136
|
-
readonly valtechComponentsVersion = "4.0.
|
|
136
|
+
readonly valtechComponentsVersion = "4.0.632";
|
|
137
137
|
readonly screen: import("@angular/core").WritableSignal<"home" | "challenge" | "path" | "game">;
|
|
138
138
|
readonly selectedBoardSize: import("@angular/core").WritableSignal<ChessimalsBoardSize>;
|
|
139
139
|
readonly selectedLocalMode: import("@angular/core").WritableSignal<ChessimalsLocalMode>;
|
|
@@ -104,6 +104,34 @@ export declare class AuthService implements OnDestroy {
|
|
|
104
104
|
* dev cross-site con cookie de terceros bloqueada) → invitado.
|
|
105
105
|
*/
|
|
106
106
|
private bootstrapSessionFromHintCookie;
|
|
107
|
+
/**
|
|
108
|
+
* Nombre de la sessionStorage key usada como guarda anti-loop del bridge.
|
|
109
|
+
* `sessionStorage` (no localStorage) — el guard debe expirar naturalmente al
|
|
110
|
+
* cerrar la pestaña; una sesión de familia recién iniciada en otra pestaña
|
|
111
|
+
* debe poder reintentar el bridge en una pestaña nueva.
|
|
112
|
+
*/
|
|
113
|
+
private static readonly SSO_BRIDGE_GUARD_KEY;
|
|
114
|
+
/**
|
|
115
|
+
* ¿Corresponde disparar el redirect al Auth Proxy Central (ADR-050 Modo B)?
|
|
116
|
+
*
|
|
117
|
+
* Falso si: la config no lo habilita, falta `ssoBridgeUrl`, no corremos en
|
|
118
|
+
* un browser real (SSR/tests), o esta pestaña YA volvió de un intento de
|
|
119
|
+
* bridge — sin este último guard, un bridge que redirige sin `?handoff`
|
|
120
|
+
* (sin sesión) dispararía un bucle infinito de redirects en cada
|
|
121
|
+
* `initialize()` posterior de la misma pestaña.
|
|
122
|
+
*/
|
|
123
|
+
private shouldBootstrapViaSSOBridge;
|
|
124
|
+
/**
|
|
125
|
+
* Navega la página completa al Auth Proxy Central con `redirect_uri` = la
|
|
126
|
+
* URL actual. El backend valida la cookie `valtech_refresh` (visible solo
|
|
127
|
+
* en su propio dominio, por eso el redirect debe ser top-level navigation
|
|
128
|
+
* y no un fetch) y redirige de vuelta con `?handoff=TOKEN` si hay sesión.
|
|
129
|
+
*
|
|
130
|
+
* Marca el guard ANTES de navegar — si el bridge redirige sin `?handoff`
|
|
131
|
+
* (sin sesión), el siguiente `initialize()` de esta pestaña no debe volver
|
|
132
|
+
* a intentar el bridge.
|
|
133
|
+
*/
|
|
134
|
+
private redirectToSSOBridge;
|
|
107
135
|
ngOnDestroy(): void;
|
|
108
136
|
/**
|
|
109
137
|
* Inicia sesión con email y contraseña.
|
|
@@ -84,6 +84,41 @@ export interface ValtechAuthConfig {
|
|
|
84
84
|
* credencial — el token real va en la cookie HttpOnly `valtech_refresh`.
|
|
85
85
|
*/
|
|
86
86
|
loggedInHintCookie?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Bootstrapear la sesión vía el Auth Proxy Central cuando esta app NO
|
|
89
|
+
* comparte dominio raíz con el resto del factory (ADR-050, Modo B — ej. un
|
|
90
|
+
* producto con dominio propio como `sigify.com`, a diferencia de bingo/
|
|
91
|
+
* showcase bajo `*.myvaltech.com`).
|
|
92
|
+
*
|
|
93
|
+
* Cuando es `true`, no hay access token local NI cookie-hint legible
|
|
94
|
+
* (`bootstrapSessionFromHint` no aplica en este dominio — la cookie
|
|
95
|
+
* `Domain=.myvaltech.com` nunca llega aquí), e `initialize()` no viene de
|
|
96
|
+
* un retorno del bridge (ver más abajo), la app hace una navegación de
|
|
97
|
+
* página completa a `ssoBridgeUrl` con `redirect_uri` = la URL actual.
|
|
98
|
+
*
|
|
99
|
+
* El backend valida la cookie `valtech_refresh` (HttpOnly, sólo visible en
|
|
100
|
+
* su propio dominio) y:
|
|
101
|
+
* - si hay sesión activa: redirige de vuelta con `?handoff=TOKEN` — el
|
|
102
|
+
* `APP_INITIALIZER` de `HandoffService.detectAndExchangeHandoff()`
|
|
103
|
+
* (ya requerido por cross-app handoff, ver frontend/CLAUDE.md) instala
|
|
104
|
+
* la sesión sin pedir credenciales.
|
|
105
|
+
* - si no hay sesión: redirige de vuelta sin `?handoff` — la app cae a
|
|
106
|
+
* invitado, comportamiento normal.
|
|
107
|
+
*
|
|
108
|
+
* El usuario ve una redirección breve (dos cargas de página), tal como
|
|
109
|
+
* documenta el ADR-050 para este modo — no hay forma de evitarla sin
|
|
110
|
+
* iframe/popup, y esos rompen con el bloqueo de cookies de terceros.
|
|
111
|
+
*
|
|
112
|
+
* Requiere `ssoBridgeUrl` seteado y el `APP_INITIALIZER` de handoff
|
|
113
|
+
* cableado en `main.ts` (mismo requisito que el handoff cross-app manual).
|
|
114
|
+
*/
|
|
115
|
+
bootstrapSessionFromBridge?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* URL completa del endpoint `GET /v2/auth/sso-bridge` del Auth Proxy
|
|
118
|
+
* Central (ej: 'https://api.myvaltech.com/v2/auth/sso-bridge'). Requerido
|
|
119
|
+
* cuando `bootstrapSessionFromBridge` es `true`.
|
|
120
|
+
*/
|
|
121
|
+
ssoBridgeUrl?: string;
|
|
87
122
|
}
|
|
88
123
|
/**
|
|
89
124
|
* Estado completo de autenticación.
|
package/lib/version.d.ts
CHANGED