@mks2508/better-logger 0.18.2-alpha.2 → 0.18.3

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.
Files changed (43) hide show
  1. package/dist/Logger.d.ts +113 -3
  2. package/dist/Logger.d.ts.map +1 -1
  3. package/dist/ScopedLogger.d.ts +38 -1
  4. package/dist/ScopedLogger.d.ts.map +1 -1
  5. package/dist/chunks/LogContext-DZasm_P5.cjs +141 -0
  6. package/dist/chunks/LogContext-DZasm_P5.cjs.map +1 -0
  7. package/dist/chunks/LogContext-Dyzs61XG.js +136 -0
  8. package/dist/chunks/LogContext-Dyzs61XG.js.map +1 -0
  9. package/dist/chunks/transports-BZ-Mc2IT.cjs +1450 -0
  10. package/dist/chunks/transports-BZ-Mc2IT.cjs.map +1 -0
  11. package/dist/chunks/transports-DvaLAeGJ.js +1403 -0
  12. package/dist/chunks/transports-DvaLAeGJ.js.map +1 -0
  13. package/dist/context/LogContext.d.ts +2 -4
  14. package/dist/context/LogContext.d.ts.map +1 -1
  15. package/dist/context.cjs +1 -1
  16. package/dist/context.js +1 -1
  17. package/dist/index.cjs +325 -4
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.ts +5 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +323 -5
  22. package/dist/index.js.map +1 -1
  23. package/dist/transports/OtlpTraceTransport.d.ts +118 -0
  24. package/dist/transports/OtlpTraceTransport.d.ts.map +1 -0
  25. package/dist/transports/OtlpTransport.d.ts +27 -1
  26. package/dist/transports/OtlpTransport.d.ts.map +1 -1
  27. package/dist/transports/SpanRuntime.d.ts +73 -0
  28. package/dist/transports/SpanRuntime.d.ts.map +1 -0
  29. package/dist/transports/TransportManager.d.ts +18 -11
  30. package/dist/transports/TransportManager.d.ts.map +1 -1
  31. package/dist/transports/index.d.ts +1 -0
  32. package/dist/transports/index.d.ts.map +1 -1
  33. package/dist/transports-module.d.ts +3 -1
  34. package/dist/transports-module.d.ts.map +1 -1
  35. package/dist/transports.cjs +2 -1
  36. package/dist/transports.js +2 -2
  37. package/dist/types/index.d.ts +1 -1
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/transports.d.ts +121 -2
  40. package/dist/types/transports.d.ts.map +1 -1
  41. package/dist/utils/asyncLocalStorage.d.ts +33 -0
  42. package/dist/utils/asyncLocalStorage.d.ts.map +1 -0
  43. package/package.json +1 -1
package/dist/Logger.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Sistema de logging profesional con estilos CSS avanzados, temas adaptativos,
5
5
  * badges automáticos, contextos temporales y exportación de datos.
6
6
  */
7
- import type { LogLevel, LogTag, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget, TransportRecord, ILogResourceRef, StackInfo } from './types/index.js';
7
+ import type { LogLevel, LogTag, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget, TransportRecord, ILogResourceRef, StackInfo, Span, SpanAttributes } from './types/index.js';
8
8
  import { SerializerRegistry } from './serializers/index.js';
9
9
  import { HookManager } from './hooks/index.js';
10
10
  import { TransportManager } from './transports/index.js';
@@ -648,14 +648,18 @@ export declare class Logger {
648
648
  */
649
649
  removeTransport(id: string): boolean;
650
650
  /**
651
- * Fuerza el flush de todos los transports
651
+ * Fuerza el flush de todos los transports. Antes de flushear, cierra los
652
+ * spans aún abiertos (`incomplete: true`) y los encola para export — un
653
+ * span abierto nunca se tira en un flush.
652
654
  *
653
655
  * @returns Promise que resuelve cuando todos los buffers están vaciados
654
656
  *
655
657
  */
656
658
  flushTransports(): Promise<void>;
657
659
  /**
658
- * Cierra todos los transports
660
+ * Cierra todos los transports. Como en {@link flushTransports}, primero
661
+ * fuerza el cierre de los spans abiertos para que viajen en el flush
662
+ * final del close.
659
663
  *
660
664
  * @returns Promise que resuelve cuando todos están cerrados
661
665
  *
@@ -856,6 +860,98 @@ export declare class Logger {
856
860
  *
857
861
  */
858
862
  critical(...args: unknown[]): Promise<void>;
863
+ /**
864
+ * Emite un **point-span**: un span con `start = end` para completion
865
+ * signals y eventos puntuales (una operación instantánea, un hito).
866
+ * No registra contexto activo ni puede leakear — se exporta de inmediato.
867
+ *
868
+ * El nombre `event` (y no `trace`) es deliberado: `trace` es un log level
869
+ * (el -1) y está reservado.
870
+ *
871
+ * @param {string} name - Nombre del evento (`job.completed`, `cache.flushed`, ...).
872
+ * @param {SpanAttributes} [attributes] - Attributes del span.
873
+ *
874
+ * @example
875
+ * logger.event('build.finished', { status: 'ok', durationMs: 4200 });
876
+ *
877
+ * @see {@link span} para intervalos con work-block
878
+ * @see {@link startSpan} para intervalos externally-ended
879
+ */
880
+ event(name: string, attributes?: SpanAttributes): void;
881
+ /**
882
+ * Ejecuta `fn` dentro de un span de intervalo. El span queda **activo en
883
+ * el AsyncLocalStorage del módulo** mientras `fn` corre: los logs emitidos
884
+ * dentro heredan su `traceId`/`spanId`, y los spans hijos lo toman como
885
+ * `parentSpanId`.
886
+ *
887
+ * Al retornar `fn` el span se cierra automáticamente; si `fn` lanza, se
888
+ * marca `status {code: 2}` con el mensaje del error (`fail`) y la
889
+ * excepción se relanza intacta.
890
+ *
891
+ * @typeParam T - Tipo resuelto por `fn`.
892
+ * @param {string} name - Nombre de la operación.
893
+ * @param {(s: Span) => T | Promise<T>} fn - Work-block a medir.
894
+ * @returns {Promise<T>} Lo que resuelve `fn`.
895
+ * @throws {unknown} Relanza cualquier error de `fn` tras marcar el span fallido.
896
+ *
897
+ * @example
898
+ * await logger.span('db.migrate', { target: 'v2' }, async (s) => {
899
+ * await runMigrations();
900
+ * s.set('tables', 14);
901
+ * });
902
+ *
903
+ * @see {@link event} para point-spans
904
+ * @see {@link startSpan} para spans externally-ended (poll/callback)
905
+ */
906
+ span<T>(name: string, fn: (s: Span) => T | Promise<T>): Promise<T>;
907
+ span<T>(name: string, attributes: SpanAttributes, fn: (s: Span) => T | Promise<T>): Promise<T>;
908
+ /**
909
+ * Inicia un span de intervalo **externally-ended**: devuelve el handle y
910
+ * NO fija contexto ALS (el cierre ocurre fuera del bloque léxico — p.ej.
911
+ * un `cli.spawn` que se cierra desde un poll o callback externo).
912
+ *
913
+ * Si el span no se cierra antes de `flushTransports()` / shutdown, el
914
+ * flush lo fuerza a cerrar con `incomplete: true` y lo exporta — nunca
915
+ * se tira.
916
+ *
917
+ * @param {string} name - Nombre de la operación.
918
+ * @param {SpanAttributes} [attributes] - Attributes iniciales.
919
+ * @returns {Span} Handle con `set`/`end`/`fail` y los ids del span.
920
+ *
921
+ * @example
922
+ * const s = logger.startSpan('spawn.build', { cmd: 'make' });
923
+ * proc.on('exit', code => {
924
+ * if (code === 0) s.end({ exitCode: code });
925
+ * else s.fail(new Error(`exit ${code}`));
926
+ * });
927
+ *
928
+ * @see {@link span} para el caso con work-block
929
+ */
930
+ startSpan(name: string, attributes?: SpanAttributes): Span;
931
+ /**
932
+ * Scope por defecto de los spans emitidos por este logger (el
933
+ * `globalPrefix`, o `'root'`).
934
+ * @internal
935
+ */
936
+ _spanScopeName(): string;
937
+ /**
938
+ * Emite un point-span con scope explícito. Lo consume
939
+ * {@link ScopedLogger.event}, que pasa su scope compuesto.
940
+ * @internal
941
+ */
942
+ _emitSpanEvent(name: string, attributes: SpanAttributes | undefined, scope: string): void;
943
+ /**
944
+ * Crea un span externally-ended con scope explícito. Lo consume
945
+ * {@link ScopedLogger.startSpan}.
946
+ * @internal
947
+ */
948
+ _startSpan(name: string, attributes: SpanAttributes | undefined, scope: string): Span;
949
+ /**
950
+ * Corre `fn` dentro de un span activo en el ALS con scope explícito.
951
+ * Lo consume {@link ScopedLogger.span}.
952
+ * @internal
953
+ */
954
+ _runSpan<T>(name: string, attributes: SpanAttributes | undefined, scope: string, fn: (s: Span) => T | Promise<T>): Promise<T>;
859
955
  /**
860
956
  * Muestra datos en formato de tabla. Pasa por la pipeline completa
861
957
  * (outputMode-respecting writeOutput + transports + hooks).
@@ -1110,6 +1206,16 @@ export declare function resetDefaultLogger(): void;
1110
1206
  */
1111
1207
  declare const loggerProxy: Logger;
1112
1208
  export default loggerProxy;
1209
+ /**
1210
+ * Resuelve los argumentos del overload `span(name, fn?)` /
1211
+ * `span(name, attributes, fn)` a `{ attributes, fn }`.
1212
+ *
1213
+ * @internal Compartido con `ScopedLogger.span`; no es API pública.
1214
+ */
1215
+ export declare function resolveSpanArgs<T>(fnOrAttributes: ((s: Span) => T | Promise<T>) | SpanAttributes, maybeFn?: (s: Span) => T | Promise<T>): {
1216
+ attributes: SpanAttributes | undefined;
1217
+ fn: (s: Span) => T | Promise<T>;
1218
+ };
1113
1219
  /**
1114
1220
  * Métodos individuales exportados para conveniencia
1115
1221
  * @description Todos los métodos están correctamente enlazados al singleton lazy
@@ -1126,6 +1232,10 @@ export declare const group: (label: string, collapsed?: boolean) => void;
1126
1232
  export declare const groupEnd: () => void;
1127
1233
  export declare const time: (label: string) => void;
1128
1234
  export declare const timeEnd: (label: string) => number;
1235
+ export declare const event: (name: string, attributes?: SpanAttributes) => void;
1236
+ export declare const startSpan: (name: string, attributes?: SpanAttributes) => Span;
1237
+ export declare function span<T>(name: string, fn: (s: Span) => T | Promise<T>): Promise<T>;
1238
+ export declare function span<T>(name: string, attributes: SpanAttributes, fn: (s: Span) => T | Promise<T>): Promise<T>;
1129
1239
  export declare const setGlobalPrefix: (prefix: string) => void;
1130
1240
  export declare const setVerbosity: (level: Verbosity) => void;
1131
1241
  export declare const addHandler: (handler: ILogHandler) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Logger } from './Logger.js';
2
- import type { ISpinnerHandle, IBoxOptions, ITableOptions, CLILogLevel } from './types/index.js';
2
+ import type { ISpinnerHandle, IBoxOptions, ITableOptions, CLILogLevel, Span, SpanAttributes } from './types/index.js';
3
3
  /**
4
4
  * Logger prefijado por un scope nominal. Mantiene su propio stack de badges
5
5
  * y contextos y delega el envío de mensajes al {@link Logger} padre a través
@@ -220,6 +220,43 @@ export declare class ScopedLogger {
220
220
  * logger.scope('NET').trace('packet', { bytes });
221
221
  */
222
222
  trace(...args: unknown[]): void;
223
+ /**
224
+ * Emite un point-span con el scope de este logger como
225
+ * `SpanRecord.scope`. Ver {@link Logger.event}.
226
+ *
227
+ * @param {string} name - Nombre del evento.
228
+ * @param {SpanAttributes} [attributes] - Attributes del span.
229
+ *
230
+ * @example
231
+ * logger.scope('BUILD').event('step.done', { step: 'compile' });
232
+ */
233
+ event(name: string, attributes?: SpanAttributes): void;
234
+ /**
235
+ * Ejecuta `fn` dentro de un span activo etiquetado con el scope de este
236
+ * logger. Los logs dentro de `fn` correlacionan con el span vía
237
+ * `traceId`/`spanId`. Ver {@link Logger.span}.
238
+ *
239
+ * @typeParam T - Tipo resuelto por `fn`.
240
+ * @param {string} name - Nombre de la operación.
241
+ * @param {(s: Span) => T | Promise<T>} fn - Work-block a medir.
242
+ * @returns {Promise<T>} Lo que resuelve `fn`.
243
+ *
244
+ * @example
245
+ * await logger.scope('DB').span('migrate', async (s) => {
246
+ * await runMigrations();
247
+ * });
248
+ */
249
+ span<T>(name: string, fn: (s: Span) => T | Promise<T>): Promise<T>;
250
+ span<T>(name: string, attributes: SpanAttributes, fn: (s: Span) => T | Promise<T>): Promise<T>;
251
+ /**
252
+ * Inicia un span externally-ended etiquetado con el scope de este
253
+ * logger. Ver {@link Logger.startSpan}.
254
+ *
255
+ * @param {string} name - Nombre de la operación.
256
+ * @param {SpanAttributes} [attributes] - Attributes iniciales.
257
+ * @returns {Span} Handle con `set`/`end`/`fail`.
258
+ */
259
+ startSpan(name: string, attributes?: SpanAttributes): Span;
223
260
  /**
224
261
  * Delegación a {@link Logger.step}: dibuja una barra de progreso discreta
225
262
  * `current/total` para este scope.
@@ -1 +1 @@
1
- {"version":3,"file":"ScopedLogger.d.ts","sourceRoot":"","sources":["../src/ScopedLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopedLogger.d.ts","sourceRoot":"","sources":["../src/ScopedLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ //#region src/utils/asyncLocalStorage.ts
2
+ /**
3
+ * Resuelve `AsyncLocalStorage` por capas:
4
+ * 1. global `AsyncLocalStorage` (runtimes/polyfills que lo exponen),
5
+ * 2. `process.getBuiltinModule('async_hooks')` (Node >= 22.3, Bun),
6
+ * 3. `require('node:async_hooks')` (CJS interop),
7
+ * 4. `undefined` → browser estricto: sin correlación (degradación
8
+ * documentada; el caller decide qué hacer sin ALS).
9
+ *
10
+ * Nota: NO basta con `typeof AsyncLocalStorage !== 'undefined'` — en Node y
11
+ * Bun el constructor NO es global y hay que ir a `node:async_hooks`.
12
+ */
13
+ function resolveAsyncLocalStorage() {
14
+ const globalCtor = globalThis.AsyncLocalStorage;
15
+ if (typeof globalCtor === "function") return new globalCtor();
16
+ const proc = globalThis;
17
+ try {
18
+ const asyncHooks = proc.process?.getBuiltinModule?.("async_hooks");
19
+ if (asyncHooks?.AsyncLocalStorage) return new asyncHooks.AsyncLocalStorage();
20
+ } catch {}
21
+ try {
22
+ if (typeof require === "function") {
23
+ const asyncHooks = require("node:async_hooks");
24
+ if (asyncHooks?.AsyncLocalStorage) return new asyncHooks.AsyncLocalStorage();
25
+ }
26
+ } catch {}
27
+ }
28
+ //#endregion
29
+ //#region src/context/LogContext.ts
30
+ const alsInstance = resolveAsyncLocalStorage();
31
+ /**
32
+ * Factory que crea una instancia de {@link LogContext}.
33
+ *
34
+ * @param options - Configuración (ver {@link ILogContextOptions})
35
+ * @returns Una instancia de LogContext lista para usar
36
+ *
37
+ * @example
38
+ * const logContext = createLogContext({
39
+ * childLoggerFactory: (cfg) => new Logger(cfg),
40
+ * initialContext: { service: 'orders-api' },
41
+ * initialResource: { serviceName: 'orders-api', environment: 'prod' }
42
+ * });
43
+ *
44
+ * // Child inmutable con contexto persistente
45
+ * const requestLog = logContext.child({ requestId: 'abc-123' });
46
+ *
47
+ * // Scope transitorio vía ALS (Node; en browser sin ALS es no-op)
48
+ * logContext.withContext({ traceId: 't-9' }, () => {
49
+ * requestLog.info('procesando orden');
50
+ * });
51
+ */
52
+ function createLogContext(options) {
53
+ let context = { ...options.initialContext };
54
+ let resource = options.initialResource ? { ...options.initialResource } : void 0;
55
+ const als = options.alsInstance ?? alsInstance;
56
+ return {
57
+ getContext() {
58
+ return { ...context };
59
+ },
60
+ withContext(bindings, fn) {
61
+ if (!als) {
62
+ if (fn) return fn();
63
+ return;
64
+ }
65
+ if (!fn) return void 0;
66
+ const merged = {
67
+ ...context,
68
+ ...als.getStore(),
69
+ ...bindings
70
+ };
71
+ return als.run(merged, fn);
72
+ },
73
+ async withContextAsync(bindings, fn) {
74
+ if (!als) return fn();
75
+ const merged = {
76
+ ...context,
77
+ ...als.getStore(),
78
+ ...bindings
79
+ };
80
+ return als.run(merged, fn);
81
+ },
82
+ clearContext() {
83
+ context = {};
84
+ return this;
85
+ },
86
+ setResource(res) {
87
+ resource = {
88
+ ...resource,
89
+ ...res
90
+ };
91
+ return this;
92
+ },
93
+ child(_extra) {
94
+ const snapshot = this._getBaseContextRecord();
95
+ const childLogger = options.childLoggerFactory({});
96
+ childLogger["__parentSnapshot"] = snapshot;
97
+ return childLogger;
98
+ },
99
+ _getContextRecord() {
100
+ const base = this._getBaseContextRecord();
101
+ const alsContext = als?.getStore();
102
+ if (alsContext && Object.keys(alsContext).length > 0) return {
103
+ ...base,
104
+ ...alsContext
105
+ };
106
+ return base;
107
+ },
108
+ _getBaseContextRecord() {
109
+ let base = {};
110
+ const parentRecord = options.getParentContextRecord?.() ?? null;
111
+ if (parentRecord && Object.keys(parentRecord).length > 0) base = parentRecord;
112
+ else if (Object.keys(context).length > 0) base = context;
113
+ if (Object.keys(context).length > 0) base = {
114
+ ...base,
115
+ ...context
116
+ };
117
+ return base;
118
+ },
119
+ _getResource() {
120
+ return resource;
121
+ },
122
+ _getAlsStore() {
123
+ return als?.getStore();
124
+ }
125
+ };
126
+ }
127
+ //#endregion
128
+ Object.defineProperty(exports, "createLogContext", {
129
+ enumerable: true,
130
+ get: function() {
131
+ return createLogContext;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, "resolveAsyncLocalStorage", {
135
+ enumerable: true,
136
+ get: function() {
137
+ return resolveAsyncLocalStorage;
138
+ }
139
+ });
140
+
141
+ //# sourceMappingURL=LogContext-DZasm_P5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogContext-DZasm_P5.cjs","names":[],"sources":["../../src/utils/asyncLocalStorage.ts","../../src/context/LogContext.ts"],"sourcesContent":["/**\n * @fileoverview Resolución compartida de `AsyncLocalStorage` — utilidad\n * interna, NO exportada por el barrel público (`src/utils/index.ts`).\n *\n * Único punto de verdad para resolver `node:async_hooks` por capas. Lo\n * consumen tanto `transports/SpanRuntime.ts` (ALS singleton de spans) como\n * `context/LogContext.ts` (ALS singleton de MDC). Antes había dos copias de\n * este conocimiento: una acertaba (SpanRuntime, la que sigue este archivo) y\n * otra usaba `typeof AsyncLocalStorage !== 'undefined'` — un feature-detect\n * roto, porque en Node y Bun el constructor NO es global, así que esa rama\n * quedaba siempre en `undefined` y el MDC de logs era no-op silencioso fuera\n * del browser.\n */\n\n/**\n * Forma mínima de `AsyncLocalStorage<T>` que necesita este paquete.\n */\nexport interface AsyncLocalStorageLike<T> {\n run<R>(store: T, fn: () => R): R;\n getStore(): T | undefined;\n}\n\n/**\n * Resuelve `AsyncLocalStorage` por capas:\n * 1. global `AsyncLocalStorage` (runtimes/polyfills que lo exponen),\n * 2. `process.getBuiltinModule('async_hooks')` (Node >= 22.3, Bun),\n * 3. `require('node:async_hooks')` (CJS interop),\n * 4. `undefined` → browser estricto: sin correlación (degradación\n * documentada; el caller decide qué hacer sin ALS).\n *\n * Nota: NO basta con `typeof AsyncLocalStorage !== 'undefined'` — en Node y\n * Bun el constructor NO es global y hay que ir a `node:async_hooks`.\n */\nexport function resolveAsyncLocalStorage<T>(): AsyncLocalStorageLike<T> | undefined {\n const globalCtor = (globalThis as { AsyncLocalStorage?: new () => AsyncLocalStorageLike<T> }).AsyncLocalStorage;\n if (typeof globalCtor === 'function') {\n return new globalCtor();\n }\n\n const proc = globalThis as {\n process?: {\n getBuiltinModule?: (id: string) => { AsyncLocalStorage?: new () => AsyncLocalStorageLike<T> } | undefined;\n };\n };\n try {\n const asyncHooks = proc.process?.getBuiltinModule?.('async_hooks');\n if (asyncHooks?.AsyncLocalStorage) {\n return new asyncHooks.AsyncLocalStorage();\n }\n } catch {\n // getBuiltinModule no disponible — siguiente capa\n }\n\n try {\n if (typeof require === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const asyncHooks = require('node:async_hooks') as { AsyncLocalStorage?: new () => AsyncLocalStorageLike<T> };\n if (asyncHooks?.AsyncLocalStorage) {\n return new asyncHooks.AsyncLocalStorage();\n }\n }\n } catch {\n // ESM puro sin require ni builtin accessor — browser\n }\n\n return undefined;\n}\n","/**\n * @fileoverview Bridge de LogContext — gestión de MDC (Mapped Diagnostic Context).\n *\n * Encapsula el contexto estructurado por logger, la creación de child loggers y\n * el merge de resource OTel en cada record emitido.\n *\n * Modelo de API:\n * - `withContext(bindings, fn?)` — si se pasa `fn`, lo ejecuta dentro de un\n * scope de AsyncLocalStorage mergeando `bindings`. Sin `fn`: no-op (shim de\n * backwards compat para la vieja forma de setter).\n * - `withContextAsync(bindings, fn)` — variante async callback.\n * - `child(bindings)` — inmutable (patrón canónico de MDC).\n * - Feature-detect de AsyncLocalStorage; en browser sin ALS es no-op.\n */\n\nimport type { ILogResourceRef } from '../types/index.js';\nimport type { LoggerConfig } from '../types/index.js';\nimport { resolveAsyncLocalStorage, type AsyncLocalStorageLike } from '../utils/asyncLocalStorage.js';\n\n/**\n * Snapshot del contexto bound. Lo retorna {@link LogContext.getContext}.\n *\n * Es `Readonly` para marcar contractually que el objeto devuelto es una shallow\n * copy: mutarlo no afecta a los records que emitan futuras llamadas de log.\n */\nexport type ContextSnapshot = Readonly<Record<string, unknown>>;\n\n/**\n * Tipo de la factory function para crear instancias child de Logger.\n *\n * Se inyecta en LogContext para que `child()` pueda instanciar nuevos loggers\n * sin introducir un import circular entre `Logger.ts` y `LogContext.ts`.\n * Retorna `unknown` — la clase Logger concreta la maneja el caller, y la\n * instancia devuelta tiene su campo `context` escrito por LogContext tras la\n * creación.\n */\nexport type ChildLoggerFactory = (config: Partial<LoggerConfig>) => unknown;\n\n/**\n * Shape mínima de una instancia de Logger que LogContext necesita ver.\n *\n * Evita dependencias circulares entre LogContext y Logger. El campo\n * `_parentContextRecord` lo setea el Logger padre después de que\n * `LogContext.child()` retorna, estableciendo la cadena de contextos.\n */\nexport interface ChildLoggerShape {\n _parentContextRecord?: Record<string, unknown>;\n /** Campo legacy — ya no es la fuente canónica del contexto. */\n context?: Record<string, unknown>;\n}\n\n/**\n * Options que se pasan a {@link createLogContext}.\n */\nexport interface ILogContextOptions {\n /** Pares key-value iniciales del contexto. */\n initialContext?: Record<string, unknown>;\n /** Factory para crear instancias child de logger. */\n childLoggerFactory: ChildLoggerFactory;\n /** Resource OTel inicial a mergear en cada record emitido. */\n initialResource?: Partial<ILogResourceRef>;\n /**\n * Retorna el record de contexto mergeado del logger padre en el momento\n * de creación del child. Lo usa `_getContextRecord()` para construir la\n * cadena de contextos.\n * @internal\n */\n getParentContextRecord?: () => Record<string, unknown>;\n /**\n * Instancia de AsyncLocalStorage a usar para el scoping de `withContext`.\n * @internal\n */\n alsInstance?: ALS;\n}\n\n/**\n * Contrato que retorna {@link createLogContext}.\n *\n * Fachada de MDC (Mapped Diagnostic Context) por logger. Combina tres fuentes\n * de contexto:\n * - **base inmutable** vía `child()` (snapshot capturado al crear el child),\n * - **scope transitorio** vía `withContext()` / `withContextAsync()` sobre\n * AsyncLocalStorage,\n * - **resource OTel** mergeado en cada record.\n *\n * En entornos browser sin `AsyncLocalStorage`, las variantes `withContext*`\n * degradan a no-op: ejecutan `fn` sin scoping (o lo skipan si no hay `fn`).\n * `child()` sigue operativo en browser porque no depende de ALS.\n */\nexport interface LogContext {\n /**\n * Snapshot actual del contexto bound.\n *\n * @returns Copia inmutable (shallow) del contexto; mutarla no afecta a los\n * records que emitan futuras llamadas de log.\n *\n * @example\n * const ctx = logContext.getContext();\n * console.log(ctx.requestId); // 'abc-123'\n */\n getContext(): ContextSnapshot;\n\n /**\n * Ejecuta `fn` dentro de un scope de AsyncLocalStorage donde `bindings`\n * se mergean al contexto para todas las llamadas de log dentro de `fn`.\n *\n * Si no se pasa `fn` (la vieja forma de setter), es no-op por backwards\n * compatibility. Para binding persistente prefiere `child()`; para\n * callbacks async usa `withContextAsync()`.\n *\n * **Browser fallback**: sin ALS, ejecuta `fn` directamente sin scoping\n * (los bindings NO se mergean). Si tampoco hay `fn`, retorna `undefined`.\n *\n * @param bindings - Pares key-value a attachar durante la ejecución de `fn`\n * @param fn - Función sincrónica opcional a ejecutar bajo el scope ALS\n * @returns El valor de retorno de `fn`, o `undefined` si no se pasa `fn`\n *\n * @example\n * logContext.withContext({ requestId: 'abc-123' }, () => {\n * logger.info('procesando'); // el record lleva requestId=abc-123\n * });\n * // fuera de fn: requestId ya no está presente en próximos logs\n *\n * @see {@link LogContext.withContextAsync} para callbacks async\n * @see {@link LogContext.child} para binding persistente inmutable (sin ALS)\n */\n withContext<R>(bindings: Record<string, unknown>, fn?: () => R): R | undefined;\n\n /**\n * Variante async de {@link withContext}. Ejecuta `fn` dentro de un scope\n * de AsyncLocalStorage para que los bindings queden disponibles a todas las\n * llamadas de log async dentro de `fn` (incluso tras `await`).\n *\n * **Browser fallback**: sin ALS, ejecuta `fn` directamente sin scoping.\n *\n * @param bindings - Pares key-value a attachar durante la ejecución de `fn`\n * @param fn - Función async a ejecutar bajo el scope ALS\n * @returns El Promise retornado por `fn`\n *\n * @example\n * await logContext.withContextAsync({ traceId }, async () => {\n * const user = await fetchUser();\n * logger.info('user cargado', { id: user.id });\n * // el record lleva el traceId aunque el log ocurra tras un await\n * });\n */\n withContextAsync<R>(bindings: Record<string, unknown>, fn: () => Promise<R>): Promise<R>;\n\n /**\n * Droppea todas las keys del contexto bound. Tras esta llamada, los\n * records emitidos ya no llevan `attributes` hasta que\n * {@link withContext} o {@link child} restablezcan uno.\n *\n * @returns La misma instancia de LogContext, ahora sin contexto\n *\n * @example\n * logContext.clearContext();\n * logger.info('limpio'); // sin attributes\n */\n clearContext(): this;\n\n /**\n * Actualiza el resource OTel por defecto (service.name, version,\n * deployment.environment, ...).\n *\n * Se persiste en el campo `resource` de cada record emitido, salvo que el\n * propio record lo overridee.\n *\n * @param resource - Resource OTel parcial a mergear con el actual\n * @returns La misma instancia de LogContext, para encadenar calls\n *\n * @example\n * logContext.setResource({ serviceName: 'api-gateway', environment: 'prod' });\n */\n setResource(resource: Partial<ILogResourceRef>): this;\n\n /**\n * Devuelve una copia inmutable de este logger con el contexto extra bound.\n *\n * Las llamadas futuras sobre el child emiten con el contexto mergeado, sin\n * mutar al padre — patrón canónico de MDC.\n *\n * A diferencia de {@link withContext}, **no involucra AsyncLocalStorage**:\n * el binding es persistente y queda capturado en el snapshot del child al\n * crearse. Por eso `child()` es operativo también en browser sin ALS.\n *\n * Los bindings transitorios de ALS activos en el momento de `child()` NO\n * se bakean en el child — solo se captura el contexto base. ALS se aplica\n * fresco en cada dispatch vía `_getContextRecord()`.\n *\n * @param extra - Pares key-value a attachar (requestId, userId, ...)\n * @returns Un nuevo Logger con el contexto mergeado\n *\n * @example\n * const requestLog = logContext.child({ requestId: 'abc-123' });\n * requestLog.info('inicio'); // siempre lleva requestId=abc-123\n * requestLog.info('fin');\n * // el logger padre no se ve afectado por estos bindings\n *\n * @see {@link LogContext.withContext} para scoping transitorio (ALS)\n */\n child(extra: Record<string, unknown>): ChildLoggerShape;\n\n /**\n * Record de contexto interno. Expuesto para el ensamblado de TransportRecord\n * (base + overlay ALS si hay store activo).\n * @internal\n */\n _getContextRecord(): Record<string, unknown>;\n /**\n * Retorna el contexto base SIN el overlay de ALS.\n *\n * Lo usa `Logger.child()` para capturar el snapshot del contexto padre al\n * crear un child logger, garantizando que el binding ALS transitorio no\n * se bakeé en el child.\n * @internal\n */\n _getBaseContextRecord(): Record<string, unknown>;\n /**\n * Record de resource interno. Expuesto para el ensamblado de TransportRecord.\n * @internal\n */\n _getResource(): Partial<ILogResourceRef> | undefined;\n /**\n * Retorna el store actual de AsyncLocalStorage, si ALS está activo en el\n * call stack corriente.\n * @internal\n */\n _getAlsStore(): Record<string, unknown> | undefined;\n}\n\n// AsyncLocalStorage type (Node 14+, undefined in browser)\ntype ALS = AsyncLocalStorageLike<Record<string, unknown>>;\n\n// ALS singleton del módulo. Resolución por capas (global →\n// `process.getBuiltinModule` → `require`, undefined en browser) delegada al\n// helper compartido `resolveAsyncLocalStorage` — el mismo que usa el ALS de\n// spans en `transports/SpanRuntime.ts`. Antes esto era\n// `typeof AsyncLocalStorage !== 'undefined'`, un feature-detect roto: ese\n// constructor no es global en node/bun, así que siempre resolvía `undefined`\n// y `withContext`/`withContextAsync` eran no-op silenciosos fuera del browser.\nconst alsInstance: ALS | undefined = resolveAsyncLocalStorage<Record<string, unknown>>();\n\n/**\n * Factory que crea una instancia de {@link LogContext}.\n *\n * @param options - Configuración (ver {@link ILogContextOptions})\n * @returns Una instancia de LogContext lista para usar\n *\n * @example\n * const logContext = createLogContext({\n * childLoggerFactory: (cfg) => new Logger(cfg),\n * initialContext: { service: 'orders-api' },\n * initialResource: { serviceName: 'orders-api', environment: 'prod' }\n * });\n *\n * // Child inmutable con contexto persistente\n * const requestLog = logContext.child({ requestId: 'abc-123' });\n *\n * // Scope transitorio vía ALS (Node; en browser sin ALS es no-op)\n * logContext.withContext({ traceId: 't-9' }, () => {\n * requestLog.info('procesando orden');\n * });\n */\nexport function createLogContext(options: ILogContextOptions): LogContext {\n let context: Record<string, unknown> = { ...options.initialContext };\n let resource: Partial<ILogResourceRef> | undefined = options.initialResource\n ? { ...options.initialResource }\n : undefined;\n\n // Use provided ALS instance or fall back to module-level (browser fallback)\n const als = options.alsInstance ?? alsInstance;\n\n return {\n getContext(): ContextSnapshot {\n return { ...context };\n },\n\n withContext<R>(bindings: Record<string, unknown>, fn?: () => R): R | undefined {\n // No-op without AsyncLocalStorage (browser fallback)\n if (!als) {\n if (fn) return fn();\n return undefined;\n }\n // No fn: backwards-compat no-op setter shim\n if (!fn) return undefined;\n // Run fn within AsyncLocalStorage scope, merged with the active\n // outer scope (if any) so nested withContext calls accumulate\n // bindings instead of replacing them.\n const merged = { ...context, ...als.getStore(), ...bindings };\n return als.run(merged, fn);\n },\n\n async withContextAsync<R>(bindings: Record<string, unknown>, fn: () => Promise<R>): Promise<R> {\n if (!als) return fn();\n const merged = { ...context, ...als.getStore(), ...bindings };\n return als.run(merged, fn);\n },\n\n clearContext(): typeof this {\n context = {};\n return this;\n },\n\n setResource(res: Partial<ILogResourceRef>): typeof this {\n resource = { ...resource, ...res };\n return this;\n },\n\n child(_extra: Record<string, unknown>): ChildLoggerShape {\n // Creates the child logger via factory. Captures the current\n // _getBaseContextRecord() snapshot (parent context WITHOUT ALS) at\n // child-creation time. ALS is transient and should not be baked into\n // the child's _parentContextRecord — it is applied fresh at dispatch time.\n // Note: _extra (bindings) are stored by Logger.child() as _bindings.\n const snapshot = this._getBaseContextRecord();\n const childLogger = options.childLoggerFactory({}) as ChildLoggerShape;\n // Store on childLogger for Logger.child() to pick up\n (childLogger as unknown as Record<string, unknown>)['__parentSnapshot'] = snapshot;\n return childLogger;\n },\n\n _getContextRecord(): Record<string, unknown> {\n // Returns the full merged context for dispatch purposes.\n // Base (parent snapshot + own context) plus ALS overlay if active.\n const base = this._getBaseContextRecord();\n const alsContext = als?.getStore();\n if (alsContext && Object.keys(alsContext).length > 0) {\n return { ...base, ...alsContext };\n }\n return base;\n },\n\n _getBaseContextRecord(): Record<string, unknown> {\n // Returns parent context chain + own context (NO ALS overlay).\n // ALS is applied by _getContextRecord() as a live overlay.\n let base: Record<string, unknown> = {};\n const parentRecord = options.getParentContextRecord?.() ?? null;\n if (parentRecord && Object.keys(parentRecord).length > 0) {\n base = parentRecord;\n } else if (Object.keys(context).length > 0) {\n base = context;\n }\n if (Object.keys(context).length > 0) {\n base = { ...base, ...context };\n }\n return base;\n },\n\n _getResource(): Partial<ILogResourceRef> | undefined {\n return resource;\n },\n\n _getAlsStore(): Record<string, unknown> | undefined {\n return als?.getStore();\n }\n };\n}\n"],"mappings":";;;;;;;;;;;;AAiCA,SAAgB,2BAAoE;CAChF,MAAM,aAAc,WAA0E;CAC9F,IAAI,OAAO,eAAe,YACtB,OAAO,IAAI,WAAW;CAG1B,MAAM,OAAO;CAKb,IAAI;EACA,MAAM,aAAa,KAAK,SAAS,mBAAmB,aAAa;EACjE,IAAI,YAAY,mBACZ,OAAO,IAAI,WAAW,kBAAkB;CAEhD,QAAQ,CAER;CAEA,IAAI;EACA,IAAI,OAAO,YAAY,YAAY;GAE/B,MAAM,aAAa,QAAQ,kBAAkB;GAC7C,IAAI,YAAY,mBACZ,OAAO,IAAI,WAAW,kBAAkB;EAEhD;CACJ,QAAQ,CAER;AAGJ;;;AC+KA,MAAM,cAA+B,yBAAkD;;;;;;;;;;;;;;;;;;;;;;AAuBvF,SAAgB,iBAAiB,SAAyC;CACtE,IAAI,UAAmC,EAAE,GAAG,QAAQ,eAAe;CACnE,IAAI,WAAiD,QAAQ,kBACvD,EAAE,GAAG,QAAQ,gBAAgB,IAC7B,KAAA;CAGN,MAAM,MAAM,QAAQ,eAAe;CAEnC,OAAO;EACH,aAA8B;GAC1B,OAAO,EAAE,GAAG,QAAQ;EACxB;EAEA,YAAe,UAAmC,IAA6B;GAE3E,IAAI,CAAC,KAAK;IACN,IAAI,IAAI,OAAO,GAAG;IAClB;GACJ;GAEA,IAAI,CAAC,IAAI,OAAO,KAAA;GAIhB,MAAM,SAAS;IAAE,GAAG;IAAS,GAAG,IAAI,SAAS;IAAG,GAAG;GAAS;GAC5D,OAAO,IAAI,IAAI,QAAQ,EAAE;EAC7B;EAEA,MAAM,iBAAoB,UAAmC,IAAkC;GAC3F,IAAI,CAAC,KAAK,OAAO,GAAG;GACpB,MAAM,SAAS;IAAE,GAAG;IAAS,GAAG,IAAI,SAAS;IAAG,GAAG;GAAS;GAC5D,OAAO,IAAI,IAAI,QAAQ,EAAE;EAC7B;EAEA,eAA4B;GACxB,UAAU,CAAC;GACX,OAAO;EACX;EAEA,YAAY,KAA4C;GACpD,WAAW;IAAE,GAAG;IAAU,GAAG;GAAI;GACjC,OAAO;EACX;EAEA,MAAM,QAAmD;GAMrD,MAAM,WAAW,KAAK,sBAAsB;GAC5C,MAAM,cAAc,QAAQ,mBAAmB,CAAC,CAAC;GAEjD,YAAoD,sBAAsB;GAC1E,OAAO;EACX;EAEA,oBAA6C;GAGzC,MAAM,OAAO,KAAK,sBAAsB;GACxC,MAAM,aAAa,KAAK,SAAS;GACjC,IAAI,cAAc,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,GAC/C,OAAO;IAAE,GAAG;IAAM,GAAG;GAAW;GAEpC,OAAO;EACX;EAEA,wBAAiD;GAG7C,IAAI,OAAgC,CAAC;GACrC,MAAM,eAAe,QAAQ,yBAAyB,KAAK;GAC3D,IAAI,gBAAgB,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,GACnD,OAAO;QACJ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,SAAS,GACrC,OAAO;GAEX,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,SAAS,GAC9B,OAAO;IAAE,GAAG;IAAM,GAAG;GAAQ;GAEjC,OAAO;EACX;EAEA,eAAqD;GACjD,OAAO;EACX;EAEA,eAAoD;GAChD,OAAO,KAAK,SAAS;EACzB;CACJ;AACJ"}
@@ -0,0 +1,136 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
3
+ if (typeof require !== "undefined") return require.apply(this, arguments);
4
+ throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
5
+ });
6
+ //#endregion
7
+ //#region src/utils/asyncLocalStorage.ts
8
+ /**
9
+ * Resuelve `AsyncLocalStorage` por capas:
10
+ * 1. global `AsyncLocalStorage` (runtimes/polyfills que lo exponen),
11
+ * 2. `process.getBuiltinModule('async_hooks')` (Node >= 22.3, Bun),
12
+ * 3. `require('node:async_hooks')` (CJS interop),
13
+ * 4. `undefined` → browser estricto: sin correlación (degradación
14
+ * documentada; el caller decide qué hacer sin ALS).
15
+ *
16
+ * Nota: NO basta con `typeof AsyncLocalStorage !== 'undefined'` — en Node y
17
+ * Bun el constructor NO es global y hay que ir a `node:async_hooks`.
18
+ */
19
+ function resolveAsyncLocalStorage() {
20
+ const globalCtor = globalThis.AsyncLocalStorage;
21
+ if (typeof globalCtor === "function") return new globalCtor();
22
+ const proc = globalThis;
23
+ try {
24
+ const asyncHooks = proc.process?.getBuiltinModule?.("async_hooks");
25
+ if (asyncHooks?.AsyncLocalStorage) return new asyncHooks.AsyncLocalStorage();
26
+ } catch {}
27
+ try {
28
+ if (typeof __require === "function") {
29
+ const asyncHooks = __require("node:async_hooks");
30
+ if (asyncHooks?.AsyncLocalStorage) return new asyncHooks.AsyncLocalStorage();
31
+ }
32
+ } catch {}
33
+ }
34
+ //#endregion
35
+ //#region src/context/LogContext.ts
36
+ const alsInstance = resolveAsyncLocalStorage();
37
+ /**
38
+ * Factory que crea una instancia de {@link LogContext}.
39
+ *
40
+ * @param options - Configuración (ver {@link ILogContextOptions})
41
+ * @returns Una instancia de LogContext lista para usar
42
+ *
43
+ * @example
44
+ * const logContext = createLogContext({
45
+ * childLoggerFactory: (cfg) => new Logger(cfg),
46
+ * initialContext: { service: 'orders-api' },
47
+ * initialResource: { serviceName: 'orders-api', environment: 'prod' }
48
+ * });
49
+ *
50
+ * // Child inmutable con contexto persistente
51
+ * const requestLog = logContext.child({ requestId: 'abc-123' });
52
+ *
53
+ * // Scope transitorio vía ALS (Node; en browser sin ALS es no-op)
54
+ * logContext.withContext({ traceId: 't-9' }, () => {
55
+ * requestLog.info('procesando orden');
56
+ * });
57
+ */
58
+ function createLogContext(options) {
59
+ let context = { ...options.initialContext };
60
+ let resource = options.initialResource ? { ...options.initialResource } : void 0;
61
+ const als = options.alsInstance ?? alsInstance;
62
+ return {
63
+ getContext() {
64
+ return { ...context };
65
+ },
66
+ withContext(bindings, fn) {
67
+ if (!als) {
68
+ if (fn) return fn();
69
+ return;
70
+ }
71
+ if (!fn) return void 0;
72
+ const merged = {
73
+ ...context,
74
+ ...als.getStore(),
75
+ ...bindings
76
+ };
77
+ return als.run(merged, fn);
78
+ },
79
+ async withContextAsync(bindings, fn) {
80
+ if (!als) return fn();
81
+ const merged = {
82
+ ...context,
83
+ ...als.getStore(),
84
+ ...bindings
85
+ };
86
+ return als.run(merged, fn);
87
+ },
88
+ clearContext() {
89
+ context = {};
90
+ return this;
91
+ },
92
+ setResource(res) {
93
+ resource = {
94
+ ...resource,
95
+ ...res
96
+ };
97
+ return this;
98
+ },
99
+ child(_extra) {
100
+ const snapshot = this._getBaseContextRecord();
101
+ const childLogger = options.childLoggerFactory({});
102
+ childLogger["__parentSnapshot"] = snapshot;
103
+ return childLogger;
104
+ },
105
+ _getContextRecord() {
106
+ const base = this._getBaseContextRecord();
107
+ const alsContext = als?.getStore();
108
+ if (alsContext && Object.keys(alsContext).length > 0) return {
109
+ ...base,
110
+ ...alsContext
111
+ };
112
+ return base;
113
+ },
114
+ _getBaseContextRecord() {
115
+ let base = {};
116
+ const parentRecord = options.getParentContextRecord?.() ?? null;
117
+ if (parentRecord && Object.keys(parentRecord).length > 0) base = parentRecord;
118
+ else if (Object.keys(context).length > 0) base = context;
119
+ if (Object.keys(context).length > 0) base = {
120
+ ...base,
121
+ ...context
122
+ };
123
+ return base;
124
+ },
125
+ _getResource() {
126
+ return resource;
127
+ },
128
+ _getAlsStore() {
129
+ return als?.getStore();
130
+ }
131
+ };
132
+ }
133
+ //#endregion
134
+ export { resolveAsyncLocalStorage as n, createLogContext as t };
135
+
136
+ //# sourceMappingURL=LogContext-Dyzs61XG.js.map