@mks2508/better-logger 3.0.0 → 4.0.0
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/.claude/settings.local.json +3 -1
- package/CHANGELOG.json +98 -1
- package/dist/Logger.d.ts +24 -12
- package/dist/Logger.d.ts.map +1 -1
- package/dist/chunks/{Logger-C126NTrD.js → Logger-D-gmmgR2.js} +207 -18
- package/dist/chunks/Logger-D-gmmgR2.js.map +1 -0
- package/dist/chunks/Logger-D7cfaz15.js +2 -0
- package/dist/chunks/Logger-D7cfaz15.js.map +1 -0
- package/dist/chunks/{environment-TI2ByCPT.js → environment-COWvu6Wz.js} +466 -98
- package/dist/chunks/environment-COWvu6Wz.js.map +1 -0
- package/dist/chunks/environment-C_8J-zQ_.js +4 -0
- package/dist/chunks/environment-C_8J-zQ_.js.map +1 -0
- package/dist/chunks/{formatting-CuNUqGks.js → formatting-CYjT9yhO.js} +2 -2
- package/dist/chunks/{formatting-CuNUqGks.js.map → formatting-CYjT9yhO.js.map} +1 -1
- package/dist/chunks/{formatting-Blwy-f0W.js → formatting-Cg5YhB9Y.js} +2 -2
- package/dist/chunks/{formatting-Blwy-f0W.js.map → formatting-Cg5YhB9Y.js.map} +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +2 -2
- package/dist/exports.cjs +1 -1
- package/dist/exports.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +151 -20
- package/dist/index.js.map +1 -1
- package/dist/styling.cjs +1 -1
- package/dist/styling.js +3 -3
- package/dist/terminal/color-converter.d.ts +73 -0
- package/dist/terminal/color-converter.d.ts.map +1 -0
- package/dist/terminal/formatter.d.ts +20 -0
- package/dist/terminal/formatter.d.ts.map +1 -0
- package/dist/terminal/terminal-renderer.d.ts +20 -6
- package/dist/terminal/terminal-renderer.d.ts.map +1 -1
- package/dist/types/core.d.ts +61 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/environment-detector.d.ts +10 -0
- package/dist/utils/environment-detector.d.ts.map +1 -1
- package/dist/writers/BufferWriter.d.ts +96 -0
- package/dist/writers/BufferWriter.d.ts.map +1 -0
- package/dist/writers/index.d.ts +6 -0
- package/dist/writers/index.d.ts.map +1 -0
- package/package.json +1 -1
- package/packages/core/package.json +1 -1
- package/packages/styling/package.json +2 -2
- package/src/Logger.ts +63 -21
- package/src/index.ts +61 -2
- package/src/terminal/color-converter.ts +315 -0
- package/src/terminal/formatter.ts +236 -0
- package/src/terminal/terminal-renderer.ts +74 -79
- package/src/types/core.ts +68 -0
- package/src/types/index.ts +5 -0
- package/src/utils/environment-detector.ts +23 -1
- package/src/writers/BufferWriter.ts +157 -0
- package/src/writers/index.ts +6 -0
- package/dist/chunks/Logger-BCfx_yCK.js +0 -2
- package/dist/chunks/Logger-BCfx_yCK.js.map +0 -1
- package/dist/chunks/Logger-C126NTrD.js.map +0 -1
- package/dist/chunks/environment-Ba5kShbx.js +0 -4
- package/dist/chunks/environment-Ba5kShbx.js.map +0 -1
- package/dist/chunks/environment-TI2ByCPT.js.map +0 -1
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
"Bash(wc:*)",
|
|
35
35
|
"mcp__plugin_context7_context7__resolve-library-id",
|
|
36
36
|
"mcp__plugin_context7_context7__get-library-docs",
|
|
37
|
-
"WebFetch(domain:www.nearform.com)"
|
|
37
|
+
"WebFetch(domain:www.nearform.com)",
|
|
38
|
+
"Bash(grep:*)",
|
|
39
|
+
"Bash(cat:*)"
|
|
38
40
|
],
|
|
39
41
|
"deny": [],
|
|
40
42
|
"ask": [],
|
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,103 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current_version": "0.
|
|
2
|
+
"current_version": "0.16.1-alpha.1",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.16.1-alpha.1",
|
|
6
|
+
"date": "2026-01-06",
|
|
7
|
+
"type": "patch",
|
|
8
|
+
"title": "Versión Alpha - Mejoras y optimizaciones",
|
|
9
|
+
"changes": [
|
|
10
|
+
{
|
|
11
|
+
"type": "improvement",
|
|
12
|
+
"title": "chore: release 0.16.0-alpha.1 [skip ci]",
|
|
13
|
+
"description": "chore: release 0.16.0-alpha.1 [skip ci]"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "improvement",
|
|
17
|
+
"title": "3.1",
|
|
18
|
+
"description": "3.1"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"technical_notes": "",
|
|
22
|
+
"breaking_changes": [],
|
|
23
|
+
"commit_hash": "a8e307c3b71f7e62fb9c36d3ef32dbbdd023ae7e",
|
|
24
|
+
"prefix": "alpha"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"version": "0.16.0-alpha.1",
|
|
28
|
+
"date": "2025-12-28",
|
|
29
|
+
"type": "minor",
|
|
30
|
+
"title": "Versión Alpha - Nuevas funcionalidades incluyendo Custom Serializers: `logger y 4 más",
|
|
31
|
+
"changes": [
|
|
32
|
+
{
|
|
33
|
+
"type": "improvement",
|
|
34
|
+
"title": "chore: release 0.15.0-alpha.1 [skip ci]",
|
|
35
|
+
"description": "chore: release 0.15.0-alpha.1 [skip ci]"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "improvement",
|
|
39
|
+
"title": "Update package.json",
|
|
40
|
+
"description": "Update package.json"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "feature",
|
|
44
|
+
"title": "Custom Serializers: `logger",
|
|
45
|
+
"description": "Custom Serializers: `logger.addSerializer(Error, fn)` para transformar objetos"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "feature",
|
|
49
|
+
"title": "Hooks System: `logger",
|
|
50
|
+
"description": "Hooks System: `logger.on('beforeLog', fn)` para interceptar logs"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "feature",
|
|
54
|
+
"title": "Middleware: `logger",
|
|
55
|
+
"description": "Middleware: `logger.use((entry, next) => {...})` pipeline de procesamiento"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "feature",
|
|
59
|
+
"title": "Transports: `logger",
|
|
60
|
+
"description": "Transports: `logger.addTransport({target: 'file'})` para file/http/custom destinations"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "feature",
|
|
64
|
+
"title": "Badges: `logger",
|
|
65
|
+
"description": "Badges: `logger.badges(['v3']).info()` sistema de etiquetado flexible"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "improvement",
|
|
69
|
+
"title": "~50-100x menos memoria en child loggers (delegación vs herencia)",
|
|
70
|
+
"description": "~50-100x menos memoria en child loggers (delegación vs herencia)"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "improvement",
|
|
74
|
+
"title": "Style Cache con LRU + TTL para estilos computados",
|
|
75
|
+
"description": "Style Cache con LRU + TTL para estilos computados"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "improvement",
|
|
79
|
+
"title": "Serialización automática con detección de tipos",
|
|
80
|
+
"description": "Serialización automática con detección de tipos"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"type": "breaking",
|
|
84
|
+
"title": "ScopedLogger usa delegación (no herencia)",
|
|
85
|
+
"description": "ScopedLogger usa delegación (no herencia)"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "breaking",
|
|
89
|
+
"title": "Métodos component/api/scope ahora síncronos",
|
|
90
|
+
"description": "Métodos component/api/scope ahora síncronos"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"technical_notes": "Nuevos módulos enterprise:\n- SerializerRegistry (src/serializers/): serialización type-based con prioridad\n- HookManager (src/hooks/): sistema de hooks (beforeLog/afterLog/onError) y middleware pipeline\n- TransportManager + ConsoleTransport/FileTransport/HttpTransport (src/transports/)\n- StyleCache (src/styling/StyleCache.ts): cache LRU con TTL para estilos computados\n\nIntegración en Logger.ts:\n- Nuevas propiedades: serializerRegistry, hookManager, transportManager\n- Nuevos métodos: addSerializer(), removeSerializer(), on(), once(), off(), use()\n- Nuevos métodos transports: addTransport(), removeTransport(), flushTransports(), closeTransports()\n- Método log() modificado: serializa args, emite hooks, escribe a transports async\n\nTypes añadidos (src/types/):\n- serializers.ts: SerializerFn, SerializerContext, ISerializerRegistry\n- hooks.ts: HookLogEntry, HookEvent, HookCallback, MiddlewareFn, IHookManager\n- transports.ts: TransportRecord, TransportTarget, ITransport\n\nScopedLogger refactorizado: delegación en lugar de herencia (~50-100x menos memoria)",
|
|
94
|
+
"breaking_changes": [
|
|
95
|
+
"ScopedLogger usa delegación (no herencia)",
|
|
96
|
+
"Métodos component/api/scope ahora síncronos"
|
|
97
|
+
],
|
|
98
|
+
"commit_hash": "7a27ac9bfd84b56318b54ee37563eed404943e94",
|
|
99
|
+
"prefix": "alpha"
|
|
100
|
+
},
|
|
4
101
|
{
|
|
5
102
|
"version": "0.15.0-alpha.1",
|
|
6
103
|
"date": "2025-12-28",
|
package/dist/Logger.d.ts
CHANGED
|
@@ -202,7 +202,7 @@ export declare class Logger {
|
|
|
202
202
|
*
|
|
203
203
|
* @since 0.3.0
|
|
204
204
|
*/
|
|
205
|
-
hideTimestamp():
|
|
205
|
+
hideTimestamp(): this;
|
|
206
206
|
/**
|
|
207
207
|
* Muestra el timestamp en los logs
|
|
208
208
|
*
|
|
@@ -212,7 +212,7 @@ export declare class Logger {
|
|
|
212
212
|
*
|
|
213
213
|
* @since 0.3.0
|
|
214
214
|
*/
|
|
215
|
-
showTimestamp():
|
|
215
|
+
showTimestamp(): this;
|
|
216
216
|
/**
|
|
217
217
|
* Oculta la información de ubicación (archivo:línea) en los logs
|
|
218
218
|
*
|
|
@@ -222,7 +222,7 @@ export declare class Logger {
|
|
|
222
222
|
*
|
|
223
223
|
* @since 0.3.0
|
|
224
224
|
*/
|
|
225
|
-
hideLocation():
|
|
225
|
+
hideLocation(): this;
|
|
226
226
|
/**
|
|
227
227
|
* Muestra la información de ubicación (archivo:línea) en los logs
|
|
228
228
|
*
|
|
@@ -232,7 +232,7 @@ export declare class Logger {
|
|
|
232
232
|
*
|
|
233
233
|
* @since 0.3.0
|
|
234
234
|
*/
|
|
235
|
-
showLocation():
|
|
235
|
+
showLocation(): this;
|
|
236
236
|
/**
|
|
237
237
|
* Oculta los badges en los logs
|
|
238
238
|
*
|
|
@@ -243,7 +243,7 @@ export declare class Logger {
|
|
|
243
243
|
*
|
|
244
244
|
* @since 0.3.0
|
|
245
245
|
*/
|
|
246
|
-
hideBadges():
|
|
246
|
+
hideBadges(): this;
|
|
247
247
|
/**
|
|
248
248
|
* Muestra los badges en los logs
|
|
249
249
|
*
|
|
@@ -254,7 +254,7 @@ export declare class Logger {
|
|
|
254
254
|
*
|
|
255
255
|
* @since 0.3.0
|
|
256
256
|
*/
|
|
257
|
-
showBadges():
|
|
257
|
+
showBadges(): this;
|
|
258
258
|
/**
|
|
259
259
|
* Establece múltiples badges para los logs
|
|
260
260
|
*
|
|
@@ -766,6 +766,18 @@ export declare class Logger {
|
|
|
766
766
|
* @since 0.3.0
|
|
767
767
|
*/
|
|
768
768
|
logGrouped<T>(items: T[], groupBy: (item: T) => string): void;
|
|
769
|
+
/**
|
|
770
|
+
* Writes formatted output to the configured destination.
|
|
771
|
+
* Respects outputMode configuration for console, silent, or custom output.
|
|
772
|
+
*
|
|
773
|
+
* @private
|
|
774
|
+
* @param {string} message - Formatted log message
|
|
775
|
+
* @param {LogLevel} level - Log level
|
|
776
|
+
* @param {string[]} styles - CSS styles for browser console
|
|
777
|
+
* @param {any[]} additionalArgs - Additional arguments to log
|
|
778
|
+
* @since 4.0.0
|
|
779
|
+
*/
|
|
780
|
+
private writeOutput;
|
|
769
781
|
/**
|
|
770
782
|
* Procesador de comandos CLI para configuración y exportación del logger
|
|
771
783
|
*
|
|
@@ -818,12 +830,12 @@ export declare const cli: (command: string) => Promise<void>;
|
|
|
818
830
|
export declare const cleanup: () => void;
|
|
819
831
|
export declare const preset: (name: string) => void;
|
|
820
832
|
export declare const presets: () => string[];
|
|
821
|
-
export declare const hideTimestamp: () =>
|
|
822
|
-
export declare const showTimestamp: () =>
|
|
823
|
-
export declare const hideLocation: () =>
|
|
824
|
-
export declare const showLocation: () =>
|
|
825
|
-
export declare const hideBadges: () =>
|
|
826
|
-
export declare const showBadges: () =>
|
|
833
|
+
export declare const hideTimestamp: () => Logger;
|
|
834
|
+
export declare const showTimestamp: () => Logger;
|
|
835
|
+
export declare const hideLocation: () => Logger;
|
|
836
|
+
export declare const showLocation: () => Logger;
|
|
837
|
+
export declare const hideBadges: () => Logger;
|
|
838
|
+
export declare const showBadges: () => Logger;
|
|
827
839
|
export declare const badges: (badgeList: string[]) => Logger;
|
|
828
840
|
export declare const badge: (badgeName: string) => Logger;
|
|
829
841
|
export declare const clearBadges: () => Logger;
|
package/dist/Logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,WAAW,EAEX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EAElB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as getAdaptiveColor, F as ADAPTIVE_COLORS, b as StyleBuilder, j as getANSIForeground, A as ANSI, u as getTerminalWidth, G as BUFFER_LIMITS, H as generateLogId, I as parseTimeInput, J as formatDisplayTime, K as safeStringify, M as escapeHtml, N as EXPORT_FORMATS, D as DEFAULT_CONFIG$1, O as setupThemeChangeListener, o as getEnvironment, p as parseStackTrace, f as formatTimestamp$1, y as createStyledOutput, t as getColorCapability, S as StylePresets } from "./environment-COWvu6Wz.js";
|
|
2
2
|
const DEFAULT_CONFIG = {
|
|
3
3
|
maxDepth: 5,
|
|
4
4
|
circular: "placeholder",
|
|
@@ -1570,6 +1570,157 @@ function getAvailablePresets() {
|
|
|
1570
1570
|
function hasPreset(name) {
|
|
1571
1571
|
return name in SMART_PRESETS;
|
|
1572
1572
|
}
|
|
1573
|
+
function stripAnsi(str) {
|
|
1574
|
+
return str.replace(/\x1b\[[0-9;]*m/g, "");
|
|
1575
|
+
}
|
|
1576
|
+
function getVisibleLength(str) {
|
|
1577
|
+
return stripAnsi(str).length;
|
|
1578
|
+
}
|
|
1579
|
+
function padToWidth(str, width, align = "left") {
|
|
1580
|
+
const visibleLen = getVisibleLength(str);
|
|
1581
|
+
if (visibleLen >= width) return str;
|
|
1582
|
+
const padding = width - visibleLen;
|
|
1583
|
+
switch (align) {
|
|
1584
|
+
case "right":
|
|
1585
|
+
return " ".repeat(padding) + str;
|
|
1586
|
+
case "center":
|
|
1587
|
+
const leftPad = Math.floor(padding / 2);
|
|
1588
|
+
const rightPad = padding - leftPad;
|
|
1589
|
+
return " ".repeat(leftPad) + str + " ".repeat(rightPad);
|
|
1590
|
+
case "left":
|
|
1591
|
+
default:
|
|
1592
|
+
return str + " ".repeat(padding);
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
function formatWithRightAlign(leftContent, rightContent, maxWidth) {
|
|
1596
|
+
const width = maxWidth ?? getTerminalWidth();
|
|
1597
|
+
const leftLen = getVisibleLength(leftContent);
|
|
1598
|
+
const rightLen = getVisibleLength(rightContent);
|
|
1599
|
+
const gap = width - leftLen - rightLen;
|
|
1600
|
+
if (gap <= 1) {
|
|
1601
|
+
return `${leftContent} ${rightContent}`;
|
|
1602
|
+
}
|
|
1603
|
+
return `${leftContent}${" ".repeat(gap)}${rightContent}`;
|
|
1604
|
+
}
|
|
1605
|
+
function formatColumns(columns, maxWidth, colorCapability = "full") {
|
|
1606
|
+
const width = maxWidth ?? getTerminalWidth();
|
|
1607
|
+
columns.length;
|
|
1608
|
+
const columnsWithWidths = columns.map((col, idx) => {
|
|
1609
|
+
if (col.width) return { ...col, calculatedWidth: col.width };
|
|
1610
|
+
const remainingWidth = width - columns.filter((c, i) => i !== idx && c.width).reduce((sum, c) => sum + (c.width ?? 0), 0);
|
|
1611
|
+
const autoColumns = columns.filter((c) => !c.width).length;
|
|
1612
|
+
const calculatedWidth = Math.floor(remainingWidth / autoColumns);
|
|
1613
|
+
return { ...col, calculatedWidth };
|
|
1614
|
+
});
|
|
1615
|
+
return columnsWithWidths.map((col) => {
|
|
1616
|
+
let content = col.content;
|
|
1617
|
+
if (col.color && colorCapability !== "none") {
|
|
1618
|
+
const colorCode = getANSIForeground(col.color, colorCapability);
|
|
1619
|
+
content = `${colorCode}${content}${ANSI.reset}`;
|
|
1620
|
+
}
|
|
1621
|
+
return padToWidth(content, col.calculatedWidth, col.align);
|
|
1622
|
+
}).join("");
|
|
1623
|
+
}
|
|
1624
|
+
function formatKeyValue(obj, colorCapability = "full", options = {}) {
|
|
1625
|
+
const {
|
|
1626
|
+
separator = " ",
|
|
1627
|
+
keyColor = "#888888",
|
|
1628
|
+
valueColor = "#00ffff"
|
|
1629
|
+
} = options;
|
|
1630
|
+
const entries = Object.entries(obj);
|
|
1631
|
+
if (entries.length === 0) return "";
|
|
1632
|
+
const keyColorCode = colorCapability !== "none" ? getANSIForeground(keyColor, colorCapability) : "";
|
|
1633
|
+
const valueColorCode = colorCapability !== "none" ? getANSIForeground(valueColor, colorCapability) : "";
|
|
1634
|
+
const reset = colorCapability !== "none" ? ANSI.reset : "";
|
|
1635
|
+
return entries.map(([key, value]) => {
|
|
1636
|
+
const valueStr = typeof value === "object" ? JSON.stringify(value) : String(value);
|
|
1637
|
+
return `${keyColorCode}${key}:${reset} ${valueColorCode}${valueStr}${reset}`;
|
|
1638
|
+
}).join(separator);
|
|
1639
|
+
}
|
|
1640
|
+
function isKeyValueObject(obj) {
|
|
1641
|
+
if (typeof obj !== "object" || obj === null) return false;
|
|
1642
|
+
if (Array.isArray(obj)) return false;
|
|
1643
|
+
const proto = Object.getPrototypeOf(obj);
|
|
1644
|
+
if (proto !== Object.prototype && proto !== null) return false;
|
|
1645
|
+
const values = Object.values(obj);
|
|
1646
|
+
return values.every(
|
|
1647
|
+
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v === null
|
|
1648
|
+
);
|
|
1649
|
+
}
|
|
1650
|
+
function formatBadge(badge, style = "brackets", colorCapability = "full", color) {
|
|
1651
|
+
const colorCode = color && colorCapability !== "none" ? getANSIForeground(color, colorCapability) : "";
|
|
1652
|
+
const reset = colorCapability !== "none" ? ANSI.reset : "";
|
|
1653
|
+
const bgBlack = colorCapability !== "none" ? ANSI.bg.black : "";
|
|
1654
|
+
const text = badge.toUpperCase();
|
|
1655
|
+
switch (style) {
|
|
1656
|
+
case "rounded":
|
|
1657
|
+
return `${bgBlack}${colorCode}⟨${text}⟩${reset}`;
|
|
1658
|
+
case "plain":
|
|
1659
|
+
return `${colorCode}${text}${reset}`;
|
|
1660
|
+
case "unicode":
|
|
1661
|
+
return `${bgBlack}${colorCode}╭${text}╮${reset}`;
|
|
1662
|
+
case "pill":
|
|
1663
|
+
return `${bgBlack}${colorCode}⦗${text}⦘${reset}`;
|
|
1664
|
+
case "brackets":
|
|
1665
|
+
default:
|
|
1666
|
+
return `${bgBlack}${colorCode}[${text}]${reset}`;
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
function formatTimestamp(date = /* @__PURE__ */ new Date(), format = "time") {
|
|
1670
|
+
switch (format) {
|
|
1671
|
+
case "iso":
|
|
1672
|
+
return date.toISOString();
|
|
1673
|
+
case "date":
|
|
1674
|
+
return date.toISOString().split("T")[0] ?? "";
|
|
1675
|
+
case "time":
|
|
1676
|
+
return date.toTimeString().slice(0, 8);
|
|
1677
|
+
case "timeMs":
|
|
1678
|
+
return date.toTimeString().slice(0, 8) + "." + String(date.getMilliseconds()).padStart(3, "0");
|
|
1679
|
+
case "relative":
|
|
1680
|
+
return formatRelativeTime(date);
|
|
1681
|
+
case "elapsed":
|
|
1682
|
+
return formatElapsedTime(date);
|
|
1683
|
+
case "custom":
|
|
1684
|
+
default:
|
|
1685
|
+
return date.toLocaleTimeString();
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
let startTime = null;
|
|
1689
|
+
function formatRelativeTime(date) {
|
|
1690
|
+
if (startTime === null) {
|
|
1691
|
+
startTime = Date.now();
|
|
1692
|
+
}
|
|
1693
|
+
const diff = date.getTime() - startTime;
|
|
1694
|
+
if (diff < 1e3) {
|
|
1695
|
+
return `+${diff}ms`;
|
|
1696
|
+
} else if (diff < 6e4) {
|
|
1697
|
+
return `+${(diff / 1e3).toFixed(1)}s`;
|
|
1698
|
+
} else {
|
|
1699
|
+
const mins = Math.floor(diff / 6e4);
|
|
1700
|
+
const secs = Math.floor(diff % 6e4 / 1e3);
|
|
1701
|
+
return `+${mins}m${secs}s`;
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
function formatElapsedTime(date) {
|
|
1705
|
+
if (startTime === null) {
|
|
1706
|
+
startTime = Date.now();
|
|
1707
|
+
}
|
|
1708
|
+
const diff = date.getTime() - startTime;
|
|
1709
|
+
const hours = Math.floor(diff / 36e5);
|
|
1710
|
+
const mins = Math.floor(diff % 36e5 / 6e4);
|
|
1711
|
+
const secs = Math.floor(diff % 6e4 / 1e3);
|
|
1712
|
+
return `${String(hours).padStart(2, "0")}:${String(mins).padStart(2, "0")}:${String(secs).padStart(2, "0")}`;
|
|
1713
|
+
}
|
|
1714
|
+
function resetStartTime() {
|
|
1715
|
+
startTime = Date.now();
|
|
1716
|
+
}
|
|
1717
|
+
function applyLogOptions(message, options, colorCapability = "full") {
|
|
1718
|
+
let result = message;
|
|
1719
|
+
if (options.rightAlign) {
|
|
1720
|
+
result = formatWithRightAlign(message, options.rightAlign);
|
|
1721
|
+
}
|
|
1722
|
+
return result;
|
|
1723
|
+
}
|
|
1573
1724
|
class ScopedLogger {
|
|
1574
1725
|
parent;
|
|
1575
1726
|
scopeName;
|
|
@@ -3311,7 +3462,7 @@ class Logger {
|
|
|
3311
3462
|
*/
|
|
3312
3463
|
hideTimestamp() {
|
|
3313
3464
|
this.displaySettings.showTimestamp = false;
|
|
3314
|
-
this
|
|
3465
|
+
return this;
|
|
3315
3466
|
}
|
|
3316
3467
|
/**
|
|
3317
3468
|
* Muestra el timestamp en los logs
|
|
@@ -3324,7 +3475,7 @@ class Logger {
|
|
|
3324
3475
|
*/
|
|
3325
3476
|
showTimestamp() {
|
|
3326
3477
|
this.displaySettings.showTimestamp = true;
|
|
3327
|
-
this
|
|
3478
|
+
return this;
|
|
3328
3479
|
}
|
|
3329
3480
|
/**
|
|
3330
3481
|
* Oculta la información de ubicación (archivo:línea) en los logs
|
|
@@ -3337,7 +3488,7 @@ class Logger {
|
|
|
3337
3488
|
*/
|
|
3338
3489
|
hideLocation() {
|
|
3339
3490
|
this.displaySettings.showLocation = false;
|
|
3340
|
-
this
|
|
3491
|
+
return this;
|
|
3341
3492
|
}
|
|
3342
3493
|
/**
|
|
3343
3494
|
* Muestra la información de ubicación (archivo:línea) en los logs
|
|
@@ -3350,7 +3501,7 @@ class Logger {
|
|
|
3350
3501
|
*/
|
|
3351
3502
|
showLocation() {
|
|
3352
3503
|
this.displaySettings.showLocation = true;
|
|
3353
|
-
this
|
|
3504
|
+
return this;
|
|
3354
3505
|
}
|
|
3355
3506
|
/**
|
|
3356
3507
|
* Oculta los badges en los logs
|
|
@@ -3364,7 +3515,7 @@ class Logger {
|
|
|
3364
3515
|
*/
|
|
3365
3516
|
hideBadges() {
|
|
3366
3517
|
this.displaySettings.showBadges = false;
|
|
3367
|
-
this
|
|
3518
|
+
return this;
|
|
3368
3519
|
}
|
|
3369
3520
|
/**
|
|
3370
3521
|
* Muestra los badges en los logs
|
|
@@ -3378,7 +3529,7 @@ class Logger {
|
|
|
3378
3529
|
*/
|
|
3379
3530
|
showBadges() {
|
|
3380
3531
|
this.displaySettings.showBadges = true;
|
|
3381
|
-
this
|
|
3532
|
+
return this;
|
|
3382
3533
|
}
|
|
3383
3534
|
/**
|
|
3384
3535
|
* Establece múltiples badges para los logs
|
|
@@ -3731,7 +3882,7 @@ class Logger {
|
|
|
3731
3882
|
if (!this.shouldLog(level)) return;
|
|
3732
3883
|
const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;
|
|
3733
3884
|
const prefix = this.getEffectivePrefix();
|
|
3734
|
-
const timestamp = formatTimestamp();
|
|
3885
|
+
const timestamp = formatTimestamp$1();
|
|
3735
3886
|
const serializedArgs = args.map((arg) => this.serializerRegistry.serialize(arg));
|
|
3736
3887
|
let message = serializedArgs.length > 0 ? String(serializedArgs[0]) : "";
|
|
3737
3888
|
if (this.badgeList.length > 0 && this.displaySettings.showBadges) {
|
|
@@ -3763,11 +3914,7 @@ class Logger {
|
|
|
3763
3914
|
);
|
|
3764
3915
|
const groupIndent = " ".repeat(this.groupDepth);
|
|
3765
3916
|
const finalFormat = groupIndent + format;
|
|
3766
|
-
|
|
3767
|
-
console.log(finalFormat, ...styles2, ...additionalArgs);
|
|
3768
|
-
} else {
|
|
3769
|
-
console.log(finalFormat, ...styles2);
|
|
3770
|
-
}
|
|
3917
|
+
this.writeOutput(finalFormat, level, styles2, additionalArgs);
|
|
3771
3918
|
if (this.exportHandler) {
|
|
3772
3919
|
this.exportHandler.setGroupInfo(this.groupDepth);
|
|
3773
3920
|
}
|
|
@@ -3814,11 +3961,12 @@ class Logger {
|
|
|
3814
3961
|
logWithBindings(bindings, level, ...args) {
|
|
3815
3962
|
if (!this.shouldLog(level)) return;
|
|
3816
3963
|
let prefix = "";
|
|
3964
|
+
const colorCapability = getColorCapability();
|
|
3817
3965
|
if (bindings.badges?.length) {
|
|
3818
|
-
prefix += bindings.badges.map((b) =>
|
|
3966
|
+
prefix += bindings.badges.map((b) => formatBadge(b, "pill", colorCapability, "#00ff88")).join(" ") + " ";
|
|
3819
3967
|
}
|
|
3820
3968
|
if (bindings.scope) {
|
|
3821
|
-
prefix +=
|
|
3969
|
+
prefix += formatBadge(bindings.scope, "pill", colorCapability, "#00ffff") + " ";
|
|
3822
3970
|
}
|
|
3823
3971
|
if (prefix && args.length > 0) {
|
|
3824
3972
|
args[0] = prefix + String(args[0]);
|
|
@@ -3921,7 +4069,7 @@ class Logger {
|
|
|
3921
4069
|
console.log(finalFormat, ...styles2);
|
|
3922
4070
|
}
|
|
3923
4071
|
const metadata = {
|
|
3924
|
-
timestamp: formatTimestamp(),
|
|
4072
|
+
timestamp: formatTimestamp$1(),
|
|
3925
4073
|
level: "info",
|
|
3926
4074
|
prefix,
|
|
3927
4075
|
stackInfo: stackInfo ? stackInfo : void 0
|
|
@@ -4204,6 +4352,34 @@ class Logger {
|
|
|
4204
4352
|
this.info("Grouped data:", items);
|
|
4205
4353
|
}
|
|
4206
4354
|
}
|
|
4355
|
+
// ===== OUTPUT WRITER SYSTEM =====
|
|
4356
|
+
/**
|
|
4357
|
+
* Writes formatted output to the configured destination.
|
|
4358
|
+
* Respects outputMode configuration for console, silent, or custom output.
|
|
4359
|
+
*
|
|
4360
|
+
* @private
|
|
4361
|
+
* @param {string} message - Formatted log message
|
|
4362
|
+
* @param {LogLevel} level - Log level
|
|
4363
|
+
* @param {string[]} styles - CSS styles for browser console
|
|
4364
|
+
* @param {any[]} additionalArgs - Additional arguments to log
|
|
4365
|
+
* @since 4.0.0
|
|
4366
|
+
*/
|
|
4367
|
+
writeOutput(message, level, styles2, additionalArgs) {
|
|
4368
|
+
const mode = this.config.outputMode ?? "console";
|
|
4369
|
+
if (mode === "silent") {
|
|
4370
|
+
return;
|
|
4371
|
+
}
|
|
4372
|
+
if (mode === "custom" && this.config.outputWriter) {
|
|
4373
|
+
const fullMessage = additionalArgs.length > 0 ? `${message} ${additionalArgs.map((a) => String(a)).join(" ")}` : message;
|
|
4374
|
+
this.config.outputWriter.write(fullMessage, level, styles2);
|
|
4375
|
+
return;
|
|
4376
|
+
}
|
|
4377
|
+
if (additionalArgs.length > 0) {
|
|
4378
|
+
console.log(message, ...styles2, ...additionalArgs);
|
|
4379
|
+
} else {
|
|
4380
|
+
console.log(message, ...styles2);
|
|
4381
|
+
}
|
|
4382
|
+
}
|
|
4207
4383
|
// ===== CLI SYSTEM =====
|
|
4208
4384
|
/**
|
|
4209
4385
|
* Procesador de comandos CLI para configuración y exportación del logger
|
|
@@ -4264,6 +4440,19 @@ export {
|
|
|
4264
4440
|
TransportManager as b,
|
|
4265
4441
|
ScopedLogger as c,
|
|
4266
4442
|
ContextLogger as d,
|
|
4267
|
-
|
|
4443
|
+
formatColumns as e,
|
|
4444
|
+
formatWithRightAlign as f,
|
|
4445
|
+
formatKeyValue as g,
|
|
4446
|
+
formatBadge as h,
|
|
4447
|
+
formatTimestamp as i,
|
|
4448
|
+
formatRelativeTime as j,
|
|
4449
|
+
formatElapsedTime as k,
|
|
4450
|
+
isKeyValueObject as l,
|
|
4451
|
+
getVisibleLength as m,
|
|
4452
|
+
applyLogOptions as n,
|
|
4453
|
+
displayInitBanner as o,
|
|
4454
|
+
padToWidth as p,
|
|
4455
|
+
resetStartTime as r,
|
|
4456
|
+
stripAnsi as s
|
|
4268
4457
|
};
|
|
4269
|
-
//# sourceMappingURL=Logger-
|
|
4458
|
+
//# sourceMappingURL=Logger-D-gmmgR2.js.map
|