@jvsoft/utils 0.0.13-alpha.6 → 1.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +1,89 @@
1
+ /**
2
+ * Codifica un string a base64 (método legacy)
3
+ * @param val - String a codificar
4
+ * @returns String codificado en base64
5
+ * @deprecated Use encodeBase64String() en su lugar
6
+ */
1
7
  export declare function b64Encode(val: string): string;
8
+ /**
9
+ * Decodifica un string desde base64 (método legacy)
10
+ * @param val - String en base64 a decodificar
11
+ * @returns String decodificado
12
+ * @deprecated Use decodeBase64String() en su lugar
13
+ */
2
14
  export declare function b64Decode(val: string): string;
3
15
  /**
4
16
  * Codificar string a Base64 (UTF-8 seguro)
17
+ * @param str - String a codificar
18
+ * @returns String codificado en base64
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const encoded = encodeBase64String('Hola Mundo ñ');
23
+ * // encoded: "SG9sYSBNdW5kbyDDsQ=="
24
+ * ```
5
25
  */
6
26
  export declare function encodeBase64String(str: string): string;
7
27
  /**
8
28
  * Decodificar Base64 a string (UTF-8 seguro)
29
+ * @param b64 - String en base64 a decodificar
30
+ * @returns String decodificado
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const decoded = decodeBase64String('SG9sYSBNdW5kbyDDsQ==');
35
+ * // decoded: "Hola Mundo ñ"
36
+ * ```
9
37
  */
10
38
  export declare function decodeBase64String(b64: string): string;
11
39
  /**
12
40
  * Codificar un objeto a base64 (UTF-8 seguro)
41
+ * @param obj - Objeto a codificar
42
+ * @returns String codificado en base64
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const obj = { nombre: 'Juan', edad: 25 };
47
+ * const encoded = encodeBase64Object(obj);
48
+ * ```
13
49
  */
14
50
  export declare function encodeBase64Object(obj: any): string;
15
51
  /**
16
52
  * Decodificar un base64 y obtener el objeto original
53
+ * @param b64 - String en base64 a decodificar
54
+ * @returns Objeto decodificado
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const obj = decodeBase64Object<{ nombre: string, edad: number }>(encoded);
59
+ * // obj: { nombre: 'Juan', edad: 25 }
60
+ * ```
17
61
  */
18
62
  export declare function decodeBase64Object<T = any>(b64: string): T;
19
63
  /**
20
64
  * Codificar archivo a Base64 (retorna solo el contenido, sin "data:...")
65
+ * @param file - Archivo o Blob a codificar
66
+ * @returns Promise con el string en base64
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const file = event.target.files[0];
71
+ * const base64 = await encodeBase64File(file);
72
+ * // base64: "iVBORw0KGgoAAAANSUhEUgAA..."
73
+ * ```
21
74
  */
22
75
  export declare function encodeBase64File(file: File | Blob): Promise<string>;
23
76
  /**
24
77
  * Decodificar Base64 a Blob (para reconstruir archivos en Angular)
78
+ * @param b64 - String en base64
79
+ * @param mimeType - Tipo MIME del archivo (opcional)
80
+ * @returns Blob con el contenido decodificado
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const blob = decodeBase64ToBlob(base64String, 'image/png');
85
+ * const url = URL.createObjectURL(blob);
86
+ * // Usar url para mostrar imagen o descargar
87
+ * ```
25
88
  */
26
89
  export declare function decodeBase64ToBlob(b64: string, mimeType?: string): Blob;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Configura el modo de producción para las utilidades de logging
3
+ * @param production - true si está en modo producción, false para desarrollo
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { setProductionMode } from '@jvsoft/utils';
8
+ * import { environment } from './environments/environment';
9
+ *
10
+ * setProductionMode(environment.production);
11
+ * ```
12
+ */
13
+ export declare function setProductionMode(production: boolean): void;
14
+ /**
15
+ * Obtiene el estado actual del modo de producción
16
+ * @returns true si está en modo producción, false en desarrollo
17
+ */
18
+ export declare function isProduction(): boolean;
19
+ /**
20
+ * Muestra mensajes de log solo en modo desarrollo
21
+ * @param args - Argumentos a mostrar en consola
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * devLog('Usuario cargado:', usuario);
26
+ * devLog('Estado:', { activo: true, rol: 'admin' });
27
+ * ```
28
+ */
29
+ export declare function devLog(...args: any[]): void;
30
+ /**
31
+ * Muestra advertencias solo en modo desarrollo
32
+ * @param args - Argumentos a mostrar como advertencia
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * devWarn('Función deprecada, usar nuevaFuncion() en su lugar');
37
+ * ```
38
+ */
39
+ export declare function devWarn(...args: any[]): void;
40
+ /**
41
+ * Muestra errores en consola (siempre, incluso en producción)
42
+ * @param args - Argumentos a mostrar como error
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * devError('Error al cargar datos:', error);
47
+ * ```
48
+ */
49
+ export declare function devError(...args: any[]): void;
50
+ /**
51
+ * Crea un grupo de logs solo en modo desarrollo
52
+ * @param label - Etiqueta del grupo
53
+ * @param collapsed - Si el grupo debe estar colapsado por defecto
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * devGroup('Datos del usuario');
58
+ * devLog('Nombre:', usuario.nombre);
59
+ * devLog('Email:', usuario.email);
60
+ * devGroupEnd();
61
+ * ```
62
+ */
63
+ export declare function devGroup(label: string, collapsed?: boolean): void;
64
+ /**
65
+ * Cierra el grupo de logs actual
66
+ */
67
+ export declare function devGroupEnd(): void;
68
+ /**
69
+ * Muestra una tabla en consola solo en modo desarrollo
70
+ * @param data - Datos a mostrar en formato tabla
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * devTable([
75
+ * { nombre: 'Juan', edad: 25 },
76
+ * { nombre: 'María', edad: 30 }
77
+ * ]);
78
+ * ```
79
+ */
80
+ export declare function devTable(data: any): void;
81
+ /**
82
+ * Inicia un temporizador solo en modo desarrollo
83
+ * @param label - Etiqueta del temporizador
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * devTime('carga-datos');
88
+ * // ... código a medir
89
+ * devTimeEnd('carga-datos'); // Muestra: carga-datos: 123.45ms
90
+ * ```
91
+ */
92
+ export declare function devTime(label: string): void;
93
+ /**
94
+ * Finaliza un temporizador y muestra el tiempo transcurrido
95
+ * @param label - Etiqueta del temporizador
96
+ */
97
+ export declare function devTimeEnd(label: string): void;
@@ -1,26 +1,40 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
- /**
3
- * Devuelve un valor de visualización para un elemento buscado.
4
- * Compatible con listas simples, objetos y campos múltiples.
5
- */
6
- export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): any;
7
- /**
8
- * Vincula un FormControl a datos locales para autocompletado.
9
- */
10
- export declare function changeSelectData(objThis: any, { formControl, data, campoBuscar, variableResultado }: {
2
+ export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): string;
3
+ export declare function changeSelectData(objThis: any, dataFiltro: {
11
4
  formControl: AbstractControl;
12
5
  data: any[];
13
6
  campoBuscar: string | string[];
14
7
  variableResultado: string;
15
8
  }): void;
9
+ export declare function changeSelect(control: any, formControl: AbstractControl, tipo: any, campoBuscar: any, campoFiltro?: null): void;
10
+ export declare function changeSelectDataApi(objThis: any, dataFiltro: {
11
+ tipoReq: string;
12
+ campoId?: string;
13
+ minLength?: number;
14
+ dataExtra?: any;
15
+ dataExtraVariable?: any;
16
+ anonimo?: boolean;
17
+ queryService: any;
18
+ formControl: AbstractControl;
19
+ variableResultado?: string;
20
+ }): void;
21
+ export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
16
22
  /**
17
- * Vincula un FormControl a datos locales obtenidos de dataServidor o dataServidorSuscripcion.
23
+ * Comprueba si un valor es una Promesa
24
+ * @param valor - Valor a verificar
25
+ * @returns true si es una Promise
18
26
  */
19
- export declare function changeSelect(control: any, formControl: AbstractControl, tipo: string, campoBuscar: string | string[], campoFiltro?: string | null): void;
27
+ export declare function esPromise(valor: any): boolean;
20
28
  /**
21
- * Configuración para changeSelectReformateado.
29
+ * Selecciona todo el texto de un input
30
+ * @param event - Evento del input
22
31
  */
23
- interface ChangeSelectConfig {
32
+ export declare function seleccionarTextoInput(event: any): void;
33
+ /**
34
+ * Función genérica para vincular un FormControl con datos desde API o Promise.
35
+ * Preparada para migrar a signals en el futuro.
36
+ */
37
+ export declare function changeSelectReformateado(config: {
24
38
  objThis: any;
25
39
  tipoReq: string;
26
40
  formControl: AbstractControl;
@@ -28,24 +42,7 @@ interface ChangeSelectConfig {
28
42
  campoId?: string;
29
43
  minLength?: number;
30
44
  dataExtra?: any;
31
- dataExtraVariable?: {
32
- campo: string;
33
- ctrlValue: AbstractControl;
34
- }[];
45
+ dataExtraVariable?: any[];
35
46
  anonimo?: boolean;
36
47
  variableResultado?: string;
37
- }
38
- /**
39
- * Función genérica para vincular un FormControl con datos desde API o Promise.
40
- * Preparada para migrar a signals en el futuro.
41
- */
42
- export declare function changeSelectReformateado(config: ChangeSelectConfig): void;
43
- /**
44
- * Alias para compatibilidad.
45
- */
46
- export declare function changeSelectDataApi(objThis: any, dataFiltro: any): void;
47
- /**
48
- * Alias para compatibilidad.
49
- */
50
- export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
51
- export {};
48
+ }): void;
@@ -1,23 +1,8 @@
1
- /**
2
- * Realiza una fusión profunda entre dos objetos, sin modificar el original.
3
- * Si el valor en target no es un objeto, lo reemplaza directamente.
4
- *
5
- * @param source - Objeto fuente que se clonará y fusionará.
6
- * @param target - Objeto destino cuyos valores se fusionarán.
7
- * @returns Un nuevo objeto con la fusión profunda.
8
- */
9
1
  export declare function deepMerge(source: any, target: any): any;
10
- /**
11
- * Realiza una clonación profunda de un objeto, manejando funciones, fechas y arrays.
12
- *
13
- * @param obj - Objeto a clonar.
14
- * @returns Una copia profunda del objeto.
15
- */
16
2
  export declare function deepClone(obj: any): any;
17
3
  /**
18
4
  * Busca un elemento en un array o jerarquía de objetos según un campo y valor especificado.
19
5
  *
20
- * @param datosFn - Objeto con los parámetros de búsqueda: items, campo, valor y opcionalmente campoHijo.
21
6
  * @returns El elemento encontrado o undefined si no existe.
22
7
  */
23
8
  export declare function buscarPorCampo<T>(datosFn: {
@@ -26,91 +11,29 @@ export declare function buscarPorCampo<T>(datosFn: {
26
11
  valor: any;
27
12
  campoHijo?: string;
28
13
  }): T | undefined;
29
- /**
30
- * Suma los valores de las propiedades especificadas de un objeto.
31
- *
32
- * @param item - Objeto con las propiedades a sumar.
33
- * @param campos - Array de nombres de las propiedades a sumar.
34
- * @returns La suma de los valores de las propiedades.
35
- */
36
14
  export declare function sumarPropiedades(item: Record<string, any>, campos: string[]): number;
37
- /**
38
- * Verifica si el valor proporcionado es un número válido.
39
- *
40
- * @param value - Valor a verificar.
41
- * @returns true si es un número, false en caso contrario.
42
- */
43
15
  export declare function esNumero(value: any): boolean;
44
- /**
45
- * Suma los valores de las propiedades especificadas en un array de objetos.
46
- *
47
- * @param arrayObjetos - Array de objetos a procesar.
48
- * @param campos - Array de nombres de las propiedades a sumar.
49
- * @returns Objeto con la suma de cada propiedad.
50
- */
51
16
  export declare function sumarObjetos(arrayObjetos: any[], campos: string[]): Record<string, number>;
52
- /**
53
- * Obtiene los valores únicos de un array.
54
- *
55
- * @param array - Array de valores.
56
- * @returns Array con los valores únicos.
57
- */
58
17
  export declare function getUniqueValues(array: any[]): any[];
59
- /**
60
- * Obtiene los objetos únicos de un array según una propiedad específica.
61
- *
62
- * @param objetos - Array de objetos.
63
- * @param campo - Nombre de la propiedad para determinar unicidad.
64
- * @returns Array de objetos únicos por la propiedad.
65
- */
66
18
  export declare function getUniqueValuesByProperty<T>(objetos: T[], campo: string): T[];
67
- /**
68
- * Ordena un array de valores numéricos o alfabéticos.
69
- *
70
- * @param array - Array a ordenar.
71
- * @param numeros - Si es true, ordena como números.
72
- * @param sentido - 'ASC' para ascendente, 'DESC' para descendente.
73
- * @returns Array ordenado.
74
- */
75
19
  export declare function ordenarArray(array: any[], numeros?: boolean, sentido?: 'ASC' | 'DESC'): any[];
76
- /**
77
- * Ordena un array de objetos por una propiedad específica.
78
- *
79
- * @param objData - Array de objetos a ordenar.
80
- * @param propiedad - Propiedad por la que se ordena.
81
- * @param numeros - (Obsoleto) Si es true, ordena como números.
82
- * @returns Array ordenado.
83
- */
84
20
  export declare function ordenarPorPropiedad(objData: any, propiedad: string, /**@deprecated*/ numeros?: boolean): {
85
21
  [x: string]: {};
86
22
  }[];
87
- /**
88
- * Ordena un array de objetos por varias propiedades y direcciones.
89
- *
90
- * @param arr - Array de objetos a ordenar.
91
- * @param options - Opciones con propiedades y direcciones de orden.
92
- * @returns Array ordenado.
93
- */
94
23
  export declare function ordenarPorPropiedades<T>(arr: T[], options: {
95
24
  propiedades: (keyof T)[];
96
25
  direcciones?: ('asc' | 'desc' | '')[];
97
26
  }): T[];
98
- /**
99
- * Agrupa los elementos de un array según una clave o función de clave.
100
- *
101
- * @param array - Array de objetos a agrupar.
102
- * @param key - Propiedad o función para agrupar.
103
- * @returns Objeto con los grupos por clave.
104
- */
105
27
  export declare function groupBy<T extends Record<string, any>, K extends keyof T>(array: T[], key: K | ((obj: T) => string)): Record<string, T[]>;
28
+ export declare function nestGroupsBy(arr: any, properties: any): any;
106
29
  /**
107
- * Agrupa y anida los elementos de un array según una lista de propiedades.
30
+ * Obtiene un valor de un objeto usando una ruta de propiedad anidada.
108
31
  *
109
- * @param arr - Array de objetos a agrupar.
110
- * @param properties - Propiedades para agrupar de forma anidada.
111
- * @returns Objeto anidado por los grupos de propiedades.
32
+ * @param obj - Objeto de entrada.
33
+ * @param path - Ruta en formato punto (ej: "cliente.orden").
34
+ * @returns El valor encontrado o undefined si no existe.
112
35
  */
113
- export declare function nestGroupsBy(arr: any, properties: any): any;
36
+ export declare function getValueByPath(obj: any, path: string): any;
114
37
  /**
115
38
  * Retorna el valor máximo del campo especificado (incluso anidado) en un arreglo de objetos.
116
39
  *
@@ -128,20 +51,13 @@ export declare function obtenerUltimoOrden(data: any[], campo: string, increment
128
51
  * @returns Nuevo array con las columnas eliminadas.
129
52
  */
130
53
  export declare function eliminarColumnaPorIndex<T extends unknown[][]>(data: T, columnIndex: number | number[]): T;
131
- /**
132
- * Elimina elementos duplicados de un array de objetos según claves específicas.
133
- *
134
- * @param array - Array de objetos.
135
- * @param claves - Claves para determinar unicidad. Si no se especifica, compara todo el objeto.
136
- * @returns Array sin duplicados.
137
- */
138
54
  export declare function eliminarDuplicados<T extends object>(array: T[], claves?: (keyof T)[]): T[];
55
+ export declare function eliminarElementos<T extends object>(origen: T[], elementosAEliminar: T[], claves?: (keyof T)[]): T[];
139
56
  /**
140
- * Elimina elementos de un array origen que estén presentes en otro array, según claves específicas.
141
- *
142
- * @param origen - Array original.
143
- * @param elementosAEliminar - Elementos a eliminar del array origen.
144
- * @param claves - Claves para comparar los objetos. Si no se especifica, compara todo el objeto.
145
- * @returns Array filtrado sin los elementos eliminados.
57
+ * Filtra datos localmente según un valor de búsqueda
58
+ * @param data - Array de datos a filtrar
59
+ * @param value - Valor de búsqueda
60
+ * @param campoBuscar - Campo(s) por el cual buscar
61
+ * @returns Array filtrado
146
62
  */
147
- export declare function eliminarElementos<T extends object>(origen: T[], elementosAEliminar: T[], claves?: (keyof T)[]): T[];
63
+ export declare function filtrarDatosLocal(data: any[], value: any, campoBuscar: string | string[]): any[];
@@ -3,6 +3,7 @@ export * from './base64';
3
3
  export * from './browser';
4
4
  export * from './crypto-js';
5
5
  export * from './date';
6
+ export * from './dev-log';
6
7
  export * from './email';
7
8
  export * from './file';
8
9
  export * from './forms';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jvsoft/utils",
3
- "version": "0.0.13-alpha.6",
3
+ "version": "1.0.0-alpha.5",
4
4
  "description": "JVSOFT Angular Utils",
5
5
  "publishConfig": {
6
6
  "tag": "alpha",
@@ -11,7 +11,14 @@
11
11
  "@angular/core": ">=16.0.0",
12
12
  "@angular/forms": ">=16.0.0",
13
13
  "@angular/material": ">=16.0.0",
14
- "@rxweb/reactive-form-validators": ">=13.0.0"
14
+ "@rxweb/reactive-form-validators": ">=13.0.0",
15
+ "crypto-js": "^4.2.0",
16
+ "file-saver": "^2.0.5",
17
+ "jwt-decode": "^4.0.0",
18
+ "moment": "^2.30.1",
19
+ "ngx-toastr": "^19.0.0",
20
+ "sweetalert2": "^11.17.2",
21
+ "xlsx": "^0.18.5"
15
22
  },
16
23
  "sideEffects": false,
17
24
  "module": "fesm2022/jvsoft-utils.mjs",
@@ -1,26 +1,89 @@
1
+ /**
2
+ * Codifica un string a base64 (método legacy)
3
+ * @param val - String a codificar
4
+ * @returns String codificado en base64
5
+ * @deprecated Use encodeBase64String() en su lugar
6
+ */
1
7
  export declare function b64Encode(val: string): string;
8
+ /**
9
+ * Decodifica un string desde base64 (método legacy)
10
+ * @param val - String en base64 a decodificar
11
+ * @returns String decodificado
12
+ * @deprecated Use decodeBase64String() en su lugar
13
+ */
2
14
  export declare function b64Decode(val: string): string;
3
15
  /**
4
16
  * Codificar string a Base64 (UTF-8 seguro)
17
+ * @param str - String a codificar
18
+ * @returns String codificado en base64
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const encoded = encodeBase64String('Hola Mundo ñ');
23
+ * // encoded: "SG9sYSBNdW5kbyDDsQ=="
24
+ * ```
5
25
  */
6
26
  export declare function encodeBase64String(str: string): string;
7
27
  /**
8
28
  * Decodificar Base64 a string (UTF-8 seguro)
29
+ * @param b64 - String en base64 a decodificar
30
+ * @returns String decodificado
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const decoded = decodeBase64String('SG9sYSBNdW5kbyDDsQ==');
35
+ * // decoded: "Hola Mundo ñ"
36
+ * ```
9
37
  */
10
38
  export declare function decodeBase64String(b64: string): string;
11
39
  /**
12
40
  * Codificar un objeto a base64 (UTF-8 seguro)
41
+ * @param obj - Objeto a codificar
42
+ * @returns String codificado en base64
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const obj = { nombre: 'Juan', edad: 25 };
47
+ * const encoded = encodeBase64Object(obj);
48
+ * ```
13
49
  */
14
50
  export declare function encodeBase64Object(obj: any): string;
15
51
  /**
16
52
  * Decodificar un base64 y obtener el objeto original
53
+ * @param b64 - String en base64 a decodificar
54
+ * @returns Objeto decodificado
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const obj = decodeBase64Object<{ nombre: string, edad: number }>(encoded);
59
+ * // obj: { nombre: 'Juan', edad: 25 }
60
+ * ```
17
61
  */
18
62
  export declare function decodeBase64Object<T = any>(b64: string): T;
19
63
  /**
20
64
  * Codificar archivo a Base64 (retorna solo el contenido, sin "data:...")
65
+ * @param file - Archivo o Blob a codificar
66
+ * @returns Promise con el string en base64
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const file = event.target.files[0];
71
+ * const base64 = await encodeBase64File(file);
72
+ * // base64: "iVBORw0KGgoAAAANSUhEUgAA..."
73
+ * ```
21
74
  */
22
75
  export declare function encodeBase64File(file: File | Blob): Promise<string>;
23
76
  /**
24
77
  * Decodificar Base64 a Blob (para reconstruir archivos en Angular)
78
+ * @param b64 - String en base64
79
+ * @param mimeType - Tipo MIME del archivo (opcional)
80
+ * @returns Blob con el contenido decodificado
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const blob = decodeBase64ToBlob(base64String, 'image/png');
85
+ * const url = URL.createObjectURL(blob);
86
+ * // Usar url para mostrar imagen o descargar
87
+ * ```
25
88
  */
26
89
  export declare function decodeBase64ToBlob(b64: string, mimeType?: string): Blob;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Configura el modo de producción para las utilidades de logging
3
+ * @param production - true si está en modo producción, false para desarrollo
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { setProductionMode } from '@jvsoft/utils';
8
+ * import { environment } from './environments/environment';
9
+ *
10
+ * setProductionMode(environment.production);
11
+ * ```
12
+ */
13
+ export declare function setProductionMode(production: boolean): void;
14
+ /**
15
+ * Obtiene el estado actual del modo de producción
16
+ * @returns true si está en modo producción, false en desarrollo
17
+ */
18
+ export declare function isProduction(): boolean;
19
+ /**
20
+ * Muestra mensajes de log solo en modo desarrollo
21
+ * @param args - Argumentos a mostrar en consola
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * devLog('Usuario cargado:', usuario);
26
+ * devLog('Estado:', { activo: true, rol: 'admin' });
27
+ * ```
28
+ */
29
+ export declare function devLog(...args: any[]): void;
30
+ /**
31
+ * Muestra advertencias solo en modo desarrollo
32
+ * @param args - Argumentos a mostrar como advertencia
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * devWarn('Función deprecada, usar nuevaFuncion() en su lugar');
37
+ * ```
38
+ */
39
+ export declare function devWarn(...args: any[]): void;
40
+ /**
41
+ * Muestra errores en consola (siempre, incluso en producción)
42
+ * @param args - Argumentos a mostrar como error
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * devError('Error al cargar datos:', error);
47
+ * ```
48
+ */
49
+ export declare function devError(...args: any[]): void;
50
+ /**
51
+ * Crea un grupo de logs solo en modo desarrollo
52
+ * @param label - Etiqueta del grupo
53
+ * @param collapsed - Si el grupo debe estar colapsado por defecto
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * devGroup('Datos del usuario');
58
+ * devLog('Nombre:', usuario.nombre);
59
+ * devLog('Email:', usuario.email);
60
+ * devGroupEnd();
61
+ * ```
62
+ */
63
+ export declare function devGroup(label: string, collapsed?: boolean): void;
64
+ /**
65
+ * Cierra el grupo de logs actual
66
+ */
67
+ export declare function devGroupEnd(): void;
68
+ /**
69
+ * Muestra una tabla en consola solo en modo desarrollo
70
+ * @param data - Datos a mostrar en formato tabla
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * devTable([
75
+ * { nombre: 'Juan', edad: 25 },
76
+ * { nombre: 'María', edad: 30 }
77
+ * ]);
78
+ * ```
79
+ */
80
+ export declare function devTable(data: any): void;
81
+ /**
82
+ * Inicia un temporizador solo en modo desarrollo
83
+ * @param label - Etiqueta del temporizador
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * devTime('carga-datos');
88
+ * // ... código a medir
89
+ * devTimeEnd('carga-datos'); // Muestra: carga-datos: 123.45ms
90
+ * ```
91
+ */
92
+ export declare function devTime(label: string): void;
93
+ /**
94
+ * Finaliza un temporizador y muestra el tiempo transcurrido
95
+ * @param label - Etiqueta del temporizador
96
+ */
97
+ export declare function devTimeEnd(label: string): void;