dd-trace 5.96.0 → 5.97.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.
Files changed (114) hide show
  1. package/index.d.ts +34 -0
  2. package/package.json +9 -7
  3. package/packages/datadog-esbuild/index.js +20 -9
  4. package/packages/datadog-instrumentations/src/child_process.js +7 -17
  5. package/packages/datadog-instrumentations/src/crypto.js +1 -2
  6. package/packages/datadog-instrumentations/src/cucumber.js +4 -1
  7. package/packages/datadog-instrumentations/src/cypress-config.js +324 -0
  8. package/packages/datadog-instrumentations/src/cypress.js +86 -4
  9. package/packages/datadog-instrumentations/src/dns.js +1 -2
  10. package/packages/datadog-instrumentations/src/express.js +4 -4
  11. package/packages/datadog-instrumentations/src/fs.js +27 -29
  12. package/packages/datadog-instrumentations/src/graphql.js +1 -1
  13. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +41 -13
  14. package/packages/datadog-instrumentations/src/helpers/hook.js +31 -6
  15. package/packages/datadog-instrumentations/src/helpers/hooks.js +12 -19
  16. package/packages/datadog-instrumentations/src/helpers/instrument.js +27 -13
  17. package/packages/datadog-instrumentations/src/helpers/register.js +103 -142
  18. package/packages/datadog-instrumentations/src/http/client.js +2 -3
  19. package/packages/datadog-instrumentations/src/http/server.js +2 -5
  20. package/packages/datadog-instrumentations/src/http2/client.js +1 -3
  21. package/packages/datadog-instrumentations/src/http2/server.js +1 -3
  22. package/packages/datadog-instrumentations/src/jest.js +13 -4
  23. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  24. package/packages/datadog-instrumentations/src/mocha/utils.js +4 -1
  25. package/packages/datadog-instrumentations/src/net.js +2 -8
  26. package/packages/datadog-instrumentations/src/pino.js +1 -1
  27. package/packages/datadog-instrumentations/src/playwright.js +4 -1
  28. package/packages/datadog-instrumentations/src/prisma.js +1 -2
  29. package/packages/datadog-instrumentations/src/selenium.js +4 -1
  30. package/packages/datadog-instrumentations/src/sequelize.js +1 -1
  31. package/packages/datadog-instrumentations/src/url.js +1 -3
  32. package/packages/datadog-instrumentations/src/vitest.js +5 -1
  33. package/packages/datadog-instrumentations/src/vm.js +1 -3
  34. package/packages/datadog-plugin-aws-sdk/src/base.js +4 -3
  35. package/packages/datadog-plugin-cucumber/src/index.js +7 -3
  36. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +57 -5
  37. package/packages/datadog-plugin-graphql/src/resolve.js +1 -1
  38. package/packages/datadog-plugin-jest/src/index.js +4 -2
  39. package/packages/datadog-plugin-kafkajs/src/batch-consumer.js +31 -4
  40. package/packages/datadog-plugin-mocha/src/index.js +5 -2
  41. package/packages/datadog-plugin-next/src/index.js +2 -14
  42. package/packages/datadog-plugin-openai/src/services.js +1 -0
  43. package/packages/datadog-webpack/index.js +3 -3
  44. package/packages/dd-trace/index.js +12 -10
  45. package/packages/dd-trace/src/agent/url.js +2 -2
  46. package/packages/dd-trace/src/aiguard/sdk.js +4 -0
  47. package/packages/dd-trace/src/appsec/blocking.js +3 -0
  48. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +1 -1
  49. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +1 -1
  50. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +1 -1
  51. package/packages/dd-trace/src/appsec/remote_config.js +1 -0
  52. package/packages/dd-trace/src/appsec/sdk/index.js +4 -0
  53. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +6 -1
  54. package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +4 -0
  55. package/packages/dd-trace/src/config/defaults.js +316 -146
  56. package/packages/dd-trace/src/config/generated-config-types.d.ts +4 -1
  57. package/packages/dd-trace/src/config/helper.js +59 -10
  58. package/packages/dd-trace/src/config/index.js +569 -1505
  59. package/packages/dd-trace/src/config/parsers.js +256 -0
  60. package/packages/dd-trace/src/config/remote_config.js +59 -2
  61. package/packages/dd-trace/src/config/supported-configurations.json +350 -433
  62. package/packages/dd-trace/src/crashtracking/crashtracker.js +7 -1
  63. package/packages/dd-trace/src/crashtracking/index.js +1 -7
  64. package/packages/dd-trace/src/debugger/index.js +1 -1
  65. package/packages/dd-trace/src/dogstatsd.js +12 -9
  66. package/packages/dd-trace/src/encode/0.4.js +1 -1
  67. package/packages/dd-trace/src/exporters/agent/writer.js +7 -1
  68. package/packages/dd-trace/src/exporters/common/request.js +9 -0
  69. package/packages/dd-trace/src/exporters/common/writer.js +12 -2
  70. package/packages/dd-trace/src/heap_snapshots.js +3 -0
  71. package/packages/dd-trace/src/index.js +5 -2
  72. package/packages/dd-trace/src/lambda/runtime/ritm.js +6 -6
  73. package/packages/dd-trace/src/llmobs/index.js +4 -1
  74. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +5 -1
  75. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +60 -12
  76. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +4 -2
  77. package/packages/dd-trace/src/llmobs/sdk.js +12 -8
  78. package/packages/dd-trace/src/llmobs/span_processor.js +1 -1
  79. package/packages/dd-trace/src/llmobs/tagger.js +9 -6
  80. package/packages/dd-trace/src/llmobs/writers/base.js +2 -0
  81. package/packages/dd-trace/src/llmobs/writers/util.js +3 -0
  82. package/packages/dd-trace/src/log/index.js +26 -55
  83. package/packages/dd-trace/src/log/writer.js +7 -19
  84. package/packages/dd-trace/src/noop/proxy.js +8 -0
  85. package/packages/dd-trace/src/opentelemetry/logs/index.js +1 -1
  86. package/packages/dd-trace/src/opentelemetry/metrics/index.js +1 -1
  87. package/packages/dd-trace/src/opentracing/propagation/text_map.js +9 -4
  88. package/packages/dd-trace/src/payload-tagging/config/index.js +6 -5
  89. package/packages/dd-trace/src/plugin_manager.js +8 -6
  90. package/packages/dd-trace/src/plugins/ci_plugin.js +4 -0
  91. package/packages/dd-trace/src/plugins/plugin.js +7 -4
  92. package/packages/dd-trace/src/process-tags/index.js +3 -0
  93. package/packages/dd-trace/src/profiler.js +27 -2
  94. package/packages/dd-trace/src/profiling/config.js +73 -241
  95. package/packages/dd-trace/src/profiling/exporter_cli.js +1 -4
  96. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +6 -2
  97. package/packages/dd-trace/src/profiling/profiler.js +56 -44
  98. package/packages/dd-trace/src/profiling/profilers/events.js +2 -3
  99. package/packages/dd-trace/src/profiling/profilers/wall.js +89 -6
  100. package/packages/dd-trace/src/profiling/ssi-heuristics.js +4 -1
  101. package/packages/dd-trace/src/propagation-hash/index.js +2 -1
  102. package/packages/dd-trace/src/proxy.js +32 -3
  103. package/packages/dd-trace/src/remote_config/index.js +3 -0
  104. package/packages/dd-trace/src/require-package-json.js +8 -4
  105. package/packages/dd-trace/src/ritm.js +58 -26
  106. package/packages/dd-trace/src/runtime_metrics/index.js +3 -0
  107. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -0
  108. package/packages/dd-trace/src/sampler.js +1 -1
  109. package/packages/dd-trace/src/standalone/index.js +3 -0
  110. package/packages/dd-trace/src/telemetry/index.js +2 -3
  111. package/packages/dd-trace/src/telemetry/send-data.js +5 -19
  112. package/packages/dd-trace/src/telemetry/session-propagation.js +19 -44
  113. package/packages/dd-trace/src/telemetry/telemetry.js +28 -171
  114. package/packages/dd-trace/src/util.js +0 -9
@@ -18,15 +18,17 @@ const sessionPropagation = require('./session-propagation')
18
18
  * @typedef {Record<string, unknown>} TelemetryPayloadObject
19
19
  */
20
20
  /**
21
- * @typedef {string | number | boolean | null | undefined | URL | Record<string, unknown> | unknown[]} ConfigValue
21
+ * @typedef {string | number | boolean | null | URL | Record<string, unknown> | unknown[] | Function} ConfigValue
22
+ */
23
+ /**
24
+ * @typedef {{ [K in keyof processTags]: typeof processTags.tagsObject[K] }} ProcessTags
22
25
  */
23
26
  /**
24
27
  * @typedef {{
25
28
  * name: string,
26
29
  * enabled: boolean,
27
30
  * auto_enabled: boolean,
28
- * process_tags: typeof processTags.tagsObject
29
- * }} Integration
31
+ * } & Partial<ProcessTags>} Integration
30
32
  */
31
33
  /**
32
34
  * @typedef {{ _enabled: boolean }} Plugin
@@ -56,41 +58,11 @@ const sessionPropagation = require('./session-propagation')
56
58
  * kernel_name?: string
57
59
  * }} TelemetryHost
58
60
  */
59
- /**
60
- * @typedef {{
61
- * telemetry: {
62
- * enabled: boolean,
63
- * heartbeatInterval: number,
64
- * debug?: boolean,
65
- * dependencyCollection?: boolean,
66
- * logCollection?: boolean
67
- * },
68
- * service: string | undefined,
69
- * env: string | undefined,
70
- * version: string | undefined,
71
- * tags: Record<string, string>,
72
- * url?: string | URL,
73
- * hostname?: string,
74
- * port?: string | number,
75
- * site?: string,
76
- * apiKey?: string,
77
- * isCiVisibility?: boolean,
78
- * spanAttributeSchema?: string,
79
- * installSignature?: { id?: string, time?: string, type?: string },
80
- * sca?: { enabled?: boolean },
81
- * appsec: { enabled: boolean, apiSecurity?: {
82
- * endpointCollectionEnabled?: boolean,
83
- * endpointCollectionMessageLimit?: number
84
- * } },
85
- * profiling: { enabled: boolean | 'true' | 'false' | 'auto' }
86
- * }} TelemetryConfig
87
- */
88
61
 
89
62
  const telemetryStartChannel = dc.channel('datadog:telemetry:start')
90
- const telemetryStopChannel = dc.channel('datadog:telemetry:stop')
91
63
  const telemetryAppClosingChannel = dc.channel('datadog:telemetry:app-closing')
92
64
 
93
- /** @type {TelemetryConfig | undefined} */
65
+ /** @type {import('../config/config-base') | undefined} */
94
66
  let config
95
67
 
96
68
  /** @type {PluginManager} */
@@ -102,18 +74,9 @@ let application
102
74
  /** @type {TelemetryHost} */
103
75
  const host = createHostObject()
104
76
 
105
- /** @type {ReturnType<typeof setInterval> | undefined} */
106
- let heartbeatInterval
107
-
108
- /** @type {ReturnType<typeof setInterval> | undefined} */
109
- let extendedInterval
110
-
111
77
  /** @type {Integration[]} */
112
78
  let integrations
113
79
 
114
- /** @type {Map<string, { name: string, value: ConfigValue, origin: string, seq_id: number }>} */
115
- const configWithOrigin = new Map()
116
-
117
80
  /**
118
81
  * Retry information that `telemetry.js` keeps in-memory to be merged into the next payload.
119
82
  *
@@ -130,8 +93,6 @@ let heartbeatFailedDependencies = []
130
93
 
131
94
  const sentIntegrations = new Set()
132
95
 
133
- let seqId = 0
134
-
135
96
  function getRetryData () {
136
97
  return retryData
137
98
  }
@@ -184,7 +145,7 @@ function getIntegrations () {
184
145
  }
185
146
 
186
147
  /**
187
- * @param {TelemetryConfig} config
148
+ * @param {import('../config/config-base')} config
188
149
  */
189
150
  function getProducts (config) {
190
151
  return {
@@ -199,7 +160,7 @@ function getProducts (config) {
199
160
  }
200
161
 
201
162
  /**
202
- * @param {TelemetryConfig} config
163
+ * @param {import('../config/config-base')} config
203
164
  */
204
165
  function getInstallSignature (config) {
205
166
  const { installSignature: sig } = config
@@ -212,13 +173,11 @@ function getInstallSignature (config) {
212
173
  }
213
174
  }
214
175
 
215
- /**
216
- * @param {TelemetryConfig} config
217
- */
176
+ /** @param {import('../config/config-base')} config */
218
177
  function appStarted (config) {
219
178
  const app = {
220
179
  products: getProducts(config),
221
- configuration: [...configWithOrigin.values()],
180
+ configuration: latestConfiguration,
222
181
  }
223
182
  const installSignature = getInstallSignature(config)
224
183
  if (installSignature) {
@@ -245,7 +204,7 @@ function appClosing () {
245
204
  }
246
205
 
247
206
  /**
248
- * @param {TelemetryConfig} config
207
+ * @param {import('../config/config-base')} config
249
208
  * @returns {TelemetryApplication}
250
209
  */
251
210
  function createAppObject (config) {
@@ -320,11 +279,11 @@ function createPayload (currReqType, currPayload = {}) {
320
279
  }
321
280
 
322
281
  /**
323
- * @param {TelemetryConfig} config
282
+ * @param {import('../config/config-base')} config
324
283
  * @param {TelemetryApplication} application
325
284
  */
326
285
  function heartbeat (config, application) {
327
- heartbeatInterval = setInterval(() => {
286
+ setInterval(() => {
328
287
  metricsManager.send(config, application, host)
329
288
  telemetryLogger.send(config, application, host)
330
289
 
@@ -333,11 +292,9 @@ function heartbeat (config, application) {
333
292
  }, config.telemetry.heartbeatInterval).unref()
334
293
  }
335
294
 
336
- /**
337
- * @param {TelemetryConfig} config
338
- */
295
+ /** @param {import('../config/config-base')} config */
339
296
  function extendedHeartbeat (config) {
340
- extendedInterval = setInterval(() => {
297
+ setInterval(() => {
341
298
  const appPayload = appStarted(config)
342
299
  if (heartbeatFailedIntegrations.length > 0) {
343
300
  appPayload.integrations = heartbeatFailedIntegrations
@@ -348,16 +305,16 @@ function extendedHeartbeat (config) {
348
305
  heartbeatFailedDependencies = []
349
306
  }
350
307
  sendData(config, application, host, 'app-extended-heartbeat', appPayload)
351
- }, 1000 * 60 * 60 * 24).unref()
308
+ }, config.telemetry.extendedHeartbeatInterval).unref()
352
309
  }
353
310
 
354
311
  /**
355
- * @param {TelemetryConfig} aConfig
312
+ * @param {import('../config/config-base')} aConfig
356
313
  * @param {PluginManager} thePluginManager
357
314
  */
358
315
  function start (aConfig, thePluginManager) {
359
316
  if (!aConfig.telemetry.enabled) {
360
- if (aConfig.sca?.enabled) {
317
+ if (aConfig.appsec.sca.enabled) {
361
318
  logger.warn('DD_APPSEC_SCA_ENABLED requires enabling telemetry to work.')
362
319
  }
363
320
 
@@ -376,8 +333,7 @@ function start (aConfig, thePluginManager) {
376
333
  sendData(config, application, host, 'app-started', appStarted(config))
377
334
 
378
335
  if (integrations.length > 0) {
379
- sendData(config, application, host, 'app-integrations-change',
380
- { integrations }, updateRetryData)
336
+ sendData(config, application, host, 'app-integrations-change', { integrations }, updateRetryData)
381
337
  }
382
338
 
383
339
  heartbeat(config, application)
@@ -388,21 +344,6 @@ function start (aConfig, thePluginManager) {
388
344
  telemetryStartChannel.publish(getTelemetryData())
389
345
  }
390
346
 
391
- function stop () {
392
- if (!config) {
393
- return
394
- }
395
- clearInterval(extendedInterval)
396
- clearInterval(heartbeatInterval)
397
- globalThis[Symbol.for('dd-trace')].beforeExitHandlers.delete(appClosing)
398
-
399
- telemetryStopChannel.publish(getTelemetryData())
400
-
401
- endpoints.stop()
402
- sessionPropagation.stop()
403
- config = undefined
404
- }
405
-
406
347
  function updateIntegrations () {
407
348
  if (!config?.telemetry.enabled) {
408
349
  return
@@ -417,121 +358,37 @@ function updateIntegrations () {
417
358
  sendData(config, application, host, reqType, payload, updateRetryData)
418
359
  }
419
360
 
420
- /**
421
- * @param {Record<string, string | number | boolean> | null | undefined} map
422
- */
423
- function formatMapForTelemetry (map) {
424
- // format from an object to a string map in order for
425
- // telemetry intake to accept the configuration
426
- return map
427
- ? Object.entries(map).map(([key, value]) => `${key}:${value}`).join(',')
428
- : ''
429
- }
430
-
431
- const nameMapping = {
432
- sampleRate: 'DD_TRACE_SAMPLE_RATE',
433
- logInjection: 'DD_LOG_INJECTION',
434
- headerTags: 'DD_TRACE_HEADER_TAGS',
435
- tags: 'DD_TAGS',
436
- 'sampler.rules': 'DD_TRACE_SAMPLING_RULES',
437
- traceEnabled: 'DD_TRACE_ENABLED',
438
- url: 'DD_TRACE_AGENT_URL',
439
- 'sampler.rateLimit': 'DD_TRACE_RATE_LIMIT',
440
- queryStringObfuscation: 'DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP',
441
- version: 'DD_VERSION',
442
- env: 'DD_ENV',
443
- service: 'DD_SERVICE',
444
- clientIpHeader: 'DD_TRACE_CLIENT_IP_HEADER',
445
- 'grpc.client.error.statuses': 'DD_GRPC_CLIENT_ERROR_STATUSES',
446
- 'grpc.server.error.statuses': 'DD_GRPC_SERVER_ERROR_STATUSES',
447
- traceId128BitLoggingEnabled: 'DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED',
448
- instrumentationSource: 'instrumentation_source',
449
- injectionEnabled: 'ssi_injection_enabled',
450
- injectForce: 'ssi_forced_injection_enabled',
451
- 'runtimeMetrics.enabled': 'runtimeMetrics',
452
- otelLogsEnabled: 'DD_LOGS_OTEL_ENABLED',
453
- otelUrl: 'OTEL_EXPORTER_OTLP_ENDPOINT',
454
- otelEndpoint: 'OTEL_EXPORTER_OTLP_ENDPOINT',
455
- otelHeaders: 'OTEL_EXPORTER_OTLP_HEADERS',
456
- otelProtocol: 'OTEL_EXPORTER_OTLP_PROTOCOL',
457
- otelTimeout: 'OTEL_EXPORTER_OTLP_TIMEOUT',
458
- otelLogsHeaders: 'OTEL_EXPORTER_OTLP_LOGS_HEADERS',
459
- otelLogsProtocol: 'OTEL_EXPORTER_OTLP_LOGS_PROTOCOL',
460
- otelLogsTimeout: 'OTEL_EXPORTER_OTLP_LOGS_TIMEOUT',
461
- otelLogsUrl: 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT',
462
- otelBatchTimeout: 'OTEL_BSP_SCHEDULE_DELAY',
463
- otelMaxExportBatchSize: 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',
464
- otelMaxQueueSize: 'OTEL_BSP_MAX_QUEUE_SIZE',
465
- otelMetricsEnabled: 'DD_METRICS_OTEL_ENABLED',
466
- otelMetricsHeaders: 'OTEL_EXPORTER_OTLP_METRICS_HEADERS',
467
- otelMetricsProtocol: 'OTEL_EXPORTER_OTLP_METRICS_PROTOCOL',
468
- otelMetricsTimeout: 'OTEL_EXPORTER_OTLP_METRICS_TIMEOUT',
469
- otelMetricsExportTimeout: 'OTEL_METRIC_EXPORT_TIMEOUT',
470
- otelMetricsUrl: 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
471
- otelMetricsExportInterval: 'OTEL_METRIC_EXPORT_INTERVAL',
472
- otelMetricsTemporalityPreference: 'OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE',
473
- }
474
-
475
- const namesNeedFormatting = new Set(['DD_TAGS', 'peerServiceMapping', 'serviceMapping'])
361
+ let latestConfiguration = []
476
362
 
477
363
  /**
478
- * @param {{ name: string, value: ConfigValue, origin: string }[]} changes
479
- * @param {TelemetryConfig} config
364
+ * @param {{ name: string, value: ConfigValue, origin: string, seq_id: number }[]} configuration
365
+ * @param {import('../config/config-base')} config
480
366
  */
481
- function updateConfig (changes, config) {
367
+ function updateConfig (configuration, config) {
482
368
  if (!config.telemetry.enabled) return
483
- if (changes.length === 0) return
484
369
 
485
- logger.trace(changes)
370
+ logger.trace(configuration)
486
371
 
487
372
  const application = createAppObject(config)
488
373
 
489
- const changed = configWithOrigin.size > 0
490
-
491
- for (const change of changes) {
492
- const name = nameMapping[change.name] || change.name
493
- const { origin, value } = change
494
- const entry = { name, value, origin, seq_id: seqId++ }
495
-
496
- if (namesNeedFormatting.has(name)) {
497
- // @ts-expect-error entry.value is known to be a map for these config names
498
- entry.value = formatMapForTelemetry(value)
499
- } else if (name === 'url') {
500
- if (value) {
501
- entry.value = value.toString()
502
- }
503
- } else if (name === 'DD_TRACE_SAMPLING_RULES') {
504
- entry.value = JSON.stringify(value)
505
- } else if (Array.isArray(value)) {
506
- entry.value = value.join(',')
507
- }
508
-
509
- // Use composite key to support multiple origins for same config name
510
- configWithOrigin.set(`${name}|${origin}`, entry)
511
- }
512
-
513
- if (changed) {
514
- // update configWithOrigin to contain up-to-date full list of config values for app-extended-heartbeat
374
+ if (latestConfiguration.length) {
515
375
  const { reqType, payload } = createPayload('app-client-configuration-change', {
516
- configuration: [...configWithOrigin.values()],
376
+ configuration,
517
377
  })
518
378
  sendData(config, application, host, reqType, payload, updateRetryData)
519
379
  }
380
+ latestConfiguration = configuration
520
381
  }
521
382
 
522
383
  /**
523
- * @param {TelemetryConfig['profiling']['enabled']} profilingEnabled
384
+ * @param {import('../config/config-base')['profiling']['enabled']} profilingEnabled
524
385
  */
525
386
  function profilingEnabledToBoolean (profilingEnabled) {
526
- if (typeof profilingEnabled === 'boolean') {
527
- return profilingEnabled
528
- }
529
387
  return profilingEnabled === 'true' || profilingEnabled === 'auto'
530
388
  }
531
389
 
532
390
  module.exports = {
533
391
  start,
534
- stop,
535
392
  updateIntegrations,
536
393
  updateConfig,
537
394
  appClosing,
@@ -67,14 +67,6 @@ function calculateDDBasePath (dirname) {
67
67
  return dirSteps.slice(0, packagesIndex).join(path.sep) + path.sep
68
68
  }
69
69
 
70
- function normalizeProfilingEnabledValue (configValue) {
71
- return isTrue(configValue)
72
- ? 'true'
73
- : isFalse(configValue)
74
- ? 'false'
75
- : configValue === 'auto' ? 'auto' : undefined
76
- }
77
-
78
70
  function normalizePluginEnvName (envPluginName, makeLowercase = false) {
79
71
  if (envPluginName.startsWith('@')) {
80
72
  envPluginName = envPluginName.slice(1)
@@ -89,6 +81,5 @@ module.exports = {
89
81
  isError,
90
82
  globMatch,
91
83
  ddBasePath: globalThis.__DD_ESBUILD_BASEPATH || calculateDDBasePath(__dirname),
92
- normalizeProfilingEnabledValue,
93
84
  normalizePluginEnvName,
94
85
  }