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

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 (185) hide show
  1. package/README.md +38 -336
  2. package/dist/Logger.d.ts +243 -154
  3. package/dist/Logger.d.ts.map +1 -1
  4. package/dist/ScopedLogger.d.ts +511 -8
  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-Cwn-1Zzb.js → LogContext-DjlITOzZ.js} +19 -4
  13. package/dist/chunks/LogContext-DjlITOzZ.js.map +1 -0
  14. package/dist/chunks/SerializerBridge-Ba43Mk7j.js +393 -0
  15. package/dist/chunks/SerializerBridge-Ba43Mk7j.js.map +1 -0
  16. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs +410 -0
  17. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs.map +1 -0
  18. package/dist/chunks/{StyleManager-CIpd6wbO.cjs → StyleManager-DQ6UNRB-.cjs} +37 -11
  19. package/dist/chunks/StyleManager-DQ6UNRB-.cjs.map +1 -0
  20. package/dist/chunks/StyleManager-DjwAYbxE.js +113 -0
  21. package/dist/chunks/StyleManager-DjwAYbxE.js.map +1 -0
  22. package/dist/chunks/{core-PoT7RrTK.js → core-Blfi2klP.js} +1 -4
  23. package/dist/chunks/core-Blfi2klP.js.map +1 -0
  24. package/dist/chunks/{core-Dzz7agGa.cjs → core-CqS_UBzJ.cjs} +1 -4
  25. package/dist/chunks/core-CqS_UBzJ.cjs.map +1 -0
  26. package/dist/chunks/{environment-detector-CI3TrWK_.js → environment-detector-7NvnYUfr.js} +11 -11
  27. package/dist/chunks/environment-detector-7NvnYUfr.js.map +1 -0
  28. package/dist/chunks/{environment-detector-Cnn6wr6O.cjs → environment-detector-D-tHkKWA.cjs} +11 -11
  29. package/dist/chunks/environment-detector-D-tHkKWA.cjs.map +1 -0
  30. package/dist/chunks/server-fallback-CaCPjWby.cjs +119 -0
  31. package/dist/chunks/server-fallback-CaCPjWby.cjs.map +1 -0
  32. package/dist/chunks/server-fallback-jj0T6XaK.js +114 -0
  33. package/dist/chunks/server-fallback-jj0T6XaK.js.map +1 -0
  34. package/dist/chunks/{spinner-DNvxbM9a.cjs → spinner-BHyYEXsM.cjs} +319 -37
  35. package/dist/chunks/spinner-BHyYEXsM.cjs.map +1 -0
  36. package/dist/chunks/{spinner-D3FsF78o.js → spinner-BtkwpzYv.js} +319 -37
  37. package/dist/chunks/spinner-BtkwpzYv.js.map +1 -0
  38. package/dist/chunks/styling-CRw3KQW4.js +1592 -0
  39. package/dist/chunks/styling-CRw3KQW4.js.map +1 -0
  40. package/dist/chunks/styling-Cel2wPRy.cjs +1645 -0
  41. package/dist/chunks/styling-Cel2wPRy.cjs.map +1 -0
  42. package/dist/chunks/transports-BGfwwakw.js +1237 -0
  43. package/dist/chunks/transports-BGfwwakw.js.map +1 -0
  44. package/dist/chunks/transports-yK6CL0Ml.cjs +1278 -0
  45. package/dist/chunks/transports-yK6CL0Ml.cjs.map +1 -0
  46. package/dist/chunks/{utils-BqlFYocD.cjs → utils-W_cxqriN.cjs} +44 -37
  47. package/dist/chunks/utils-W_cxqriN.cjs.map +1 -0
  48. package/dist/chunks/{utils-VETbVpkR.js → utils-tKfBAWUM.js} +44 -37
  49. package/dist/chunks/utils-tKfBAWUM.js.map +1 -0
  50. package/dist/cli/CommandProcessor.d.ts +166 -19
  51. package/dist/cli/CommandProcessor.d.ts.map +1 -1
  52. package/dist/cli/commands/ConfigCommand.d.ts +36 -1
  53. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -1
  54. package/dist/cli/commands/ExportCommand.d.ts +49 -3
  55. package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
  56. package/dist/cli/commands/ThemeCommand.d.ts +62 -3
  57. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -1
  58. package/dist/cli/help.d.ts +30 -2
  59. package/dist/cli/help.d.ts.map +1 -1
  60. package/dist/cli/index.d.ts +29 -2
  61. package/dist/cli/index.d.ts.map +1 -1
  62. package/dist/cli.cjs +2 -2
  63. package/dist/cli.js +2 -2
  64. package/dist/context/LogContext.d.ts +165 -66
  65. package/dist/context/LogContext.d.ts.map +1 -1
  66. package/dist/context.cjs +1 -1
  67. package/dist/context.js +1 -1
  68. package/dist/core.cjs +52 -29
  69. package/dist/core.cjs.map +1 -1
  70. package/dist/core.d.ts +50 -27
  71. package/dist/core.d.ts.map +1 -1
  72. package/dist/core.js +52 -29
  73. package/dist/core.js.map +1 -1
  74. package/dist/hooks/HookBridge.d.ts +15 -9
  75. package/dist/hooks/HookBridge.d.ts.map +1 -1
  76. package/dist/hooks/HookManager.d.ts +295 -2
  77. package/dist/hooks/HookManager.d.ts.map +1 -1
  78. package/dist/hooks.cjs +1 -1
  79. package/dist/hooks.js +1 -1
  80. package/dist/index.cjs +1092 -212
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.js +1092 -212
  83. package/dist/index.js.map +1 -1
  84. package/dist/playground/TerminalBridge.d.ts +23 -16
  85. package/dist/playground/TerminalBridge.d.ts.map +1 -1
  86. package/dist/playground/box.d.ts +36 -5
  87. package/dist/playground/box.d.ts.map +1 -1
  88. package/dist/playground/cli-table.d.ts +41 -5
  89. package/dist/playground/cli-table.d.ts.map +1 -1
  90. package/dist/playground/divider.d.ts +22 -3
  91. package/dist/playground/divider.d.ts.map +1 -1
  92. package/dist/playground/header.d.ts +21 -4
  93. package/dist/playground/header.d.ts.map +1 -1
  94. package/dist/playground/server-fallback.d.ts +96 -9
  95. package/dist/playground/server-fallback.d.ts.map +1 -1
  96. package/dist/playground/spinner.d.ts +159 -10
  97. package/dist/playground/spinner.d.ts.map +1 -1
  98. package/dist/playground/step.d.ts +25 -6
  99. package/dist/playground/step.d.ts.map +1 -1
  100. package/dist/playground.cjs +1 -1
  101. package/dist/playground.js +1 -1
  102. package/dist/serializers/SerializerBridge.d.ts +13 -6
  103. package/dist/serializers/SerializerBridge.d.ts.map +1 -1
  104. package/dist/serializers/SerializerRegistry.d.ts +236 -0
  105. package/dist/serializers/SerializerRegistry.d.ts.map +1 -1
  106. package/dist/serializers.cjs +1 -1
  107. package/dist/serializers.js +1 -1
  108. package/dist/styles/StyleManager.d.ts +138 -31
  109. package/dist/styles/StyleManager.d.ts.map +1 -1
  110. package/dist/styles.cjs +2 -2
  111. package/dist/styles.js +2 -2
  112. package/dist/styling/SmartPresets.d.ts +100 -6
  113. package/dist/styling/SmartPresets.d.ts.map +1 -1
  114. package/dist/styling/StyleBuilder.d.ts +453 -32
  115. package/dist/styling/StyleBuilder.d.ts.map +1 -1
  116. package/dist/styling/banners.d.ts +83 -7
  117. package/dist/styling/banners.d.ts.map +1 -1
  118. package/dist/styling/themes.d.ts +41 -2
  119. package/dist/styling/themes.d.ts.map +1 -1
  120. package/dist/transports/ConsoleTransport.d.ts +95 -0
  121. package/dist/transports/ConsoleTransport.d.ts.map +1 -1
  122. package/dist/transports/FileTransport.d.ts +99 -18
  123. package/dist/transports/FileTransport.d.ts.map +1 -1
  124. package/dist/transports/HttpTransport.d.ts +135 -22
  125. package/dist/transports/HttpTransport.d.ts.map +1 -1
  126. package/dist/transports/OtlpTransport.d.ts +53 -36
  127. package/dist/transports/OtlpTransport.d.ts.map +1 -1
  128. package/dist/transports/TransportBridge.d.ts +19 -13
  129. package/dist/transports/TransportBridge.d.ts.map +1 -1
  130. package/dist/transports/TransportManager.d.ts +223 -8
  131. package/dist/transports/TransportManager.d.ts.map +1 -1
  132. package/dist/transports.cjs +1 -1
  133. package/dist/transports.js +1 -1
  134. package/dist/types/core.d.ts +155 -59
  135. package/dist/types/core.d.ts.map +1 -1
  136. package/dist/types/hooks.d.ts +92 -14
  137. package/dist/types/hooks.d.ts.map +1 -1
  138. package/dist/types/serializers.d.ts +72 -0
  139. package/dist/types/serializers.d.ts.map +1 -1
  140. package/dist/types/transports.d.ts +42 -37
  141. package/dist/types/transports.d.ts.map +1 -1
  142. package/dist/utils/ansi-colors.d.ts +15 -15
  143. package/dist/utils/environment-detector.d.ts +11 -11
  144. package/dist/utils/formatting.d.ts +8 -8
  145. package/dist/utils/output.d.ts +9 -9
  146. package/dist/utils/output.d.ts.map +1 -1
  147. package/dist/utils/stackTrace.d.ts +2 -2
  148. package/package.json +24 -25
  149. package/dist/chunks/HookBridge-CiRfR67f.cjs +0 -190
  150. package/dist/chunks/HookBridge-CiRfR67f.cjs.map +0 -1
  151. package/dist/chunks/HookBridge-SgMmbXZB.js +0 -173
  152. package/dist/chunks/HookBridge-SgMmbXZB.js.map +0 -1
  153. package/dist/chunks/LogContext-Cwn-1Zzb.js.map +0 -1
  154. package/dist/chunks/LogContext-L7HzynFw.cjs.map +0 -1
  155. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +0 -166
  156. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +0 -1
  157. package/dist/chunks/SerializerBridge-BkpQu5c9.js +0 -149
  158. package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +0 -1
  159. package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +0 -1
  160. package/dist/chunks/StyleManager-LCvVlVdx.js +0 -87
  161. package/dist/chunks/StyleManager-LCvVlVdx.js.map +0 -1
  162. package/dist/chunks/core-Dzz7agGa.cjs.map +0 -1
  163. package/dist/chunks/core-PoT7RrTK.js.map +0 -1
  164. package/dist/chunks/environment-detector-CI3TrWK_.js.map +0 -1
  165. package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +0 -1
  166. package/dist/chunks/server-fallback-BUKjdLS7.cjs +0 -42
  167. package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +0 -1
  168. package/dist/chunks/server-fallback-BsuWH1Dk.js +0 -37
  169. package/dist/chunks/server-fallback-BsuWH1Dk.js.map +0 -1
  170. package/dist/chunks/spinner-D3FsF78o.js.map +0 -1
  171. package/dist/chunks/spinner-DNvxbM9a.cjs.map +0 -1
  172. package/dist/chunks/styling-84N8T97t.js +0 -941
  173. package/dist/chunks/styling-84N8T97t.js.map +0 -1
  174. package/dist/chunks/styling-Cg5saQ46.cjs +0 -994
  175. package/dist/chunks/styling-Cg5saQ46.cjs.map +0 -1
  176. package/dist/chunks/transports-BiDk345e.js +0 -715
  177. package/dist/chunks/transports-BiDk345e.js.map +0 -1
  178. package/dist/chunks/transports-COPWmlF1.cjs +0 -756
  179. package/dist/chunks/transports-COPWmlF1.cjs.map +0 -1
  180. package/dist/chunks/utils-BqlFYocD.cjs.map +0 -1
  181. package/dist/chunks/utils-VETbVpkR.js.map +0 -1
  182. package/dist/example.d.ts +0 -18
  183. package/dist/example.d.ts.map +0 -1
  184. package/dist/main.d.ts +0 -2
  185. package/dist/main.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/HttpTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,gBAAgB,EAEhB,kBAAkB,EAElB,YAAY,EACf,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AASD;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IAE/B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,MAAM,CAAS;IAEvB,kGAAkG;IAClG,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE5B,OAAO,CAAC,EAAE,oBAAoB;IAkB1C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAepC;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAI3D;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOhD,OAAO,CAAC,mBAAmB;IAgBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCd,aAAa;IA4ErB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B"}
1
+ {"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/HttpTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,gBAAgB,EAEhB,kBAAkB,EAElB,YAAY,EACf,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACpD,iGAAiG;IACjG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IAE/B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,MAAM,CAAS;IAEvB,+GAA+G;IAC/G,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;IAExC;;;;;;;;;;;;;;;;OAgBG;gBACS,OAAO,CAAC,EAAE,oBAAoB;IAkB1C,gEAAgE;IAChE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,8GAA8G;IAC9G,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAepC;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAI3D;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOhD,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;;;;;;;;OAaG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCd,aAAa;IA4E3B;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B"}
@@ -1,53 +1,52 @@
1
1
  import type { TransportRecord, HookLogEntry } from '../types/index.js';
2
2
  import { HttpTransport } from './HttpTransport.js';
3
3
  /**
4
- * Options for {@link OtlpTransport}.
5
- *
4
+ * Opciones de configuración para {@link OtlpTransport}.
6
5
  */
7
6
  export interface OtlpTransportOptions {
8
7
  /**
9
- * OTLP/HTTP collector base URL, e.g. `https://collector.example.com:4318`.
10
- * The transport POSTs to `<endpoint>/v1/logs`.
8
+ * URL base del collector OTLP/HTTP, p.ej. `https://collector.example.com:4318`.
9
+ * El transport hace POST a `<endpoint>/v1/logs`.
11
10
  */
12
11
  endpoint: string;
13
- /** `service.name` resource attribute. Required by OTel spec. */
12
+ /** Atributo de resource `service.name`. Requerido por la spec OTel. */
14
13
  serviceName: string;
15
- /** `service.version` resource attribute. Recommended. */
14
+ /** Atributo de resource `service.version`. Recomendado. */
16
15
  serviceVersion?: string;
17
- /** `deployment.environment` resource attribute (production/staging/dev). */
16
+ /** Atributo de resource `deployment.environment` (production/staging/dev). */
18
17
  environment?: string;
19
- /** Extra resource attributes merged into the resource block. */
18
+ /** Atributos de resource adicionales que se merguean en el bloque `resource`. */
20
19
  resourceAttributes?: Record<string, string>;
21
20
  /**
22
- * Name of an env var whose value is sent as the `signoz-ingestion-key`
23
- * header. The transport reads `process.env[ingestKeyEnvVar]` at
24
- * construction time — never from a string literal. If the env var is
25
- * unset, the header is silently omitted (OTLP collector uses default
26
- * no-auth path).
21
+ * Nombre de la env var cuyo valor se envía como header
22
+ * `signoz-ingestion-key`. El transport lee `process.env[ingestKeyEnvVar]`
23
+ * al construirse — nunca desde un string literal. Si la env var no está
24
+ * seteada, el header se omite silenciosamente (el collector OTLP usa el
25
+ * path default sin auth).
27
26
  */
28
27
  ingestKeyEnvVar?: string;
29
- /** Extra headers merged in (Authorization, custom X-*). */
28
+ /** Headers extra que se merguean (Authorization, X-* custom). */
30
29
  headers?: Record<string, string>;
31
- /** Batch size (records per POST). Default 50. */
30
+ /** Tamaño del batch (records por POST). Default 50. */
32
31
  batchSize?: number;
33
- /** Flush interval in ms. */
32
+ /** Intervalo de flush en ms. */
34
33
  flushInterval?: number;
35
- /** Hard cap on buffered records. Default 10_000. */
34
+ /** Tope duro de records bufferizados. Default 10_000. */
36
35
  maxBufferSize?: number;
37
- /** Max retry attempts per batch. Default 3. */
36
+ /** Reintentos máximos por batch. Default 3. */
38
37
  maxRetries?: number;
39
- /** Initial backoff in ms. Default 250. */
38
+ /** Backoff inicial en ms. Default 250. */
40
39
  initialBackoffMs?: number;
41
- /** Backoff ceiling in ms. Default 5_000. */
40
+ /** Techo de backoff en ms. Default 5_000. */
42
41
  maxBackoffMs?: number;
43
- /** Per-fetch timeout in ms. Default 10_000. */
42
+ /** Timeout por fetch en ms. Default 10_000. */
44
43
  fetchTimeoutMs?: number;
45
- /** Hook fired on transport failure (drop, retry exhaustion, ...). */
44
+ /** Hook que se dispara ante falla del transport (drop, agotamiento de reintentos, ...). */
46
45
  onError?: (entry: HookLogEntry) => void | Promise<void>;
47
46
  }
48
47
  /**
49
- * Shape of the OTLP/HTTP JSON request body. Matches the `LogsData` proto
50
- * JSON mapping for `/v1/logs`. See
48
+ * Shape del body JSON de un request OTLP/HTTP. Coincide con el JSON mapping
49
+ * del proto `LogsData` para `/v1/logs`. Ver
51
50
  * https://opentelemetry.io/docs/specs/otlp/#json-protobuf-encoding
52
51
  */
53
52
  interface OtlpLogsPayload {
@@ -69,6 +68,12 @@ interface OtlpLogsPayload {
69
68
  }>;
70
69
  }>;
71
70
  }
71
+ /**
72
+ * Registro individual de log dentro del payload OTLP. Mappea mensaje,
73
+ * severidad, timestamp (en nanosegundos), atributos y contexto de trace al
74
+ * formato `LogRecord` definido por la spec OTel Logs.
75
+ * @see https://opentelemetry.io/docs/specs/otel/logs/data-model/
76
+ */
72
77
  interface OtlpLogRecord {
73
78
  timeUnixNano: string;
74
79
  observedTimeUnixNano: string;
@@ -84,6 +89,12 @@ interface OtlpLogRecord {
84
89
  traceId?: string;
85
90
  spanId?: string;
86
91
  }
92
+ /**
93
+ * Unión discriminada que representa un `AnyValue` de OTel para atributos de
94
+ * log. Soporta string, int, double, bool y arrays anidados (homogéneos o
95
+ * mixtos).
96
+ * @see https://opentelemetry.io/docs/specs/otel/common/
97
+ */
87
98
  type OtlpAttributeValue = {
88
99
  stringValue: string;
89
100
  } | {
@@ -98,12 +109,13 @@ type OtlpAttributeValue = {
98
109
  };
99
110
  };
100
111
  /**
101
- * OTLP/HTTP transport for SigNoz (or any OTLP-compliant backend).
112
+ * Transport OTLP/HTTP para SigNoz (o cualquier backend compatible con OTLP).
102
113
  *
103
- * Extends {@link HttpTransport} — inherits retry, bounded buffer, status
104
- * check, async close, and the on-error hook. Overrides only the payload
105
- * shape and the request headers.
114
+ * Extiende {@link HttpTransport} — hereda retry, buffer acotado, status check,
115
+ * close asincrónico y el hook on-error. Overridea únicamente la shape del
116
+ * payload y los headers del request.
106
117
  *
118
+ * @example
107
119
  * ```ts
108
120
  * logger.addTransport({
109
121
  * target: new OtlpTransport({
@@ -115,31 +127,36 @@ type OtlpAttributeValue = {
115
127
  * })
116
128
  * });
117
129
  * ```
118
- *
119
130
  */
120
131
  export declare class OtlpTransport extends HttpTransport {
121
132
  readonly name = "otlp";
122
133
  private readonly resource;
123
- /** Resolved at construction. Never logged, never written to source. */
134
+ /** Resuelto al construir. Nunca se loguea, nunca se escribe a source. */
124
135
  private readonly ingestKeyValue;
125
136
  constructor(options: OtlpTransportOptions);
126
137
  /**
127
- * Builds the OTLP/HTTP JSON payload from the currently buffered records.
128
- * One `resourceLogs` block per batch (matches OTel collector batching
129
- * guidance). Exposed for tests + custom transport subclasses.
138
+ * Construye el payload JSON OTLP/HTTP a partir de los records bufferizados.
139
+ * Un bloque `resourceLogs` por batch (sigue la guía de batching del
140
+ * collector OTel). Expuesto para tests y para subclasses custom de transport.
130
141
  *
142
+ * @param records - Records de log a serializar dentro del payload.
143
+ * @returns Objeto `LogsData` listo para `JSON.stringify`.
144
+ * @see {@link OtlpLogsPayload}
131
145
  */
132
146
  buildPayload(records: TransportRecord[]): OtlpLogsPayload;
133
147
  /**
134
- * Serialises a batch into the OTLP/HTTP JSON request body. Overrides
148
+ * Serializa un batch al body JSON del request OTLP/HTTP. Override de
135
149
  * {@link HttpTransport.serializeBody}.
136
150
  *
151
+ * @param records - Records del batch a serializar.
152
+ * @returns String JSON listo para usar como `body` del fetch POST.
137
153
  */
138
154
  protected serializeBody(records: TransportRecord[]): string;
139
155
  /**
140
- * Builds request headers. Adds `signoz-ingestion-key` from the value
141
- * resolved at construction time (never logged, never written to source).
156
+ * Construye los headers del request. Agrega `signoz-ingestion-key` con el
157
+ * valor resuelto al construir (nunca se loguea, nunca se escribe a source).
142
158
  *
159
+ * @returns Record de headers a merguear en el fetch.
143
160
  */
144
161
  protected buildHeaders(): Record<string, string>;
145
162
  private toLogRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"OtlpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/OtlpTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OtlpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/OtlpTransport.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,43 @@
1
1
  /**
2
- * @fileoverview TransportBridge — TransportManager facade.
3
- * Encapsulates transport lifecycle: add, remove, flush, close.
2
+ * @fileoverview TransportBridge — facade de TransportManager.
3
+ * Encapsula el lifecycle de transports: add, remove, flush, close.
4
+ *
5
+ * @internal
4
6
  */
5
7
  import type { TransportTarget } from '../types/index.js';
6
8
  import { TransportManager } from '../transports/index.js';
7
9
  /**
8
- * Result of adding a transport.
10
+ * Resultado de añadir un transport.
9
11
  */
10
12
  export interface AddTransportResult {
11
- /** Unique transport ID. */
13
+ /** ID único del transport. */
12
14
  id: string;
13
- /** The TransportManager instance (created on first add). */
15
+ /** La instancia de TransportManager (creada al primer add). */
14
16
  manager: TransportManager;
15
17
  }
16
18
  /**
17
- * Bridge for transport lifecycle management.
19
+ * Bridge para la gestión del lifecycle de transports.
20
+ *
21
+ * @internal
18
22
  */
19
23
  export interface TransportBridge {
20
- /** Adds a transport and returns its ID. */
24
+ /** Añade un transport y devuelve su ID. */
21
25
  addTransport(target: TransportTarget): string;
22
- /** Removes a transport by ID. Returns true if removed. */
26
+ /** Elimina un transport por ID. Devuelve `true` si se eliminó. */
23
27
  removeTransport(id: string): boolean;
24
- /** Forces flush of all transport buffers. */
28
+ /** Fuerza el flush de todos los buffers de transports. */
25
29
  flushTransports(): Promise<void>;
26
- /** Closes all transports gracefully. */
30
+ /** Cierra todos los transports de forma graceful. */
27
31
  closeTransports(): Promise<void>;
28
- /** Returns the underlying manager (or undefined if never used). */
32
+ /** Devuelve el manager subyacente (o `undefined` si nunca se usó). */
29
33
  getTransportManager(): TransportManager | undefined;
30
- /** Writes a transport record (fire-and-forget). No-op if manager not initialized. */
34
+ /** Escribe un transport record (fire-and-forget). No-op si el manager no está inicializado. */
31
35
  writeRecord(record: Parameters<TransportManager['write']>[0]): void;
32
36
  }
33
37
  /**
34
- * Creates a TransportBridge instance.
38
+ * Crea una instancia de {@link TransportBridge}.
39
+ *
40
+ * @internal
35
41
  */
36
42
  export declare function createTransportBridge(): TransportBridge;
37
43
  //# sourceMappingURL=TransportBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransportBridge.d.ts","sourceRoot":"","sources":["../../src/transports/TransportBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IAC9C,0DAA0D;IAC1D,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,6CAA6C;IAC7C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,wCAAwC;IACxC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,mEAAmE;IACnE,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACpD,qFAAqF;IACrF,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAiCvD"}
1
+ {"version":3,"file":"TransportBridge.d.ts","sourceRoot":"","sources":["../../src/transports/TransportBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IAC9C,kEAAkE;IAClE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,0DAA0D;IAC1D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,qDAAqD;IACrD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,sEAAsE;IACtE,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACpD,+FAA+F;IAC/F,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAiCvD"}
@@ -1,36 +1,251 @@
1
1
  import type { TransportRecord, TransportTarget, TransportOptions, ITransport, ITransportManager, LogLevel } 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;
159
+ /**
160
+ * Dispatcha un {@link TransportRecord} a todos los transports activos
161
+ * que pasen el filtro de nivel.
162
+ *
163
+ * Por cada transport, en orden:
164
+ * 1. **Filtro de nivel**: si `record.levelValue < entry.levelValue`,
165
+ * se skipa (ese transport no recibe este record).
166
+ * 2. **Transform**: si `entry.options.transform` está seteado, se
167
+ * aplica al record. Si devuelve `null`, el record se droppea para
168
+ * este transport (no para los demás).
169
+ * 3. **Write**: se llama a `transport.write(transformedRecord)`. Si
170
+ * devuelve una Promise, se añade al batch await. Toda excepción
171
+ * sincrónica o rechazo de Promise se captura y se loguea por
172
+ * consola — el log call original del caller nunca rompe por un
173
+ * transport roto.
174
+ *
175
+ * El método es async: retorna después de que todos los transports hayan
176
+ * resuelto (o fallado) su write. Para fire-and-forget desde el Logger,
177
+ * el caller puede ignorar la Promise.
178
+ *
179
+ * @param {TransportRecord} record - Record a dispatchar.
180
+ * @returns {Promise<void>} Resuelve cuando todos los writes terminaron
181
+ * (exitosos o fallidos). Nunca rechaza.
182
+ *
183
+ * @example
184
+ * await tm.write({
185
+ * level: 'info', levelValue: 1, severityNumber: 9, severityText: 'INFO',
186
+ * time: Date.now(), msg: 'boot ok'
187
+ * });
188
+ *
189
+ * @see {@link TransportRecord}
190
+ */
30
191
  write(record: TransportRecord): Promise<void>;
192
+ /**
193
+ * Flushea todos los transports que expongan `flush()` (buffered transports
194
+ * como {@link HttpTransport}, {@link FileTransport}, {@link OtlpTransport}).
195
+ * Los transports sin `flush()` (p.ej. {@link ConsoleTransport}) se
196
+ * skipan sin error.
197
+ *
198
+ * Errores de flush (sync throw o Promise rejection) se capturan y
199
+ * loguean por consola — nunca propagan al caller. Útil para forzar el
200
+ * envío del batch pendiente antes de un graceful shutdown.
201
+ *
202
+ * @returns {Promise<void>} Resuelve cuando todos los flushes terminaron.
203
+ *
204
+ * @example
205
+ * await tm.flush();
206
+ */
31
207
  flush(): Promise<void>;
208
+ /**
209
+ * Shutdown ordenado: flushea todos los transports buffered, luego
210
+ * invoca `close()` en cada uno, y finalmente limpia el set interno.
211
+ * Tras esto la instancia queda sin transports — reusarla requiere
212
+ * `add()` de nuevo.
213
+ *
214
+ * Los errores de close (sync throw o Promise rejection) se capturan y
215
+ * loguean — nunca propagan al caller.
216
+ *
217
+ * @returns {Promise<void>} Resuelve cuando flush + close de todos los
218
+ * transports terminaron.
219
+ *
220
+ * @example
221
+ * // Shutdown limpio del proceso
222
+ * process.on('SIGTERM', async () => {
223
+ * await logger.getTransportManager()?.close();
224
+ * process.exit(0);
225
+ * });
226
+ */
32
227
  close(): Promise<void>;
228
+ /**
229
+ * Número de transports actualmente en el set activo.
230
+ *
231
+ * @returns {number}
232
+ *
233
+ * @example
234
+ * if (tm.count === 0) console.warn('no transports configured');
235
+ */
33
236
  get count(): number;
237
+ /**
238
+ * Lista los ids opacos de los transports actualmente activos.
239
+ *
240
+ * @returns {string[]} Array de ids (mismo formato opaco que devolvió
241
+ * {@link add}).
242
+ *
243
+ * @example
244
+ * for (const id of tm.list()) {
245
+ * console.log('removing transport', id);
246
+ * tm.remove(id);
247
+ * }
248
+ */
34
249
  list(): string[];
35
250
  }
36
251
  //# 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,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACX,MAAM,mBAAmB,CAAC;AAmB3B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,OAAO,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAuClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;;;;;;;;;;;;;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"}
@@ -1,5 +1,5 @@
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-yK6CL0Ml.cjs");
3
3
  exports.ConsoleTransport = require_transports.ConsoleTransport;
4
4
  exports.FileTransport = require_transports.FileTransport;
5
5
  exports.HttpTransport = require_transports.HttpTransport;
@@ -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";
1
+ import { a as ConsoleTransport, i as FileTransport, n as OtlpTransport, r as HttpTransport, t as TransportManager } from "./chunks/transports-BGfwwakw.js";
2
2
  export { ConsoleTransport, FileTransport, HttpTransport, OtlpTransport, TransportManager };