autotel-edge 3.16.13 → 3.16.15

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 (45) hide show
  1. package/dist/config-0FktBGyj.js +290 -0
  2. package/dist/config-0FktBGyj.js.map +1 -0
  3. package/dist/events.d.ts +42 -43
  4. package/dist/events.d.ts.map +1 -0
  5. package/dist/events.js +144 -137
  6. package/dist/events.js.map +1 -1
  7. package/dist/execution-logger-BWlya70r.d.ts +137 -0
  8. package/dist/execution-logger-BWlya70r.d.ts.map +1 -0
  9. package/dist/execution-logger-CoxSsBmU.js +247 -0
  10. package/dist/execution-logger-CoxSsBmU.js.map +1 -0
  11. package/dist/index.d.ts +192 -276
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +930 -1060
  14. package/dist/index.js.map +1 -1
  15. package/dist/logger.d.ts +122 -136
  16. package/dist/logger.d.ts.map +1 -0
  17. package/dist/logger.js +783 -774
  18. package/dist/logger.js.map +1 -1
  19. package/dist/parse-error.d.ts +12 -10
  20. package/dist/parse-error.d.ts.map +1 -0
  21. package/dist/parse-error.js +55 -2
  22. package/dist/parse-error.js.map +1 -1
  23. package/dist/sampling.d.ts +51 -76
  24. package/dist/sampling.d.ts.map +1 -0
  25. package/dist/sampling.js +155 -90
  26. package/dist/sampling.js.map +1 -1
  27. package/dist/testing.d.ts +1 -2
  28. package/dist/testing.js +1 -3
  29. package/dist/types-HCbsjZzp.d.ts +214 -0
  30. package/dist/types-HCbsjZzp.d.ts.map +1 -0
  31. package/package.json +6 -6
  32. package/src/core/buffer.ts +4 -3
  33. package/src/core/provider.context.test.ts +55 -0
  34. package/src/core/provider.ts +18 -1
  35. package/binding.gyp +0 -9
  36. package/dist/chunk-AL7ZD64M.js +0 -291
  37. package/dist/chunk-AL7ZD64M.js.map +0 -1
  38. package/dist/chunk-INQQQVXN.js +0 -310
  39. package/dist/chunk-INQQQVXN.js.map +0 -1
  40. package/dist/chunk-M7Z4P5MC.js +0 -64
  41. package/dist/chunk-M7Z4P5MC.js.map +0 -1
  42. package/dist/execution-logger-77TRRoWn.d.ts +0 -84
  43. package/dist/testing.js.map +0 -1
  44. package/dist/types-uulICZo7.d.ts +0 -216
  45. package/index.js +0 -1
package/dist/index.d.ts CHANGED
@@ -1,204 +1,175 @@
1
- import { Span, SpanContext, SpanKind, Attributes, SpanStatus, HrTime, Link, TimeInput, AttributeValue, Exception, Tracer, SpanOptions as SpanOptions$1, Context, ContextManager } from '@opentelemetry/api';
2
- export { Context, Span, SpanContext, Tracer, context, propagation } from '@opentelemetry/api';
3
- import { InstrumentationScope, ExportResult } from '@opentelemetry/core';
4
- import { Resource } from '@opentelemetry/resources';
5
- import { ReadableSpan, TimedEvent, SpanProcessor, SpanExporter, TracerConfig, Sampler } from '@opentelemetry/sdk-trace-base';
6
- export { ReadableSpan } from '@opentelemetry/sdk-trace-base';
7
- import { OTLPExporterError } from '@opentelemetry/otlp-exporter-base';
8
- import { f as OTLPExporterConfig, g as Trigger, R as ResolvedEdgeConfig, C as ConfigurationOption, h as EdgeConfig, P as PostProcessorFn, i as EdgeSubscriber, j as ResolveConfigFn, k as RouteServiceConfig } from './types-uulICZo7.js';
9
- export { D as DOConstructorTrigger, l as DataSafetyConfig, m as ExporterConfig, H as HandlerInstrumentation, I as InitialSpanInfo, n as InstrumentationOptions, L as LocalTrace, S as SamplingConfig, o as ServiceConfig, T as TailSampleFn, p as TraceFlushableSpanProcessor, W as WorkflowTrigger } from './types-uulICZo7.js';
10
- export { Buffer } from 'node:buffer';
11
- import { T as TraceContext } from './execution-logger-77TRRoWn.js';
12
- export { E as ExecutionLogSnapshot, a as ExecutionLogger, b as ExecutionLoggerOptions, F as ForkLifecycle, c as ForkOptions, g as getExecutionLogger } from './execution-logger-77TRRoWn.js';
13
- export { ParsedError, parseError } from './parse-error.js';
1
+ import { A as WorkflowTrigger, C as ResolvedEdgeConfig, D as TailSampleFn, E as ServiceConfig, O as TraceFlushableSpanProcessor, S as ResolveConfigFn, T as SamplingConfig, _ as OTLPExporterConfig, b as PostProcessorFn, c as EdgeSubscriber, d as ExporterConfig, g as LocalTrace, h as InstrumentationOptions, i as EdgeConfig, k as Trigger, m as InitialSpanInfo, n as DOConstructorTrigger, p as HandlerInstrumentation, r as DataSafetyConfig, t as ConfigurationOption, w as RouteServiceConfig, x as ReadableSpan } from "./types-HCbsjZzp.js";
2
+ import { a as ForkOptions, c as instrument, d as traceOptions, f as withTracing, i as ForkLifecycle, l as span, n as ExecutionLogger, o as getExecutionLogger, p as TraceContext, r as ExecutionLoggerOptions, s as InstrumentOptions, t as ExecutionLogSnapshot, u as trace } from "./execution-logger-BWlya70r.js";
3
+ import { ParsedError, parseError } from "./parse-error.js";
4
+ import { ExportResult, InstrumentationScope } from "@opentelemetry/core";
5
+ import { AttributeValue, Attributes, Context, Context as Context$1, ContextManager, Exception, HrTime, Link, Span, Span as Span$1, SpanContext, SpanContext as SpanContext$1, SpanKind, SpanOptions, SpanStatus, TimeInput, Tracer, Tracer as Tracer$1, context, propagation } from "@opentelemetry/api";
6
+ import { ReadableSpan as ReadableSpan$1, SpanExporter, SpanProcessor, TimedEvent, TracerConfig } from "@opentelemetry/sdk-trace-base";
7
+ import { OTLPExporterError } from "@opentelemetry/otlp-exporter-base";
8
+ import { Buffer } from "node:buffer";
9
+ import { Resource } from "@opentelemetry/resources";
14
10
 
15
- /**
16
- * Lightweight Span implementation for edge environments
17
- */
18
-
19
- type OnSpanEnd = (span: Span) => void;
11
+ //#region src/core/span.d.ts
12
+ type OnSpanEnd = (span: Span$1) => void;
20
13
  interface SpanInit {
21
- attributes: unknown;
22
- name: string;
23
- onEnd: OnSpanEnd;
24
- resource: Resource;
25
- spanContext: SpanContext;
26
- parentSpanContext?: SpanContext;
27
- links?: Link[];
28
- parentSpanId?: string;
29
- spanKind?: SpanKind;
30
- startTime?: TimeInput;
14
+ attributes: unknown;
15
+ name: string;
16
+ onEnd: OnSpanEnd;
17
+ resource: Resource;
18
+ spanContext: SpanContext$1;
19
+ parentSpanContext?: SpanContext$1;
20
+ links?: Link[];
21
+ parentSpanId?: string;
22
+ spanKind?: SpanKind;
23
+ startTime?: TimeInput;
31
24
  }
32
25
  /**
33
26
  * Lightweight Span implementation for edge runtimes
34
27
  */
35
- declare class SpanImpl implements Span, ReadableSpan {
36
- name: string;
37
- private readonly _spanContext;
38
- private readonly onEnd;
39
- readonly parentSpanId?: string;
40
- readonly parentSpanContext?: SpanContext | undefined;
41
- readonly kind: SpanKind;
42
- readonly attributes: Attributes;
43
- status: SpanStatus;
44
- endTime: HrTime;
45
- private _duration;
46
- readonly startTime: HrTime;
47
- readonly events: TimedEvent[];
48
- readonly links: Link[];
49
- readonly resource: Resource;
50
- instrumentationScope: InstrumentationScope;
51
- private _ended;
52
- private _droppedAttributesCount;
53
- private _droppedEventsCount;
54
- private _droppedLinksCount;
55
- constructor(init: SpanInit);
56
- addLink(link: Link): this;
57
- addLinks(links: Link[]): this;
58
- spanContext(): SpanContext;
59
- setAttribute(key: string, value?: AttributeValue): this;
60
- setAttributes(attributes: Attributes): this;
61
- addEvent(name: string, attributesOrStartTime?: Attributes | TimeInput, startTime?: TimeInput): this;
62
- setStatus(status: SpanStatus): this;
63
- updateName(name: string): this;
64
- end(endTime?: TimeInput): void;
65
- isRecording(): boolean;
66
- recordException(exception: Exception, time?: TimeInput): void;
67
- get duration(): HrTime;
68
- get ended(): boolean;
69
- get droppedAttributesCount(): number;
70
- get droppedEventsCount(): number;
71
- get droppedLinksCount(): number;
28
+ declare class SpanImpl implements Span$1, ReadableSpan$1 {
29
+ name: string;
30
+ private readonly _spanContext;
31
+ private readonly onEnd;
32
+ readonly parentSpanId?: string;
33
+ readonly parentSpanContext?: SpanContext$1 | undefined;
34
+ readonly kind: SpanKind;
35
+ readonly attributes: Attributes;
36
+ status: SpanStatus;
37
+ endTime: HrTime;
38
+ private _duration;
39
+ readonly startTime: HrTime;
40
+ readonly events: TimedEvent[];
41
+ readonly links: Link[];
42
+ readonly resource: Resource;
43
+ instrumentationScope: InstrumentationScope;
44
+ private _ended;
45
+ private _droppedAttributesCount;
46
+ private _droppedEventsCount;
47
+ private _droppedLinksCount;
48
+ constructor(init: SpanInit);
49
+ addLink(link: Link): this;
50
+ addLinks(links: Link[]): this;
51
+ spanContext(): SpanContext$1;
52
+ setAttribute(key: string, value?: AttributeValue): this;
53
+ setAttributes(attributes: Attributes): this;
54
+ addEvent(name: string, attributesOrStartTime?: Attributes | TimeInput, startTime?: TimeInput): this;
55
+ setStatus(status: SpanStatus): this;
56
+ updateName(name: string): this;
57
+ end(endTime?: TimeInput): void;
58
+ isRecording(): boolean;
59
+ recordException(exception: Exception, time?: TimeInput): void;
60
+ get duration(): HrTime;
61
+ get ended(): boolean;
62
+ get droppedAttributesCount(): number;
63
+ get droppedEventsCount(): number;
64
+ get droppedLinksCount(): number;
72
65
  }
73
-
74
- /**
75
- * Lightweight WorkerTracer for edge environments
76
- */
77
-
66
+ //#endregion
67
+ //#region src/core/tracer.d.ts
78
68
  /**
79
69
  * WorkerTracer - Lightweight tracer for edge environments
80
70
  */
81
- declare class WorkerTracer implements Tracer {
82
- private readonly spanProcessors;
83
- private readonly resource;
84
- private headSampler;
85
- constructor(spanProcessors: SpanProcessor[], resource: Resource);
86
- /**
87
- * Set the head sampler (called from config)
88
- */
89
- setHeadSampler(sampler: any): void;
90
- /**
91
- * Force flush spans for a specific trace
92
- */
93
- forceFlush(traceId?: string): Promise<void>;
94
- /**
95
- * Add extra resource attributes
96
- */
97
- addToResource(extra: Resource): void;
98
- /**
99
- * Start a new span
100
- */
101
- startSpan(name: string, options?: SpanOptions$1, context?: Context): Span;
102
- /**
103
- * Start an active span (with automatic context management)
104
- */
105
- startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, fn: F): ReturnType<F>;
106
- startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, options: SpanOptions$1, fn: F): ReturnType<F>;
107
- startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, options: SpanOptions$1, context: Context, fn: F): ReturnType<F>;
71
+ declare class WorkerTracer implements Tracer$1 {
72
+ private readonly spanProcessors;
73
+ private readonly resource;
74
+ private headSampler;
75
+ constructor(spanProcessors: SpanProcessor[], resource: Resource);
76
+ /**
77
+ * Set the head sampler (called from config)
78
+ */
79
+ setHeadSampler(sampler: any): void;
80
+ /**
81
+ * Force flush spans for a specific trace
82
+ */
83
+ forceFlush(traceId?: string): Promise<void>;
84
+ /**
85
+ * Add extra resource attributes
86
+ */
87
+ addToResource(extra: Resource): void;
88
+ /**
89
+ * Start a new span
90
+ */
91
+ startSpan(name: string, options?: SpanOptions, context?: Context$1): Span$1;
92
+ /**
93
+ * Start an active span (with automatic context management)
94
+ */
95
+ startActiveSpan<F extends (span: Span$1) => ReturnType<F>>(name: string, fn: F): ReturnType<F>;
96
+ startActiveSpan<F extends (span: Span$1) => ReturnType<F>>(name: string, options: SpanOptions, fn: F): ReturnType<F>;
97
+ startActiveSpan<F extends (span: Span$1) => ReturnType<F>>(name: string, options: SpanOptions, context: Context$1, fn: F): ReturnType<F>;
108
98
  }
109
99
  /**
110
100
  * Set attributes for the next span created
111
101
  */
112
102
  declare function withNextSpan(attrs: Attributes): void;
113
-
114
- /**
115
- * Lightweight OTLP exporter for edge environments
116
- * Ported and adapted from @microlabs/
117
- *
118
- * This exporter is much smaller than the standard @opentelemetry/exporter-trace-otlp-http
119
- * because it uses fetch() directly instead of Node.js http/https modules.
120
- */
121
-
103
+ //#endregion
104
+ //#region src/core/exporter.d.ts
122
105
  /**
123
106
  * Minimal OTLP exporter using fetch()
124
107
  */
125
108
  declare class OTLPExporter implements SpanExporter {
126
- private headers;
127
- private url;
128
- constructor(config: OTLPExporterConfig);
129
- export(items: any[], resultCallback: (result: ExportResult) => void): void;
130
- private _export;
131
- send(items: any[], onSuccess: () => void, onError: (error: OTLPExporterError) => void): void;
132
- shutdown(): Promise<void>;
109
+ private headers;
110
+ private url;
111
+ constructor(config: OTLPExporterConfig);
112
+ export(items: any[], resultCallback: (result: ExportResult) => void): void;
113
+ private _export;
114
+ send(items: any[], onSuccess: () => void, onError: (error: OTLPExporterError) => void): void;
115
+ shutdown(): Promise<void>;
133
116
  }
134
-
135
- /**
136
- * AsyncLocalStorage-based context manager for edge environments
137
- *
138
- * Copyright The OpenTelemetry Authors
139
- * Licensed under the Apache License, Version 2.0
140
- */
141
-
117
+ //#endregion
118
+ //#region src/core/context.d.ts
142
119
  declare abstract class AbstractAsyncHooksContextManager implements ContextManager {
143
- abstract active(): Context;
144
- abstract with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(context: Context, fn: F, thisArg?: ThisParameterType<F>, ...args: A): ReturnType<F>;
145
- abstract enable(): this;
146
- abstract disable(): this;
147
- /**
148
- * Binds a context to the target function or event emitter
149
- */
150
- bind<T>(context: Context, target: T): T;
151
- private _bindFunction;
152
- /**
153
- * By default, EventEmitter calls callbacks with their context, which we do
154
- * not want. Instead we bind a specific context to all callbacks.
155
- */
156
- private _bindEventEmitter;
157
- private _patchRemoveListener;
158
- private _patchRemoveAllListeners;
159
- private _patchAddListener;
160
- private _createPatchMap;
161
- private _getPatchMap;
162
- private readonly _kOtListeners;
163
- private _wrapped;
120
+ abstract active(): Context$1;
121
+ abstract with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(context: Context$1, fn: F, thisArg?: ThisParameterType<F>, ...args: A): ReturnType<F>;
122
+ abstract enable(): this;
123
+ abstract disable(): this;
124
+ /**
125
+ * Binds a context to the target function or event emitter
126
+ */
127
+ bind<T>(context: Context$1, target: T): T;
128
+ private _bindFunction;
129
+ /**
130
+ * By default, EventEmitter calls callbacks with their context, which we do
131
+ * not want. Instead we bind a specific context to all callbacks.
132
+ */
133
+ private _bindEventEmitter;
134
+ private _patchRemoveListener;
135
+ private _patchRemoveAllListeners;
136
+ private _patchAddListener;
137
+ private _createPatchMap;
138
+ private _getPatchMap;
139
+ private readonly _kOtListeners;
140
+ private _wrapped;
164
141
  }
165
142
  /**
166
143
  * AsyncLocalStorage-based context manager for edge runtimes
167
144
  */
168
145
  declare class AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager {
169
- private _asyncLocalStorage;
170
- constructor();
171
- active(): Context;
172
- with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(context: Context, fn: F, thisArg?: ThisParameterType<F>, ...args: A): ReturnType<F>;
173
- enable(): this;
174
- disable(): this;
146
+ private _asyncLocalStorage;
147
+ constructor();
148
+ active(): Context$1;
149
+ with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(context: Context$1, fn: F, thisArg?: ThisParameterType<F>, ...args: A): ReturnType<F>;
150
+ enable(): this;
151
+ disable(): this;
175
152
  }
176
-
177
- /**
178
- * Tracer provider for edge environments
179
- */
180
-
153
+ //#endregion
154
+ //#region src/core/provider.d.ts
181
155
  /**
182
156
  * WorkerTracerProvider - Registers tracer globally
183
157
  */
184
158
  declare class WorkerTracerProvider {
185
- private tracer;
186
- private contextManager;
187
- constructor(spanProcessors: SpanProcessor[], resource: Resource);
188
- /**
189
- * Get the tracer instance
190
- */
191
- getTracer(_name: string, _version?: string, _config?: TracerConfig): WorkerTracer;
192
- /**
193
- * Register this provider as the global tracer
194
- */
195
- register(): void;
159
+ private tracer;
160
+ private contextManager;
161
+ constructor(spanProcessors: SpanProcessor[], resource: Resource);
162
+ /**
163
+ * Get the tracer instance
164
+ */
165
+ getTracer(_name: string, _version?: string, _config?: TracerConfig): WorkerTracer;
166
+ /**
167
+ * Register this provider as the global tracer
168
+ */
169
+ register(): void;
196
170
  }
197
-
198
- /**
199
- * Configuration system for autotel-edge
200
- */
201
-
171
+ //#endregion
172
+ //#region src/core/config.d.ts
202
173
  /**
203
174
  * Type for config initialization function
204
175
  */
@@ -226,7 +197,7 @@ declare function getActiveConfig(): ResolvedEdgeConfig | null;
226
197
  * });
227
198
  * ```
228
199
  */
229
- declare function setConfig(config: ResolvedEdgeConfig): Context;
200
+ declare function setConfig(config: ResolvedEdgeConfig): Context$1;
230
201
  /**
231
202
  * Parse and validate configuration
232
203
  */
@@ -235,66 +206,8 @@ declare function parseConfig(config: EdgeConfig): ResolvedEdgeConfig;
235
206
  * Create a config initializer function
236
207
  */
237
208
  declare function createInitialiser(config: ConfigurationOption): Initialiser;
238
-
239
- /**
240
- * Functional API for autotel-edge
241
- *
242
- * Provides zero-boilerplate tracing helpers that mirror the Node.js runtime
243
- * implementation while staying optimized for edge environments.
244
- */
245
-
246
- type ExtractFunctionSignature<T> = T extends (ctx: TraceContext) => infer F ? F extends (...args: infer Args) => infer Return ? (...args: Args) => Return : never : never;
247
- type WrappedFunction<TArgs extends any[], TReturn> = (...args: TArgs) => TReturn | Promise<TReturn>;
248
- /**
249
- * trace function options
250
- */
251
- interface traceOptions<TArgs extends any[] = any[], TReturn = any> {
252
- name?: string;
253
- serviceName?: string;
254
- sampler?: Sampler;
255
- attributesFromArgs?: (args: TArgs) => Record<string, unknown>;
256
- attributesFromResult?: (result: TReturn) => Record<string, unknown>;
257
- attributes?: Record<string, unknown>;
258
- }
259
- declare function trace<TReturn = any>(fn: () => TReturn): () => TReturn;
260
- declare function trace<TArgs extends any[], TReturn = any>(fn: (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
261
- declare function trace<TReturn = any>(fnFactory: (ctx: TraceContext) => () => TReturn): () => TReturn;
262
- declare function trace<TReturn = any>(fn: (ctx: TraceContext) => TReturn): TReturn;
263
- declare function trace<TFactory extends (ctx: TraceContext) => (...args: any[]) => any>(fnFactory: TFactory): ExtractFunctionSignature<TFactory>;
264
- declare function trace<TArgs extends any[], TReturn = any>(fnFactory: (ctx: TraceContext) => (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
265
- declare function trace<TArgs extends any[] = any[], TReturn = any>(name: string, fn: (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
266
- declare function trace<TReturn = any>(name: string, fn: (ctx: TraceContext) => TReturn): TReturn;
267
- declare function trace<TArgs extends any[] = any[], TReturn = any>(name: string, fnFactory: (ctx: TraceContext) => (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
268
- declare function trace<TArgs extends any[] = any[], TReturn = any>(options: traceOptions<TArgs, TReturn>, fn: (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
269
- declare function trace<TReturn = any>(options: traceOptions<[], TReturn>, fn: (ctx: TraceContext) => TReturn): TReturn;
270
- declare function trace<TArgs extends any[] = any[], TReturn = any>(options: traceOptions<TArgs, TReturn>, fnFactory: (ctx: TraceContext) => (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
271
- declare function trace<TReturn = any>(fn: () => Promise<TReturn>): () => Promise<TReturn>;
272
- declare function trace<TArgs extends any[] = any[], TReturn = any>(fn: (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
273
- declare function trace<TReturn = any>(fn: (ctx: TraceContext) => Promise<TReturn>): Promise<TReturn>;
274
- declare function trace<TReturn = any>(fnFactory: (ctx: TraceContext) => () => Promise<TReturn>): () => Promise<TReturn>;
275
- declare function trace<TArgs extends any[] = any[], TReturn = any>(fnFactory: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
276
- declare function trace<TArgs extends any[] = any[], TReturn = any>(name: string, fn: (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
277
- declare function trace<TReturn = any>(name: string, fn: (ctx: TraceContext) => Promise<TReturn>): Promise<TReturn>;
278
- declare function trace<TArgs extends any[] = any[], TReturn = any>(name: string, fnFactory: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
279
- declare function trace<TArgs extends any[] = any[], TReturn = any>(options: traceOptions<TArgs, TReturn>, fn: (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
280
- declare function trace<TReturn = any>(options: traceOptions<[], TReturn>, fn: (ctx: TraceContext) => Promise<TReturn>): Promise<TReturn>;
281
- declare function trace<TArgs extends any[] = any[], TReturn = any>(options: traceOptions<TArgs, TReturn>, fnFactory: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>): (...args: TArgs) => Promise<TReturn>;
282
- declare function withTracing<TArgs extends any[] = any[], TReturn = any>(options: Omit<traceOptions<TArgs, TReturn>, 'name'>): (fnOrFactory: ((...args: TArgs) => TReturn | Promise<TReturn>) | ((ctx: TraceContext) => (...args: TArgs) => TReturn | Promise<TReturn>)) => WrappedFunction<TArgs, TReturn>;
283
- interface InstrumentOptions extends traceOptions {
284
- functions: Record<string, any>;
285
- overrides?: Record<string, Partial<traceOptions>>;
286
- skip?: (string | RegExp | ((key: string, fn: Function) => boolean))[];
287
- }
288
- declare function instrument<T extends Record<string, any>>(options: InstrumentOptions): T;
289
- interface SpanOptions {
290
- name: string;
291
- attributes?: Record<string, string | number | boolean>;
292
- }
293
- declare function span<T = unknown>(name: string, fn: (span: Span) => T): T;
294
- declare function span<T = unknown>(name: string, fn: (span: Span) => Promise<T>): Promise<T>;
295
- declare function span<T = unknown>(options: SpanOptions, fn: (span: Span) => T): T;
296
- declare function span<T = unknown>(options: SpanOptions, fn: (span: Span) => Promise<T>): Promise<T>;
297
-
209
+ //#endregion
210
+ //#region src/composition.d.ts
298
211
  /**
299
212
  * Identity helper for authoring an autotel configuration once with full
300
213
  * type-checking. Mirrors `defineConfig` patterns in tools like Vite / Vitest.
@@ -317,7 +230,7 @@ declare function defineConfig<T extends EdgeConfig | ResolveConfigFn>(config: T)
317
230
  * extensibility point for in-process side effects.
318
231
  */
319
232
  declare function composeSubscribers(subscribers: Array<EdgeSubscriber>, options?: {
320
- name?: string;
233
+ name?: string;
321
234
  }): EdgeSubscriber;
322
235
  /**
323
236
  * Chain post-processors so each one sees the output of the previous one.
@@ -334,72 +247,75 @@ declare function composePostProcessors(processors: Array<PostProcessorFn>): Post
334
247
  * single processor that knows about all three.
335
248
  */
336
249
  declare function composeSpanProcessors(processors: SpanProcessor[]): SpanProcessor;
337
-
250
+ //#endregion
251
+ //#region src/plugin-runner.d.ts
338
252
  type Awaitable$1<T> = T | Promise<T>;
339
253
  interface PluginHookContexts<TSetup = unknown, TEnrich = unknown, TDrain = unknown, TKeep = unknown, TRequestStart = unknown, TRequestFinish = unknown, TClientLog = unknown, TLogger = unknown> {
340
- setup: TSetup;
341
- enrich: TEnrich;
342
- drain: TDrain;
343
- keep: TKeep;
344
- requestStart: TRequestStart;
345
- requestFinish: TRequestFinish;
346
- clientLog: TClientLog;
347
- logger: TLogger;
254
+ setup: TSetup;
255
+ enrich: TEnrich;
256
+ drain: TDrain;
257
+ keep: TKeep;
258
+ requestStart: TRequestStart;
259
+ requestFinish: TRequestFinish;
260
+ clientLog: TClientLog;
261
+ logger: TLogger;
348
262
  }
349
263
  type DefaultPluginContexts = PluginHookContexts;
350
264
  interface EdgePlugin<Ctx extends PluginHookContexts = DefaultPluginContexts> {
351
- name: string;
352
- setup?: (ctx: Ctx['setup']) => Awaitable$1<void>;
353
- enrich?: (ctx: Ctx['enrich']) => Awaitable$1<void>;
354
- drain?: (ctx: Ctx['drain']) => Awaitable$1<void>;
355
- keep?: (ctx: Ctx['keep']) => Awaitable$1<void>;
356
- onRequestStart?: (ctx: Ctx['requestStart']) => void;
357
- onRequestFinish?: (ctx: Ctx['requestFinish']) => void;
358
- onClientLog?: (ctx: Ctx['clientLog']) => void;
359
- extendLogger?: (logger: Ctx['logger']) => void;
265
+ name: string;
266
+ setup?: (ctx: Ctx['setup']) => Awaitable$1<void>;
267
+ enrich?: (ctx: Ctx['enrich']) => Awaitable$1<void>;
268
+ drain?: (ctx: Ctx['drain']) => Awaitable$1<void>;
269
+ keep?: (ctx: Ctx['keep']) => Awaitable$1<void>;
270
+ onRequestStart?: (ctx: Ctx['requestStart']) => void;
271
+ onRequestFinish?: (ctx: Ctx['requestFinish']) => void;
272
+ onClientLog?: (ctx: Ctx['clientLog']) => void;
273
+ extendLogger?: (logger: Ctx['logger']) => void;
360
274
  }
361
275
  interface PluginRunner<Ctx extends PluginHookContexts = DefaultPluginContexts> {
362
- readonly plugins: readonly EdgePlugin<Ctx>[];
363
- readonly hasEnrich: boolean;
364
- readonly hasDrain: boolean;
365
- readonly hasKeep: boolean;
366
- readonly hasRequestLifecycle: boolean;
367
- readonly hasClientLog: boolean;
368
- readonly hasExtendLogger: boolean;
369
- applyExtendLogger: (logger: Ctx['logger']) => void;
370
- runOnRequestStart: (ctx: Ctx['requestStart']) => void;
371
- runOnRequestFinish: (ctx: Ctx['requestFinish']) => void;
372
- runOnClientLog: (ctx: Ctx['clientLog']) => void;
373
- runSetup: (ctx: Ctx['setup']) => Promise<void>;
374
- runEnrich: (ctx: Ctx['enrich']) => Promise<void>;
375
- runDrain: (ctx: Ctx['drain']) => Promise<void>;
376
- runKeep: (ctx: Ctx['keep']) => Promise<void>;
276
+ readonly plugins: readonly EdgePlugin<Ctx>[];
277
+ readonly hasEnrich: boolean;
278
+ readonly hasDrain: boolean;
279
+ readonly hasKeep: boolean;
280
+ readonly hasRequestLifecycle: boolean;
281
+ readonly hasClientLog: boolean;
282
+ readonly hasExtendLogger: boolean;
283
+ applyExtendLogger: (logger: Ctx['logger']) => void;
284
+ runOnRequestStart: (ctx: Ctx['requestStart']) => void;
285
+ runOnRequestFinish: (ctx: Ctx['requestFinish']) => void;
286
+ runOnClientLog: (ctx: Ctx['clientLog']) => void;
287
+ runSetup: (ctx: Ctx['setup']) => Promise<void>;
288
+ runEnrich: (ctx: Ctx['enrich']) => Promise<void>;
289
+ runDrain: (ctx: Ctx['drain']) => Promise<void>;
290
+ runKeep: (ctx: Ctx['keep']) => Promise<void>;
377
291
  }
378
292
  interface PluginRunnerOptions {
379
- logger?: Pick<Console, 'error'>;
293
+ logger?: Pick<Console, 'error'>;
380
294
  }
381
295
  declare function definePlugin<Ctx extends PluginHookContexts = DefaultPluginContexts>(plugin: EdgePlugin<Ctx>): EdgePlugin<Ctx>;
382
296
  declare function createPluginRunner<Ctx extends PluginHookContexts = DefaultPluginContexts>(plugins?: EdgePlugin<Ctx>[], options?: PluginRunnerOptions): PluginRunner<Ctx>;
383
297
  declare function getEmptyPluginRunner(): PluginRunner;
384
-
298
+ //#endregion
299
+ //#region src/middleware-toolkit.d.ts
385
300
  type Awaitable<T> = T | Promise<T>;
386
301
  declare function matchesRoutePattern(path: string, pattern: string): boolean;
387
302
  interface RouteFilterOptions {
388
- include?: string[];
389
- exclude?: string[];
303
+ include?: string[];
304
+ exclude?: string[];
390
305
  }
391
306
  declare function shouldInstrumentPath(path: string, options?: RouteFilterOptions): boolean;
392
307
  declare function getServiceForPath(path: string, routes?: Record<string, RouteServiceConfig>): string | undefined;
393
308
  interface MiddlewareFinishContext<TEvent, TRequest = unknown> {
394
- event: TEvent;
395
- request: TRequest;
396
- status?: number;
309
+ event: TEvent;
310
+ request: TRequest;
311
+ status?: number;
397
312
  }
398
313
  interface MiddlewarePipelineOptions<TEvent, TRequest = unknown> {
399
- enrichers?: Array<(ctx: MiddlewareFinishContext<TEvent, TRequest>) => Awaitable<void>>;
400
- drains?: Array<(ctx: MiddlewareFinishContext<TEvent, TRequest>) => Awaitable<void>>;
401
- logger?: Pick<Console, 'error'>;
314
+ enrichers?: Array<(ctx: MiddlewareFinishContext<TEvent, TRequest>) => Awaitable<void>>;
315
+ drains?: Array<(ctx: MiddlewareFinishContext<TEvent, TRequest>) => Awaitable<void>>;
316
+ logger?: Pick<Console, 'error'>;
402
317
  }
403
318
  declare function runMiddlewareFinishPipeline<TEvent, TRequest = unknown>(ctx: MiddlewareFinishContext<TEvent, TRequest>, options?: MiddlewarePipelineOptions<TEvent, TRequest>): Promise<void>;
404
-
405
- export { AsyncLocalStorageContextManager, ConfigurationOption, type DefaultPluginContexts, EdgeConfig, type EdgePlugin, EdgeSubscriber, type Initialiser, type InstrumentOptions, type MiddlewareFinishContext, type MiddlewarePipelineOptions, OTLPExporter, OTLPExporterConfig, type PluginHookContexts, type PluginRunner, type PluginRunnerOptions, PostProcessorFn, ResolveConfigFn, ResolvedEdgeConfig, type RouteFilterOptions, RouteServiceConfig, SpanImpl, TraceContext, Trigger, WorkerTracer, WorkerTracerProvider, composePostProcessors, composeSpanProcessors, composeSubscribers, createInitialiser, createPluginRunner, defineConfig, definePlugin, getActiveConfig, getEmptyPluginRunner, getServiceForPath, instrument as instrumentFunctions, matchesRoutePattern, parseConfig, runMiddlewareFinishPipeline, setConfig, shouldInstrumentPath, span, trace, type traceOptions, withNextSpan, withTracing };
319
+ //#endregion
320
+ export { AsyncLocalStorageContextManager, Buffer, type ConfigurationOption, type Context, type DOConstructorTrigger, type DataSafetyConfig, type DefaultPluginContexts, type EdgeConfig, type EdgePlugin, type EdgeSubscriber, type ExecutionLogSnapshot, type ExecutionLogger, type ExecutionLoggerOptions, type ExporterConfig, type ForkLifecycle, type ForkOptions, type HandlerInstrumentation, type InitialSpanInfo, type Initialiser, type InstrumentOptions, type InstrumentationOptions, type LocalTrace, type MiddlewareFinishContext, type MiddlewarePipelineOptions, OTLPExporter, type OTLPExporterConfig, type ParsedError, type PluginHookContexts, type PluginRunner, type PluginRunnerOptions, type PostProcessorFn, type ReadableSpan, type ResolveConfigFn, type ResolvedEdgeConfig, type RouteFilterOptions, type RouteServiceConfig, type SamplingConfig, type ServiceConfig, type Span, type SpanContext, SpanImpl, type TailSampleFn, type TraceContext, type TraceFlushableSpanProcessor, type Tracer, type Trigger, WorkerTracer, WorkerTracerProvider, type WorkflowTrigger, composePostProcessors, composeSpanProcessors, composeSubscribers, context, createInitialiser, createPluginRunner, defineConfig, definePlugin, getActiveConfig, getEmptyPluginRunner, getExecutionLogger, getServiceForPath, instrument as instrumentFunctions, matchesRoutePattern, parseConfig, parseError, propagation, runMiddlewareFinishPipeline, setConfig, shouldInstrumentPath, span, trace, type traceOptions, withNextSpan, withTracing };
321
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/span.ts","../src/core/tracer.ts","../src/core/exporter.ts","../src/core/context.ts","../src/core/provider.ts","../src/core/config.ts","../src/composition.ts","../src/plugin-runner.ts","../src/middleware-toolkit.ts"],"mappings":"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"}