ngx-dsxlibrary 1.21.13 → 1.21.15

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.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-dsxlibrary",
3
- "version": "1.21.13",
3
+ "version": "1.21.15",
4
4
  "description": "Libreria para control de código automatizado.",
5
5
  "author": "DevSoftXela",
6
6
  "dependencies": {
@@ -170,20 +170,80 @@ type FieldConfig<T> = {
170
170
  };
171
171
  };
172
172
 
173
+ /**
174
+ * Modelo de respuesta HTTP estándar
175
+ * @interface ResponseHttpModel
176
+ * @description Representa la estructura de respuesta HTTP con información de estado y permisos
177
+ */
173
178
  interface ResponseHttpModel {
179
+ /** Indica si la operación fue exitosa */
174
180
  isSuccess: boolean;
181
+ /** Código de estado HTTP */
175
182
  statusCode: number;
183
+ /** Título de la respuesta */
176
184
  title: string;
185
+ /** Mensaje descriptivo del estado */
177
186
  statusMessage: string;
187
+ /** Indica si el usuario tiene permisos de administrador */
178
188
  isAdmin: boolean;
179
189
  }
190
+ /**
191
+ * Respuesta de consulta de NIT
192
+ * @interface NITResponse
193
+ * @description Representa la estructura de datos devuelta al consultar un NIT
194
+ */
180
195
  interface NITResponse {
196
+ /** Número de Identificación Tributaria */
181
197
  nit: string;
198
+ /** Nombre completo o razón social */
182
199
  nombre: string;
200
+ /** Mensaje de respuesta del servicio */
183
201
  mensaje: string;
202
+ /** Apellidos de la persona (si aplica) */
184
203
  apellidos: string;
204
+ /** Nombres de la persona (si aplica) */
185
205
  nombres: string;
186
206
  }
207
+ /**
208
+ * Resultado genérico de operaciones de servicio
209
+ * @interface ServiceResult
210
+ * @template T Tipo de dato que contiene la respuesta
211
+ * @description Envoltorio genérico para respuestas de servicios que permite manejar tanto
212
+ * casos exitosos con datos como casos de error sin datos
213
+ * @example
214
+ * // Sin datos (solo mensaje y estado)
215
+ * const error: ServiceResult<void> = {
216
+ * data: null,
217
+ * isSuccess: false,
218
+ * message: "Error al procesar"
219
+ * };
220
+ * @example
221
+ * // Con datos tipados
222
+ * const success: ServiceResult<Usuario> = {
223
+ * data: { id: 1, nombre: "Juan" },
224
+ * isSuccess: true,
225
+ * message: "Usuario obtenido"
226
+ * };
227
+ */
228
+ interface ServiceResult<T> {
229
+ /** Datos de respuesta del tipo especificado o null si no hay datos */
230
+ data: T | null;
231
+ /** Indica si la operación fue exitosa */
232
+ isSuccess: boolean;
233
+ /** Mensaje descriptivo del resultado de la operación */
234
+ message: string;
235
+ }
236
+ /**
237
+ * Alias de ServiceResult para casos sin datos
238
+ * @description Utilizar cuando solo se necesita retornar estado y mensaje sin datos
239
+ * @example
240
+ * const result: ServiceResultVoid = {
241
+ * data: null,
242
+ * isSuccess: false,
243
+ * message: "Operación fallida"
244
+ * };
245
+ */
246
+ type ServiceResultVoid = ServiceResult<void>;
187
247
 
188
248
  export { createInitialCache };
189
- export type { Certificacion, Column, Complemento, Complementos, DatosEmision, DatosGenerales, Direccion, DocumentoFelResponse, Dte, Emisor, ExportColumn, FechasConversion, FieldConfig, FilterOption, Frase, Frases, Impuesto, Impuestos, InferCacheKeyType, InferCacheOptions, Item, Items, NITResponse, NumeroAutorizacion, Receptor, ResponseHttpModel, Sat, T, TipoFechaConversion, TotalImpuesto, Totales, typeModel };
249
+ export type { Certificacion, Column, Complemento, Complementos, DatosEmision, DatosGenerales, Direccion, DocumentoFelResponse, Dte, Emisor, ExportColumn, FechasConversion, FieldConfig, FilterOption, Frase, Frases, Impuesto, Impuestos, InferCacheKeyType, InferCacheOptions, Item, Items, NITResponse, NumeroAutorizacion, Receptor, ResponseHttpModel, Sat, ServiceResult, ServiceResultVoid, T, TipoFechaConversion, TotalImpuesto, Totales, typeModel };
@@ -1,7 +1,7 @@
1
1
  import * as i4 from '@angular/forms';
2
2
  import { AbstractControl, FormGroup, FormBuilder, ValidatorFn, ValidationErrors } from '@angular/forms';
3
3
  import * as i0 from '@angular/core';
4
- import { OnInit, ElementRef, InjectionToken, PipeTransform, Provider } from '@angular/core';
4
+ import { OnInit, ElementRef, InjectionToken, Provider, PipeTransform } from '@angular/core';
5
5
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Observable } from 'rxjs';
@@ -46,6 +46,7 @@ import * as i35 from 'primeng/toast';
46
46
  import * as i36 from 'primeng/togglebutton';
47
47
  import * as i37 from 'primeng/tooltip';
48
48
  import { SweetAlertTheme, SweetAlertIcon, SweetAlertResult } from 'sweetalert2';
49
+ import { Router } from '@angular/router';
49
50
  import { JwtHelperService } from '@auth0/angular-jwt';
50
51
  import { CookieService } from 'ngx-cookie-service';
51
52
 
@@ -189,15 +190,181 @@ declare class SelectAllOnFocusDirective {
189
190
 
190
191
  declare const CACHE_KEYS: InjectionToken<Record<string, string>>;
191
192
 
192
- interface EnvironmentConfig {
193
- production: boolean;
194
- myAppUrl: string;
195
- tokenName: string;
196
- tokenNameRF: string;
197
- sessionStatus: string;
198
- refreshTokenExpiry: string;
199
- }
193
+ /**
194
+ * Esquema de configuración del entorno - Fuente única de verdad (Single Source of Truth)
195
+ *
196
+ * Este objeto define todos los campos requeridos y sus tipos esperados para la configuración del entorno.
197
+ * Sirve como referencia automática para:
198
+ * - Generar el tipo TypeScript `EnvironmentConfig`
199
+ * - Validar la presencia de campos requeridos
200
+ * - Validar los tipos de datos en runtime
201
+ * - Detectar automáticamente campos que requieren validación especial (URLs)
202
+ *
203
+ * **Cómo agregar una nueva propiedad:**
204
+ * 1. Agrégala a este objeto con su tipo: 'string', 'boolean' o 'number'
205
+ * 2. Todo lo demás se actualiza automáticamente (tipo TypeScript, validaciones, etc.)
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * const ENVIRONMENT_SCHEMA = {
210
+ * production: 'boolean' as const,
211
+ * myAppUrl: 'string' as const,
212
+ * apiTimeout: 'number' as const, // ← Agregar nueva propiedad
213
+ * } as const;
214
+ * ```
215
+ *
216
+ * @internal
217
+ */
218
+ declare const ENVIRONMENT_SCHEMA: {
219
+ readonly production: "boolean";
220
+ readonly myAppUrl: "string";
221
+ readonly SeguridadITApiUrl: "string";
222
+ readonly tokenName: "string";
223
+ readonly tokenNameRF: "string";
224
+ readonly sessionStatus: "string";
225
+ readonly refreshTokenExpiry: "string";
226
+ };
227
+ /**
228
+ * Tipo que define la configuración del entorno de la aplicación.
229
+ *
230
+ * Este tipo se genera automáticamente a partir de `ENVIRONMENT_SCHEMA` usando
231
+ * TypeScript mapped types. No es necesario mantenerlo manualmente.
232
+ *
233
+ * **Características:**
234
+ * - Se sincroniza automáticamente con ENVIRONMENT_SCHEMA
235
+ * - Proporciona autocompletado en IDEs
236
+ * - Garantiza type-safety en tiempo de compilación
237
+ * - Se valida en runtime usando `provideEnvironment()`
238
+ *
239
+ * **Campos requeridos:**
240
+ * @property production - Indica si la aplicación está en modo producción
241
+ * @property myAppUrl - URL base de la aplicación principal (debe incluir protocolo http:// o https://)
242
+ * @property SeguridadITApiUrl - URL base de la API de seguridad (debe incluir protocolo http:// o https://)
243
+ * @property tokenName - Nombre del token de acceso en el almacenamiento local/sesión
244
+ * @property tokenNameRF - Nombre del refresh token en el almacenamiento local/sesión
245
+ * @property sessionStatus - Nombre de la clave para el estado de sesión
246
+ * @property refreshTokenExpiry - Tiempo de expiración del refresh token (ej: "7d", "24h")
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * // En tu archivo environment.ts
251
+ * import { EnvironmentConfig } from '@devsoftxela/ngx-dsx';
252
+ *
253
+ * export const environment: EnvironmentConfig = {
254
+ * production: false,
255
+ * myAppUrl: 'http://localhost:4200/',
256
+ * SeguridadITApiUrl: 'http://localhost:5000/',
257
+ * tokenName: 'access_token',
258
+ * tokenNameRF: 'refresh_token',
259
+ * sessionStatus: 'session_status',
260
+ * refreshTokenExpiry: '7d'
261
+ * };
262
+ * ```
263
+ */
264
+ type EnvironmentConfig = {
265
+ [K in keyof typeof ENVIRONMENT_SCHEMA]: (typeof ENVIRONMENT_SCHEMA)[K] extends 'string' ? string : (typeof ENVIRONMENT_SCHEMA)[K] extends 'boolean' ? boolean : (typeof ENVIRONMENT_SCHEMA)[K] extends 'number' ? number : never;
266
+ };
267
+ /**
268
+ * Token de inyección de dependencias para la configuración del entorno.
269
+ *
270
+ * Este token se utiliza para inyectar la configuración del entorno en servicios y componentes.
271
+ * **IMPORTANTE:** No uses este token directamente en providers. En su lugar, usa la función
272
+ * `provideEnvironment()` que incluye validación automática.
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * // ✅ Forma correcta - En tu configuración de app
277
+ * import { provideEnvironment } from '@devsoftxela/ngx-dsx';
278
+ * import { environment } from './environments/environment';
279
+ *
280
+ * export const appConfig: ApplicationConfig = {
281
+ * providers: [
282
+ * provideEnvironment(environment), // ← Con validación automática
283
+ * ]
284
+ * };
285
+ * ```
286
+ *
287
+ * @example
288
+ * ```typescript
289
+ * // ✅ Forma correcta - Inyectar en servicios
290
+ * import { inject } from '@angular/core';
291
+ * import { ENVIRONMENT, EnvironmentConfig } from '@devsoftxela/ngx-dsx';
292
+ *
293
+ * export class MiServicio {
294
+ * private environment: EnvironmentConfig = inject(ENVIRONMENT);
295
+ * }
296
+ * ```
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * // ❌ Forma incorrecta - Sin validación
301
+ * providers: [
302
+ * { provide: ENVIRONMENT, useValue: environment } // ← Sin validación
303
+ * ]
304
+ * ```
305
+ *
306
+ * @see {@link provideEnvironment} para configurar con validación
307
+ * @see {@link EnvironmentConfig} para la estructura de datos
308
+ */
200
309
  declare const ENVIRONMENT: InjectionToken<EnvironmentConfig>;
310
+ /**
311
+ * Valida que la configuración del entorno esté completa y correctamente configurada.
312
+ *
313
+ * Esta función verifica que:
314
+ * - La configuración del entorno no sea null o undefined
315
+ * - Todas las propiedades requeridas estén presentes y no estén vacías
316
+ * - Las URLs tengan un formato válido
317
+ *
318
+ * @param environment - Configuración del entorno a validar
319
+ * @throws Error si alguna validación falla, con un mensaje descriptivo del problema
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * const config: EnvironmentConfig = { ... };
324
+ * validateEnvironmentConfig(config);
325
+ * ```
326
+ */
327
+ declare function validateEnvironmentConfig(environment: EnvironmentConfig): void;
328
+ /**
329
+ * Proporciona una configuración de entorno validada para la inyección de dependencias.
330
+ *
331
+ * Esta función crea un provider que valida automáticamente la configuración del entorno
332
+ * cuando la aplicación se inicializa. Si la configuración es inválida, lanza un error
333
+ * descriptivo que indica qué está mal configurado.
334
+ *
335
+ * @param environment - Configuración del entorno a proporcionar
336
+ * @returns Provider de Angular configurado con la validación integrada
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * // En app.config.ts o main.ts
341
+ * import { provideEnvironment } from './path/to/environment.token';
342
+ * import { environment } from './environments/environment';
343
+ *
344
+ * export const appConfig: ApplicationConfig = {
345
+ * providers: [
346
+ * provideEnvironment(environment),
347
+ * // ... otros providers
348
+ * ]
349
+ * };
350
+ * ```
351
+ *
352
+ * @example
353
+ * ```typescript
354
+ * // Para módulos (NgModule)
355
+ * import { provideEnvironment } from './path/to/environment.token';
356
+ * import { environment } from './environments/environment';
357
+ *
358
+ * @NgModule({
359
+ * providers: [
360
+ * provideEnvironment(environment),
361
+ * // ... otros providers
362
+ * ]
363
+ * })
364
+ * export class AppModule { }
365
+ * ```
366
+ */
367
+ declare function provideEnvironment(environment: EnvironmentConfig): Provider;
201
368
 
202
369
  interface ParameterValue {
203
370
  value: number;
@@ -400,20 +567,80 @@ type FieldConfig<T> = {
400
567
  };
401
568
  };
402
569
 
570
+ /**
571
+ * Modelo de respuesta HTTP estándar
572
+ * @interface ResponseHttpModel
573
+ * @description Representa la estructura de respuesta HTTP con información de estado y permisos
574
+ */
403
575
  interface ResponseHttpModel {
576
+ /** Indica si la operación fue exitosa */
404
577
  isSuccess: boolean;
578
+ /** Código de estado HTTP */
405
579
  statusCode: number;
580
+ /** Título de la respuesta */
406
581
  title: string;
582
+ /** Mensaje descriptivo del estado */
407
583
  statusMessage: string;
584
+ /** Indica si el usuario tiene permisos de administrador */
408
585
  isAdmin: boolean;
409
586
  }
587
+ /**
588
+ * Respuesta de consulta de NIT
589
+ * @interface NITResponse
590
+ * @description Representa la estructura de datos devuelta al consultar un NIT
591
+ */
410
592
  interface NITResponse {
593
+ /** Número de Identificación Tributaria */
411
594
  nit: string;
595
+ /** Nombre completo o razón social */
412
596
  nombre: string;
597
+ /** Mensaje de respuesta del servicio */
413
598
  mensaje: string;
599
+ /** Apellidos de la persona (si aplica) */
414
600
  apellidos: string;
601
+ /** Nombres de la persona (si aplica) */
415
602
  nombres: string;
416
603
  }
604
+ /**
605
+ * Resultado genérico de operaciones de servicio
606
+ * @interface ServiceResult
607
+ * @template T Tipo de dato que contiene la respuesta
608
+ * @description Envoltorio genérico para respuestas de servicios que permite manejar tanto
609
+ * casos exitosos con datos como casos de error sin datos
610
+ * @example
611
+ * // Sin datos (solo mensaje y estado)
612
+ * const error: ServiceResult<void> = {
613
+ * data: null,
614
+ * isSuccess: false,
615
+ * message: "Error al procesar"
616
+ * };
617
+ * @example
618
+ * // Con datos tipados
619
+ * const success: ServiceResult<Usuario> = {
620
+ * data: { id: 1, nombre: "Juan" },
621
+ * isSuccess: true,
622
+ * message: "Usuario obtenido"
623
+ * };
624
+ */
625
+ interface ServiceResult<T> {
626
+ /** Datos de respuesta del tipo especificado o null si no hay datos */
627
+ data: T | null;
628
+ /** Indica si la operación fue exitosa */
629
+ isSuccess: boolean;
630
+ /** Mensaje descriptivo del resultado de la operación */
631
+ message: string;
632
+ }
633
+ /**
634
+ * Alias de ServiceResult para casos sin datos
635
+ * @description Utilizar cuando solo se necesita retornar estado y mensaje sin datos
636
+ * @example
637
+ * const result: ServiceResultVoid = {
638
+ * data: null,
639
+ * isSuccess: false,
640
+ * message: "Operación fallida"
641
+ * };
642
+ */
643
+ type ServiceResultVoid = ServiceResult<void>;
417
644
 
418
645
  declare class DsxAddToolsModule {
419
646
  static ɵfac: i0.ɵɵFactoryDeclaration<DsxAddToolsModule, never>;
@@ -556,21 +783,39 @@ declare class AlertaService {
556
783
  static ɵprov: i0.ɵɵInjectableDeclaration<AlertaService>;
557
784
  }
558
785
 
559
- interface ModelToken {
786
+ /**
787
+ * Datos de token de autenticación
788
+ * @interface DataToken
789
+ * @description Contiene los tokens de acceso y refresco junto con la fecha de expiración
790
+ */
791
+ interface DataToken {
792
+ /** Token de acceso JWT para autenticación en las solicitudes */
560
793
  token: string;
794
+ /** Token de refresco para obtener un nuevo token de acceso */
561
795
  tokenRefresh: string;
796
+ /** Fecha de expiración del token de refresco */
562
797
  refreshTokenExpiry: Date;
563
798
  }
799
+ /**
800
+ * Modelo de seguridad JWT decodificado
801
+ * @interface jwtSecurityModel
802
+ * @description Representa los datos extraídos y validados del token JWT
803
+ */
564
804
  interface jwtSecurityModel {
805
+ /** Nombre de usuario del titular del token */
565
806
  userName: string | null;
807
+ /** Array de roles asignados al usuario */
566
808
  role: string[] | null;
809
+ /** Indica si el token ha expirado o es una promesa que lo valida */
567
810
  isTokenExpired: boolean | Promise<boolean>;
568
811
  }
569
812
 
570
813
  declare class AuthorizeService {
571
814
  _cookieService: CookieService;
815
+ _router: Router;
572
816
  helperJwt: JwtHelperService;
573
817
  private _isRefreshing;
818
+ private _securityService;
574
819
  private environment;
575
820
  private getCookieOptions;
576
821
  private setCookie;
@@ -591,7 +836,8 @@ declare class AuthorizeService {
591
836
  */
592
837
  getTokenRefresh(): string | null;
593
838
  setLastActivity(): void;
594
- tokenReload(tokens: ModelToken): void;
839
+ getLastActivity(): number | null;
840
+ tokenReload(tokens: DataToken): void;
595
841
  getTokenValid(token: string | null): boolean;
596
842
  /**
597
843
  * Obtiene los valores principales del JWT almacenado (usuario, roles y estado).
@@ -609,6 +855,70 @@ declare class AuthorizeService {
609
855
  * const info = this.authorize.getTokenValues;
610
856
  */
611
857
  get getTokenValues(): jwtSecurityModel;
858
+ /**
859
+ * Verifica si el usuario está autenticado.
860
+ *
861
+ * La validación se basa en la existencia del refresh token en cookies.
862
+ * El navegador gestiona automáticamente la expiración de las cookies.
863
+ *
864
+ * @returns `true` si el usuario está autenticado, `false` en caso contrario
865
+ */
866
+ isAuthenticated(): boolean;
867
+ /**
868
+ * Cierra la sesión del usuario de forma segura y controlada.
869
+ *
870
+ * Este método implementa un proceso de logout robusto que:
871
+ * 1. Verifica el estado actual de la sesión y la ubicación del usuario
872
+ * 2. Intenta revocar el refresh token en el servidor (si existe)
873
+ * 3. Limpia todos los datos de sesión local
874
+ * 4. Redirige al usuario a la página de login
875
+ *
876
+ * **Casos manejados:**
877
+ * - Usuario ya en página de login: Solo limpia datos locales
878
+ * - Sin refresh token: Limpia datos locales y redirige
879
+ * - Con refresh token: Intenta revocarlo, luego limpia y redirige
880
+ * - Error al revocar: Limpia datos locales de todas formas (seguridad)
881
+ * - Modo desarrollo: Maneja tokens de prueba correctamente
882
+ *
883
+ * **Importante:** Este método es **asíncrono** en su ejecución interna pero no retorna una promesa.
884
+ * La redirección al login ocurre después de limpiar la sesión, independientemente del resultado de la revocación.
885
+ *
886
+ * @example
887
+ * ```typescript
888
+ * // Uso básico desde un componente
889
+ * this.authorizeService.logout();
890
+ *
891
+ * // Uso con navegación posterior controlada
892
+ * this.authorizeService.logout();
893
+ * // La redirección al login es automática
894
+ * ```
895
+ *
896
+ * @see {@link clearSessionData} para el proceso de limpieza de datos
897
+ * @see {@link SecurityService.tokenRevok} para la revocación en el servidor
898
+ */
899
+ logout(): void;
900
+ /**
901
+ * Limpia todos los datos de sesión del usuario de forma segura.
902
+ *
903
+ * Este método privado se encarga de:
904
+ * - Eliminar todas las cookies relacionadas con autenticación
905
+ * - Limpiar el localStorage completamente
906
+ * - Redirigir al usuario a la página de login
907
+ *
908
+ * **Cookies eliminadas:**
909
+ * - Token de acceso (access token)
910
+ * - Token de refresco (refresh token)
911
+ * - Estado de sesión (session status)
912
+ *
913
+ * **Consideraciones:**
914
+ * - Se eliminan las cookies con path '/' para asegurar su borrado
915
+ * - En producción, también se considera el dominio configurado
916
+ * - El localStorage se limpia completamente por seguridad
917
+ * - La redirección es forzada incluso si hay errores previos
918
+ *
919
+ * @private
920
+ */
921
+ private clearSessionData;
612
922
  static ɵfac: i0.ɵɵFactoryDeclaration<AuthorizeService, never>;
613
923
  static ɵprov: i0.ɵɵInjectableDeclaration<AuthorizeService>;
614
924
  }
@@ -803,22 +1113,98 @@ declare class ParameterValuesService<T extends string = string> {
803
1113
  static ɵprov: i0.ɵɵInjectableDeclaration<ParameterValuesService<any>>;
804
1114
  }
805
1115
 
1116
+ /**
1117
+ * Servicio de seguridad que gestiona la autenticación y autorización mediante tokens JWT.
1118
+ *
1119
+ * Este servicio proporciona métodos para:
1120
+ * - Refrescar tokens de acceso
1121
+ * - Revocar tokens de refresco
1122
+ * - Obtener parámetros de seguridad
1123
+ *
1124
+ * @example
1125
+ * ```typescript
1126
+ * constructor(private securityService: SecurityService) {}
1127
+ *
1128
+ * refreshToken() {
1129
+ * this.securityService.tokenRefresh(this.refreshToken)
1130
+ * .subscribe(data => console.log(data));
1131
+ * }
1132
+ * ```
1133
+ */
806
1134
  declare class SecurityService {
1135
+ /** Servicio HttpClient para realizar peticiones HTTP */
807
1136
  private http;
1137
+ /**
1138
+ * Configuración del entorno inyectada mediante el token ENVIRONMENT.
1139
+ * La validación se realiza automáticamente al usar provideEnvironment().
1140
+ */
808
1141
  private environment;
1142
+ /** URL base de la API JWT construida desde la configuración del entorno */
809
1143
  private urlApi;
1144
+ private SeguridadITApi;
810
1145
  /**
811
- * Método para obtener un nuevo token de acceso utilizando un refresh token.
812
- * @param refreshToken El refresh token que se utilizará para obtener un nuevo token de acceso.
813
- * @returns Un Observable que emite un objeto de tipo ModelToken.
1146
+ * Obtiene un nuevo token de acceso utilizando un refresh token válido.
1147
+ *
1148
+ * Este método envía una solicitud POST al endpoint de refresco de token
1149
+ * y devuelve un nuevo par de tokens (access token y refresh token).
1150
+ *
1151
+ * @param refreshToken - El refresh token válido para obtener un nuevo token de acceso
1152
+ * @returns Observable que emite un objeto DataToken con el nuevo par de tokens
1153
+ *
1154
+ * @example
1155
+ * ```typescript
1156
+ * this.securityService.tokenRefresh('your-refresh-token')
1157
+ * .subscribe({
1158
+ * next: (data) => console.log('Nuevo token:', data.accessToken),
1159
+ * error: (err) => console.error('Error al refrescar token:', err)
1160
+ * });
1161
+ * ```
814
1162
  */
815
- tokenRefresh(refreshToken: string): Observable<ModelToken>;
1163
+ tokenRefresh(refreshToken: string): Observable<DataToken>;
816
1164
  /**
817
- * Método para obtener los parámetros de seguridad.
818
- * @param invalidCacheParam Indica si se debe invalidar la caché (opcional, por defecto es false).
819
- * @returns Un Observable que emite un objeto de tipo SeguridadITParameter.
1165
+ * Revoca un refresh token para invalidarlo y prevenir su uso futuro.
1166
+ *
1167
+ * Este método envía una solicitud POST al endpoint de revocación de token
1168
+ * para invalidar permanentemente el refresh token proporcionado.
1169
+ *
1170
+ * @param refreshToken - El refresh token que se desea revocar
1171
+ * @returns Observable que emite true si la revocación fue exitosa, false en caso contrario
1172
+ *
1173
+ * @example
1174
+ * ```typescript
1175
+ * this.securityService.tokenRevok('your-refresh-token')
1176
+ * .subscribe({
1177
+ * next: (success) => {
1178
+ * if (success) console.log('Token revocado exitosamente');
1179
+ * },
1180
+ * error: (err) => console.error('Error al revocar token:', err)
1181
+ * });
1182
+ * ```
1183
+ */
1184
+ tokenRevok(refreshToken: string): Observable<boolean>;
1185
+ /**
1186
+ * Obtiene los parámetros de seguridad de la aplicación desde el servidor.
1187
+ *
1188
+ * Este método recupera la configuración de seguridad que incluye políticas de contraseñas,
1189
+ * tiempos de expiración de sesión, y otras configuraciones relacionadas con la seguridad.
1190
+ *
1191
+ * @param invalidCacheParam - Indica si se debe invalidar la caché del servidor.
1192
+ * Si es true, fuerza al servidor a devolver los datos más recientes
1193
+ * sin usar la caché. Por defecto es false.
1194
+ * @returns Observable que emite un objeto SeguridadITParameter con la configuración de seguridad
1195
+ *
1196
+ * @example
1197
+ * ```typescript
1198
+ * // Obtener parámetros usando caché
1199
+ * this.securityService.getParameterSecurity()
1200
+ * .subscribe(params => console.log('Parámetros:', params));
1201
+ *
1202
+ * // Obtener parámetros sin usar caché
1203
+ * this.securityService.getParameterSecurity(true)
1204
+ * .subscribe(params => console.log('Parámetros actualizados:', params));
1205
+ * ```
820
1206
  */
821
- getParameterSecurity(invalidCacheParam?: boolean): Observable<SeguridadITParameter>;
1207
+ getParameterSecurity(invalidCacheParam?: boolean): Observable<ServiceResult<SeguridadITParameter>>;
822
1208
  static ɵfac: i0.ɵɵFactoryDeclaration<SecurityService, never>;
823
1209
  static ɵprov: i0.ɵɵInjectableDeclaration<SecurityService>;
824
1210
  }
@@ -1099,5 +1485,5 @@ declare function nitValidator(control: AbstractControl): ValidationErrors | null
1099
1485
  */
1100
1486
  declare function cuiValidator(control: AbstractControl): ValidationErrors | null;
1101
1487
 
1102
- export { AlertaService, AppMessageErrorComponent, AuthorizeService, CACHE_KEYS, CacheService, DsxAddToolsModule, ENVIRONMENT, EndpointService, ErrorHandlerService, INITIAL_PARAMETERS, IconDsxComponent, JsonHighlightPipe, JsonValuesDebujComponent, KpicardComponent, LoadingComponent, LoadingLottieComponent, NavbarDsxComponent, OnlyRangoPatternDirective, ParameterValuesService, PrimeNgModule, SecurityService, SelectAllOnFocusDirective, TruncatePipe, UtilityAddService, atLeastOneFieldRequiredValidator, createInitialCache, createTypedCacheProvider, cuiValidator, dateMinMaxValidator, dateRangeValidator, httpAuthorizeInterceptor, nitValidator };
1103
- export type { Certificacion, Column, Complemento, Complementos, DatosEmision, DatosGenerales, Direccion, DocumentoFelResponse, Dte, Emisor, EnvironmentConfig, ExportColumn, FechasConversion, FieldConfig, FilterOption, Frase, Frases, Impuesto, Impuestos, InferCacheKeyType, InferCacheOptions, Item, Items, MyParameterValues, NITResponse, NumeroAutorizacion, ParameterSecurity, ParameterValue, Receptor, ResponseHttpModel, Sat, SeguridadITParameter, T, TipoFechaConversion, TotalImpuesto, Totales, typeModel };
1488
+ export { AlertaService, AppMessageErrorComponent, AuthorizeService, CACHE_KEYS, CacheService, DsxAddToolsModule, ENVIRONMENT, EndpointService, ErrorHandlerService, INITIAL_PARAMETERS, IconDsxComponent, JsonHighlightPipe, JsonValuesDebujComponent, KpicardComponent, LoadingComponent, LoadingLottieComponent, NavbarDsxComponent, OnlyRangoPatternDirective, ParameterValuesService, PrimeNgModule, SecurityService, SelectAllOnFocusDirective, TruncatePipe, UtilityAddService, atLeastOneFieldRequiredValidator, createInitialCache, createTypedCacheProvider, cuiValidator, dateMinMaxValidator, dateRangeValidator, httpAuthorizeInterceptor, nitValidator, provideEnvironment, validateEnvironmentConfig };
1489
+ export type { Certificacion, Column, Complemento, Complementos, DatosEmision, DatosGenerales, Direccion, DocumentoFelResponse, Dte, Emisor, EnvironmentConfig, ExportColumn, FechasConversion, FieldConfig, FilterOption, Frase, Frases, Impuesto, Impuestos, InferCacheKeyType, InferCacheOptions, Item, Items, MyParameterValues, NITResponse, NumeroAutorizacion, ParameterSecurity, ParameterValue, Receptor, ResponseHttpModel, Sat, SeguridadITParameter, ServiceResult, ServiceResultVoid, T, TipoFechaConversion, TotalImpuesto, Totales, typeModel };
Binary file