@cloudbase/agent-observability 1.0.1-alpha.9

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.
@@ -0,0 +1,1030 @@
1
+ import "./chunk-NFEGQTCC.mjs";
2
+
3
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js
4
+ var OTLPExporterBase = class {
5
+ _delegate;
6
+ constructor(delegate) {
7
+ this._delegate = delegate;
8
+ }
9
+ /**
10
+ * Export items.
11
+ * @param items
12
+ * @param resultCallback
13
+ */
14
+ export(items, resultCallback) {
15
+ this._delegate.export(items, resultCallback);
16
+ }
17
+ forceFlush() {
18
+ return this._delegate.forceFlush();
19
+ }
20
+ shutdown() {
21
+ return this._delegate.shutdown();
22
+ }
23
+ };
24
+
25
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/types.js
26
+ var OTLPExporterError = class extends Error {
27
+ code;
28
+ name = "OTLPExporterError";
29
+ data;
30
+ constructor(message, code, data) {
31
+ super(message);
32
+ this.data = data;
33
+ this.code = code;
34
+ }
35
+ };
36
+
37
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.js
38
+ function validateTimeoutMillis(timeoutMillis) {
39
+ if (Number.isFinite(timeoutMillis) && timeoutMillis > 0) {
40
+ return timeoutMillis;
41
+ }
42
+ throw new Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${timeoutMillis}')`);
43
+ }
44
+ function wrapStaticHeadersInFunction(headers) {
45
+ if (headers == null) {
46
+ return void 0;
47
+ }
48
+ return async () => headers;
49
+ }
50
+ function mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) {
51
+ return {
52
+ timeoutMillis: validateTimeoutMillis(userProvidedConfiguration.timeoutMillis ?? fallbackConfiguration.timeoutMillis ?? defaultConfiguration.timeoutMillis),
53
+ concurrencyLimit: userProvidedConfiguration.concurrencyLimit ?? fallbackConfiguration.concurrencyLimit ?? defaultConfiguration.concurrencyLimit,
54
+ compression: userProvidedConfiguration.compression ?? fallbackConfiguration.compression ?? defaultConfiguration.compression
55
+ };
56
+ }
57
+ function getSharedConfigurationDefaults() {
58
+ return {
59
+ timeoutMillis: 1e4,
60
+ concurrencyLimit: 30,
61
+ compression: "none"
62
+ };
63
+ }
64
+
65
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/bounded-queue-export-promise-handler.js
66
+ var BoundedQueueExportPromiseHandler = class {
67
+ _concurrencyLimit;
68
+ _sendingPromises = [];
69
+ /**
70
+ * @param concurrencyLimit maximum promises allowed in a queue at the same time.
71
+ */
72
+ constructor(concurrencyLimit) {
73
+ this._concurrencyLimit = concurrencyLimit;
74
+ }
75
+ pushPromise(promise) {
76
+ if (this.hasReachedLimit()) {
77
+ throw new Error("Concurrency Limit reached");
78
+ }
79
+ this._sendingPromises.push(promise);
80
+ const popPromise = () => {
81
+ const index = this._sendingPromises.indexOf(promise);
82
+ void this._sendingPromises.splice(index, 1);
83
+ };
84
+ promise.then(popPromise, popPromise);
85
+ }
86
+ hasReachedLimit() {
87
+ return this._sendingPromises.length >= this._concurrencyLimit;
88
+ }
89
+ async awaitAll() {
90
+ await Promise.all(this._sendingPromises);
91
+ }
92
+ };
93
+ function createBoundedQueueExportPromiseHandler(options) {
94
+ return new BoundedQueueExportPromiseHandler(options.concurrencyLimit);
95
+ }
96
+
97
+ // ../../node_modules/.pnpm/@opentelemetry+core@2.4.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/core/build/esm/baggage/constants.js
98
+ var BAGGAGE_KEY_PAIR_SEPARATOR = "=";
99
+ var BAGGAGE_PROPERTIES_SEPARATOR = ";";
100
+ var BAGGAGE_ITEMS_SEPARATOR = ",";
101
+
102
+ // ../../node_modules/.pnpm/@opentelemetry+core@2.4.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/core/build/esm/baggage/utils.js
103
+ import { baggageEntryMetadataFromString } from "@opentelemetry/api";
104
+ function parsePairKeyValue(entry) {
105
+ if (!entry)
106
+ return;
107
+ const metadataSeparatorIndex = entry.indexOf(BAGGAGE_PROPERTIES_SEPARATOR);
108
+ const keyPairPart = metadataSeparatorIndex === -1 ? entry : entry.substring(0, metadataSeparatorIndex);
109
+ const separatorIndex = keyPairPart.indexOf(BAGGAGE_KEY_PAIR_SEPARATOR);
110
+ if (separatorIndex <= 0)
111
+ return;
112
+ const rawKey = keyPairPart.substring(0, separatorIndex).trim();
113
+ const rawValue = keyPairPart.substring(separatorIndex + 1).trim();
114
+ if (!rawKey || !rawValue)
115
+ return;
116
+ let key;
117
+ let value;
118
+ try {
119
+ key = decodeURIComponent(rawKey);
120
+ value = decodeURIComponent(rawValue);
121
+ } catch {
122
+ return;
123
+ }
124
+ let metadata;
125
+ if (metadataSeparatorIndex !== -1 && metadataSeparatorIndex < entry.length - 1) {
126
+ const metadataString = entry.substring(metadataSeparatorIndex + 1);
127
+ metadata = baggageEntryMetadataFromString(metadataString);
128
+ }
129
+ return { key, value, metadata };
130
+ }
131
+ function parseKeyPairsIntoRecord(value) {
132
+ const result = {};
133
+ if (typeof value === "string" && value.length > 0) {
134
+ value.split(BAGGAGE_ITEMS_SEPARATOR).forEach((entry) => {
135
+ const keyPair = parsePairKeyValue(entry);
136
+ if (keyPair !== void 0 && keyPair.value.length > 0) {
137
+ result[keyPair.key] = keyPair.value;
138
+ }
139
+ });
140
+ }
141
+ return result;
142
+ }
143
+
144
+ // ../../node_modules/.pnpm/@opentelemetry+core@2.4.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/core/build/esm/platform/node/environment.js
145
+ import { diag } from "@opentelemetry/api";
146
+ import { inspect } from "util";
147
+ function getNumberFromEnv(key) {
148
+ const raw = process.env[key];
149
+ if (raw == null || raw.trim() === "") {
150
+ return void 0;
151
+ }
152
+ const value = Number(raw);
153
+ if (isNaN(value)) {
154
+ diag.warn(`Unknown value ${inspect(raw)} for ${key}, expected a number, using defaults`);
155
+ return void 0;
156
+ }
157
+ return value;
158
+ }
159
+ function getStringFromEnv(key) {
160
+ const raw = process.env[key];
161
+ if (raw == null || raw.trim() === "") {
162
+ return void 0;
163
+ }
164
+ return raw;
165
+ }
166
+
167
+ // ../../node_modules/.pnpm/@opentelemetry+core@2.4.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/core/build/esm/common/time.js
168
+ var NANOSECOND_DIGITS = 9;
169
+ var NANOSECOND_DIGITS_IN_MILLIS = 6;
170
+ var MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);
171
+ var SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);
172
+ function hrTimeToNanoseconds(time) {
173
+ return time[0] * SECOND_TO_NANOSECONDS + time[1];
174
+ }
175
+
176
+ // ../../node_modules/.pnpm/@opentelemetry+core@2.4.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/core/build/esm/ExportResult.js
177
+ var ExportResultCode;
178
+ (function(ExportResultCode2) {
179
+ ExportResultCode2[ExportResultCode2["SUCCESS"] = 0] = "SUCCESS";
180
+ ExportResultCode2[ExportResultCode2["FAILED"] = 1] = "FAILED";
181
+ })(ExportResultCode || (ExportResultCode = {}));
182
+
183
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/logging-response-handler.js
184
+ import { diag as diag2 } from "@opentelemetry/api";
185
+ function isPartialSuccessResponse(response) {
186
+ return Object.prototype.hasOwnProperty.call(response, "partialSuccess");
187
+ }
188
+ function createLoggingPartialSuccessResponseHandler() {
189
+ return {
190
+ handleResponse(response) {
191
+ if (response == null || !isPartialSuccessResponse(response) || response.partialSuccess == null || Object.keys(response.partialSuccess).length === 0) {
192
+ return;
193
+ }
194
+ diag2.warn("Received Partial Success response:", JSON.stringify(response.partialSuccess));
195
+ }
196
+ };
197
+ }
198
+
199
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-export-delegate.js
200
+ import { diag as diag3 } from "@opentelemetry/api";
201
+ var OTLPExportDelegate = class {
202
+ _diagLogger;
203
+ _transport;
204
+ _serializer;
205
+ _responseHandler;
206
+ _promiseQueue;
207
+ _timeout;
208
+ constructor(transport, serializer, responseHandler, promiseQueue, timeout) {
209
+ this._transport = transport;
210
+ this._serializer = serializer;
211
+ this._responseHandler = responseHandler;
212
+ this._promiseQueue = promiseQueue;
213
+ this._timeout = timeout;
214
+ this._diagLogger = diag3.createComponentLogger({
215
+ namespace: "OTLPExportDelegate"
216
+ });
217
+ }
218
+ export(internalRepresentation, resultCallback) {
219
+ this._diagLogger.debug("items to be sent", internalRepresentation);
220
+ if (this._promiseQueue.hasReachedLimit()) {
221
+ resultCallback({
222
+ code: ExportResultCode.FAILED,
223
+ error: new Error("Concurrent export limit reached")
224
+ });
225
+ return;
226
+ }
227
+ const serializedRequest = this._serializer.serializeRequest(internalRepresentation);
228
+ if (serializedRequest == null) {
229
+ resultCallback({
230
+ code: ExportResultCode.FAILED,
231
+ error: new Error("Nothing to send")
232
+ });
233
+ return;
234
+ }
235
+ this._promiseQueue.pushPromise(this._transport.send(serializedRequest, this._timeout).then((response) => {
236
+ if (response.status === "success") {
237
+ if (response.data != null) {
238
+ try {
239
+ this._responseHandler.handleResponse(this._serializer.deserializeResponse(response.data));
240
+ } catch (e) {
241
+ this._diagLogger.warn("Export succeeded but could not deserialize response - is the response specification compliant?", e, response.data);
242
+ }
243
+ }
244
+ resultCallback({
245
+ code: ExportResultCode.SUCCESS
246
+ });
247
+ return;
248
+ } else if (response.status === "failure" && response.error) {
249
+ resultCallback({
250
+ code: ExportResultCode.FAILED,
251
+ error: response.error
252
+ });
253
+ return;
254
+ } else if (response.status === "retryable") {
255
+ resultCallback({
256
+ code: ExportResultCode.FAILED,
257
+ error: response.error ?? new OTLPExporterError("Export failed with retryable status")
258
+ });
259
+ } else {
260
+ resultCallback({
261
+ code: ExportResultCode.FAILED,
262
+ error: new OTLPExporterError("Export failed with unknown error")
263
+ });
264
+ }
265
+ }, (reason) => resultCallback({
266
+ code: ExportResultCode.FAILED,
267
+ error: reason
268
+ })));
269
+ }
270
+ forceFlush() {
271
+ return this._promiseQueue.awaitAll();
272
+ }
273
+ async shutdown() {
274
+ this._diagLogger.debug("shutdown started");
275
+ await this.forceFlush();
276
+ this._transport.shutdown();
277
+ }
278
+ };
279
+ function createOtlpExportDelegate(components, settings) {
280
+ return new OTLPExportDelegate(components.transport, components.serializer, createLoggingPartialSuccessResponseHandler(), components.promiseHandler, settings.timeout);
281
+ }
282
+
283
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-transformer/build/esm/common/hex-to-binary.js
284
+ function intValue(charCode) {
285
+ if (charCode >= 48 && charCode <= 57) {
286
+ return charCode - 48;
287
+ }
288
+ if (charCode >= 97 && charCode <= 102) {
289
+ return charCode - 87;
290
+ }
291
+ return charCode - 55;
292
+ }
293
+ function hexToBinary(hexStr) {
294
+ const buf = new Uint8Array(hexStr.length / 2);
295
+ let offset = 0;
296
+ for (let i = 0; i < hexStr.length; i += 2) {
297
+ const hi = intValue(hexStr.charCodeAt(i));
298
+ const lo = intValue(hexStr.charCodeAt(i + 1));
299
+ buf[offset++] = hi << 4 | lo;
300
+ }
301
+ return buf;
302
+ }
303
+
304
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-transformer/build/esm/common/utils.js
305
+ function hrTimeToNanos(hrTime2) {
306
+ const NANOSECONDS = BigInt(1e9);
307
+ return BigInt(Math.trunc(hrTime2[0])) * NANOSECONDS + BigInt(Math.trunc(hrTime2[1]));
308
+ }
309
+ function toLongBits(value) {
310
+ const low = Number(BigInt.asUintN(32, value));
311
+ const high = Number(BigInt.asUintN(32, value >> BigInt(32)));
312
+ return { low, high };
313
+ }
314
+ function encodeAsLongBits(hrTime2) {
315
+ const nanos = hrTimeToNanos(hrTime2);
316
+ return toLongBits(nanos);
317
+ }
318
+ function encodeAsString(hrTime2) {
319
+ const nanos = hrTimeToNanos(hrTime2);
320
+ return nanos.toString();
321
+ }
322
+ var encodeTimestamp = typeof BigInt !== "undefined" ? encodeAsString : hrTimeToNanoseconds;
323
+ function identity(value) {
324
+ return value;
325
+ }
326
+ function optionalHexToBinary(str) {
327
+ if (str === void 0)
328
+ return void 0;
329
+ return hexToBinary(str);
330
+ }
331
+ var DEFAULT_ENCODER = {
332
+ encodeHrTime: encodeAsLongBits,
333
+ encodeSpanContext: hexToBinary,
334
+ encodeOptionalSpanContext: optionalHexToBinary
335
+ };
336
+ function getOtlpEncoder(options) {
337
+ if (options === void 0) {
338
+ return DEFAULT_ENCODER;
339
+ }
340
+ const useLongBits = options.useLongBits ?? true;
341
+ const useHex = options.useHex ?? false;
342
+ return {
343
+ encodeHrTime: useLongBits ? encodeAsLongBits : encodeTimestamp,
344
+ encodeSpanContext: useHex ? identity : hexToBinary,
345
+ encodeOptionalSpanContext: useHex ? identity : optionalHexToBinary
346
+ };
347
+ }
348
+
349
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js
350
+ function createResource(resource) {
351
+ const result = {
352
+ attributes: toAttributes(resource.attributes),
353
+ droppedAttributesCount: 0
354
+ };
355
+ const schemaUrl = resource.schemaUrl;
356
+ if (schemaUrl && schemaUrl !== "")
357
+ result.schemaUrl = schemaUrl;
358
+ return result;
359
+ }
360
+ function createInstrumentationScope(scope) {
361
+ return {
362
+ name: scope.name,
363
+ version: scope.version
364
+ };
365
+ }
366
+ function toAttributes(attributes) {
367
+ return Object.keys(attributes).map((key) => toKeyValue(key, attributes[key]));
368
+ }
369
+ function toKeyValue(key, value) {
370
+ return {
371
+ key,
372
+ value: toAnyValue(value)
373
+ };
374
+ }
375
+ function toAnyValue(value) {
376
+ const t = typeof value;
377
+ if (t === "string")
378
+ return { stringValue: value };
379
+ if (t === "number") {
380
+ if (!Number.isInteger(value))
381
+ return { doubleValue: value };
382
+ return { intValue: value };
383
+ }
384
+ if (t === "boolean")
385
+ return { boolValue: value };
386
+ if (value instanceof Uint8Array)
387
+ return { bytesValue: value };
388
+ if (Array.isArray(value))
389
+ return { arrayValue: { values: value.map(toAnyValue) } };
390
+ if (t === "object" && value != null)
391
+ return {
392
+ kvlistValue: {
393
+ values: Object.entries(value).map(([k, v]) => toKeyValue(k, v))
394
+ }
395
+ };
396
+ return {};
397
+ }
398
+
399
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js
400
+ var SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK = 256;
401
+ var SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK = 512;
402
+ function buildSpanFlagsFrom(traceFlags, isRemote) {
403
+ let flags = traceFlags & 255 | SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK;
404
+ if (isRemote) {
405
+ flags |= SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK;
406
+ }
407
+ return flags;
408
+ }
409
+ function sdkSpanToOtlpSpan(span, encoder) {
410
+ const ctx = span.spanContext();
411
+ const status = span.status;
412
+ const parentSpanId = span.parentSpanContext?.spanId ? encoder.encodeSpanContext(span.parentSpanContext?.spanId) : void 0;
413
+ return {
414
+ traceId: encoder.encodeSpanContext(ctx.traceId),
415
+ spanId: encoder.encodeSpanContext(ctx.spanId),
416
+ parentSpanId,
417
+ traceState: ctx.traceState?.serialize(),
418
+ name: span.name,
419
+ // Span kind is offset by 1 because the API does not define a value for unset
420
+ kind: span.kind == null ? 0 : span.kind + 1,
421
+ startTimeUnixNano: encoder.encodeHrTime(span.startTime),
422
+ endTimeUnixNano: encoder.encodeHrTime(span.endTime),
423
+ attributes: toAttributes(span.attributes),
424
+ droppedAttributesCount: span.droppedAttributesCount,
425
+ events: span.events.map((event) => toOtlpSpanEvent(event, encoder)),
426
+ droppedEventsCount: span.droppedEventsCount,
427
+ status: {
428
+ // API and proto enums share the same values
429
+ code: status.code,
430
+ message: status.message
431
+ },
432
+ links: span.links.map((link) => toOtlpLink(link, encoder)),
433
+ droppedLinksCount: span.droppedLinksCount,
434
+ flags: buildSpanFlagsFrom(ctx.traceFlags, span.parentSpanContext?.isRemote)
435
+ };
436
+ }
437
+ function toOtlpLink(link, encoder) {
438
+ return {
439
+ attributes: link.attributes ? toAttributes(link.attributes) : [],
440
+ spanId: encoder.encodeSpanContext(link.context.spanId),
441
+ traceId: encoder.encodeSpanContext(link.context.traceId),
442
+ traceState: link.context.traceState?.serialize(),
443
+ droppedAttributesCount: link.droppedAttributesCount || 0,
444
+ flags: buildSpanFlagsFrom(link.context.traceFlags, link.context.isRemote)
445
+ };
446
+ }
447
+ function toOtlpSpanEvent(timedEvent, encoder) {
448
+ return {
449
+ attributes: timedEvent.attributes ? toAttributes(timedEvent.attributes) : [],
450
+ name: timedEvent.name,
451
+ timeUnixNano: encoder.encodeHrTime(timedEvent.time),
452
+ droppedAttributesCount: timedEvent.droppedAttributesCount || 0
453
+ };
454
+ }
455
+ function createExportTraceServiceRequest(spans, options) {
456
+ const encoder = getOtlpEncoder(options);
457
+ return {
458
+ resourceSpans: spanRecordsToResourceSpans(spans, encoder)
459
+ };
460
+ }
461
+ function createResourceMap(readableSpans) {
462
+ const resourceMap = /* @__PURE__ */ new Map();
463
+ for (const record of readableSpans) {
464
+ let ilsMap = resourceMap.get(record.resource);
465
+ if (!ilsMap) {
466
+ ilsMap = /* @__PURE__ */ new Map();
467
+ resourceMap.set(record.resource, ilsMap);
468
+ }
469
+ const instrumentationScopeKey = `${record.instrumentationScope.name}@${record.instrumentationScope.version || ""}:${record.instrumentationScope.schemaUrl || ""}`;
470
+ let records = ilsMap.get(instrumentationScopeKey);
471
+ if (!records) {
472
+ records = [];
473
+ ilsMap.set(instrumentationScopeKey, records);
474
+ }
475
+ records.push(record);
476
+ }
477
+ return resourceMap;
478
+ }
479
+ function spanRecordsToResourceSpans(readableSpans, encoder) {
480
+ const resourceMap = createResourceMap(readableSpans);
481
+ const out = [];
482
+ const entryIterator = resourceMap.entries();
483
+ let entry = entryIterator.next();
484
+ while (!entry.done) {
485
+ const [resource, ilmMap] = entry.value;
486
+ const scopeResourceSpans = [];
487
+ const ilmIterator = ilmMap.values();
488
+ let ilmEntry = ilmIterator.next();
489
+ while (!ilmEntry.done) {
490
+ const scopeSpans = ilmEntry.value;
491
+ if (scopeSpans.length > 0) {
492
+ const spans = scopeSpans.map((readableSpan) => sdkSpanToOtlpSpan(readableSpan, encoder));
493
+ scopeResourceSpans.push({
494
+ scope: createInstrumentationScope(scopeSpans[0].instrumentationScope),
495
+ spans,
496
+ schemaUrl: scopeSpans[0].instrumentationScope.schemaUrl
497
+ });
498
+ }
499
+ ilmEntry = ilmIterator.next();
500
+ }
501
+ const processedResource = createResource(resource);
502
+ const transformedSpans = {
503
+ resource: processedResource,
504
+ scopeSpans: scopeResourceSpans,
505
+ schemaUrl: processedResource.schemaUrl
506
+ };
507
+ out.push(transformedSpans);
508
+ entry = entryIterator.next();
509
+ }
510
+ return out;
511
+ }
512
+
513
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/json/trace.js
514
+ var JsonTraceSerializer = {
515
+ serializeRequest: (arg) => {
516
+ const request = createExportTraceServiceRequest(arg, {
517
+ useHex: true,
518
+ useLongBits: false
519
+ });
520
+ const encoder = new TextEncoder();
521
+ return encoder.encode(JSON.stringify(request));
522
+ },
523
+ deserializeResponse: (arg) => {
524
+ if (arg.length === 0) {
525
+ return {};
526
+ }
527
+ const decoder = new TextDecoder();
528
+ return JSON.parse(decoder.decode(arg));
529
+ }
530
+ };
531
+
532
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js
533
+ import { diag as diag4 } from "@opentelemetry/api";
534
+ function validateAndNormalizeHeaders(partialHeaders) {
535
+ const headers = {};
536
+ Object.entries(partialHeaders ?? {}).forEach(([key, value]) => {
537
+ if (typeof value !== "undefined") {
538
+ headers[key] = String(value);
539
+ } else {
540
+ diag4.warn(`Header "${key}" has invalid value (${value}) and will be ignored`);
541
+ }
542
+ });
543
+ return headers;
544
+ }
545
+
546
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.js
547
+ function mergeHeaders(userProvidedHeaders, fallbackHeaders, defaultHeaders) {
548
+ return async () => {
549
+ const requiredHeaders = {
550
+ ...await defaultHeaders()
551
+ };
552
+ const headers = {};
553
+ if (fallbackHeaders != null) {
554
+ Object.assign(headers, await fallbackHeaders());
555
+ }
556
+ if (userProvidedHeaders != null) {
557
+ Object.assign(headers, validateAndNormalizeHeaders(await userProvidedHeaders()));
558
+ }
559
+ return Object.assign(headers, requiredHeaders);
560
+ };
561
+ }
562
+ function validateUserProvidedUrl(url) {
563
+ if (url == null) {
564
+ return void 0;
565
+ }
566
+ try {
567
+ const base = globalThis.location?.href;
568
+ return new URL(url, base).href;
569
+ } catch {
570
+ throw new Error(`Configuration: Could not parse user-provided export URL: '${url}'`);
571
+ }
572
+ }
573
+ function mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) {
574
+ return {
575
+ ...mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration),
576
+ headers: mergeHeaders(userProvidedConfiguration.headers, fallbackConfiguration.headers, defaultConfiguration.headers),
577
+ url: validateUserProvidedUrl(userProvidedConfiguration.url) ?? fallbackConfiguration.url ?? defaultConfiguration.url
578
+ };
579
+ }
580
+ function getHttpConfigurationDefaults(requiredHeaders, signalResourcePath) {
581
+ return {
582
+ ...getSharedConfigurationDefaults(),
583
+ headers: async () => requiredHeaders,
584
+ url: "http://localhost:4318/" + signalResourcePath
585
+ };
586
+ }
587
+
588
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-node-http-configuration.js
589
+ function httpAgentFactoryFromOptions(options) {
590
+ return async (protocol) => {
591
+ const isInsecure = protocol === "http:";
592
+ const module = isInsecure ? import("http") : import("https");
593
+ const { Agent } = await module;
594
+ if (isInsecure) {
595
+ const { ca, cert, key, ...insecureOptions } = options;
596
+ return new Agent(insecureOptions);
597
+ }
598
+ return new Agent(options);
599
+ };
600
+ }
601
+ function mergeOtlpNodeHttpConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) {
602
+ return {
603
+ ...mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration),
604
+ agentFactory: userProvidedConfiguration.agentFactory ?? fallbackConfiguration.agentFactory ?? defaultConfiguration.agentFactory,
605
+ userAgent: userProvidedConfiguration.userAgent
606
+ };
607
+ }
608
+ function getNodeHttpConfigurationDefaults(requiredHeaders, signalResourcePath) {
609
+ return {
610
+ ...getHttpConfigurationDefaults(requiredHeaders, signalResourcePath),
611
+ agentFactory: httpAgentFactoryFromOptions({ keepAlive: true })
612
+ };
613
+ }
614
+
615
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js
616
+ import * as zlib from "zlib";
617
+ import { Readable } from "stream";
618
+
619
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.js
620
+ function isExportHTTPErrorRetryable(statusCode) {
621
+ return statusCode === 429 || statusCode === 502 || statusCode === 503 || statusCode === 504;
622
+ }
623
+ function parseRetryAfterToMills(retryAfter) {
624
+ if (retryAfter == null) {
625
+ return void 0;
626
+ }
627
+ const seconds = Number.parseInt(retryAfter, 10);
628
+ if (Number.isInteger(seconds)) {
629
+ return seconds > 0 ? seconds * 1e3 : -1;
630
+ }
631
+ const delay = new Date(retryAfter).getTime() - Date.now();
632
+ if (delay >= 0) {
633
+ return delay;
634
+ }
635
+ return 0;
636
+ }
637
+
638
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js
639
+ var VERSION = "0.210.0";
640
+
641
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js
642
+ var DEFAULT_USER_AGENT = `OTel-OTLP-Exporter-JavaScript/${VERSION}`;
643
+ function sendWithHttp(request, url, headers, compression, userAgent, agent, data, onDone, timeoutMillis) {
644
+ const parsedUrl = new URL(url);
645
+ if (userAgent) {
646
+ headers["User-Agent"] = `${userAgent} ${DEFAULT_USER_AGENT}`;
647
+ } else {
648
+ headers["User-Agent"] = DEFAULT_USER_AGENT;
649
+ }
650
+ const options = {
651
+ hostname: parsedUrl.hostname,
652
+ port: parsedUrl.port,
653
+ path: parsedUrl.pathname,
654
+ method: "POST",
655
+ headers,
656
+ agent
657
+ };
658
+ const req = request(options, (res) => {
659
+ const responseData = [];
660
+ res.on("data", (chunk) => responseData.push(chunk));
661
+ res.on("end", () => {
662
+ if (res.statusCode && res.statusCode < 299) {
663
+ onDone({
664
+ status: "success",
665
+ data: Buffer.concat(responseData)
666
+ });
667
+ } else if (res.statusCode && isExportHTTPErrorRetryable(res.statusCode)) {
668
+ onDone({
669
+ status: "retryable",
670
+ retryInMillis: parseRetryAfterToMills(res.headers["retry-after"])
671
+ });
672
+ } else {
673
+ const error = new OTLPExporterError(res.statusMessage, res.statusCode, Buffer.concat(responseData).toString());
674
+ onDone({
675
+ status: "failure",
676
+ error
677
+ });
678
+ }
679
+ });
680
+ });
681
+ req.setTimeout(timeoutMillis, () => {
682
+ req.destroy();
683
+ onDone({
684
+ status: "retryable",
685
+ error: new Error("Request timed out")
686
+ });
687
+ });
688
+ req.on("error", (error) => {
689
+ if (isHttpTransportNetworkErrorRetryable(error)) {
690
+ onDone({
691
+ status: "retryable",
692
+ error
693
+ });
694
+ } else {
695
+ onDone({
696
+ status: "failure",
697
+ error
698
+ });
699
+ }
700
+ });
701
+ compressAndSend(req, compression, data, (error) => {
702
+ onDone({
703
+ status: "failure",
704
+ error
705
+ });
706
+ });
707
+ }
708
+ function compressAndSend(req, compression, data, onError) {
709
+ let dataStream = readableFromUint8Array(data);
710
+ if (compression === "gzip") {
711
+ req.setHeader("Content-Encoding", "gzip");
712
+ dataStream = dataStream.on("error", onError).pipe(zlib.createGzip()).on("error", onError);
713
+ }
714
+ dataStream.pipe(req).on("error", onError);
715
+ }
716
+ function readableFromUint8Array(buff) {
717
+ const readable = new Readable();
718
+ readable.push(buff);
719
+ readable.push(null);
720
+ return readable;
721
+ }
722
+ function isHttpTransportNetworkErrorRetryable(error) {
723
+ const RETRYABLE_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
724
+ "ECONNRESET",
725
+ "ECONNREFUSED",
726
+ "EPIPE",
727
+ "ETIMEDOUT",
728
+ "EAI_AGAIN",
729
+ "ENOTFOUND",
730
+ "ENETUNREACH",
731
+ "EHOSTUNREACH"
732
+ ]);
733
+ if ("code" in error && typeof error.code === "string") {
734
+ return RETRYABLE_NETWORK_ERROR_CODES.has(error.code);
735
+ }
736
+ return false;
737
+ }
738
+
739
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-exporter-transport.js
740
+ var HttpExporterTransport = class {
741
+ _utils = null;
742
+ _parameters;
743
+ constructor(parameters) {
744
+ this._parameters = parameters;
745
+ }
746
+ async send(data, timeoutMillis) {
747
+ const { agent, request } = await this._loadUtils();
748
+ const headers = await this._parameters.headers();
749
+ return new Promise((resolve2) => {
750
+ sendWithHttp(request, this._parameters.url, headers, this._parameters.compression, this._parameters.userAgent, agent, data, (result) => {
751
+ resolve2(result);
752
+ }, timeoutMillis);
753
+ });
754
+ }
755
+ shutdown() {
756
+ }
757
+ async _loadUtils() {
758
+ let utils = this._utils;
759
+ if (utils === null) {
760
+ const protocol = new URL(this._parameters.url).protocol;
761
+ const [agent, request] = await Promise.all([
762
+ this._parameters.agentFactory(protocol),
763
+ requestFunctionFactory(protocol)
764
+ ]);
765
+ utils = this._utils = { agent, request };
766
+ }
767
+ return utils;
768
+ }
769
+ };
770
+ async function requestFunctionFactory(protocol) {
771
+ const module = protocol === "http:" ? import("http") : import("https");
772
+ const { request } = await module;
773
+ return request;
774
+ }
775
+ function createHttpExporterTransport(parameters) {
776
+ return new HttpExporterTransport(parameters);
777
+ }
778
+
779
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/retrying-transport.js
780
+ import { diag as diag5 } from "@opentelemetry/api";
781
+ var MAX_ATTEMPTS = 5;
782
+ var INITIAL_BACKOFF = 1e3;
783
+ var MAX_BACKOFF = 5e3;
784
+ var BACKOFF_MULTIPLIER = 1.5;
785
+ var JITTER = 0.2;
786
+ function getJitter() {
787
+ return Math.random() * (2 * JITTER) - JITTER;
788
+ }
789
+ var RetryingTransport = class {
790
+ _transport;
791
+ constructor(transport) {
792
+ this._transport = transport;
793
+ }
794
+ retry(data, timeoutMillis, inMillis) {
795
+ return new Promise((resolve2, reject) => {
796
+ setTimeout(() => {
797
+ this._transport.send(data, timeoutMillis).then(resolve2, reject);
798
+ }, inMillis);
799
+ });
800
+ }
801
+ async send(data, timeoutMillis) {
802
+ let attempts = MAX_ATTEMPTS;
803
+ let nextBackoff = INITIAL_BACKOFF;
804
+ const deadline = Date.now() + timeoutMillis;
805
+ let result = await this._transport.send(data, timeoutMillis);
806
+ while (result.status === "retryable" && attempts > 0) {
807
+ attempts--;
808
+ const backoff = Math.max(Math.min(nextBackoff * (1 + getJitter()), MAX_BACKOFF), 0);
809
+ nextBackoff = nextBackoff * BACKOFF_MULTIPLIER;
810
+ const retryInMillis = result.retryInMillis ?? backoff;
811
+ const remainingTimeoutMillis = deadline - Date.now();
812
+ if (retryInMillis > remainingTimeoutMillis) {
813
+ diag5.info(`Export retry time ${Math.round(retryInMillis)}ms exceeds remaining timeout ${Math.round(remainingTimeoutMillis)}ms, not retrying further.`);
814
+ return result;
815
+ }
816
+ diag5.verbose(`Scheduling export retry in ${Math.round(retryInMillis)}ms`);
817
+ result = await this.retry(data, remainingTimeoutMillis, retryInMillis);
818
+ }
819
+ if (result.status === "success") {
820
+ diag5.verbose(`Export succeded after ${MAX_ATTEMPTS - attempts} retry attempts.`);
821
+ } else if (result.status === "retryable") {
822
+ diag5.info(`Export failed after maximum retry attempts (${MAX_ATTEMPTS}).`);
823
+ } else {
824
+ diag5.info(`Export failed with non-retryable error: ${result.error}`);
825
+ }
826
+ return result;
827
+ }
828
+ shutdown() {
829
+ return this._transport.shutdown();
830
+ }
831
+ };
832
+ function createRetryingTransport(options) {
833
+ return new RetryingTransport(options.transport);
834
+ }
835
+
836
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-http-export-delegate.js
837
+ function createOtlpHttpExportDelegate(options, serializer) {
838
+ return createOtlpExportDelegate({
839
+ transport: createRetryingTransport({
840
+ transport: createHttpExporterTransport(options)
841
+ }),
842
+ serializer,
843
+ promiseHandler: createBoundedQueueExportPromiseHandler(options)
844
+ }, { timeout: options.timeoutMillis });
845
+ }
846
+
847
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-env-configuration.js
848
+ import { diag as diag6 } from "@opentelemetry/api";
849
+ function parseAndValidateTimeoutFromEnv(timeoutEnvVar) {
850
+ const envTimeout = getNumberFromEnv(timeoutEnvVar);
851
+ if (envTimeout != null) {
852
+ if (Number.isFinite(envTimeout) && envTimeout > 0) {
853
+ return envTimeout;
854
+ }
855
+ diag6.warn(`Configuration: ${timeoutEnvVar} is invalid, expected number greater than 0 (actual: ${envTimeout})`);
856
+ }
857
+ return void 0;
858
+ }
859
+ function getTimeoutFromEnv(signalIdentifier) {
860
+ const specificTimeout = parseAndValidateTimeoutFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_TIMEOUT`);
861
+ const nonSpecificTimeout = parseAndValidateTimeoutFromEnv("OTEL_EXPORTER_OTLP_TIMEOUT");
862
+ return specificTimeout ?? nonSpecificTimeout;
863
+ }
864
+ function parseAndValidateCompressionFromEnv(compressionEnvVar) {
865
+ const compression = getStringFromEnv(compressionEnvVar)?.trim();
866
+ if (compression == null || compression === "none" || compression === "gzip") {
867
+ return compression;
868
+ }
869
+ diag6.warn(`Configuration: ${compressionEnvVar} is invalid, expected 'none' or 'gzip' (actual: '${compression}')`);
870
+ return void 0;
871
+ }
872
+ function getCompressionFromEnv(signalIdentifier) {
873
+ const specificCompression = parseAndValidateCompressionFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_COMPRESSION`);
874
+ const nonSpecificCompression = parseAndValidateCompressionFromEnv("OTEL_EXPORTER_OTLP_COMPRESSION");
875
+ return specificCompression ?? nonSpecificCompression;
876
+ }
877
+ function getSharedConfigurationFromEnvironment(signalIdentifier) {
878
+ return {
879
+ timeoutMillis: getTimeoutFromEnv(signalIdentifier),
880
+ compression: getCompressionFromEnv(signalIdentifier)
881
+ };
882
+ }
883
+
884
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js
885
+ import { diag as diag8 } from "@opentelemetry/api";
886
+
887
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-node-http-env-configuration.js
888
+ import * as fs from "fs";
889
+ import * as path from "path";
890
+ import { diag as diag7 } from "@opentelemetry/api";
891
+ function getStaticHeadersFromEnv(signalIdentifier) {
892
+ const signalSpecificRawHeaders = getStringFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_HEADERS`);
893
+ const nonSignalSpecificRawHeaders = getStringFromEnv("OTEL_EXPORTER_OTLP_HEADERS");
894
+ const signalSpecificHeaders = parseKeyPairsIntoRecord(signalSpecificRawHeaders);
895
+ const nonSignalSpecificHeaders = parseKeyPairsIntoRecord(nonSignalSpecificRawHeaders);
896
+ if (Object.keys(signalSpecificHeaders).length === 0 && Object.keys(nonSignalSpecificHeaders).length === 0) {
897
+ return void 0;
898
+ }
899
+ return Object.assign({}, parseKeyPairsIntoRecord(nonSignalSpecificRawHeaders), parseKeyPairsIntoRecord(signalSpecificRawHeaders));
900
+ }
901
+ function appendRootPathToUrlIfNeeded(url) {
902
+ try {
903
+ const parsedUrl = new URL(url);
904
+ return parsedUrl.toString();
905
+ } catch {
906
+ diag7.warn(`Configuration: Could not parse environment-provided export URL: '${url}', falling back to undefined`);
907
+ return void 0;
908
+ }
909
+ }
910
+ function appendResourcePathToUrl(url, path2) {
911
+ try {
912
+ new URL(url);
913
+ } catch {
914
+ diag7.warn(`Configuration: Could not parse environment-provided export URL: '${url}', falling back to undefined`);
915
+ return void 0;
916
+ }
917
+ if (!url.endsWith("/")) {
918
+ url = url + "/";
919
+ }
920
+ url += path2;
921
+ try {
922
+ new URL(url);
923
+ } catch {
924
+ diag7.warn(`Configuration: Provided URL appended with '${path2}' is not a valid URL, using 'undefined' instead of '${url}'`);
925
+ return void 0;
926
+ }
927
+ return url;
928
+ }
929
+ function getNonSpecificUrlFromEnv(signalResourcePath) {
930
+ const envUrl = getStringFromEnv("OTEL_EXPORTER_OTLP_ENDPOINT");
931
+ if (envUrl === void 0) {
932
+ return void 0;
933
+ }
934
+ return appendResourcePathToUrl(envUrl, signalResourcePath);
935
+ }
936
+ function getSpecificUrlFromEnv(signalIdentifier) {
937
+ const envUrl = getStringFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_ENDPOINT`);
938
+ if (envUrl === void 0) {
939
+ return void 0;
940
+ }
941
+ return appendRootPathToUrlIfNeeded(envUrl);
942
+ }
943
+ function readFileFromEnv(signalSpecificEnvVar, nonSignalSpecificEnvVar, warningMessage) {
944
+ const signalSpecificPath = getStringFromEnv(signalSpecificEnvVar);
945
+ const nonSignalSpecificPath = getStringFromEnv(nonSignalSpecificEnvVar);
946
+ const filePath = signalSpecificPath ?? nonSignalSpecificPath;
947
+ if (filePath != null) {
948
+ try {
949
+ return fs.readFileSync(path.resolve(process.cwd(), filePath));
950
+ } catch {
951
+ diag7.warn(warningMessage);
952
+ return void 0;
953
+ }
954
+ } else {
955
+ return void 0;
956
+ }
957
+ }
958
+ function getClientCertificateFromEnv(signalIdentifier) {
959
+ return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_CERTIFICATE`, "OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE", "Failed to read client certificate chain file");
960
+ }
961
+ function getClientKeyFromEnv(signalIdentifier) {
962
+ return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_KEY`, "OTEL_EXPORTER_OTLP_CLIENT_KEY", "Failed to read client certificate private key file");
963
+ }
964
+ function getRootCertificateFromEnv(signalIdentifier) {
965
+ return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CERTIFICATE`, "OTEL_EXPORTER_OTLP_CERTIFICATE", "Failed to read root certificate file");
966
+ }
967
+ function getNodeHttpConfigurationFromEnvironment(signalIdentifier, signalResourcePath) {
968
+ return {
969
+ ...getSharedConfigurationFromEnvironment(signalIdentifier),
970
+ url: getSpecificUrlFromEnv(signalIdentifier) ?? getNonSpecificUrlFromEnv(signalResourcePath),
971
+ headers: wrapStaticHeadersInFunction(getStaticHeadersFromEnv(signalIdentifier)),
972
+ agentFactory: httpAgentFactoryFromOptions({
973
+ keepAlive: true,
974
+ ca: getRootCertificateFromEnv(signalIdentifier),
975
+ cert: getClientCertificateFromEnv(signalIdentifier),
976
+ key: getClientKeyFromEnv(signalIdentifier)
977
+ })
978
+ };
979
+ }
980
+
981
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.js
982
+ function convertLegacyHeaders(config) {
983
+ if (typeof config.headers === "function") {
984
+ return config.headers;
985
+ }
986
+ return wrapStaticHeadersInFunction(config.headers);
987
+ }
988
+
989
+ // ../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js
990
+ function convertLegacyAgentOptions(config) {
991
+ if (typeof config.httpAgentOptions === "function") {
992
+ return config.httpAgentOptions;
993
+ }
994
+ let legacy = config.httpAgentOptions;
995
+ if (config.keepAlive != null) {
996
+ legacy = { keepAlive: config.keepAlive, ...legacy };
997
+ }
998
+ if (legacy != null) {
999
+ return httpAgentFactoryFromOptions(legacy);
1000
+ } else {
1001
+ return void 0;
1002
+ }
1003
+ }
1004
+ function convertLegacyHttpOptions(config, signalIdentifier, signalResourcePath, requiredHeaders) {
1005
+ if (config.metadata) {
1006
+ diag8.warn("Metadata cannot be set when using http");
1007
+ }
1008
+ return mergeOtlpNodeHttpConfigurationWithDefaults({
1009
+ url: config.url,
1010
+ headers: convertLegacyHeaders(config),
1011
+ concurrencyLimit: config.concurrencyLimit,
1012
+ timeoutMillis: config.timeoutMillis,
1013
+ compression: config.compression,
1014
+ agentFactory: convertLegacyAgentOptions(config),
1015
+ userAgent: config.userAgent
1016
+ }, getNodeHttpConfigurationFromEnvironment(signalIdentifier, signalResourcePath), getNodeHttpConfigurationDefaults(requiredHeaders, signalResourcePath));
1017
+ }
1018
+
1019
+ // ../../node_modules/.pnpm/@opentelemetry+exporter-trace-otlp-http@0.210.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esm/platform/node/OTLPTraceExporter.js
1020
+ var OTLPTraceExporter = class extends OTLPExporterBase {
1021
+ constructor(config = {}) {
1022
+ super(createOtlpHttpExportDelegate(convertLegacyHttpOptions(config, "TRACES", "v1/traces", {
1023
+ "Content-Type": "application/json"
1024
+ }), JsonTraceSerializer));
1025
+ }
1026
+ };
1027
+ export {
1028
+ OTLPTraceExporter
1029
+ };
1030
+ //# sourceMappingURL=esm-PGEDANAI.mjs.map