@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.
- package/README.md +38 -336
- package/dist/Logger.d.ts +356 -157
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ScopedLogger.d.ts +549 -9
- package/dist/ScopedLogger.d.ts.map +1 -1
- package/dist/chunks/HookBridge-C-AvXmPD.cjs +504 -0
- package/dist/chunks/HookBridge-C-AvXmPD.cjs.map +1 -0
- package/dist/chunks/HookBridge-CI2PH79S.js +487 -0
- package/dist/chunks/HookBridge-CI2PH79S.js.map +1 -0
- package/dist/chunks/{LogContext-L7HzynFw.cjs → LogContext-BaMXleWj.cjs} +19 -4
- package/dist/chunks/LogContext-BaMXleWj.cjs.map +1 -0
- package/dist/chunks/LogContext-DZasm_P5.cjs +141 -0
- package/dist/chunks/LogContext-DZasm_P5.cjs.map +1 -0
- package/dist/chunks/{LogContext-Cwn-1Zzb.js → LogContext-DjlITOzZ.js} +19 -4
- package/dist/chunks/LogContext-DjlITOzZ.js.map +1 -0
- package/dist/chunks/LogContext-Dyzs61XG.js +136 -0
- package/dist/chunks/LogContext-Dyzs61XG.js.map +1 -0
- package/dist/chunks/SerializerBridge-Ba43Mk7j.js +393 -0
- package/dist/chunks/SerializerBridge-Ba43Mk7j.js.map +1 -0
- package/dist/chunks/SerializerBridge-C4a9Z37F.cjs +410 -0
- package/dist/chunks/SerializerBridge-C4a9Z37F.cjs.map +1 -0
- package/dist/chunks/{StyleManager-CIpd6wbO.cjs → StyleManager-DQ6UNRB-.cjs} +37 -11
- package/dist/chunks/StyleManager-DQ6UNRB-.cjs.map +1 -0
- package/dist/chunks/StyleManager-DjwAYbxE.js +113 -0
- package/dist/chunks/StyleManager-DjwAYbxE.js.map +1 -0
- package/dist/chunks/{core-PoT7RrTK.js → core-Blfi2klP.js} +1 -4
- package/dist/chunks/core-Blfi2klP.js.map +1 -0
- package/dist/chunks/{core-Dzz7agGa.cjs → core-CqS_UBzJ.cjs} +1 -4
- package/dist/chunks/core-CqS_UBzJ.cjs.map +1 -0
- package/dist/chunks/{environment-detector-CI3TrWK_.js → environment-detector-7NvnYUfr.js} +11 -11
- package/dist/chunks/environment-detector-7NvnYUfr.js.map +1 -0
- package/dist/chunks/{environment-detector-Cnn6wr6O.cjs → environment-detector-D-tHkKWA.cjs} +11 -11
- package/dist/chunks/environment-detector-D-tHkKWA.cjs.map +1 -0
- package/dist/chunks/server-fallback-CaCPjWby.cjs +119 -0
- package/dist/chunks/server-fallback-CaCPjWby.cjs.map +1 -0
- package/dist/chunks/server-fallback-jj0T6XaK.js +114 -0
- package/dist/chunks/server-fallback-jj0T6XaK.js.map +1 -0
- package/dist/chunks/{spinner-DNvxbM9a.cjs → spinner-BHyYEXsM.cjs} +319 -37
- package/dist/chunks/spinner-BHyYEXsM.cjs.map +1 -0
- package/dist/chunks/{spinner-D3FsF78o.js → spinner-BtkwpzYv.js} +319 -37
- package/dist/chunks/spinner-BtkwpzYv.js.map +1 -0
- package/dist/chunks/styling-CRw3KQW4.js +1592 -0
- package/dist/chunks/styling-CRw3KQW4.js.map +1 -0
- package/dist/chunks/styling-Cel2wPRy.cjs +1645 -0
- package/dist/chunks/styling-Cel2wPRy.cjs.map +1 -0
- package/dist/chunks/transports-BGfwwakw.js +1237 -0
- package/dist/chunks/transports-BGfwwakw.js.map +1 -0
- package/dist/chunks/transports-BZ-Mc2IT.cjs +1450 -0
- package/dist/chunks/transports-BZ-Mc2IT.cjs.map +1 -0
- package/dist/chunks/transports-DvaLAeGJ.js +1403 -0
- package/dist/chunks/transports-DvaLAeGJ.js.map +1 -0
- package/dist/chunks/transports-yK6CL0Ml.cjs +1278 -0
- package/dist/chunks/transports-yK6CL0Ml.cjs.map +1 -0
- package/dist/chunks/{utils-BqlFYocD.cjs → utils-W_cxqriN.cjs} +44 -37
- package/dist/chunks/utils-W_cxqriN.cjs.map +1 -0
- package/dist/chunks/{utils-VETbVpkR.js → utils-tKfBAWUM.js} +44 -37
- package/dist/chunks/utils-tKfBAWUM.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +166 -19
- package/dist/cli/CommandProcessor.d.ts.map +1 -1
- package/dist/cli/commands/ConfigCommand.d.ts +36 -1
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -1
- package/dist/cli/commands/ExportCommand.d.ts +49 -3
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
- package/dist/cli/commands/ThemeCommand.d.ts +62 -3
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -1
- package/dist/cli/help.d.ts +30 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.d.ts +29 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli.cjs +2 -2
- package/dist/cli.js +2 -2
- package/dist/context/LogContext.d.ts +167 -70
- package/dist/context/LogContext.d.ts.map +1 -1
- package/dist/context.cjs +1 -1
- package/dist/context.js +1 -1
- package/dist/core.cjs +52 -29
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +50 -27
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +52 -29
- package/dist/core.js.map +1 -1
- package/dist/hooks/HookBridge.d.ts +15 -9
- package/dist/hooks/HookBridge.d.ts.map +1 -1
- package/dist/hooks/HookManager.d.ts +295 -2
- package/dist/hooks/HookManager.d.ts.map +1 -1
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.js +1 -1
- package/dist/index.cjs +1415 -214
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1413 -215
- package/dist/index.js.map +1 -1
- package/dist/playground/TerminalBridge.d.ts +23 -16
- package/dist/playground/TerminalBridge.d.ts.map +1 -1
- package/dist/playground/box.d.ts +36 -5
- package/dist/playground/box.d.ts.map +1 -1
- package/dist/playground/cli-table.d.ts +41 -5
- package/dist/playground/cli-table.d.ts.map +1 -1
- package/dist/playground/divider.d.ts +22 -3
- package/dist/playground/divider.d.ts.map +1 -1
- package/dist/playground/header.d.ts +21 -4
- package/dist/playground/header.d.ts.map +1 -1
- package/dist/playground/server-fallback.d.ts +96 -9
- package/dist/playground/server-fallback.d.ts.map +1 -1
- package/dist/playground/spinner.d.ts +159 -10
- package/dist/playground/spinner.d.ts.map +1 -1
- package/dist/playground/step.d.ts +25 -6
- package/dist/playground/step.d.ts.map +1 -1
- package/dist/playground.cjs +1 -1
- package/dist/playground.js +1 -1
- package/dist/serializers/SerializerBridge.d.ts +13 -6
- package/dist/serializers/SerializerBridge.d.ts.map +1 -1
- package/dist/serializers/SerializerRegistry.d.ts +236 -0
- package/dist/serializers/SerializerRegistry.d.ts.map +1 -1
- package/dist/serializers.cjs +1 -1
- package/dist/serializers.js +1 -1
- package/dist/styles/StyleManager.d.ts +138 -31
- package/dist/styles/StyleManager.d.ts.map +1 -1
- package/dist/styles.cjs +2 -2
- package/dist/styles.js +2 -2
- package/dist/styling/SmartPresets.d.ts +100 -6
- package/dist/styling/SmartPresets.d.ts.map +1 -1
- package/dist/styling/StyleBuilder.d.ts +453 -32
- package/dist/styling/StyleBuilder.d.ts.map +1 -1
- package/dist/styling/banners.d.ts +83 -7
- package/dist/styling/banners.d.ts.map +1 -1
- package/dist/styling/themes.d.ts +41 -2
- package/dist/styling/themes.d.ts.map +1 -1
- package/dist/transports/ConsoleTransport.d.ts +95 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -1
- package/dist/transports/FileTransport.d.ts +99 -18
- package/dist/transports/FileTransport.d.ts.map +1 -1
- package/dist/transports/HttpTransport.d.ts +135 -22
- package/dist/transports/HttpTransport.d.ts.map +1 -1
- package/dist/transports/OtlpTraceTransport.d.ts +118 -0
- package/dist/transports/OtlpTraceTransport.d.ts.map +1 -0
- package/dist/transports/OtlpTransport.d.ts +80 -37
- package/dist/transports/OtlpTransport.d.ts.map +1 -1
- package/dist/transports/SpanRuntime.d.ts +73 -0
- package/dist/transports/SpanRuntime.d.ts.map +1 -0
- package/dist/transports/TransportBridge.d.ts +19 -13
- package/dist/transports/TransportBridge.d.ts.map +1 -1
- package/dist/transports/TransportManager.d.ts +232 -10
- package/dist/transports/TransportManager.d.ts.map +1 -1
- package/dist/transports/index.d.ts +1 -0
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports-module.d.ts +3 -1
- package/dist/transports-module.d.ts.map +1 -1
- package/dist/transports.cjs +2 -1
- package/dist/transports.js +2 -2
- package/dist/types/core.d.ts +155 -59
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +92 -14
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/serializers.d.ts +72 -0
- package/dist/types/serializers.d.ts.map +1 -1
- package/dist/types/transports.d.ts +163 -39
- package/dist/types/transports.d.ts.map +1 -1
- package/dist/utils/ansi-colors.d.ts +15 -15
- package/dist/utils/asyncLocalStorage.d.ts +33 -0
- package/dist/utils/asyncLocalStorage.d.ts.map +1 -0
- package/dist/utils/environment-detector.d.ts +11 -11
- package/dist/utils/formatting.d.ts +8 -8
- package/dist/utils/output.d.ts +9 -9
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/stackTrace.d.ts +2 -2
- package/package.json +24 -25
- package/dist/chunks/HookBridge-CiRfR67f.cjs +0 -190
- package/dist/chunks/HookBridge-CiRfR67f.cjs.map +0 -1
- package/dist/chunks/HookBridge-SgMmbXZB.js +0 -173
- package/dist/chunks/HookBridge-SgMmbXZB.js.map +0 -1
- package/dist/chunks/LogContext-Cwn-1Zzb.js.map +0 -1
- package/dist/chunks/LogContext-L7HzynFw.cjs.map +0 -1
- package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +0 -166
- package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +0 -1
- package/dist/chunks/SerializerBridge-BkpQu5c9.js +0 -149
- package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +0 -1
- package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +0 -1
- package/dist/chunks/StyleManager-LCvVlVdx.js +0 -87
- package/dist/chunks/StyleManager-LCvVlVdx.js.map +0 -1
- package/dist/chunks/core-Dzz7agGa.cjs.map +0 -1
- package/dist/chunks/core-PoT7RrTK.js.map +0 -1
- package/dist/chunks/environment-detector-CI3TrWK_.js.map +0 -1
- package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +0 -1
- package/dist/chunks/server-fallback-BUKjdLS7.cjs +0 -42
- package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +0 -1
- package/dist/chunks/server-fallback-BsuWH1Dk.js +0 -37
- package/dist/chunks/server-fallback-BsuWH1Dk.js.map +0 -1
- package/dist/chunks/spinner-D3FsF78o.js.map +0 -1
- package/dist/chunks/spinner-DNvxbM9a.cjs.map +0 -1
- package/dist/chunks/styling-84N8T97t.js +0 -941
- package/dist/chunks/styling-84N8T97t.js.map +0 -1
- package/dist/chunks/styling-Cg5saQ46.cjs +0 -994
- package/dist/chunks/styling-Cg5saQ46.cjs.map +0 -1
- package/dist/chunks/transports-BiDk345e.js +0 -715
- package/dist/chunks/transports-BiDk345e.js.map +0 -1
- package/dist/chunks/transports-COPWmlF1.cjs +0 -756
- package/dist/chunks/transports-COPWmlF1.cjs.map +0 -1
- package/dist/chunks/utils-BqlFYocD.cjs.map +0 -1
- package/dist/chunks/utils-VETbVpkR.js.map +0 -1
- package/dist/example.d.ts +0 -18
- package/dist/example.d.ts.map +0 -1
- package/dist/main.d.ts +0 -2
- 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
|
|
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
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Opciones de configuración para {@link OtlpTransport}.
|
|
6
5
|
*/
|
|
7
6
|
export interface OtlpTransportOptions {
|
|
8
7
|
/**
|
|
9
|
-
* OTLP/HTTP
|
|
10
|
-
*
|
|
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
|
|
12
|
+
/** Atributo de resource `service.name`. Requerido por la spec OTel. */
|
|
14
13
|
serviceName: string;
|
|
15
|
-
/** `service.version
|
|
14
|
+
/** Atributo de resource `service.version`. Recomendado. */
|
|
16
15
|
serviceVersion?: string;
|
|
17
|
-
/** `deployment.environment`
|
|
16
|
+
/** Atributo de resource `deployment.environment` (production/staging/dev). */
|
|
18
17
|
environment?: string;
|
|
19
|
-
/**
|
|
18
|
+
/** Atributos de resource adicionales que se merguean en el bloque `resource`. */
|
|
20
19
|
resourceAttributes?: Record<string, string>;
|
|
21
20
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
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
|
-
/**
|
|
28
|
+
/** Headers extra que se merguean (Authorization, X-* custom). */
|
|
30
29
|
headers?: Record<string, string>;
|
|
31
|
-
/**
|
|
30
|
+
/** Tamaño del batch (records por POST). Default 50. */
|
|
32
31
|
batchSize?: number;
|
|
33
|
-
/**
|
|
32
|
+
/** Intervalo de flush en ms. */
|
|
34
33
|
flushInterval?: number;
|
|
35
|
-
/**
|
|
34
|
+
/** Tope duro de records bufferizados. Default 10_000. */
|
|
36
35
|
maxBufferSize?: number;
|
|
37
|
-
/**
|
|
36
|
+
/** Reintentos máximos por batch. Default 3. */
|
|
38
37
|
maxRetries?: number;
|
|
39
|
-
/**
|
|
38
|
+
/** Backoff inicial en ms. Default 250. */
|
|
40
39
|
initialBackoffMs?: number;
|
|
41
|
-
/**
|
|
40
|
+
/** Techo de backoff en ms. Default 5_000. */
|
|
42
41
|
maxBackoffMs?: number;
|
|
43
|
-
/**
|
|
42
|
+
/** Timeout por fetch en ms. Default 10_000. */
|
|
44
43
|
fetchTimeoutMs?: number;
|
|
45
|
-
/** Hook
|
|
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
|
|
50
|
-
*
|
|
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
|
-
|
|
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
|
|
112
|
+
* Transport OTLP/HTTP para SigNoz (o cualquier backend compatible con OTLP).
|
|
102
113
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
141
|
-
*
|
|
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":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E
|
|
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
|
|
3
|
-
*
|
|
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
|
-
*
|
|
10
|
+
* Resultado de añadir un transport.
|
|
9
11
|
*/
|
|
10
12
|
export interface AddTransportResult {
|
|
11
|
-
/**
|
|
13
|
+
/** ID único del transport. */
|
|
12
14
|
id: string;
|
|
13
|
-
/**
|
|
15
|
+
/** La instancia de TransportManager (creada al primer add). */
|
|
14
16
|
manager: TransportManager;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
|
-
* Bridge
|
|
19
|
+
* Bridge para la gestión del lifecycle de transports.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
18
22
|
*/
|
|
19
23
|
export interface TransportBridge {
|
|
20
|
-
/**
|
|
24
|
+
/** Añade un transport y devuelve su ID. */
|
|
21
25
|
addTransport(target: TransportTarget): string;
|
|
22
|
-
/**
|
|
26
|
+
/** Elimina un transport por ID. Devuelve `true` si se eliminó. */
|
|
23
27
|
removeTransport(id: string): boolean;
|
|
24
|
-
/**
|
|
28
|
+
/** Fuerza el flush de todos los buffers de transports. */
|
|
25
29
|
flushTransports(): Promise<void>;
|
|
26
|
-
/**
|
|
30
|
+
/** Cierra todos los transports de forma graceful. */
|
|
27
31
|
closeTransports(): Promise<void>;
|
|
28
|
-
/**
|
|
32
|
+
/** Devuelve el manager subyacente (o `undefined` si nunca se usó). */
|
|
29
33
|
getTransportManager(): TransportManager | undefined;
|
|
30
|
-
/**
|
|
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
|
-
*
|
|
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
|
|
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"}
|