@mks2508/better-logger 0.18.2-alpha.1 → 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 (207) hide show
  1. package/README.md +38 -336
  2. package/dist/Logger.d.ts +356 -157
  3. package/dist/Logger.d.ts.map +1 -1
  4. package/dist/ScopedLogger.d.ts +549 -9
  5. package/dist/ScopedLogger.d.ts.map +1 -1
  6. package/dist/chunks/HookBridge-C-AvXmPD.cjs +504 -0
  7. package/dist/chunks/HookBridge-C-AvXmPD.cjs.map +1 -0
  8. package/dist/chunks/HookBridge-CI2PH79S.js +487 -0
  9. package/dist/chunks/HookBridge-CI2PH79S.js.map +1 -0
  10. package/dist/chunks/{LogContext-L7HzynFw.cjs → LogContext-BaMXleWj.cjs} +19 -4
  11. package/dist/chunks/LogContext-BaMXleWj.cjs.map +1 -0
  12. package/dist/chunks/LogContext-DZasm_P5.cjs +141 -0
  13. package/dist/chunks/LogContext-DZasm_P5.cjs.map +1 -0
  14. package/dist/chunks/{LogContext-Cwn-1Zzb.js → LogContext-DjlITOzZ.js} +19 -4
  15. package/dist/chunks/LogContext-DjlITOzZ.js.map +1 -0
  16. package/dist/chunks/LogContext-Dyzs61XG.js +136 -0
  17. package/dist/chunks/LogContext-Dyzs61XG.js.map +1 -0
  18. package/dist/chunks/SerializerBridge-Ba43Mk7j.js +393 -0
  19. package/dist/chunks/SerializerBridge-Ba43Mk7j.js.map +1 -0
  20. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs +410 -0
  21. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs.map +1 -0
  22. package/dist/chunks/{StyleManager-CIpd6wbO.cjs → StyleManager-DQ6UNRB-.cjs} +37 -11
  23. package/dist/chunks/StyleManager-DQ6UNRB-.cjs.map +1 -0
  24. package/dist/chunks/StyleManager-DjwAYbxE.js +113 -0
  25. package/dist/chunks/StyleManager-DjwAYbxE.js.map +1 -0
  26. package/dist/chunks/{core-PoT7RrTK.js → core-Blfi2klP.js} +1 -4
  27. package/dist/chunks/core-Blfi2klP.js.map +1 -0
  28. package/dist/chunks/{core-Dzz7agGa.cjs → core-CqS_UBzJ.cjs} +1 -4
  29. package/dist/chunks/core-CqS_UBzJ.cjs.map +1 -0
  30. package/dist/chunks/{environment-detector-CI3TrWK_.js → environment-detector-7NvnYUfr.js} +11 -11
  31. package/dist/chunks/environment-detector-7NvnYUfr.js.map +1 -0
  32. package/dist/chunks/{environment-detector-Cnn6wr6O.cjs → environment-detector-D-tHkKWA.cjs} +11 -11
  33. package/dist/chunks/environment-detector-D-tHkKWA.cjs.map +1 -0
  34. package/dist/chunks/server-fallback-CaCPjWby.cjs +119 -0
  35. package/dist/chunks/server-fallback-CaCPjWby.cjs.map +1 -0
  36. package/dist/chunks/server-fallback-jj0T6XaK.js +114 -0
  37. package/dist/chunks/server-fallback-jj0T6XaK.js.map +1 -0
  38. package/dist/chunks/{spinner-DNvxbM9a.cjs → spinner-BHyYEXsM.cjs} +319 -37
  39. package/dist/chunks/spinner-BHyYEXsM.cjs.map +1 -0
  40. package/dist/chunks/{spinner-D3FsF78o.js → spinner-BtkwpzYv.js} +319 -37
  41. package/dist/chunks/spinner-BtkwpzYv.js.map +1 -0
  42. package/dist/chunks/styling-CRw3KQW4.js +1592 -0
  43. package/dist/chunks/styling-CRw3KQW4.js.map +1 -0
  44. package/dist/chunks/styling-Cel2wPRy.cjs +1645 -0
  45. package/dist/chunks/styling-Cel2wPRy.cjs.map +1 -0
  46. package/dist/chunks/transports-BGfwwakw.js +1237 -0
  47. package/dist/chunks/transports-BGfwwakw.js.map +1 -0
  48. package/dist/chunks/transports-BZ-Mc2IT.cjs +1450 -0
  49. package/dist/chunks/transports-BZ-Mc2IT.cjs.map +1 -0
  50. package/dist/chunks/transports-DvaLAeGJ.js +1403 -0
  51. package/dist/chunks/transports-DvaLAeGJ.js.map +1 -0
  52. package/dist/chunks/transports-yK6CL0Ml.cjs +1278 -0
  53. package/dist/chunks/transports-yK6CL0Ml.cjs.map +1 -0
  54. package/dist/chunks/{utils-BqlFYocD.cjs → utils-W_cxqriN.cjs} +44 -37
  55. package/dist/chunks/utils-W_cxqriN.cjs.map +1 -0
  56. package/dist/chunks/{utils-VETbVpkR.js → utils-tKfBAWUM.js} +44 -37
  57. package/dist/chunks/utils-tKfBAWUM.js.map +1 -0
  58. package/dist/cli/CommandProcessor.d.ts +166 -19
  59. package/dist/cli/CommandProcessor.d.ts.map +1 -1
  60. package/dist/cli/commands/ConfigCommand.d.ts +36 -1
  61. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -1
  62. package/dist/cli/commands/ExportCommand.d.ts +49 -3
  63. package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
  64. package/dist/cli/commands/ThemeCommand.d.ts +62 -3
  65. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -1
  66. package/dist/cli/help.d.ts +30 -2
  67. package/dist/cli/help.d.ts.map +1 -1
  68. package/dist/cli/index.d.ts +29 -2
  69. package/dist/cli/index.d.ts.map +1 -1
  70. package/dist/cli.cjs +2 -2
  71. package/dist/cli.js +2 -2
  72. package/dist/context/LogContext.d.ts +167 -70
  73. package/dist/context/LogContext.d.ts.map +1 -1
  74. package/dist/context.cjs +1 -1
  75. package/dist/context.js +1 -1
  76. package/dist/core.cjs +52 -29
  77. package/dist/core.cjs.map +1 -1
  78. package/dist/core.d.ts +50 -27
  79. package/dist/core.d.ts.map +1 -1
  80. package/dist/core.js +52 -29
  81. package/dist/core.js.map +1 -1
  82. package/dist/hooks/HookBridge.d.ts +15 -9
  83. package/dist/hooks/HookBridge.d.ts.map +1 -1
  84. package/dist/hooks/HookManager.d.ts +295 -2
  85. package/dist/hooks/HookManager.d.ts.map +1 -1
  86. package/dist/hooks.cjs +1 -1
  87. package/dist/hooks.js +1 -1
  88. package/dist/index.cjs +1415 -214
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.d.ts +5 -1
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +1413 -215
  93. package/dist/index.js.map +1 -1
  94. package/dist/playground/TerminalBridge.d.ts +23 -16
  95. package/dist/playground/TerminalBridge.d.ts.map +1 -1
  96. package/dist/playground/box.d.ts +36 -5
  97. package/dist/playground/box.d.ts.map +1 -1
  98. package/dist/playground/cli-table.d.ts +41 -5
  99. package/dist/playground/cli-table.d.ts.map +1 -1
  100. package/dist/playground/divider.d.ts +22 -3
  101. package/dist/playground/divider.d.ts.map +1 -1
  102. package/dist/playground/header.d.ts +21 -4
  103. package/dist/playground/header.d.ts.map +1 -1
  104. package/dist/playground/server-fallback.d.ts +96 -9
  105. package/dist/playground/server-fallback.d.ts.map +1 -1
  106. package/dist/playground/spinner.d.ts +159 -10
  107. package/dist/playground/spinner.d.ts.map +1 -1
  108. package/dist/playground/step.d.ts +25 -6
  109. package/dist/playground/step.d.ts.map +1 -1
  110. package/dist/playground.cjs +1 -1
  111. package/dist/playground.js +1 -1
  112. package/dist/serializers/SerializerBridge.d.ts +13 -6
  113. package/dist/serializers/SerializerBridge.d.ts.map +1 -1
  114. package/dist/serializers/SerializerRegistry.d.ts +236 -0
  115. package/dist/serializers/SerializerRegistry.d.ts.map +1 -1
  116. package/dist/serializers.cjs +1 -1
  117. package/dist/serializers.js +1 -1
  118. package/dist/styles/StyleManager.d.ts +138 -31
  119. package/dist/styles/StyleManager.d.ts.map +1 -1
  120. package/dist/styles.cjs +2 -2
  121. package/dist/styles.js +2 -2
  122. package/dist/styling/SmartPresets.d.ts +100 -6
  123. package/dist/styling/SmartPresets.d.ts.map +1 -1
  124. package/dist/styling/StyleBuilder.d.ts +453 -32
  125. package/dist/styling/StyleBuilder.d.ts.map +1 -1
  126. package/dist/styling/banners.d.ts +83 -7
  127. package/dist/styling/banners.d.ts.map +1 -1
  128. package/dist/styling/themes.d.ts +41 -2
  129. package/dist/styling/themes.d.ts.map +1 -1
  130. package/dist/transports/ConsoleTransport.d.ts +95 -0
  131. package/dist/transports/ConsoleTransport.d.ts.map +1 -1
  132. package/dist/transports/FileTransport.d.ts +99 -18
  133. package/dist/transports/FileTransport.d.ts.map +1 -1
  134. package/dist/transports/HttpTransport.d.ts +135 -22
  135. package/dist/transports/HttpTransport.d.ts.map +1 -1
  136. package/dist/transports/OtlpTraceTransport.d.ts +118 -0
  137. package/dist/transports/OtlpTraceTransport.d.ts.map +1 -0
  138. package/dist/transports/OtlpTransport.d.ts +80 -37
  139. package/dist/transports/OtlpTransport.d.ts.map +1 -1
  140. package/dist/transports/SpanRuntime.d.ts +73 -0
  141. package/dist/transports/SpanRuntime.d.ts.map +1 -0
  142. package/dist/transports/TransportBridge.d.ts +19 -13
  143. package/dist/transports/TransportBridge.d.ts.map +1 -1
  144. package/dist/transports/TransportManager.d.ts +232 -10
  145. package/dist/transports/TransportManager.d.ts.map +1 -1
  146. package/dist/transports/index.d.ts +1 -0
  147. package/dist/transports/index.d.ts.map +1 -1
  148. package/dist/transports-module.d.ts +3 -1
  149. package/dist/transports-module.d.ts.map +1 -1
  150. package/dist/transports.cjs +2 -1
  151. package/dist/transports.js +2 -2
  152. package/dist/types/core.d.ts +155 -59
  153. package/dist/types/core.d.ts.map +1 -1
  154. package/dist/types/hooks.d.ts +92 -14
  155. package/dist/types/hooks.d.ts.map +1 -1
  156. package/dist/types/index.d.ts +1 -1
  157. package/dist/types/index.d.ts.map +1 -1
  158. package/dist/types/serializers.d.ts +72 -0
  159. package/dist/types/serializers.d.ts.map +1 -1
  160. package/dist/types/transports.d.ts +163 -39
  161. package/dist/types/transports.d.ts.map +1 -1
  162. package/dist/utils/ansi-colors.d.ts +15 -15
  163. package/dist/utils/asyncLocalStorage.d.ts +33 -0
  164. package/dist/utils/asyncLocalStorage.d.ts.map +1 -0
  165. package/dist/utils/environment-detector.d.ts +11 -11
  166. package/dist/utils/formatting.d.ts +8 -8
  167. package/dist/utils/output.d.ts +9 -9
  168. package/dist/utils/output.d.ts.map +1 -1
  169. package/dist/utils/stackTrace.d.ts +2 -2
  170. package/package.json +24 -25
  171. package/dist/chunks/HookBridge-CiRfR67f.cjs +0 -190
  172. package/dist/chunks/HookBridge-CiRfR67f.cjs.map +0 -1
  173. package/dist/chunks/HookBridge-SgMmbXZB.js +0 -173
  174. package/dist/chunks/HookBridge-SgMmbXZB.js.map +0 -1
  175. package/dist/chunks/LogContext-Cwn-1Zzb.js.map +0 -1
  176. package/dist/chunks/LogContext-L7HzynFw.cjs.map +0 -1
  177. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +0 -166
  178. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +0 -1
  179. package/dist/chunks/SerializerBridge-BkpQu5c9.js +0 -149
  180. package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +0 -1
  181. package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +0 -1
  182. package/dist/chunks/StyleManager-LCvVlVdx.js +0 -87
  183. package/dist/chunks/StyleManager-LCvVlVdx.js.map +0 -1
  184. package/dist/chunks/core-Dzz7agGa.cjs.map +0 -1
  185. package/dist/chunks/core-PoT7RrTK.js.map +0 -1
  186. package/dist/chunks/environment-detector-CI3TrWK_.js.map +0 -1
  187. package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +0 -1
  188. package/dist/chunks/server-fallback-BUKjdLS7.cjs +0 -42
  189. package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +0 -1
  190. package/dist/chunks/server-fallback-BsuWH1Dk.js +0 -37
  191. package/dist/chunks/server-fallback-BsuWH1Dk.js.map +0 -1
  192. package/dist/chunks/spinner-D3FsF78o.js.map +0 -1
  193. package/dist/chunks/spinner-DNvxbM9a.cjs.map +0 -1
  194. package/dist/chunks/styling-84N8T97t.js +0 -941
  195. package/dist/chunks/styling-84N8T97t.js.map +0 -1
  196. package/dist/chunks/styling-Cg5saQ46.cjs +0 -994
  197. package/dist/chunks/styling-Cg5saQ46.cjs.map +0 -1
  198. package/dist/chunks/transports-BiDk345e.js +0 -715
  199. package/dist/chunks/transports-BiDk345e.js.map +0 -1
  200. package/dist/chunks/transports-COPWmlF1.cjs +0 -756
  201. package/dist/chunks/transports-COPWmlF1.cjs.map +0 -1
  202. package/dist/chunks/utils-BqlFYocD.cjs.map +0 -1
  203. package/dist/chunks/utils-VETbVpkR.js.map +0 -1
  204. package/dist/example.d.ts +0 -18
  205. package/dist/example.d.ts.map +0 -1
  206. package/dist/main.d.ts +0 -2
  207. package/dist/main.d.ts.map +0 -1
@@ -1,36 +1,258 @@
1
- import type { TransportRecord, TransportTarget, TransportOptions, ITransport, ITransportManager, LogLevel } from '../types/index.js';
1
+ import type { TransportTarget, TransportOptions, ITransport, ITransportManager, LogLevel, TransportDispatchRecord } from '../types/index.js';
2
2
  /**
3
- * Constructor signature for transports registered in the built-in registry.
4
- * Accepts the transport's own options type; pass-through is enforced at
5
- * registration time via TypeScript but erased at runtime.
3
+ * Firma del constructor de los transports registrados en el registry
4
+ * built-in. Acepta el tipo propio de options del transport; el pass-through
5
+ * se enforcea en registro vía TypeScript pero se borra en runtime.
6
6
  */
7
7
  export type TransportConstructor = new (options?: TransportOptions) => ITransport;
8
+ /**
9
+ * Registry y dispatcher de transports. Mantiene el set activo de destinos
10
+ * de log (console, file, http, otlp, o transports custom registrados vía
11
+ * {@link TransportManager.register}) y les dispatcha cada
12
+ * {@link TransportRecord} producido por el Logger.
13
+ *
14
+ * Cada transport added se identifica por un `id` opaco (generado por la
15
+ * propia instancia) que devuelven {@link add} y {@link list}, y que acepta
16
+ * {@link remove}. El registry arranca con los cuatro built-ins
17
+ * (`console` / `file` / `http` / `otlp`) ya cargados; {@link register}
18
+ * añade customs sin poder sobreescribir los built-ins (lanza).
19
+ *
20
+ * El dispatch ({@link write}) aplica el filtro de `level` por transport y
21
+ * el `transform` opcional de {@link TransportOptions}, y captura toda
22
+ * excepción / rechazo de cada transport para que un transport roto nunca
23
+ * rompa el log call del caller. El propio Logger habla con el manager a
24
+ * través del facade {@link TransportBridge} (ver
25
+ * `Logger.addTransport` / `Logger.getTransportManager`).
26
+ *
27
+ * Implementa {@link ITransportManager}.
28
+ *
29
+ * @example
30
+ * // Manager con nivel default y transports añadidos por nombre
31
+ * const tm = new TransportManager('info');
32
+ * tm.add({ target: 'console' });
33
+ * tm.add({ target: 'file', options: { path: './app.log' } });
34
+ *
35
+ * @example
36
+ * // Registrar un transport custom y usarlo por nombre
37
+ * tm.register('datadog', DatadogTransport);
38
+ * tm.add({ target: 'datadog', options: { apiKey: env('DD_KEY') } });
39
+ *
40
+ * @example
41
+ * // Pasar una instancia de ITransport directamente (sin pasar por registry)
42
+ * tm.add({ target: new MyTransport(), level: 'warn' });
43
+ *
44
+ * @example
45
+ * // Dispatch + ciclo de vida
46
+ * await tm.write(record);
47
+ * await tm.flush(); // flusha todos los buffered
48
+ * await tm.close(); // flush + close + clear
49
+ *
50
+ * @see {@link ITransportManager}
51
+ * @see {@link TransportTarget}
52
+ * @see {@link TransportBridge}
53
+ */
8
54
  export declare class TransportManager implements ITransportManager {
9
55
  private transports;
10
56
  private defaultLevel;
11
57
  private readonly registry;
58
+ /**
59
+ * Crea un nuevo manager.
60
+ *
61
+ * @param {LogLevel} [defaultLevel='info'] - Nivel mínimo por defecto
62
+ * para transports añadidos sin `level` explícito en su
63
+ * {@link TransportTarget}. Records con `levelValue` inferior al del
64
+ * transport se descartan en {@link write}.
65
+ *
66
+ * @example
67
+ * const tm = new TransportManager('debug'); // todo pasa salvo filter propio
68
+ */
12
69
  constructor(defaultLevel?: LogLevel);
13
70
  /**
14
- * Registers a custom transport under a string name. Once registered,
15
- * `addTransport({ target: 'name', options })` instantiates it.
71
+ * Registra un constructor de transport bajo un nombre string. Tras el
72
+ * registro, `add({ target: name, options })` instancia ese transport con
73
+ * las options pasadas.
74
+ *
75
+ * No se puede sobreescribir un built-in (`console` / `file` / `http` /
76
+ * `otlp`): lanza para evitar silenciar un transport crítico por un
77
+ * accidente de naming. El registro es por-instancia (no comparte entre
78
+ * managers).
79
+ *
80
+ * @param {string} name - Nombre bajo el que registrar (usado luego como
81
+ * `target` en {@link TransportTarget}).
82
+ * @param {TransportConstructor} ctor - Constructor que acepta
83
+ * {@link TransportOptions} y devuelve un {@link ITransport}.
84
+ * @throws {Error} Si `name` colisiona con un built-in del registry.
16
85
  *
17
86
  * @example
18
- * transportManager.register('datadog', DatadogTransport);
19
- * transportManager.add({ target: 'datadog', options: { apiKey: env('DD_KEY') } });
87
+ * tm.register('datadog', DatadogTransport);
88
+ * tm.add({ target: 'datadog', options: { apiKey: env('DD_KEY') } });
20
89
  *
90
+ * @see {@link listRegistered}
21
91
  */
22
92
  register(name: string, ctor: TransportConstructor): void;
23
93
  /**
24
- * Lists all registered transport names (built-ins + custom).
94
+ * Lista los nombres de transports registrados en esta instancia
95
+ * (built-ins + customs añadidos vía {@link register}).
25
96
  *
97
+ * @returns {string[]} Nombres registrados. Incluye siempre los cuatro
98
+ * built-ins.
99
+ *
100
+ * @example
101
+ * tm.register('loki', LokiTransport);
102
+ * tm.listRegistered(); // ['console', 'file', 'http', 'otlp', 'loki']
26
103
  */
27
104
  listRegistered(): string[];
105
+ /**
106
+ * Añade un transport al set activo y devuelve su id opaco.
107
+ *
108
+ * Acepta dos formas de `target`:
109
+ * - **string**: se resuelve contra el registry (built-ins + customs
110
+ * vía {@link register}). Lanza si el nombre no existe, listando los
111
+ * registrados para facilitar el debug.
112
+ * - **ITransport instancia**: se registra tal cual, sin pasar por el
113
+ * registry. Útil para transports one-off o cuya configuración no
114
+ * encaja en un constructor reutilizable.
115
+ *
116
+ * El `level` (explícito en el target o `defaultLevel` del manager) fija
117
+ * el filtro por transport — los records con `levelValue` inferior se
118
+ * descartan en {@link write}. El `transform` opcional de
119
+ * {@link TransportOptions} se aplica por transport antes de delegar al
120
+ * `write` concreto.
121
+ *
122
+ * @param {TransportTarget} target - Especificación del transport a añadir.
123
+ * @returns {string} Id opaco del transport añadido. Úsalo con
124
+ * {@link remove}; aparece en {@link list}.
125
+ * @throws {Error} Si `target.target` es un string no presente en el
126
+ * registry.
127
+ *
128
+ * @example
129
+ * // Por nombre (built-in o custom registrado)
130
+ * const id = tm.add({ target: 'console' });
131
+ *
132
+ * @example
133
+ * // Instancia directa con nivel y transform propios
134
+ * const id = tm.add({
135
+ * target: new MyTransport(),
136
+ * level: 'warn',
137
+ * options: { transform: r => r.level === 'debug' ? null : r }
138
+ * });
139
+ *
140
+ * @see {@link TransportTarget}
141
+ */
28
142
  add(target: TransportTarget): string;
143
+ /**
144
+ * Elimina un transport del set por su id. Si el transport expone
145
+ * `close()`, lo invoca para liberar recursos (timers, sockets, file
146
+ * handles). Si `close()` devuelve una Promise, su eventual rechazo se
147
+ * ignora de forma best-effort — los errores de close durante la
148
+ * remoción no se propagan al caller.
149
+ *
150
+ * @param {string} id - Id devuelto por {@link add}.
151
+ * @returns {boolean} `true` si había un transport con ese id (y se
152
+ * eliminó), `false` si el id no existía.
153
+ *
154
+ * @example
155
+ * const id = tm.add({ target: 'file', options: { path: './app.log' } });
156
+ * tm.remove(id); // true — FileTransport.close() se invoca
157
+ */
29
158
  remove(id: string): boolean;
30
- write(record: TransportRecord): Promise<void>;
159
+ /**
160
+ * Dispatcha un {@link TransportRecord} o {@link SpanRecord} a todos los
161
+ * transports activos que acepten su kind.
162
+ *
163
+ * Por cada transport, en orden:
164
+ * 1. **Routing por kind**: el kind del record (`'log'` o `'span'`)
165
+ * debe estar en el `accepts` del transport (default `['log']` cuando
166
+ * no lo declara). Un `SpanRecord` JAMÁS llega a un transport
167
+ * log-only, y viceversa — esto evita que un `OtlpTransport` serialice
168
+ * spans como `logRecords` hacia `/v1/logs`.
169
+ * 2. **Filtro de nivel** (solo logs): si `record.levelValue <
170
+ * entry.levelValue`, se skipa. Los spans no tienen nivel.
171
+ * 3. **Transform** (solo logs): si `entry.options.transform` está
172
+ * seteado, se aplica al record. Si devuelve `null`, el record se
173
+ * droppea para este transport. Los spans NO pasan por transform —
174
+ * su contrato asume shape de log (muta `record.message`).
175
+ * 4. **Write**: se llama a `transport.write(record)`. Si
176
+ * devuelve una Promise, se añade al batch await. Toda excepción
177
+ * sincrónica o rechazo de Promise se captura y se loguea por
178
+ * consola — el log call original del caller nunca rompe por un
179
+ * transport roto.
180
+ *
181
+ * El método es async: retorna después de que todos los transports hayan
182
+ * resuelto (o fallado) su write. Para fire-and-forget desde el Logger,
183
+ * el caller puede ignorar la Promise.
184
+ *
185
+ * @param {TransportDispatchRecord} record - Record (log o span) a dispatchar.
186
+ * @returns {Promise<void>} Resuelve cuando todos los writes terminaron
187
+ * (exitosos o fallidos). Nunca rechaza.
188
+ *
189
+ * @example
190
+ * await tm.write({
191
+ * level: 'info', levelValue: 1, severityNumber: 9, severityText: 'INFO',
192
+ * time: Date.now(), msg: 'boot ok'
193
+ * });
194
+ *
195
+ * @see {@link TransportRecord}
196
+ * @see {@link SpanRecord}
197
+ */
198
+ write(record: TransportDispatchRecord): Promise<void>;
199
+ /**
200
+ * Flushea todos los transports que expongan `flush()` (buffered transports
201
+ * como {@link HttpTransport}, {@link FileTransport}, {@link OtlpTransport}).
202
+ * Los transports sin `flush()` (p.ej. {@link ConsoleTransport}) se
203
+ * skipan sin error.
204
+ *
205
+ * Errores de flush (sync throw o Promise rejection) se capturan y
206
+ * loguean por consola — nunca propagan al caller. Útil para forzar el
207
+ * envío del batch pendiente antes de un graceful shutdown.
208
+ *
209
+ * @returns {Promise<void>} Resuelve cuando todos los flushes terminaron.
210
+ *
211
+ * @example
212
+ * await tm.flush();
213
+ */
31
214
  flush(): Promise<void>;
215
+ /**
216
+ * Shutdown ordenado: flushea todos los transports buffered, luego
217
+ * invoca `close()` en cada uno, y finalmente limpia el set interno.
218
+ * Tras esto la instancia queda sin transports — reusarla requiere
219
+ * `add()` de nuevo.
220
+ *
221
+ * Los errores de close (sync throw o Promise rejection) se capturan y
222
+ * loguean — nunca propagan al caller.
223
+ *
224
+ * @returns {Promise<void>} Resuelve cuando flush + close de todos los
225
+ * transports terminaron.
226
+ *
227
+ * @example
228
+ * // Shutdown limpio del proceso
229
+ * process.on('SIGTERM', async () => {
230
+ * await logger.getTransportManager()?.close();
231
+ * process.exit(0);
232
+ * });
233
+ */
32
234
  close(): Promise<void>;
235
+ /**
236
+ * Número de transports actualmente en el set activo.
237
+ *
238
+ * @returns {number}
239
+ *
240
+ * @example
241
+ * if (tm.count === 0) console.warn('no transports configured');
242
+ */
33
243
  get count(): number;
244
+ /**
245
+ * Lista los ids opacos de los transports actualmente activos.
246
+ *
247
+ * @returns {string[]} Array de ids (mismo formato opaco que devolvió
248
+ * {@link add}).
249
+ *
250
+ * @example
251
+ * for (const id of tm.list()) {
252
+ * console.log('removing transport', id);
253
+ * tm.remove(id);
254
+ * }
255
+ */
34
256
  list(): string[];
35
257
  }
36
258
  //# sourceMappingURL=TransportManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransportManager.d.ts","sourceRoot":"","sources":["../../src/transports/TransportManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACX,MAAM,mBAAmB,CAAC;AAW3B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,OAAO,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AA6BlF,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;gBAE7E,YAAY,CAAC,EAAE,QAAQ;IAMnC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAOxD;;;OAGG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IA+BpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAcrB,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,IAAI,MAAM,EAAE;CAGnB"}
1
+ {"version":3,"file":"TransportManager.d.ts","sourceRoot":"","sources":["../../src/transports/TransportManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EAER,uBAAuB,EAC1B,MAAM,mBAAmB,CAAC;AAoB3B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,OAAO,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAiDlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IAEzF;;;;;;;;;;OAUG;gBACS,YAAY,CAAC,EAAE,QAAQ;IAMnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAOxD;;;;;;;;;;OAUG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IA+BpC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAc3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,KAAK,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C3D;;;;;;;;;;;;;;OAcG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,IAAI,MAAM,EAAE;CAGnB"}
@@ -3,4 +3,5 @@ export { ConsoleTransport } from './ConsoleTransport.js';
3
3
  export { FileTransport, type FileTransportOptions } from './FileTransport.js';
4
4
  export { HttpTransport, type HttpTransportOptions } from './HttpTransport.js';
5
5
  export { OtlpTransport, type OtlpTransportOptions } from './OtlpTransport.js';
6
+ export { OtlpTraceTransport, type OtlpTraceTransportOptions } from './OtlpTraceTransport.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  /**
2
2
  * @fileoverview Entry point for ./transports subpath.
3
- * Transport classes: FileTransport, HttpTransport, OtlpTransport, ConsoleTransport.
3
+ * Transport classes: FileTransport, HttpTransport, OtlpTransport,
4
+ * OtlpTraceTransport, ConsoleTransport.
4
5
  */
5
6
  export { TransportManager } from './transports/index.js';
6
7
  export { ConsoleTransport } from './transports/index.js';
7
8
  export { FileTransport, type FileTransportOptions } from './transports/index.js';
8
9
  export { HttpTransport, type HttpTransportOptions } from './transports/index.js';
9
10
  export { OtlpTransport, type OtlpTransportOptions } from './transports/index.js';
11
+ export { OtlpTraceTransport, type OtlpTraceTransportOptions } from './transports/index.js';
10
12
  //# sourceMappingURL=transports-module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transports-module.d.ts","sourceRoot":"","sources":["../src/transports-module.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"transports-module.d.ts","sourceRoot":"","sources":["../src/transports-module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_transports = require("./chunks/transports-COPWmlF1.cjs");
2
+ const require_transports = require("./chunks/transports-BZ-Mc2IT.cjs");
3
3
  exports.ConsoleTransport = require_transports.ConsoleTransport;
4
4
  exports.FileTransport = require_transports.FileTransport;
5
5
  exports.HttpTransport = require_transports.HttpTransport;
6
+ exports.OtlpTraceTransport = require_transports.OtlpTraceTransport;
6
7
  exports.OtlpTransport = require_transports.OtlpTransport;
7
8
  exports.TransportManager = require_transports.TransportManager;
@@ -1,2 +1,2 @@
1
- import { a as ConsoleTransport, i as FileTransport, n as OtlpTransport, r as HttpTransport, t as TransportManager } from "./chunks/transports-BiDk345e.js";
2
- export { ConsoleTransport, FileTransport, HttpTransport, OtlpTransport, TransportManager };
1
+ import { a as FileTransport, i as HttpTransport, n as OtlpTraceTransport, o as ConsoleTransport, r as OtlpTransport, t as TransportManager } from "./chunks/transports-DvaLAeGJ.js";
2
+ export { ConsoleTransport, FileTransport, HttpTransport, OtlpTraceTransport, OtlpTransport, TransportManager };