@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 +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"}
@@ -0,0 +1,118 @@
1
+ import type { SpanRecord, TransportRecord } from '../types/index.js';
2
+ import { HttpTransport } from './HttpTransport.js';
3
+ import { type OtlpAttributeValue, type OtlpTransportOptions } from './OtlpTransport.js';
4
+ /**
5
+ * Opciones de configuración para {@link OtlpTraceTransport}. Hereda todas las
6
+ * opciones de {@link OtlpTransportOptions} (endpoint, serviceName,
7
+ * ingestKeyEnvVar, batching, retry, ...) porque el transport de traces espeja
8
+ * al de logs.
9
+ */
10
+ export interface OtlpTraceTransportOptions extends OtlpTransportOptions {
11
+ /**
12
+ * Versión del scope que emite los spans (`scopeSpans[].scope.version`).
13
+ * Opcional: si se omite, el bloque `scope` se emite sin `version` en vez
14
+ * de inventar una.
15
+ */
16
+ scopeVersion?: string;
17
+ }
18
+ /**
19
+ * Shape del body JSON de un request OTLP/HTTP para traces. Coincide con el
20
+ * JSON mapping del proto `TracesData` para `/v1/traces`. Ver
21
+ * https://opentelemetry.io/docs/specs/otlp/#json-protobuf-encoding
22
+ */
23
+ interface OtlpTracesPayload {
24
+ resourceSpans: Array<{
25
+ resource: {
26
+ attributes: Array<{
27
+ key: string;
28
+ value: {
29
+ stringValue: string;
30
+ };
31
+ }>;
32
+ };
33
+ scopeSpans: Array<{
34
+ scope: {
35
+ name: string;
36
+ version?: string;
37
+ };
38
+ spans: Array<OtlpSpan>;
39
+ }>;
40
+ }>;
41
+ }
42
+ /**
43
+ * Span individual dentro del payload OTLP. Mappea 1:1 los campos del
44
+ * `SpanRecord` al proto `Span` de la spec OTel Trace.
45
+ * @see https://opentelemetry.io/docs/specs/otel/trace/api/#span
46
+ */
47
+ interface OtlpSpan {
48
+ traceId: string;
49
+ spanId: string;
50
+ parentSpanId?: string;
51
+ name: string;
52
+ kind: number;
53
+ startTimeUnixNano: string;
54
+ endTimeUnixNano: string;
55
+ attributes?: Array<{
56
+ key: string;
57
+ value: OtlpAttributeValue;
58
+ }>;
59
+ status?: {
60
+ code: number;
61
+ message?: string;
62
+ };
63
+ }
64
+ /**
65
+ * Transport OTLP/HTTP para traces (spans) — POST a `<endpoint>/v1/traces`.
66
+ *
67
+ * Espeja {@link OtlpTransport} (que va a `/v1/logs`): hereda de
68
+ * {@link HttpTransport} el batch, retry con backoff, buffer acotado, close
69
+ * asincrónico y el hook on-error. Solo cambia la shape del payload y acepta
70
+ * exclusivamente records de kind `'span'` (`accepts = ['span']`): el
71
+ * {@link TransportManager} garantiza que jamás recibe un log record.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * logger.addTransport({
76
+ * target: new OtlpTraceTransport({
77
+ * endpoint: 'https://otelcollector.example.com:4318',
78
+ * serviceName: 'my-app',
79
+ * scopeVersion: '1.2.3'
80
+ * })
81
+ * });
82
+ *
83
+ * await logger.span('db.query', { table: 'users' }, async () => {
84
+ * await db.select();
85
+ * });
86
+ * ```
87
+ */
88
+ export declare class OtlpTraceTransport extends HttpTransport {
89
+ readonly name = "otlp-trace";
90
+ /** Este transport SOLO acepta spans — jamás recibe log records. */
91
+ readonly accepts: readonly ["span"];
92
+ private readonly resource;
93
+ private readonly scopeVersion;
94
+ /** Resuelto al construir. Nunca se loguea, nunca se escribe a source. */
95
+ private readonly ingestKeyValue;
96
+ constructor(options: OtlpTraceTransportOptions);
97
+ /**
98
+ * Construye el payload JSON OTLP/HTTP a partir de los spans bufferizados.
99
+ * Un bloque `resourceSpans` por batch. Expuesto para tests y subclasses.
100
+ *
101
+ * @param spans - Spans a serializar dentro del payload.
102
+ * @returns Objeto `TracesData` listo para `JSON.stringify`.
103
+ */
104
+ buildPayload(spans: SpanRecord[]): OtlpTracesPayload;
105
+ /**
106
+ * Serializa un batch al body JSON del request OTLP/HTTP. Override de
107
+ * {@link HttpTransport.serializeBody}.
108
+ */
109
+ protected serializeBody(records: TransportRecord[]): string;
110
+ /**
111
+ * Construye los headers del request. Agrega `signoz-ingestion-key` con el
112
+ * valor resuelto al construir.
113
+ */
114
+ protected buildHeaders(): Record<string, string>;
115
+ private toOtlpSpan;
116
+ }
117
+ export {};
118
+ //# sourceMappingURL=OtlpTraceTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpTraceTransport.d.ts","sourceRoot":"","sources":["../../src/transports/OtlpTraceTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAIH,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC5B,MAAM,oBAAoB,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACnE;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,UAAU,iBAAiB;IACvB,aAAa,EAAE,KAAK,CAAC;QACjB,QAAQ,EAAE;YACN,UAAU,EAAE,KAAK,CAAC;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE;oBAAE,WAAW,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACtE,CAAC;QACF,UAAU,EAAE,KAAK,CAAC;YACd,KAAK,EAAE;gBACH,IAAI,EAAE,MAAM,CAAC;gBACb,OAAO,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;YACF,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC1B,CAAC,CAAC;KACN,CAAC,CAAC;CACN;AAED;;;;GAIG;AACH,UAAU,QAAQ;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACjD,SAAkB,IAAI,gBAAgB;IAEtC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,oBAAqB;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,yBAAyB;IAsC9C;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,iBAAiB;IAuBpD;;;OAGG;cACgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAMpE;;;OAGG;cACgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQzD,OAAO,CAAC,UAAU;CA+BrB"}
@@ -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,7 +89,13 @@ interface OtlpLogRecord {
84
89
  traceId?: string;
85
90
  spanId?: string;
86
91
  }
87
- type OtlpAttributeValue = {
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
+ */
98
+ export type OtlpAttributeValue = {
88
99
  stringValue: string;
89
100
  } | {
90
101
  intValue: number;
@@ -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,34 +127,65 @@ 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;
146
163
  }
164
+ /**
165
+ * Quita la barra final de un endpoint si la lleva.
166
+ *
167
+ * @internal Compartido con {@link OtlpTraceTransport}; no es API pública.
168
+ */
169
+ export declare function stripTrailingSlash(value: string): string;
170
+ /**
171
+ * Lee la ingest API key desde `process.env[name]`. Devuelve `undefined`
172
+ * silenciosamente si `process` no está disponible (bundles estrictos de
173
+ * browser) o si la variable no está seteada. Nunca throwea, nunca loguea
174
+ * el valor.
175
+ *
176
+ * @internal Helper del constructor de {@link OtlpTransport} y
177
+ * {@link OtlpTraceTransport}; no es API pública.
178
+ * @param envVarName - Nombre de la env var a leer.
179
+ * @returns Valor de la key, o `undefined` si no está disponible.
180
+ */
181
+ export declare function readIngestKey(envVarName: string | undefined): string | undefined;
182
+ /**
183
+ * Convierte un valor JS a un `AnyValue` de OTel. Compartido con
184
+ * {@link OtlpTraceTransport} para serializar attributes de span con el mismo
185
+ * mapping.
186
+ *
187
+ * @internal Exportado para reuse entre transports OTLP; no es API pública.
188
+ */
189
+ export declare function toOtlpAttribute(value: unknown): OtlpAttributeValue | null;
147
190
  export {};
148
191
  //# sourceMappingURL=OtlpTransport.d.ts.map
@@ -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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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview SpanRuntime — runtime de spans del trio API
3
+ * `event` / `span` / `startSpan`.
4
+ *
5
+ * Vive en transports/ porque es la extensión del pipeline de dispatch: los
6
+ * {@link SpanRecord} que produce viajan por el {@link TransportManager} junto
7
+ * a los log records, enrutados por kind (`accepts`).
8
+ *
9
+ * Tres responsabilidades:
10
+ * - **ALS singleton del módulo**: un único `AsyncLocalStorage<SpanRecord>`
11
+ * compartido por TODAS las instancias de Logger — "qué instancia lleva el
12
+ * span" es ambiguo con MDC por-instancia, el span activo es una propiedad
13
+ * del call stack, no del logger.
14
+ * - **Generación de ids** conforme a W3C Trace Context (traceId 16 bytes →
15
+ * 32 hex, spanId 8 bytes → 16 hex) vía `crypto.getRandomValues`.
16
+ * - **Leak-safety**: registry de spans abiertos; en flush/shutdown se
17
+ * fuerzan a `end()` con `incomplete: true` y se exportan — nunca se tiran.
18
+ */
19
+ import type { Span, SpanAttributes, SpanRecord } from '../types/index.js';
20
+ /**
21
+ * Span activo en el call stack corriente (dentro de `span(fn)`), si lo hay.
22
+ * Lo consumen la correlación log→span (`TransportRecord.traceId/spanId`) y la
23
+ * resolución de `parentSpanId` en spans hijos.
24
+ */
25
+ export declare function getActiveSpan(): SpanRecord | undefined;
26
+ /**
27
+ * Ejecuta `fn` con `record` como span activo. Sin ALS disponible (browser),
28
+ * ejecuta `fn` directamente — sin correlación pero funcional.
29
+ */
30
+ export declare function runWithActiveSpan<R>(record: SpanRecord, fn: () => R): R;
31
+ /** Nanosegundos Unix actuales como string decimal (formato OTLP). */
32
+ export declare function nowUnixNano(): string;
33
+ /** Trace id W3C: 16 bytes → 32 chars hex. */
34
+ export declare function generateTraceId(): string;
35
+ /** Span id W3C: 8 bytes → 16 chars hex. */
36
+ export declare function generateSpanId(): string;
37
+ /**
38
+ * Crea el record de span y su {@link Span} handle. El handle registra el
39
+ * span en el registry de abiertos; `onEnd` se invoca una única vez, con el
40
+ * record final (duración real o `incomplete: true`), para su export al
41
+ * pipeline de transports.
42
+ *
43
+ * `end()` solo fija `endTimeUnixNano` si no se fijó antes — así los
44
+ * point-spans (`event()`) pueden fijar `end = start` exacto.
45
+ *
46
+ * @param name - Nombre de la operación.
47
+ * @param attributes - Attributes iniciales (copia propia del record).
48
+ * @param scope - Scope del logger emisor.
49
+ * @param onEnd - Callback de export; recibe el record cerrado.
50
+ * @returns El record (para el ALS store) y el handle del span.
51
+ */
52
+ export declare function createSpan(name: string, attributes: SpanAttributes | undefined, scope: string, onEnd: (record: SpanRecord) => void): {
53
+ record: SpanRecord;
54
+ span: Span;
55
+ };
56
+ /**
57
+ * Emite un point-span (`event()`): start = end exactamente, sin registro en
58
+ * abiertos tras el cierre — no hay leak posible. El `parentSpanId` se resuelve
59
+ * contra el span activo si existe, pero NO fija contexto ALS.
60
+ */
61
+ export declare function emitEventSpan(name: string, attributes: SpanAttributes | undefined, scope: string, onEnd: (record: SpanRecord) => void): void;
62
+ /**
63
+ * Fuerza el cierre de todos los spans abiertos (`incomplete: true`) y los
64
+ * exporta vía el `onEnd` de cada uno. Lo invocan `flushTransports()` /
65
+ * `closeTransports()` / `cleanup()` ANTES del flush real — un span abierto
66
+ * nunca se tira en shutdown.
67
+ *
68
+ * @returns Los records forzados a cerrar (para diagnóstico/tests).
69
+ */
70
+ export declare function forceCloseOpenSpans(): SpanRecord[];
71
+ /** Número de spans actualmente abiertos (expuesto para tests/diagnóstico). */
72
+ export declare function openSpanCount(): number;
73
+ //# sourceMappingURL=SpanRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpanRuntime.d.ts","sourceRoot":"","sources":["../../src/transports/SpanRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB1E;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvE;AAED,qEAAqE;AACrE,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAyBD,6CAA6C;AAC7C,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAmBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GACpC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAkEpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GACpC,IAAI,CAIN;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAOlD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -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"}