autotel 2.1.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/LICENSE +21 -0
- package/README.md +1946 -0
- package/dist/chunk-2LNRY4QK.js +273 -0
- package/dist/chunk-2LNRY4QK.js.map +1 -0
- package/dist/chunk-3HENGDW2.js +587 -0
- package/dist/chunk-3HENGDW2.js.map +1 -0
- package/dist/chunk-4OAT42CA.cjs +73 -0
- package/dist/chunk-4OAT42CA.cjs.map +1 -0
- package/dist/chunk-5GWX5LFW.js +70 -0
- package/dist/chunk-5GWX5LFW.js.map +1 -0
- package/dist/chunk-5R2M36QB.js +195 -0
- package/dist/chunk-5R2M36QB.js.map +1 -0
- package/dist/chunk-5ZN622AO.js +73 -0
- package/dist/chunk-5ZN622AO.js.map +1 -0
- package/dist/chunk-77MSMAUQ.cjs +498 -0
- package/dist/chunk-77MSMAUQ.cjs.map +1 -0
- package/dist/chunk-ABPEQ6RK.cjs +596 -0
- package/dist/chunk-ABPEQ6RK.cjs.map +1 -0
- package/dist/chunk-BWYGJKRB.js +95 -0
- package/dist/chunk-BWYGJKRB.js.map +1 -0
- package/dist/chunk-BZHG5IZ4.js +73 -0
- package/dist/chunk-BZHG5IZ4.js.map +1 -0
- package/dist/chunk-G7VZBCD6.cjs +35 -0
- package/dist/chunk-G7VZBCD6.cjs.map +1 -0
- package/dist/chunk-GVLK7YUU.cjs +30 -0
- package/dist/chunk-GVLK7YUU.cjs.map +1 -0
- package/dist/chunk-HCCXC7XG.js +205 -0
- package/dist/chunk-HCCXC7XG.js.map +1 -0
- package/dist/chunk-HE6T6FIX.cjs +203 -0
- package/dist/chunk-HE6T6FIX.cjs.map +1 -0
- package/dist/chunk-KIXWPOCO.cjs +100 -0
- package/dist/chunk-KIXWPOCO.cjs.map +1 -0
- package/dist/chunk-KVGNW3FC.js +87 -0
- package/dist/chunk-KVGNW3FC.js.map +1 -0
- package/dist/chunk-LITNXTTT.js +3 -0
- package/dist/chunk-LITNXTTT.js.map +1 -0
- package/dist/chunk-M4ANN7RL.js +114 -0
- package/dist/chunk-M4ANN7RL.js.map +1 -0
- package/dist/chunk-NC52UBR2.cjs +32 -0
- package/dist/chunk-NC52UBR2.cjs.map +1 -0
- package/dist/chunk-NHCNRQD3.cjs +212 -0
- package/dist/chunk-NHCNRQD3.cjs.map +1 -0
- package/dist/chunk-NZ72VDNY.cjs +4 -0
- package/dist/chunk-NZ72VDNY.cjs.map +1 -0
- package/dist/chunk-P6JUDYNO.js +57 -0
- package/dist/chunk-P6JUDYNO.js.map +1 -0
- package/dist/chunk-RJYY7BWX.js +1349 -0
- package/dist/chunk-RJYY7BWX.js.map +1 -0
- package/dist/chunk-TRI4V5BF.cjs +126 -0
- package/dist/chunk-TRI4V5BF.cjs.map +1 -0
- package/dist/chunk-UL33I6IS.js +139 -0
- package/dist/chunk-UL33I6IS.js.map +1 -0
- package/dist/chunk-URRW6M2C.cjs +61 -0
- package/dist/chunk-URRW6M2C.cjs.map +1 -0
- package/dist/chunk-UY3UYPBZ.cjs +77 -0
- package/dist/chunk-UY3UYPBZ.cjs.map +1 -0
- package/dist/chunk-W3253FGB.cjs +277 -0
- package/dist/chunk-W3253FGB.cjs.map +1 -0
- package/dist/chunk-W7LHZVQF.js +26 -0
- package/dist/chunk-W7LHZVQF.js.map +1 -0
- package/dist/chunk-WBWNM6LB.cjs +1360 -0
- package/dist/chunk-WBWNM6LB.cjs.map +1 -0
- package/dist/chunk-WFJ7L2RV.js +494 -0
- package/dist/chunk-WFJ7L2RV.js.map +1 -0
- package/dist/chunk-X4RMFFMR.js +28 -0
- package/dist/chunk-X4RMFFMR.js.map +1 -0
- package/dist/chunk-Y4Y2S7BM.cjs +92 -0
- package/dist/chunk-Y4Y2S7BM.cjs.map +1 -0
- package/dist/chunk-YLPNXZFI.cjs +143 -0
- package/dist/chunk-YLPNXZFI.cjs.map +1 -0
- package/dist/chunk-YTXEZ4SD.cjs +77 -0
- package/dist/chunk-YTXEZ4SD.cjs.map +1 -0
- package/dist/chunk-Z6ZWNWWR.js +30 -0
- package/dist/chunk-Z6ZWNWWR.js.map +1 -0
- package/dist/config.cjs +26 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +75 -0
- package/dist/config.d.ts +75 -0
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -0
- package/dist/db.cjs +233 -0
- package/dist/db.cjs.map +1 -0
- package/dist/db.d.cts +123 -0
- package/dist/db.d.ts +123 -0
- package/dist/db.js +228 -0
- package/dist/db.js.map +1 -0
- package/dist/decorators.cjs +67 -0
- package/dist/decorators.cjs.map +1 -0
- package/dist/decorators.d.cts +91 -0
- package/dist/decorators.d.ts +91 -0
- package/dist/decorators.js +65 -0
- package/dist/decorators.js.map +1 -0
- package/dist/event-subscriber.cjs +6 -0
- package/dist/event-subscriber.cjs.map +1 -0
- package/dist/event-subscriber.d.cts +116 -0
- package/dist/event-subscriber.d.ts +116 -0
- package/dist/event-subscriber.js +3 -0
- package/dist/event-subscriber.js.map +1 -0
- package/dist/event-testing.cjs +21 -0
- package/dist/event-testing.cjs.map +1 -0
- package/dist/event-testing.d.cts +110 -0
- package/dist/event-testing.d.ts +110 -0
- package/dist/event-testing.js +4 -0
- package/dist/event-testing.js.map +1 -0
- package/dist/event.cjs +30 -0
- package/dist/event.cjs.map +1 -0
- package/dist/event.d.cts +282 -0
- package/dist/event.d.ts +282 -0
- package/dist/event.js +13 -0
- package/dist/event.js.map +1 -0
- package/dist/exporters.cjs +17 -0
- package/dist/exporters.cjs.map +1 -0
- package/dist/exporters.d.cts +1 -0
- package/dist/exporters.d.ts +1 -0
- package/dist/exporters.js +4 -0
- package/dist/exporters.js.map +1 -0
- package/dist/functional.cjs +46 -0
- package/dist/functional.cjs.map +1 -0
- package/dist/functional.d.cts +478 -0
- package/dist/functional.d.ts +478 -0
- package/dist/functional.js +13 -0
- package/dist/functional.js.map +1 -0
- package/dist/http.cjs +189 -0
- package/dist/http.cjs.map +1 -0
- package/dist/http.d.cts +169 -0
- package/dist/http.d.ts +169 -0
- package/dist/http.js +184 -0
- package/dist/http.js.map +1 -0
- package/dist/index.cjs +333 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +758 -0
- package/dist/index.d.ts +758 -0
- package/dist/index.js +143 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.cjs +182 -0
- package/dist/instrumentation.cjs.map +1 -0
- package/dist/instrumentation.d.cts +49 -0
- package/dist/instrumentation.d.ts +49 -0
- package/dist/instrumentation.js +179 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/logger.cjs +19 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +146 -0
- package/dist/logger.d.ts +146 -0
- package/dist/logger.js +6 -0
- package/dist/logger.js.map +1 -0
- package/dist/metric-helpers.cjs +31 -0
- package/dist/metric-helpers.cjs.map +1 -0
- package/dist/metric-helpers.d.cts +13 -0
- package/dist/metric-helpers.d.ts +13 -0
- package/dist/metric-helpers.js +6 -0
- package/dist/metric-helpers.js.map +1 -0
- package/dist/metric-testing.cjs +21 -0
- package/dist/metric-testing.cjs.map +1 -0
- package/dist/metric-testing.d.cts +110 -0
- package/dist/metric-testing.d.ts +110 -0
- package/dist/metric-testing.js +4 -0
- package/dist/metric-testing.js.map +1 -0
- package/dist/metric.cjs +26 -0
- package/dist/metric.cjs.map +1 -0
- package/dist/metric.d.cts +240 -0
- package/dist/metric.d.ts +240 -0
- package/dist/metric.js +9 -0
- package/dist/metric.js.map +1 -0
- package/dist/processors.cjs +17 -0
- package/dist/processors.cjs.map +1 -0
- package/dist/processors.d.cts +1 -0
- package/dist/processors.d.ts +1 -0
- package/dist/processors.js +4 -0
- package/dist/processors.js.map +1 -0
- package/dist/sampling.cjs +40 -0
- package/dist/sampling.cjs.map +1 -0
- package/dist/sampling.d.cts +260 -0
- package/dist/sampling.d.ts +260 -0
- package/dist/sampling.js +7 -0
- package/dist/sampling.js.map +1 -0
- package/dist/semantic-helpers.cjs +35 -0
- package/dist/semantic-helpers.cjs.map +1 -0
- package/dist/semantic-helpers.d.cts +442 -0
- package/dist/semantic-helpers.d.ts +442 -0
- package/dist/semantic-helpers.js +14 -0
- package/dist/semantic-helpers.js.map +1 -0
- package/dist/tail-sampling-processor.cjs +13 -0
- package/dist/tail-sampling-processor.cjs.map +1 -0
- package/dist/tail-sampling-processor.d.cts +27 -0
- package/dist/tail-sampling-processor.d.ts +27 -0
- package/dist/tail-sampling-processor.js +4 -0
- package/dist/tail-sampling-processor.js.map +1 -0
- package/dist/testing.cjs +286 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.cts +291 -0
- package/dist/testing.d.ts +291 -0
- package/dist/testing.js +263 -0
- package/dist/testing.js.map +1 -0
- package/dist/trace-context-DRZdUvVY.d.cts +181 -0
- package/dist/trace-context-DRZdUvVY.d.ts +181 -0
- package/dist/trace-helpers.cjs +54 -0
- package/dist/trace-helpers.cjs.map +1 -0
- package/dist/trace-helpers.d.cts +524 -0
- package/dist/trace-helpers.d.ts +524 -0
- package/dist/trace-helpers.js +5 -0
- package/dist/trace-helpers.js.map +1 -0
- package/dist/tracer-provider.cjs +21 -0
- package/dist/tracer-provider.cjs.map +1 -0
- package/dist/tracer-provider.d.cts +169 -0
- package/dist/tracer-provider.d.ts +169 -0
- package/dist/tracer-provider.js +4 -0
- package/dist/tracer-provider.js.map +1 -0
- package/package.json +280 -0
- package/src/baggage-span-processor.test.ts +202 -0
- package/src/baggage-span-processor.ts +98 -0
- package/src/circuit-breaker.test.ts +341 -0
- package/src/circuit-breaker.ts +184 -0
- package/src/config.test.ts +94 -0
- package/src/config.ts +169 -0
- package/src/db.test.ts +252 -0
- package/src/db.ts +447 -0
- package/src/decorators.test.ts +203 -0
- package/src/decorators.ts +188 -0
- package/src/env-config.test.ts +246 -0
- package/src/env-config.ts +158 -0
- package/src/event-queue.test.ts +222 -0
- package/src/event-queue.ts +203 -0
- package/src/event-subscriber.ts +136 -0
- package/src/event-testing.ts +197 -0
- package/src/event.test.ts +718 -0
- package/src/event.ts +556 -0
- package/src/exporters.ts +96 -0
- package/src/functional.test.ts +1059 -0
- package/src/functional.ts +2295 -0
- package/src/http.test.ts +487 -0
- package/src/http.ts +424 -0
- package/src/index.ts +158 -0
- package/src/init.customization.test.ts +210 -0
- package/src/init.integrations.test.ts +366 -0
- package/src/init.openllmetry.test.ts +282 -0
- package/src/init.protocol.test.ts +215 -0
- package/src/init.ts +1426 -0
- package/src/instrumentation.test.ts +108 -0
- package/src/instrumentation.ts +308 -0
- package/src/logger.test.ts +117 -0
- package/src/logger.ts +246 -0
- package/src/metric-helpers.ts +47 -0
- package/src/metric-testing.ts +197 -0
- package/src/metric.ts +434 -0
- package/src/metrics.test.ts +205 -0
- package/src/operation-context.ts +93 -0
- package/src/processors.ts +106 -0
- package/src/rate-limiter.test.ts +199 -0
- package/src/rate-limiter.ts +98 -0
- package/src/sampling.test.ts +513 -0
- package/src/sampling.ts +428 -0
- package/src/semantic-helpers.test.ts +311 -0
- package/src/semantic-helpers.ts +584 -0
- package/src/shutdown.test.ts +311 -0
- package/src/shutdown.ts +222 -0
- package/src/stub.integration.test.ts +361 -0
- package/src/tail-sampling-processor.test.ts +226 -0
- package/src/tail-sampling-processor.ts +51 -0
- package/src/testing.ts +670 -0
- package/src/trace-context.ts +470 -0
- package/src/trace-helpers.new.test.ts +278 -0
- package/src/trace-helpers.test.ts +242 -0
- package/src/trace-helpers.ts +690 -0
- package/src/tracer-provider.test.ts +183 -0
- package/src/tracer-provider.ts +266 -0
- package/src/track.test.ts +153 -0
- package/src/track.ts +120 -0
- package/src/validation.test.ts +306 -0
- package/src/validation.ts +239 -0
- package/src/variable-name-inference.test.ts +178 -0
- package/src/variable-name-inference.ts +242 -0
package/dist/event.d.cts
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { Logger } from './logger.cjs';
|
|
2
|
+
import { EventSubscriber, EventAttributes, FunnelStatus, OutcomeStatus } from './event-subscriber.cjs';
|
|
3
|
+
import { EventCollector } from './event-testing.cjs';
|
|
4
|
+
import 'pino';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Events API for product events platforms
|
|
8
|
+
*
|
|
9
|
+
* Track user behavior, business events, and critical actions.
|
|
10
|
+
* Sends to product events platforms (PostHog, Mixpanel, Amplitude) via subscribers.
|
|
11
|
+
* For business people who think in events/funnels.
|
|
12
|
+
*
|
|
13
|
+
* For OpenTelemetry metrics (Prometheus/Grafana), use the Metrics class instead.
|
|
14
|
+
*
|
|
15
|
+
* @example Recommended: Configure subscribers in init(), use track() function
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { init, track } from 'autotel';
|
|
18
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
19
|
+
*
|
|
20
|
+
* init({
|
|
21
|
+
* service: 'my-app',
|
|
22
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Track events - uses subscribers from init()
|
|
26
|
+
* track('application.submitted', { jobId: '123', userId: '456' });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Create Event instance (inherits subscribers from init)
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { Event } from 'autotel/event';
|
|
32
|
+
*
|
|
33
|
+
* // Uses subscribers configured in init()
|
|
34
|
+
* const event = new Event('job-application');
|
|
35
|
+
* event.trackEvent('application.submitted', { jobId: '123' });
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Override subscribers for specific Event instance
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { Event } from 'autotel/event';
|
|
41
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
42
|
+
*
|
|
43
|
+
* // Override: use different subscribers for this instance
|
|
44
|
+
* const event = new Event('job-application', {
|
|
45
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* event.trackEvent('application.submitted', { jobId: '123' });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Events class for tracking user behavior and product events
|
|
54
|
+
*
|
|
55
|
+
* Track critical indicators such as:
|
|
56
|
+
* - User events (signups, purchases, feature usage)
|
|
57
|
+
* - Conversion funnels (signup → activation → purchase)
|
|
58
|
+
* - Business outcomes (success/failure rates)
|
|
59
|
+
* - Product metrics (revenue, engagement, retention)
|
|
60
|
+
*
|
|
61
|
+
* All events are sent to events platforms via subscribers (PostHog, Mixpanel, etc.).
|
|
62
|
+
* For OpenTelemetry metrics, use the Metrics class instead.
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* Events options
|
|
66
|
+
*/
|
|
67
|
+
interface EventsOptions {
|
|
68
|
+
/** Optional logger for audit trail */
|
|
69
|
+
logger?: Logger;
|
|
70
|
+
/** Optional collector for testing (captures events in memory) */
|
|
71
|
+
collector?: EventCollector;
|
|
72
|
+
/**
|
|
73
|
+
* Optional subscribers to send events to other platforms
|
|
74
|
+
* (e.g., PostHog, Mixpanel, Amplitude)
|
|
75
|
+
*
|
|
76
|
+
* **Subscriber Resolution**:
|
|
77
|
+
* - If provided → uses these subscribers (instance override)
|
|
78
|
+
* - If not provided → falls back to subscribers from `init()` (global config)
|
|
79
|
+
* - If neither → no subscribers (events logged only)
|
|
80
|
+
*
|
|
81
|
+
* Install `autotel-subscribers` package for ready-made subscribers
|
|
82
|
+
*/
|
|
83
|
+
subscribers?: EventSubscriber[];
|
|
84
|
+
}
|
|
85
|
+
declare class Event {
|
|
86
|
+
private serviceName;
|
|
87
|
+
private logger?;
|
|
88
|
+
private collector?;
|
|
89
|
+
private subscribers;
|
|
90
|
+
private hasSubscribers;
|
|
91
|
+
private circuitBreakers;
|
|
92
|
+
/**
|
|
93
|
+
* Create a new Event instance
|
|
94
|
+
*
|
|
95
|
+
* **Note**: Most users should use `init()` + `track()` instead of creating Event instances directly.
|
|
96
|
+
*
|
|
97
|
+
* **Subscriber Resolution**:
|
|
98
|
+
* - If `subscribers` provided in options → uses those (instance override)
|
|
99
|
+
* - If `subscribers` not provided → falls back to subscribers from `init()` (global config)
|
|
100
|
+
* - If neither → no subscribers (events logged only)
|
|
101
|
+
*
|
|
102
|
+
* @param serviceName - Service name for identifying events
|
|
103
|
+
* @param options - Optional configuration (logger, collector, subscribers)
|
|
104
|
+
*
|
|
105
|
+
* @example Recommended: Use track() with init()
|
|
106
|
+
* ```typescript
|
|
107
|
+
* import { init, track } from 'autotel';
|
|
108
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
109
|
+
*
|
|
110
|
+
* init({
|
|
111
|
+
* service: 'checkout',
|
|
112
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* track('purchase.completed', { amount: 99.99 });
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @example Inherit subscribers from init()
|
|
119
|
+
* ```typescript
|
|
120
|
+
* // Uses subscribers configured in init()
|
|
121
|
+
* const event = new Event('checkout');
|
|
122
|
+
* event.trackEvent('purchase.completed', { amount: 99.99 });
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* @example Override subscribers for this instance
|
|
126
|
+
* ```typescript
|
|
127
|
+
* import { Event } from 'autotel/event';
|
|
128
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
129
|
+
*
|
|
130
|
+
* // Override: use different subscribers for this instance only
|
|
131
|
+
* const event = new Event('checkout', {
|
|
132
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
constructor(serviceName: string, options?: EventsOptions);
|
|
137
|
+
/**
|
|
138
|
+
* Automatically enrich attributes with all available telemetry context
|
|
139
|
+
*
|
|
140
|
+
* Auto-captures:
|
|
141
|
+
* - Resource attributes: service.version, deployment.environment
|
|
142
|
+
* - Trace context: traceId, spanId, correlationId
|
|
143
|
+
* - Operation context: operation.name
|
|
144
|
+
*/
|
|
145
|
+
private enrichWithTelemetryContext;
|
|
146
|
+
/**
|
|
147
|
+
* Track a business event
|
|
148
|
+
*
|
|
149
|
+
* Use this for tracking user actions, business events, product usage:
|
|
150
|
+
* - "user.signup"
|
|
151
|
+
* - "order.completed"
|
|
152
|
+
* - "feature.used"
|
|
153
|
+
*
|
|
154
|
+
* Events are sent to configured subscribers (PostHog, Mixpanel, etc.).
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* // Track user signup
|
|
159
|
+
* events.trackEvent('user.signup', {
|
|
160
|
+
* userId: '123',
|
|
161
|
+
* plan: 'pro'
|
|
162
|
+
* })
|
|
163
|
+
*
|
|
164
|
+
* // Track order
|
|
165
|
+
* events.trackEvent('order.completed', {
|
|
166
|
+
* orderId: 'ord_123',
|
|
167
|
+
* amount: 99.99
|
|
168
|
+
* })
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
trackEvent(eventName: string, attributes?: EventAttributes): void;
|
|
172
|
+
/**
|
|
173
|
+
* Notify all subscribers concurrently without blocking
|
|
174
|
+
* Uses circuit breakers to protect against failing subscribers
|
|
175
|
+
* Uses Promise.allSettled to prevent subscriber errors from affecting other subscribers
|
|
176
|
+
*/
|
|
177
|
+
private notifySubscribers;
|
|
178
|
+
/**
|
|
179
|
+
* Track conversion funnel steps
|
|
180
|
+
*
|
|
181
|
+
* Monitor where users drop off in multi-step processes.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* // Track signup funnel
|
|
186
|
+
* events.trackFunnelStep('signup', 'started', { userId: '123' })
|
|
187
|
+
* events.trackFunnelStep('signup', 'email_verified', { userId: '123' })
|
|
188
|
+
* events.trackFunnelStep('signup', 'completed', { userId: '123' })
|
|
189
|
+
*
|
|
190
|
+
* // Track checkout flow
|
|
191
|
+
* events.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })
|
|
192
|
+
* events.trackFunnelStep('checkout', 'payment_info', { cartValue: 99.99 })
|
|
193
|
+
* events.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
trackFunnelStep(funnelName: string, status: FunnelStatus, attributes?: EventAttributes): void;
|
|
197
|
+
/**
|
|
198
|
+
* Track outcomes (success/failure/partial)
|
|
199
|
+
*
|
|
200
|
+
* Monitor success rates of critical operations.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Track email delivery
|
|
205
|
+
* events.trackOutcome('email.delivery', 'success', {
|
|
206
|
+
* recipientType: 'user',
|
|
207
|
+
* emailType: 'welcome'
|
|
208
|
+
* })
|
|
209
|
+
*
|
|
210
|
+
* events.trackOutcome('email.delivery', 'failure', {
|
|
211
|
+
* recipientType: 'user',
|
|
212
|
+
* errorCode: 'invalid_email'
|
|
213
|
+
* })
|
|
214
|
+
*
|
|
215
|
+
* // Track payment processing
|
|
216
|
+
* events.trackOutcome('payment.process', 'success', { amount: 99.99 })
|
|
217
|
+
* events.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
trackOutcome(operationName: string, status: OutcomeStatus, attributes?: EventAttributes): void;
|
|
221
|
+
/**
|
|
222
|
+
* Track value metrics
|
|
223
|
+
*
|
|
224
|
+
* Record numerical values like revenue, transaction amounts,
|
|
225
|
+
* item counts, processing times, engagement scores, etc.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* // Track revenue
|
|
230
|
+
* events.trackValue('order.revenue', 149.99, {
|
|
231
|
+
* currency: 'USD',
|
|
232
|
+
* productCategory: 'electronics'
|
|
233
|
+
* })
|
|
234
|
+
*
|
|
235
|
+
* // Track items per cart
|
|
236
|
+
* events.trackValue('cart.item_count', 5, {
|
|
237
|
+
* userId: '123'
|
|
238
|
+
* })
|
|
239
|
+
*
|
|
240
|
+
* // Track processing time
|
|
241
|
+
* events.trackValue('api.response_time', 250, {
|
|
242
|
+
* unit: 'ms',
|
|
243
|
+
* endpoint: '/api/checkout'
|
|
244
|
+
* })
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
trackValue(metricName: string, value: number, attributes?: EventAttributes): void;
|
|
248
|
+
/**
|
|
249
|
+
* Flush all subscribers and wait for pending events
|
|
250
|
+
*
|
|
251
|
+
* Call this before shutdown to ensure all events are delivered.
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```typescript
|
|
255
|
+
* const event =new Event('app', { subscribers: [...] });
|
|
256
|
+
*
|
|
257
|
+
* // Before shutdown
|
|
258
|
+
* await events.flush();
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
flush(): Promise<void>;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get or create an Events instance for a service
|
|
265
|
+
*
|
|
266
|
+
* @param serviceName - Service name for identifying events
|
|
267
|
+
* @param logger - Optional logger
|
|
268
|
+
* @returns Events instance
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* const event =getEvents('job-application')
|
|
273
|
+
* events.trackEvent('application.submitted', { jobId: '123' })
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
declare function getEvents(serviceName: string, logger?: Logger): Event;
|
|
277
|
+
/**
|
|
278
|
+
* Reset all events instances (mainly for testing)
|
|
279
|
+
*/
|
|
280
|
+
declare function resetEvents(): void;
|
|
281
|
+
|
|
282
|
+
export { Event, EventAttributes, type EventsOptions, FunnelStatus, OutcomeStatus, getEvents, resetEvents };
|
package/dist/event.d.ts
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
import { EventSubscriber, EventAttributes, FunnelStatus, OutcomeStatus } from './event-subscriber.js';
|
|
3
|
+
import { EventCollector } from './event-testing.js';
|
|
4
|
+
import 'pino';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Events API for product events platforms
|
|
8
|
+
*
|
|
9
|
+
* Track user behavior, business events, and critical actions.
|
|
10
|
+
* Sends to product events platforms (PostHog, Mixpanel, Amplitude) via subscribers.
|
|
11
|
+
* For business people who think in events/funnels.
|
|
12
|
+
*
|
|
13
|
+
* For OpenTelemetry metrics (Prometheus/Grafana), use the Metrics class instead.
|
|
14
|
+
*
|
|
15
|
+
* @example Recommended: Configure subscribers in init(), use track() function
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { init, track } from 'autotel';
|
|
18
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
19
|
+
*
|
|
20
|
+
* init({
|
|
21
|
+
* service: 'my-app',
|
|
22
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Track events - uses subscribers from init()
|
|
26
|
+
* track('application.submitted', { jobId: '123', userId: '456' });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Create Event instance (inherits subscribers from init)
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { Event } from 'autotel/event';
|
|
32
|
+
*
|
|
33
|
+
* // Uses subscribers configured in init()
|
|
34
|
+
* const event = new Event('job-application');
|
|
35
|
+
* event.trackEvent('application.submitted', { jobId: '123' });
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Override subscribers for specific Event instance
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { Event } from 'autotel/event';
|
|
41
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
42
|
+
*
|
|
43
|
+
* // Override: use different subscribers for this instance
|
|
44
|
+
* const event = new Event('job-application', {
|
|
45
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* event.trackEvent('application.submitted', { jobId: '123' });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Events class for tracking user behavior and product events
|
|
54
|
+
*
|
|
55
|
+
* Track critical indicators such as:
|
|
56
|
+
* - User events (signups, purchases, feature usage)
|
|
57
|
+
* - Conversion funnels (signup → activation → purchase)
|
|
58
|
+
* - Business outcomes (success/failure rates)
|
|
59
|
+
* - Product metrics (revenue, engagement, retention)
|
|
60
|
+
*
|
|
61
|
+
* All events are sent to events platforms via subscribers (PostHog, Mixpanel, etc.).
|
|
62
|
+
* For OpenTelemetry metrics, use the Metrics class instead.
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* Events options
|
|
66
|
+
*/
|
|
67
|
+
interface EventsOptions {
|
|
68
|
+
/** Optional logger for audit trail */
|
|
69
|
+
logger?: Logger;
|
|
70
|
+
/** Optional collector for testing (captures events in memory) */
|
|
71
|
+
collector?: EventCollector;
|
|
72
|
+
/**
|
|
73
|
+
* Optional subscribers to send events to other platforms
|
|
74
|
+
* (e.g., PostHog, Mixpanel, Amplitude)
|
|
75
|
+
*
|
|
76
|
+
* **Subscriber Resolution**:
|
|
77
|
+
* - If provided → uses these subscribers (instance override)
|
|
78
|
+
* - If not provided → falls back to subscribers from `init()` (global config)
|
|
79
|
+
* - If neither → no subscribers (events logged only)
|
|
80
|
+
*
|
|
81
|
+
* Install `autotel-subscribers` package for ready-made subscribers
|
|
82
|
+
*/
|
|
83
|
+
subscribers?: EventSubscriber[];
|
|
84
|
+
}
|
|
85
|
+
declare class Event {
|
|
86
|
+
private serviceName;
|
|
87
|
+
private logger?;
|
|
88
|
+
private collector?;
|
|
89
|
+
private subscribers;
|
|
90
|
+
private hasSubscribers;
|
|
91
|
+
private circuitBreakers;
|
|
92
|
+
/**
|
|
93
|
+
* Create a new Event instance
|
|
94
|
+
*
|
|
95
|
+
* **Note**: Most users should use `init()` + `track()` instead of creating Event instances directly.
|
|
96
|
+
*
|
|
97
|
+
* **Subscriber Resolution**:
|
|
98
|
+
* - If `subscribers` provided in options → uses those (instance override)
|
|
99
|
+
* - If `subscribers` not provided → falls back to subscribers from `init()` (global config)
|
|
100
|
+
* - If neither → no subscribers (events logged only)
|
|
101
|
+
*
|
|
102
|
+
* @param serviceName - Service name for identifying events
|
|
103
|
+
* @param options - Optional configuration (logger, collector, subscribers)
|
|
104
|
+
*
|
|
105
|
+
* @example Recommended: Use track() with init()
|
|
106
|
+
* ```typescript
|
|
107
|
+
* import { init, track } from 'autotel';
|
|
108
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
109
|
+
*
|
|
110
|
+
* init({
|
|
111
|
+
* service: 'checkout',
|
|
112
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* track('purchase.completed', { amount: 99.99 });
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @example Inherit subscribers from init()
|
|
119
|
+
* ```typescript
|
|
120
|
+
* // Uses subscribers configured in init()
|
|
121
|
+
* const event = new Event('checkout');
|
|
122
|
+
* event.trackEvent('purchase.completed', { amount: 99.99 });
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* @example Override subscribers for this instance
|
|
126
|
+
* ```typescript
|
|
127
|
+
* import { Event } from 'autotel/event';
|
|
128
|
+
* import { PostHogSubscriber } from 'autotel-subscribers/posthog';
|
|
129
|
+
*
|
|
130
|
+
* // Override: use different subscribers for this instance only
|
|
131
|
+
* const event = new Event('checkout', {
|
|
132
|
+
* subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
constructor(serviceName: string, options?: EventsOptions);
|
|
137
|
+
/**
|
|
138
|
+
* Automatically enrich attributes with all available telemetry context
|
|
139
|
+
*
|
|
140
|
+
* Auto-captures:
|
|
141
|
+
* - Resource attributes: service.version, deployment.environment
|
|
142
|
+
* - Trace context: traceId, spanId, correlationId
|
|
143
|
+
* - Operation context: operation.name
|
|
144
|
+
*/
|
|
145
|
+
private enrichWithTelemetryContext;
|
|
146
|
+
/**
|
|
147
|
+
* Track a business event
|
|
148
|
+
*
|
|
149
|
+
* Use this for tracking user actions, business events, product usage:
|
|
150
|
+
* - "user.signup"
|
|
151
|
+
* - "order.completed"
|
|
152
|
+
* - "feature.used"
|
|
153
|
+
*
|
|
154
|
+
* Events are sent to configured subscribers (PostHog, Mixpanel, etc.).
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* // Track user signup
|
|
159
|
+
* events.trackEvent('user.signup', {
|
|
160
|
+
* userId: '123',
|
|
161
|
+
* plan: 'pro'
|
|
162
|
+
* })
|
|
163
|
+
*
|
|
164
|
+
* // Track order
|
|
165
|
+
* events.trackEvent('order.completed', {
|
|
166
|
+
* orderId: 'ord_123',
|
|
167
|
+
* amount: 99.99
|
|
168
|
+
* })
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
trackEvent(eventName: string, attributes?: EventAttributes): void;
|
|
172
|
+
/**
|
|
173
|
+
* Notify all subscribers concurrently without blocking
|
|
174
|
+
* Uses circuit breakers to protect against failing subscribers
|
|
175
|
+
* Uses Promise.allSettled to prevent subscriber errors from affecting other subscribers
|
|
176
|
+
*/
|
|
177
|
+
private notifySubscribers;
|
|
178
|
+
/**
|
|
179
|
+
* Track conversion funnel steps
|
|
180
|
+
*
|
|
181
|
+
* Monitor where users drop off in multi-step processes.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* // Track signup funnel
|
|
186
|
+
* events.trackFunnelStep('signup', 'started', { userId: '123' })
|
|
187
|
+
* events.trackFunnelStep('signup', 'email_verified', { userId: '123' })
|
|
188
|
+
* events.trackFunnelStep('signup', 'completed', { userId: '123' })
|
|
189
|
+
*
|
|
190
|
+
* // Track checkout flow
|
|
191
|
+
* events.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })
|
|
192
|
+
* events.trackFunnelStep('checkout', 'payment_info', { cartValue: 99.99 })
|
|
193
|
+
* events.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
trackFunnelStep(funnelName: string, status: FunnelStatus, attributes?: EventAttributes): void;
|
|
197
|
+
/**
|
|
198
|
+
* Track outcomes (success/failure/partial)
|
|
199
|
+
*
|
|
200
|
+
* Monitor success rates of critical operations.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Track email delivery
|
|
205
|
+
* events.trackOutcome('email.delivery', 'success', {
|
|
206
|
+
* recipientType: 'user',
|
|
207
|
+
* emailType: 'welcome'
|
|
208
|
+
* })
|
|
209
|
+
*
|
|
210
|
+
* events.trackOutcome('email.delivery', 'failure', {
|
|
211
|
+
* recipientType: 'user',
|
|
212
|
+
* errorCode: 'invalid_email'
|
|
213
|
+
* })
|
|
214
|
+
*
|
|
215
|
+
* // Track payment processing
|
|
216
|
+
* events.trackOutcome('payment.process', 'success', { amount: 99.99 })
|
|
217
|
+
* events.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
trackOutcome(operationName: string, status: OutcomeStatus, attributes?: EventAttributes): void;
|
|
221
|
+
/**
|
|
222
|
+
* Track value metrics
|
|
223
|
+
*
|
|
224
|
+
* Record numerical values like revenue, transaction amounts,
|
|
225
|
+
* item counts, processing times, engagement scores, etc.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* // Track revenue
|
|
230
|
+
* events.trackValue('order.revenue', 149.99, {
|
|
231
|
+
* currency: 'USD',
|
|
232
|
+
* productCategory: 'electronics'
|
|
233
|
+
* })
|
|
234
|
+
*
|
|
235
|
+
* // Track items per cart
|
|
236
|
+
* events.trackValue('cart.item_count', 5, {
|
|
237
|
+
* userId: '123'
|
|
238
|
+
* })
|
|
239
|
+
*
|
|
240
|
+
* // Track processing time
|
|
241
|
+
* events.trackValue('api.response_time', 250, {
|
|
242
|
+
* unit: 'ms',
|
|
243
|
+
* endpoint: '/api/checkout'
|
|
244
|
+
* })
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
trackValue(metricName: string, value: number, attributes?: EventAttributes): void;
|
|
248
|
+
/**
|
|
249
|
+
* Flush all subscribers and wait for pending events
|
|
250
|
+
*
|
|
251
|
+
* Call this before shutdown to ensure all events are delivered.
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```typescript
|
|
255
|
+
* const event =new Event('app', { subscribers: [...] });
|
|
256
|
+
*
|
|
257
|
+
* // Before shutdown
|
|
258
|
+
* await events.flush();
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
flush(): Promise<void>;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get or create an Events instance for a service
|
|
265
|
+
*
|
|
266
|
+
* @param serviceName - Service name for identifying events
|
|
267
|
+
* @param logger - Optional logger
|
|
268
|
+
* @returns Events instance
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* const event =getEvents('job-application')
|
|
273
|
+
* events.trackEvent('application.submitted', { jobId: '123' })
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
declare function getEvents(serviceName: string, logger?: Logger): Event;
|
|
277
|
+
/**
|
|
278
|
+
* Reset all events instances (mainly for testing)
|
|
279
|
+
*/
|
|
280
|
+
declare function resetEvents(): void;
|
|
281
|
+
|
|
282
|
+
export { Event, EventAttributes, type EventsOptions, FunnelStatus, OutcomeStatus, getEvents, resetEvents };
|
package/dist/event.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { Event, getEvents, resetEvents } from './chunk-WFJ7L2RV.js';
|
|
2
|
+
import './chunk-LITNXTTT.js';
|
|
3
|
+
import './chunk-BZHG5IZ4.js';
|
|
4
|
+
import './chunk-UL33I6IS.js';
|
|
5
|
+
import './chunk-3HENGDW2.js';
|
|
6
|
+
import './chunk-X4RMFFMR.js';
|
|
7
|
+
import './chunk-5R2M36QB.js';
|
|
8
|
+
import './chunk-5GWX5LFW.js';
|
|
9
|
+
import './chunk-KVGNW3FC.js';
|
|
10
|
+
import './chunk-P6JUDYNO.js';
|
|
11
|
+
import './chunk-Z6ZWNWWR.js';
|
|
12
|
+
//# sourceMappingURL=event.js.map
|
|
13
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"event.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./chunk-G7VZBCD6.cjs');
|
|
4
|
+
var sdkTraceBase = require('@opentelemetry/sdk-trace-base');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "ConsoleSpanExporter", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return sdkTraceBase.ConsoleSpanExporter; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "InMemorySpanExporter", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return sdkTraceBase.InMemorySpanExporter; }
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=exporters.cjs.map
|
|
17
|
+
//# sourceMappingURL=exporters.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"exporters.cjs","sourcesContent":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ConsoleSpanExporter, InMemorySpanExporter } from '@opentelemetry/sdk-trace-base';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ConsoleSpanExporter, InMemorySpanExporter } from '@opentelemetry/sdk-trace-base';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"exporters.js","sourcesContent":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkWBWNM6LB_cjs = require('./chunk-WBWNM6LB.cjs');
|
|
4
|
+
require('./chunk-TRI4V5BF.cjs');
|
|
5
|
+
require('./chunk-NHCNRQD3.cjs');
|
|
6
|
+
require('./chunk-YLPNXZFI.cjs');
|
|
7
|
+
require('./chunk-ABPEQ6RK.cjs');
|
|
8
|
+
require('./chunk-GVLK7YUU.cjs');
|
|
9
|
+
require('./chunk-HE6T6FIX.cjs');
|
|
10
|
+
require('./chunk-4OAT42CA.cjs');
|
|
11
|
+
require('./chunk-Y4Y2S7BM.cjs');
|
|
12
|
+
require('./chunk-URRW6M2C.cjs');
|
|
13
|
+
require('./chunk-G7VZBCD6.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, "ctx", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return chunkWBWNM6LB_cjs.ctx; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "instrument", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunkWBWNM6LB_cjs.instrument; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "span", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return chunkWBWNM6LB_cjs.span; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "trace", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return chunkWBWNM6LB_cjs.trace; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "withBaggage", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return chunkWBWNM6LB_cjs.withBaggage; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "withNewContext", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return chunkWBWNM6LB_cjs.withNewContext; }
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, "withTracing", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return chunkWBWNM6LB_cjs.withTracing; }
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=functional.cjs.map
|
|
46
|
+
//# sourceMappingURL=functional.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"functional.cjs"}
|