autotel 6.5.0 → 7.0.0
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 +30 -23
- package/dist/{attribute-redacting-processor-Pk7lAzWd.d.cts → attribute-redacting-processor-CvBE0z1p.d.cts} +33 -1
- package/dist/{attribute-redacting-processor-Pk7lAzWd.d.ts → attribute-redacting-processor-CvBE0z1p.d.ts} +33 -1
- package/dist/attribute-redacting-processor.cjs +34 -32
- package/dist/attribute-redacting-processor.d.cts +1 -1
- package/dist/attribute-redacting-processor.d.ts +1 -1
- package/dist/attribute-redacting-processor.js +35 -32
- package/dist/{attributes-aDmJYral.cjs → attributes-Cxys8tgr.cjs} +34 -35
- package/dist/{attributes-B7wix2VG.js → attributes-Dt4YUYbP.js} +34 -35
- package/dist/attributes.cjs +1 -1
- package/dist/attributes.d.cts +1 -1
- package/dist/attributes.d.ts +1 -1
- package/dist/attributes.js +1 -1
- package/dist/auto.cjs +1 -1
- package/dist/auto.js +1 -1
- package/dist/business-baggage.cjs +19 -12
- package/dist/business-baggage.d.cts +8 -3
- package/dist/business-baggage.d.ts +8 -3
- package/dist/business-baggage.js +19 -12
- package/dist/{canonical-log-line-processor-DxtBGZIi.cjs → canonical-log-line-processor-DolzdawH.cjs} +43 -32
- package/dist/{canonical-log-line-processor-B4WgG-VS.d.cts → canonical-log-line-processor-cPB4Axk-.d.ts} +4 -3
- package/dist/{canonical-log-line-processor-B0vq_QR6.js → canonical-log-line-processor-hFUmS__K.js} +43 -32
- package/dist/{canonical-log-line-processor-CL_J7gb5.d.ts → canonical-log-line-processor-l0Aqe6yp.d.cts} +4 -3
- package/dist/config.d.cts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/{correlated-events-kSwLo3mi.cjs → correlated-events-CcuknWnU.cjs} +2 -1
- package/dist/{correlated-events-Bzh5y-UB.js → correlated-events-DwMMbItg.js} +3 -1
- package/dist/correlation-id.cjs +1 -1
- package/dist/correlation-id.js +1 -1
- package/dist/db.cjs +34 -19
- package/dist/db.js +34 -19
- package/dist/decorators.cjs +4 -2
- package/dist/decorators.d.cts +16 -11
- package/dist/decorators.d.ts +16 -11
- package/dist/decorators.js +4 -2
- package/dist/{define-event-CGG048HE.d.cts → define-event-BNeuKUPv.d.cts} +1 -1
- package/dist/{define-event-B2z1SBe7.d.ts → define-event-Bd8f8mST.d.ts} +1 -1
- package/dist/diagnostics.cjs +18 -16
- package/dist/diagnostics.d.cts +14 -10
- package/dist/diagnostics.d.ts +14 -10
- package/dist/diagnostics.js +18 -16
- package/dist/{event-subscriber-CWh8sTGh.d.cts → event-subscriber-DMACQA-1.d.cts} +19 -9
- package/dist/{event-subscriber-CWh8sTGh.d.ts → event-subscriber-DMACQA-1.d.ts} +19 -9
- package/dist/event-subscriber.d.cts +2 -2
- package/dist/event-subscriber.d.ts +2 -2
- package/dist/{event-testing-D0qWfqAy.d.cts → event-testing-CBtnJXE5.d.cts} +1 -1
- package/dist/{event-testing-CA2mIx1E.d.ts → event-testing-CkPgV3Ii.d.ts} +1 -1
- package/dist/event-testing.d.cts +1 -1
- package/dist/event-testing.d.ts +1 -1
- package/dist/event.cjs +1 -1
- package/dist/event.d.cts +5 -5
- package/dist/event.d.ts +5 -5
- package/dist/event.js +1 -1
- package/dist/exception-fingerprint.cjs +133 -0
- package/dist/exception-fingerprint.d.cts +51 -0
- package/dist/exception-fingerprint.d.ts +51 -0
- package/dist/exception-fingerprint.js +126 -0
- package/dist/{functional-e6jw5zQj.d.cts → functional-CJn2zY4o.d.cts} +96 -39
- package/dist/{functional-AT22vCw6.d.ts → functional-DXy1cHFF.d.ts} +96 -39
- package/dist/{functional-C0uAZq2X.cjs → functional-Da6Yv64r.cjs} +27 -15
- package/dist/{functional-DX7Zvag0.js → functional-uSbNnnxK.js} +27 -15
- package/dist/functional.cjs +1 -1
- package/dist/functional.d.cts +2 -2
- package/dist/functional.d.ts +2 -2
- package/dist/functional.js +1 -1
- package/dist/http.cjs +11 -8
- package/dist/http.js +11 -8
- package/dist/{index-DolOVX6F.d.ts → index-CwrNAsgk.d.ts} +22 -26
- package/dist/{index-BPcxVucm.d.cts → index-DQHf4cNl.d.cts} +22 -26
- package/dist/index.cjs +41 -35
- package/dist/index.d.cts +45 -30
- package/dist/index.d.ts +45 -30
- package/dist/index.js +41 -35
- package/dist/{init-pPI3JRRf.d.ts → init-BgnYi2sm.d.ts} +6 -6
- package/dist/{init-CTtHITlX.cjs → init-D4m5rCmD.cjs} +110 -84
- package/dist/{init-ncTMKZ-s.d.cts → init-DrlL1eis.d.cts} +6 -6
- package/dist/{init-WHYwyItd.js → init-JtX-KKz_.js} +105 -85
- package/dist/instrumentation.cjs +2 -2
- package/dist/instrumentation.js +2 -2
- package/dist/{logger-D3Ej3DII.js → logger-DdPp__xW.js} +63 -54
- package/dist/{logger-CN4xpzMd.d.cts → logger-S1Fgl0g3.d.cts} +0 -20
- package/dist/{logger-CN4xpzMd.d.ts → logger-S1Fgl0g3.d.ts} +0 -20
- package/dist/{logger-thMPLpOG.cjs → logger-Sm66cjKl.cjs} +63 -54
- package/dist/logger.cjs +1 -1
- package/dist/logger.d.cts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +1 -1
- package/dist/messaging-adapters.cjs +26 -12
- package/dist/messaging-adapters.d.cts +0 -30
- package/dist/messaging-adapters.d.ts +0 -30
- package/dist/messaging-adapters.js +26 -12
- package/dist/messaging.cjs +37 -34
- package/dist/messaging.d.cts +21 -62
- package/dist/messaging.d.ts +21 -62
- package/dist/messaging.js +37 -34
- package/dist/{metric-testing-CpvP3ZIa.d.cts → metric-testing-86WO1wan.d.cts} +1 -1
- package/dist/{metric-testing-CWm6UhaR.d.ts → metric-testing-CbCxdPBp.d.ts} +1 -1
- package/dist/metric-testing.d.cts +1 -1
- package/dist/metric-testing.d.ts +1 -1
- package/dist/metric.d.cts +3 -3
- package/dist/metric.d.ts +3 -3
- package/dist/{node-require-vROmTeJ8.js → node-require-DSPjaw_l.js} +3 -2
- package/dist/{node-require-PFqDihze.cjs → node-require-EifOMikz.cjs} +3 -2
- package/dist/parse-error.cjs +18 -12
- package/dist/parse-error.d.cts +2 -1
- package/dist/parse-error.d.ts +2 -1
- package/dist/parse-error.js +19 -12
- package/dist/policy.cjs +0 -0
- package/dist/policy.js +0 -0
- package/dist/processors.cjs +1 -1
- package/dist/processors.d.cts +1 -1
- package/dist/processors.d.ts +1 -1
- package/dist/processors.js +1 -1
- package/dist/{sampling-BR9fkSwx.d.cts → sampling-CM5S2Lp3.d.ts} +5 -6
- package/dist/{sampling-CP3e7-Yr.d.ts → sampling-CmRdnXUi.d.cts} +5 -6
- package/dist/sampling.cjs +3 -2
- package/dist/sampling.d.cts +1 -1
- package/dist/sampling.d.ts +1 -1
- package/dist/sampling.js +3 -2
- package/dist/semantic-helpers.cjs +9 -9
- package/dist/semantic-helpers.d.cts +1 -1
- package/dist/semantic-helpers.d.ts +1 -1
- package/dist/semantic-helpers.js +9 -9
- package/dist/{stable-hash-ChFBIhNt.js → stable-hash-BkoAYVks.js} +4 -3
- package/dist/{stable-hash-CS9BxvVQ.cjs → stable-hash-C0pOegH_.cjs} +4 -3
- package/dist/{structured-error-CHg7DoIQ.cjs → structured-error--_wXpd_C.cjs} +34 -25
- package/dist/{structured-error-9--cxBay.js → structured-error-YIuka-FE.js} +34 -25
- package/dist/test-span-collector.cjs +15 -8
- package/dist/test-span-collector.js +15 -8
- package/dist/testing.cjs +16 -18
- package/dist/testing.d.cts +7 -6
- package/dist/testing.d.ts +7 -6
- package/dist/testing.js +16 -18
- package/dist/{trace-context-IuyoPyNq.d.cts → trace-context-C1Cn1q0y.d.cts} +8 -7
- package/dist/{trace-context-IuyoPyNq.d.ts → trace-context-f89xPJbK.d.ts} +8 -7
- package/dist/trace-helpers.cjs +16 -13
- package/dist/trace-helpers.d.cts +9 -4
- package/dist/trace-helpers.d.ts +9 -4
- package/dist/trace-helpers.js +16 -13
- package/dist/tracer-provider.cjs +8 -12
- package/dist/tracer-provider.js +8 -12
- package/dist/validate.cjs +22 -20
- package/dist/validate.d.cts +3 -2
- package/dist/validate.d.ts +3 -2
- package/dist/validate.js +22 -20
- package/dist/values-BenyvWKz.js +141 -0
- package/dist/values-CeMH-mYG.d.cts +8 -0
- package/dist/values-CeMH-mYG.d.ts +8 -0
- package/dist/values-DApyq53y.cjs +267 -0
- package/dist/webhook.cjs +3 -3
- package/dist/webhook.d.cts +1 -1
- package/dist/webhook.d.ts +1 -1
- package/dist/webhook.js +3 -3
- package/dist/workflow-distributed.cjs +9 -7
- package/dist/workflow-distributed.d.cts +9 -8
- package/dist/workflow-distributed.d.ts +9 -8
- package/dist/workflow-distributed.js +9 -7
- package/dist/workflow.cjs +26 -17
- package/dist/workflow.d.cts +1 -28
- package/dist/workflow.d.ts +1 -28
- package/dist/workflow.js +26 -17
- package/dist/yaml-config.cjs +26 -11
- package/dist/yaml-config.d.cts +9 -3
- package/dist/yaml-config.d.ts +9 -3
- package/dist/yaml-config.js +26 -11
- package/package.json +6 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
|
|
2
|
+
const require_values = require('./values-DApyq53y.cjs');
|
|
2
3
|
const require_tracer_provider = require('./tracer-provider.cjs');
|
|
3
4
|
const require_config = require('./config.cjs');
|
|
4
5
|
const require_sampling = require('./sampling.cjs');
|
|
5
|
-
const require_init = require('./init-
|
|
6
|
+
const require_init = require('./init-D4m5rCmD.cjs');
|
|
6
7
|
const require_trace_helpers = require('./trace-helpers.cjs');
|
|
7
8
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
8
9
|
let node_fs = require("node:fs");
|
|
@@ -178,9 +179,9 @@ function getSpanName(options, fn, variableName) {
|
|
|
178
179
|
if (options.serviceName) return `${options.serviceName}.${fnName}`;
|
|
179
180
|
if (fnName !== "anonymous") return fnName;
|
|
180
181
|
const initConfig = require_init.getConfig();
|
|
181
|
-
if (
|
|
182
|
+
if (require_values.isDevelopment() && !unknownSpanNameWarningEmitted && initConfig?.logger?.warn) {
|
|
182
183
|
unknownSpanNameWarningEmitted = true;
|
|
183
|
-
initConfig.logger.warn({}, "[autotel] Span name resolved to \"unknown\".
|
|
184
|
+
initConfig.logger.warn({}, "[autotel] Span name resolved to \"unknown\". Use instrument({ key: \"operation.name\", fn }) for a reusable named wrapper.");
|
|
184
185
|
}
|
|
185
186
|
return "unknown";
|
|
186
187
|
}
|
|
@@ -207,7 +208,7 @@ function createDummyCtx() {
|
|
|
207
208
|
function serializeCapture(value) {
|
|
208
209
|
if (value === void 0) return void 0;
|
|
209
210
|
try {
|
|
210
|
-
const json =
|
|
211
|
+
const json = require_values.asString(value) ?? JSON.stringify(value);
|
|
211
212
|
if (json === void 0) return void 0;
|
|
212
213
|
return json.length > CAPTURE_MAX_CHARS ? `${json.slice(0, CAPTURE_MAX_CHARS)}…[truncated]` : json;
|
|
213
214
|
} catch {
|
|
@@ -333,7 +334,7 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
333
334
|
const fn = fnFactory(require_init.createTraceContext(span));
|
|
334
335
|
const argsAttributes = {
|
|
335
336
|
...captureInputAttrs(args, options.captureInput),
|
|
336
|
-
...options.attributesFromArgs
|
|
337
|
+
...options.attributesFromArgs?.(args)
|
|
337
338
|
};
|
|
338
339
|
const handleTailSampling = (success, duration, error) => {
|
|
339
340
|
if (needsTailSampling && sampler.shouldKeepTrace) {
|
|
@@ -358,9 +359,9 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
358
359
|
});
|
|
359
360
|
const resultAttributes = {
|
|
360
361
|
...captureOutputAttrs(result, options.captureOutput),
|
|
361
|
-
...options.attributesFromResult
|
|
362
|
+
...options.attributesFromResult?.(result)
|
|
362
363
|
};
|
|
363
|
-
span.setStatus({ code: _opentelemetry_api.SpanStatusCode.OK });
|
|
364
|
+
if (!require_init.hasExplicitSpanStatus(span)) span.setStatus({ code: _opentelemetry_api.SpanStatusCode.OK });
|
|
364
365
|
span.setAttributes({
|
|
365
366
|
...argsAttributes,
|
|
366
367
|
...resultAttributes,
|
|
@@ -373,8 +374,8 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
373
374
|
span.end();
|
|
374
375
|
return result;
|
|
375
376
|
};
|
|
376
|
-
const onError = (
|
|
377
|
-
finalizeThrownSpan(
|
|
377
|
+
const onError = (cause) => {
|
|
378
|
+
finalizeThrownSpan(cause, options.isError, {
|
|
378
379
|
span,
|
|
379
380
|
spanName,
|
|
380
381
|
duration: performance.now() - startTime,
|
|
@@ -383,7 +384,7 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
383
384
|
handleTailSampling,
|
|
384
385
|
extraAttributes: argsAttributes
|
|
385
386
|
});
|
|
386
|
-
throw
|
|
387
|
+
throw cause;
|
|
387
388
|
};
|
|
388
389
|
try {
|
|
389
390
|
callCounter?.add(1, {
|
|
@@ -428,6 +429,10 @@ function wrapFactoryWithTracing(factory, options, variableName) {
|
|
|
428
429
|
function wrapPlainWithTracing(fn, options, variableName) {
|
|
429
430
|
return wrapWithTracingSync((_ctx) => fn, options, resolveVariableName(fn, variableName));
|
|
430
431
|
}
|
|
432
|
+
/** Run one operation immediately with its span-bound context. */
|
|
433
|
+
function runWithTraceContext(operation, options) {
|
|
434
|
+
return wrapFactoryWithTracing((ctx) => () => operation(ctx), options)();
|
|
435
|
+
}
|
|
431
436
|
|
|
432
437
|
//#endregion
|
|
433
438
|
//#region src/functional.ts
|
|
@@ -493,7 +498,7 @@ function getCtxValue() {
|
|
|
493
498
|
*
|
|
494
499
|
* @example
|
|
495
500
|
* ```typescript
|
|
496
|
-
* const getUser = trace(
|
|
501
|
+
* const getUser = trace(async function getUser(id: string) {
|
|
497
502
|
* getActiveTraceContext()?.setAttribute('user.id', id);
|
|
498
503
|
* return db.users.find(id);
|
|
499
504
|
* });
|
|
@@ -523,7 +528,8 @@ function getActiveTraceContext() {
|
|
|
523
528
|
* })
|
|
524
529
|
* ```
|
|
525
530
|
*/
|
|
526
|
-
const
|
|
531
|
+
const ctxProxyTarget = {};
|
|
532
|
+
const ctx = new Proxy(ctxProxyTarget, {
|
|
527
533
|
get(_target, prop) {
|
|
528
534
|
const ctxValue = getCtxValue();
|
|
529
535
|
if (!ctxValue) return;
|
|
@@ -545,11 +551,17 @@ const ctx = new Proxy({}, {
|
|
|
545
551
|
return Object.getOwnPropertyDescriptor(ctxValue, prop);
|
|
546
552
|
}
|
|
547
553
|
});
|
|
548
|
-
function
|
|
554
|
+
function traceImpl(fnOrNameOrOptions, maybeFn) {
|
|
549
555
|
if (typeof fnOrNameOrOptions === "function") return wrapPlainWithTracing(fnOrNameOrOptions, {});
|
|
550
|
-
|
|
551
|
-
|
|
556
|
+
const options = typeof fnOrNameOrOptions === "string" ? { name: fnOrNameOrOptions } : fnOrNameOrOptions;
|
|
557
|
+
if (maybeFn === void 0) return ((fn) => wrapPlainWithTracing(fn, options));
|
|
558
|
+
return wrapPlainWithTracing(maybeFn, options);
|
|
559
|
+
}
|
|
560
|
+
function run(nameOrOptions, operation) {
|
|
561
|
+
if (typeof operation !== "function") throw new TypeError("trace.run(name, operation): operation must be a function");
|
|
562
|
+
return runWithTraceContext(operation, typeof nameOrOptions === "string" ? { name: nameOrOptions } : nameOrOptions);
|
|
552
563
|
}
|
|
564
|
+
const trace = Object.assign(traceImpl, { run });
|
|
553
565
|
/**
|
|
554
566
|
* Approach 2: withTracing() - Middleware-style composable wrapper
|
|
555
567
|
*
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { l as asString, m as isDevelopment } from "./values-BenyvWKz.js";
|
|
1
2
|
import { getForceFlushableProvider } from "./tracer-provider.js";
|
|
2
3
|
import { getConfig } from "./config.js";
|
|
3
4
|
import { AUTOTEL_SAMPLING_RATE, AUTOTEL_SAMPLING_TAIL_EVALUATED, AUTOTEL_SAMPLING_TAIL_KEEP, AlwaysSampler } from "./sampling.js";
|
|
4
|
-
import { D as getActiveContextWithBaggage, O as getContextStorage, T as createTraceContext, h as getEventQueue, m as runInOperationContext, r as getSdk, t as getConfig$1 } from "./init-
|
|
5
|
+
import { D as getActiveContextWithBaggage, O as getContextStorage, T as createTraceContext, h as getEventQueue, k as hasExplicitSpanStatus, m as runInOperationContext, r as getSdk, t as getConfig$1 } from "./init-JtX-KKz_.js";
|
|
5
6
|
import { setSpanName } from "./trace-helpers.js";
|
|
6
7
|
import { SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
7
8
|
import * as nodeFs from "node:fs";
|
|
@@ -175,9 +176,9 @@ function getSpanName(options, fn, variableName) {
|
|
|
175
176
|
if (options.serviceName) return `${options.serviceName}.${fnName}`;
|
|
176
177
|
if (fnName !== "anonymous") return fnName;
|
|
177
178
|
const initConfig = getConfig$1();
|
|
178
|
-
if (
|
|
179
|
+
if (isDevelopment() && !unknownSpanNameWarningEmitted && initConfig?.logger?.warn) {
|
|
179
180
|
unknownSpanNameWarningEmitted = true;
|
|
180
|
-
initConfig.logger.warn({}, "[autotel] Span name resolved to \"unknown\".
|
|
181
|
+
initConfig.logger.warn({}, "[autotel] Span name resolved to \"unknown\". Use instrument({ key: \"operation.name\", fn }) for a reusable named wrapper.");
|
|
181
182
|
}
|
|
182
183
|
return "unknown";
|
|
183
184
|
}
|
|
@@ -204,7 +205,7 @@ function createDummyCtx() {
|
|
|
204
205
|
function serializeCapture(value) {
|
|
205
206
|
if (value === void 0) return void 0;
|
|
206
207
|
try {
|
|
207
|
-
const json =
|
|
208
|
+
const json = asString(value) ?? JSON.stringify(value);
|
|
208
209
|
if (json === void 0) return void 0;
|
|
209
210
|
return json.length > CAPTURE_MAX_CHARS ? `${json.slice(0, CAPTURE_MAX_CHARS)}…[truncated]` : json;
|
|
210
211
|
} catch {
|
|
@@ -330,7 +331,7 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
330
331
|
const fn = fnFactory(createTraceContext(span));
|
|
331
332
|
const argsAttributes = {
|
|
332
333
|
...captureInputAttrs(args, options.captureInput),
|
|
333
|
-
...options.attributesFromArgs
|
|
334
|
+
...options.attributesFromArgs?.(args)
|
|
334
335
|
};
|
|
335
336
|
const handleTailSampling = (success, duration, error) => {
|
|
336
337
|
if (needsTailSampling && sampler.shouldKeepTrace) {
|
|
@@ -355,9 +356,9 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
355
356
|
});
|
|
356
357
|
const resultAttributes = {
|
|
357
358
|
...captureOutputAttrs(result, options.captureOutput),
|
|
358
|
-
...options.attributesFromResult
|
|
359
|
+
...options.attributesFromResult?.(result)
|
|
359
360
|
};
|
|
360
|
-
span.setStatus({ code: SpanStatusCode.OK });
|
|
361
|
+
if (!hasExplicitSpanStatus(span)) span.setStatus({ code: SpanStatusCode.OK });
|
|
361
362
|
span.setAttributes({
|
|
362
363
|
...argsAttributes,
|
|
363
364
|
...resultAttributes,
|
|
@@ -370,8 +371,8 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
370
371
|
span.end();
|
|
371
372
|
return result;
|
|
372
373
|
};
|
|
373
|
-
const onError = (
|
|
374
|
-
finalizeThrownSpan(
|
|
374
|
+
const onError = (cause) => {
|
|
375
|
+
finalizeThrownSpan(cause, options.isError, {
|
|
375
376
|
span,
|
|
376
377
|
spanName,
|
|
377
378
|
duration: performance.now() - startTime,
|
|
@@ -380,7 +381,7 @@ function wrapWithTracingSync(fnFactory, options, variableName) {
|
|
|
380
381
|
handleTailSampling,
|
|
381
382
|
extraAttributes: argsAttributes
|
|
382
383
|
});
|
|
383
|
-
throw
|
|
384
|
+
throw cause;
|
|
384
385
|
};
|
|
385
386
|
try {
|
|
386
387
|
callCounter?.add(1, {
|
|
@@ -425,6 +426,10 @@ function wrapFactoryWithTracing(factory, options, variableName) {
|
|
|
425
426
|
function wrapPlainWithTracing(fn, options, variableName) {
|
|
426
427
|
return wrapWithTracingSync((_ctx) => fn, options, resolveVariableName(fn, variableName));
|
|
427
428
|
}
|
|
429
|
+
/** Run one operation immediately with its span-bound context. */
|
|
430
|
+
function runWithTraceContext(operation, options) {
|
|
431
|
+
return wrapFactoryWithTracing((ctx) => () => operation(ctx), options)();
|
|
432
|
+
}
|
|
428
433
|
|
|
429
434
|
//#endregion
|
|
430
435
|
//#region src/functional.ts
|
|
@@ -490,7 +495,7 @@ function getCtxValue() {
|
|
|
490
495
|
*
|
|
491
496
|
* @example
|
|
492
497
|
* ```typescript
|
|
493
|
-
* const getUser = trace(
|
|
498
|
+
* const getUser = trace(async function getUser(id: string) {
|
|
494
499
|
* getActiveTraceContext()?.setAttribute('user.id', id);
|
|
495
500
|
* return db.users.find(id);
|
|
496
501
|
* });
|
|
@@ -520,7 +525,8 @@ function getActiveTraceContext() {
|
|
|
520
525
|
* })
|
|
521
526
|
* ```
|
|
522
527
|
*/
|
|
523
|
-
const
|
|
528
|
+
const ctxProxyTarget = {};
|
|
529
|
+
const ctx = new Proxy(ctxProxyTarget, {
|
|
524
530
|
get(_target, prop) {
|
|
525
531
|
const ctxValue = getCtxValue();
|
|
526
532
|
if (!ctxValue) return;
|
|
@@ -542,11 +548,17 @@ const ctx = new Proxy({}, {
|
|
|
542
548
|
return Object.getOwnPropertyDescriptor(ctxValue, prop);
|
|
543
549
|
}
|
|
544
550
|
});
|
|
545
|
-
function
|
|
551
|
+
function traceImpl(fnOrNameOrOptions, maybeFn) {
|
|
546
552
|
if (typeof fnOrNameOrOptions === "function") return wrapPlainWithTracing(fnOrNameOrOptions, {});
|
|
547
|
-
|
|
548
|
-
|
|
553
|
+
const options = typeof fnOrNameOrOptions === "string" ? { name: fnOrNameOrOptions } : fnOrNameOrOptions;
|
|
554
|
+
if (maybeFn === void 0) return ((fn) => wrapPlainWithTracing(fn, options));
|
|
555
|
+
return wrapPlainWithTracing(maybeFn, options);
|
|
556
|
+
}
|
|
557
|
+
function run(nameOrOptions, operation) {
|
|
558
|
+
if (typeof operation !== "function") throw new TypeError("trace.run(name, operation): operation must be a function");
|
|
559
|
+
return runWithTraceContext(operation, typeof nameOrOptions === "string" ? { name: nameOrOptions } : nameOrOptions);
|
|
549
560
|
}
|
|
561
|
+
const trace$1 = Object.assign(traceImpl, { run });
|
|
550
562
|
/**
|
|
551
563
|
* Approach 2: withTracing() - Middleware-style composable wrapper
|
|
552
564
|
*
|
package/dist/functional.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_functional = require('./functional-
|
|
2
|
+
const require_functional = require('./functional-Da6Yv64r.cjs');
|
|
3
3
|
|
|
4
4
|
exports.ctx = require_functional.ctx;
|
|
5
5
|
exports.getActiveTraceContext = require_functional.getActiveTraceContext;
|
package/dist/functional.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as TraceContext } from "./trace-context-
|
|
2
|
-
import { a as getActiveTraceContext, c as trace, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, m as TracingOptions, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-
|
|
1
|
+
import { n as TraceContext } from "./trace-context-C1Cn1q0y.cjs";
|
|
2
|
+
import { a as getActiveTraceContext, c as trace, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, m as TracingOptions, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-CJn2zY4o.cjs";
|
|
3
3
|
export { type InstrumentOptions, type SingleInstrumentOptions, SpanOptions, type TraceContext, type TracingOptions, WithBaggageOptions, WithNewContextOptions, ctx, getActiveTraceContext, instrument, span, trace, withBaggage, withNewContext, withTracing };
|
package/dist/functional.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as TraceContext } from "./trace-context-
|
|
2
|
-
import { a as getActiveTraceContext, c as trace, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, m as TracingOptions, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-
|
|
1
|
+
import { n as TraceContext } from "./trace-context-f89xPJbK.js";
|
|
2
|
+
import { a as getActiveTraceContext, c as trace, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, m as TracingOptions, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-DXy1cHFF.js";
|
|
3
3
|
export { type InstrumentOptions, type SingleInstrumentOptions, SpanOptions, type TraceContext, type TracingOptions, WithBaggageOptions, WithNewContextOptions, ctx, getActiveTraceContext, instrument, span, trace, withBaggage, withNewContext, withTracing };
|
package/dist/functional.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as trace, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-
|
|
1
|
+
import { a as trace, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-uSbNnnxK.js";
|
|
2
2
|
|
|
3
3
|
export { ctx, getActiveTraceContext, instrument, span, trace, withBaggage, withNewContext, withTracing };
|
package/dist/http.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_values = require('./values-DApyq53y.cjs');
|
|
2
3
|
const require_config = require('./config.cjs');
|
|
3
|
-
const require_init = require('./init-
|
|
4
|
+
const require_init = require('./init-D4m5rCmD.cjs');
|
|
4
5
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
5
6
|
|
|
6
7
|
//#region src/http.ts
|
|
@@ -75,13 +76,13 @@ function HttpInstrumented(options = {}) {
|
|
|
75
76
|
constructor(...args) {
|
|
76
77
|
super(...args);
|
|
77
78
|
const proto = target.prototype;
|
|
78
|
-
const methodNames = Object.getOwnPropertyNames(proto).filter((name) => name !== "constructor" &&
|
|
79
|
+
const methodNames = Object.getOwnPropertyNames(proto).filter((name) => name !== "constructor" && require_values.isFunction(require_values.readProperty(proto, name)) && !name.startsWith("_"));
|
|
79
80
|
for (const methodName of methodNames) {
|
|
80
81
|
const originalMethod = proto[methodName];
|
|
81
82
|
if (originalMethod.constructor.name === "AsyncFunction" || originalMethod.toString().startsWith("async ")) {
|
|
82
83
|
const wrappedMethod = async (...args) => {
|
|
83
84
|
const tracer = require_config.getConfig().tracer;
|
|
84
|
-
const url = options.urlExtractor ? options.urlExtractor(args) : args[0];
|
|
85
|
+
const url = options.urlExtractor ? options.urlExtractor(args) : require_values.asString(args[0]);
|
|
85
86
|
const method = options.methodExtractor ? options.methodExtractor(methodName, args) : inferHttpMethod(methodName);
|
|
86
87
|
const spanName = url ? `HTTP ${method} ${extractPath(url)}` : `HTTP ${method}`;
|
|
87
88
|
return tracer.startActiveSpan(spanName, async (span) => {
|
|
@@ -136,7 +137,12 @@ function HttpInstrumented(options = {}) {
|
|
|
136
137
|
}
|
|
137
138
|
});
|
|
138
139
|
};
|
|
139
|
-
this
|
|
140
|
+
Object.defineProperty(this, methodName, {
|
|
141
|
+
value: wrappedMethod,
|
|
142
|
+
writable: true,
|
|
143
|
+
enumerable: true,
|
|
144
|
+
configurable: true
|
|
145
|
+
});
|
|
140
146
|
}
|
|
141
147
|
}
|
|
142
148
|
}
|
|
@@ -207,10 +213,7 @@ function parseUrl(url) {
|
|
|
207
213
|
}
|
|
208
214
|
}
|
|
209
215
|
function extractStatusCode(result) {
|
|
210
|
-
|
|
211
|
-
if ("status" in result && typeof result.status === "number") return result.status;
|
|
212
|
-
if ("statusCode" in result && typeof result.statusCode === "number") return result.statusCode;
|
|
213
|
-
}
|
|
216
|
+
return require_values.asNumber(require_values.readProperty(result, "status")) ?? require_values.asNumber(require_values.readProperty(result, "statusCode"));
|
|
214
217
|
}
|
|
215
218
|
/**
|
|
216
219
|
* Inject trace context into HTTP headers (for distributed tracing)
|
package/dist/http.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { _ as readProperty, h as isFunction, i as asNumber, l as asString } from "./values-BenyvWKz.js";
|
|
1
2
|
import { getConfig } from "./config.js";
|
|
2
|
-
import { D as getActiveContextWithBaggage } from "./init-
|
|
3
|
+
import { D as getActiveContextWithBaggage } from "./init-JtX-KKz_.js";
|
|
3
4
|
import { SpanStatusCode, context, propagation } from "@opentelemetry/api";
|
|
4
5
|
|
|
5
6
|
//#region src/http.ts
|
|
@@ -74,13 +75,13 @@ function HttpInstrumented(options = {}) {
|
|
|
74
75
|
constructor(...args) {
|
|
75
76
|
super(...args);
|
|
76
77
|
const proto = target.prototype;
|
|
77
|
-
const methodNames = Object.getOwnPropertyNames(proto).filter((name) => name !== "constructor" &&
|
|
78
|
+
const methodNames = Object.getOwnPropertyNames(proto).filter((name) => name !== "constructor" && isFunction(readProperty(proto, name)) && !name.startsWith("_"));
|
|
78
79
|
for (const methodName of methodNames) {
|
|
79
80
|
const originalMethod = proto[methodName];
|
|
80
81
|
if (originalMethod.constructor.name === "AsyncFunction" || originalMethod.toString().startsWith("async ")) {
|
|
81
82
|
const wrappedMethod = async (...args) => {
|
|
82
83
|
const tracer = getConfig().tracer;
|
|
83
|
-
const url = options.urlExtractor ? options.urlExtractor(args) : args[0];
|
|
84
|
+
const url = options.urlExtractor ? options.urlExtractor(args) : asString(args[0]);
|
|
84
85
|
const method = options.methodExtractor ? options.methodExtractor(methodName, args) : inferHttpMethod(methodName);
|
|
85
86
|
const spanName = url ? `HTTP ${method} ${extractPath(url)}` : `HTTP ${method}`;
|
|
86
87
|
return tracer.startActiveSpan(spanName, async (span) => {
|
|
@@ -135,7 +136,12 @@ function HttpInstrumented(options = {}) {
|
|
|
135
136
|
}
|
|
136
137
|
});
|
|
137
138
|
};
|
|
138
|
-
this
|
|
139
|
+
Object.defineProperty(this, methodName, {
|
|
140
|
+
value: wrappedMethod,
|
|
141
|
+
writable: true,
|
|
142
|
+
enumerable: true,
|
|
143
|
+
configurable: true
|
|
144
|
+
});
|
|
139
145
|
}
|
|
140
146
|
}
|
|
141
147
|
}
|
|
@@ -206,10 +212,7 @@ function parseUrl(url) {
|
|
|
206
212
|
}
|
|
207
213
|
}
|
|
208
214
|
function extractStatusCode(result) {
|
|
209
|
-
|
|
210
|
-
if ("status" in result && typeof result.status === "number") return result.status;
|
|
211
|
-
if ("statusCode" in result && typeof result.statusCode === "number") return result.statusCode;
|
|
212
|
-
}
|
|
215
|
+
return asNumber(readProperty(result, "status")) ?? asNumber(readProperty(result, "statusCode"));
|
|
213
216
|
}
|
|
214
217
|
/**
|
|
215
218
|
* Inject trace context into HTTP headers (for distributed tracing)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-
|
|
1
|
+
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-f89xPJbK.js";
|
|
2
2
|
import { Resource } from "@opentelemetry/resources";
|
|
3
|
-
import { Span } from "@opentelemetry/api";
|
|
3
|
+
import { AttributeValue, Attributes, Span } from "@opentelemetry/api";
|
|
4
4
|
//#region src/attributes/types.d.ts
|
|
5
5
|
interface UserAttrs {
|
|
6
6
|
id?: string;
|
|
@@ -201,7 +201,7 @@ declare const attrs: {
|
|
|
201
201
|
readonly roles: (value: string[]) => {
|
|
202
202
|
"user.roles": string[];
|
|
203
203
|
};
|
|
204
|
-
readonly data: (data: UserAttrs) =>
|
|
204
|
+
readonly data: (data: UserAttrs) => Attributes;
|
|
205
205
|
};
|
|
206
206
|
readonly session: {
|
|
207
207
|
readonly id: (value: string) => {
|
|
@@ -210,7 +210,7 @@ declare const attrs: {
|
|
|
210
210
|
readonly previousId: (value: string) => {
|
|
211
211
|
"session.previous_id": string;
|
|
212
212
|
};
|
|
213
|
-
readonly data: (data: SessionAttrs) =>
|
|
213
|
+
readonly data: (data: SessionAttrs) => Attributes;
|
|
214
214
|
};
|
|
215
215
|
readonly device: {
|
|
216
216
|
readonly id: (value: string) => {
|
|
@@ -225,7 +225,7 @@ declare const attrs: {
|
|
|
225
225
|
readonly modelName: (value: string) => {
|
|
226
226
|
"device.model.name": string;
|
|
227
227
|
};
|
|
228
|
-
readonly data: (data: DeviceAttrs) =>
|
|
228
|
+
readonly data: (data: DeviceAttrs) => Attributes;
|
|
229
229
|
};
|
|
230
230
|
readonly http: {
|
|
231
231
|
readonly request: {
|
|
@@ -262,8 +262,8 @@ declare const attrs: {
|
|
|
262
262
|
readonly connectionState: (value: string) => {
|
|
263
263
|
"http.connection.state": string;
|
|
264
264
|
};
|
|
265
|
-
readonly server: (data: HTTPServerAttrs) =>
|
|
266
|
-
readonly client: (data: HTTPClientAttrs) =>
|
|
265
|
+
readonly server: (data: HTTPServerAttrs) => Attributes;
|
|
266
|
+
readonly client: (data: HTTPClientAttrs) => Attributes;
|
|
267
267
|
};
|
|
268
268
|
readonly db: {
|
|
269
269
|
readonly client: {
|
|
@@ -294,7 +294,7 @@ declare const attrs: {
|
|
|
294
294
|
readonly rowsReturned: (value: number) => {
|
|
295
295
|
"db.response.returned_rows": number;
|
|
296
296
|
};
|
|
297
|
-
readonly data: (data: DBAttrs) =>
|
|
297
|
+
readonly data: (data: DBAttrs) => Attributes;
|
|
298
298
|
};
|
|
299
299
|
};
|
|
300
300
|
readonly service: {
|
|
@@ -307,7 +307,7 @@ declare const attrs: {
|
|
|
307
307
|
readonly version: (value: string) => {
|
|
308
308
|
"service.version": string;
|
|
309
309
|
};
|
|
310
|
-
readonly data: (data: ServiceAttrs) =>
|
|
310
|
+
readonly data: (data: ServiceAttrs) => Attributes;
|
|
311
311
|
};
|
|
312
312
|
readonly network: {
|
|
313
313
|
readonly peerAddress: (value: string) => {
|
|
@@ -325,7 +325,7 @@ declare const attrs: {
|
|
|
325
325
|
readonly protocolVersion: (value: string) => {
|
|
326
326
|
"network.protocol.version": string;
|
|
327
327
|
};
|
|
328
|
-
readonly data: (data: NetworkAttrs) =>
|
|
328
|
+
readonly data: (data: NetworkAttrs) => Attributes;
|
|
329
329
|
};
|
|
330
330
|
readonly server: {
|
|
331
331
|
readonly address: (value: string) => {
|
|
@@ -337,7 +337,7 @@ declare const attrs: {
|
|
|
337
337
|
readonly socketAddress: (value: string) => {
|
|
338
338
|
"server.socket.address": string;
|
|
339
339
|
};
|
|
340
|
-
readonly data: (data: ServerAddressAttrs) =>
|
|
340
|
+
readonly data: (data: ServerAddressAttrs) => Attributes;
|
|
341
341
|
};
|
|
342
342
|
readonly url: {
|
|
343
343
|
readonly scheme: (value: string) => {
|
|
@@ -355,7 +355,7 @@ declare const attrs: {
|
|
|
355
355
|
readonly fragment: (value: string) => {
|
|
356
356
|
"url.fragment": string;
|
|
357
357
|
};
|
|
358
|
-
readonly data: (data: URLAttrs) =>
|
|
358
|
+
readonly data: (data: URLAttrs) => Attributes;
|
|
359
359
|
};
|
|
360
360
|
readonly error: {
|
|
361
361
|
readonly type: (value: string) => {
|
|
@@ -370,7 +370,7 @@ declare const attrs: {
|
|
|
370
370
|
readonly code: (value: string | number) => {
|
|
371
371
|
"error.code": string | number;
|
|
372
372
|
};
|
|
373
|
-
readonly data: (data: ErrorAttrs) =>
|
|
373
|
+
readonly data: (data: ErrorAttrs) => Attributes;
|
|
374
374
|
};
|
|
375
375
|
readonly exception: {
|
|
376
376
|
readonly escaped: (value: boolean) => {
|
|
@@ -388,7 +388,7 @@ declare const attrs: {
|
|
|
388
388
|
readonly moduleName: (value: string) => {
|
|
389
389
|
"exception.module": string;
|
|
390
390
|
};
|
|
391
|
-
readonly data: (data: ExceptionAttrs) =>
|
|
391
|
+
readonly data: (data: ExceptionAttrs) => Attributes;
|
|
392
392
|
};
|
|
393
393
|
readonly process: {
|
|
394
394
|
readonly pid: (value: number) => {
|
|
@@ -403,7 +403,7 @@ declare const attrs: {
|
|
|
403
403
|
readonly owner: (value: string) => {
|
|
404
404
|
"process.owner": string;
|
|
405
405
|
};
|
|
406
|
-
readonly data: (data: ProcessAttrs) =>
|
|
406
|
+
readonly data: (data: ProcessAttrs) => Attributes;
|
|
407
407
|
};
|
|
408
408
|
readonly thread: {
|
|
409
409
|
readonly id: (value: number) => {
|
|
@@ -426,7 +426,7 @@ declare const attrs: {
|
|
|
426
426
|
readonly tag: (value: string) => {
|
|
427
427
|
"container.image.tag": string;
|
|
428
428
|
};
|
|
429
|
-
readonly data: (data: ContainerAttrs) =>
|
|
429
|
+
readonly data: (data: ContainerAttrs) => Attributes;
|
|
430
430
|
};
|
|
431
431
|
readonly k8s: {
|
|
432
432
|
readonly podName: (value: string) => {
|
|
@@ -458,7 +458,7 @@ declare const attrs: {
|
|
|
458
458
|
readonly platform: (value: string) => {
|
|
459
459
|
"cloud.platform": string;
|
|
460
460
|
};
|
|
461
|
-
readonly data: (data: CloudAttrs) =>
|
|
461
|
+
readonly data: (data: CloudAttrs) => Attributes;
|
|
462
462
|
};
|
|
463
463
|
readonly faas: {
|
|
464
464
|
readonly name: (value: string) => {
|
|
@@ -504,7 +504,7 @@ declare const attrs: {
|
|
|
504
504
|
readonly conversationId: (value: string) => {
|
|
505
505
|
"messaging.conversation_id": string;
|
|
506
506
|
};
|
|
507
|
-
readonly data: (data: MessagingAttrs) =>
|
|
507
|
+
readonly data: (data: MessagingAttrs) => Attributes;
|
|
508
508
|
};
|
|
509
509
|
readonly rpc: {
|
|
510
510
|
readonly system: (value: string) => {
|
|
@@ -588,10 +588,6 @@ declare const attrs: {
|
|
|
588
588
|
};
|
|
589
589
|
//#endregion
|
|
590
590
|
//#region src/attributes/validators.d.ts
|
|
591
|
-
/**
|
|
592
|
-
* Attribute validation, PII detection, and guardrails
|
|
593
|
-
* Provides safe-by-default attribute handling with configurable policies
|
|
594
|
-
*/
|
|
595
591
|
interface AttributeGuardrails {
|
|
596
592
|
/** How to handle PII in attributes */
|
|
597
593
|
pii?: 'allow' | 'redact' | 'hash' | 'block';
|
|
@@ -609,9 +605,9 @@ interface AttributePolicy {
|
|
|
609
605
|
/** Custom deprecation warnings for specific attributes */
|
|
610
606
|
deprecatedWarnings?: Record<string, string>;
|
|
611
607
|
}
|
|
612
|
-
declare function validateAttribute(key: string, value:
|
|
608
|
+
declare function validateAttribute(key: string, value: AttributeValue | undefined, policy?: AttributePolicy): AttributeValue | undefined;
|
|
613
609
|
declare function checkDeprecatedAttribute(key: string, policy?: AttributePolicy): string | null;
|
|
614
|
-
declare function autoRedactPII(attributes:
|
|
610
|
+
declare function autoRedactPII(attributes: Attributes, policy?: AttributePolicy): Attributes;
|
|
615
611
|
declare function defaultGuardrails(): AttributeGuardrails;
|
|
616
612
|
//#endregion
|
|
617
613
|
//#region src/attributes/attachers.d.ts
|
|
@@ -670,7 +666,7 @@ declare function transaction(spanOrContext: TraceContext, config: {
|
|
|
670
666
|
type AttributeSetter = {
|
|
671
667
|
setAttributes: (attrs: Record<string, AttributeValue$1>) => void;
|
|
672
668
|
};
|
|
673
|
-
declare function mergeAttrs(...attrSets: Array<
|
|
674
|
-
declare function safeSetAttributes(span: AttributeSetter, attrs:
|
|
669
|
+
declare function mergeAttrs(...attrSets: Array<Attributes | undefined>): Attributes;
|
|
670
|
+
declare function safeSetAttributes(span: AttributeSetter, attrs: Attributes, policy?: AttributePolicy): void;
|
|
675
671
|
//#endregion
|
|
676
672
|
export { ExceptionAttrs as A, PeerAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPServerAttrs as F, SessionAttrs as G, RPCAttrs as H, K8sAttrs as I, URLAttrs as J, TLSAttrs as K, MessagingAttrs as L, FeatureFlagAttrs as M, GraphQLAttrs as N, DeviceAttrs as O, HTTPClientAttrs as P, NetworkAttrs as R, ClientAttrs as S, ContainerAttrs as T, ServerAddressAttrs as U, ProcessAttrs as V, ServiceAttrs as W, UserAttrs as Y, autoRedactPII as _, httpClient as a, validateAttribute as b, mergeServiceResource as c, setError as d, setException as f, AttributePolicy as g, AttributeGuardrails as h, dbClient as i, FaaSAttrs as j, ErrorAttrs as k, request as l, setUser as m, safeSetAttributes as n, httpServer as o, setSession as p, ThreadAttrs as q, transaction as r, identify as s, mergeAttrs as t, setDevice as u, checkDeprecatedAttribute as v, CodeAttrs as w, attrs as x, defaultGuardrails as y, OTelAttrs as z };
|