dd-trace 6.16.0 → 6.17.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 (334) hide show
  1. package/ci/diagnose.js +0 -23
  2. package/ci/test-optimization-validation/approval-artifacts.js +0 -3
  3. package/ci/test-optimization-validation/approval.js +0 -6
  4. package/ci/test-optimization-validation/artifact-id.js +0 -1
  5. package/ci/test-optimization-validation/bounded-json.js +0 -1
  6. package/ci/test-optimization-validation/cli.js +0 -12
  7. package/ci/test-optimization-validation/command-output-policy.js +0 -1
  8. package/ci/test-optimization-validation/command-runner.js +0 -3
  9. package/ci/test-optimization-validation/environment.js +0 -4
  10. package/ci/test-optimization-validation/executable-approval.js +0 -1
  11. package/ci/test-optimization-validation/executable.js +0 -5
  12. package/ci/test-optimization-validation/framework-adapters/cucumber.js +0 -6
  13. package/ci/test-optimization-validation/framework-adapters/cypress.js +0 -3
  14. package/ci/test-optimization-validation/framework-adapters/playwright.js +0 -6
  15. package/ci/test-optimization-validation/framework-adapters/vitest.js +0 -4
  16. package/ci/test-optimization-validation/generated-test-contract.js +0 -5
  17. package/ci/test-optimization-validation/generated-verifier.js +0 -1
  18. package/ci/test-optimization-validation/literal-environment.js +0 -1
  19. package/ci/test-optimization-validation/manifest-scaffold.js +0 -17
  20. package/ci/test-optimization-validation/manifest-schema.js +0 -21
  21. package/ci/test-optimization-validation/offline-fixtures.js +0 -4
  22. package/ci/test-optimization-validation/plan-writer.js +0 -11
  23. package/ci/test-optimization-validation/preflight-runner.js +0 -1
  24. package/ci/test-optimization-validation/redaction.js +0 -4
  25. package/ci/test-optimization-validation/report-writer.js +0 -16
  26. package/ci/test-optimization-validation/runner-command.js +0 -3
  27. package/ci/test-optimization-validation/runner-contract.js +0 -4
  28. package/ci/test-optimization-validation/safe-files.js +0 -1
  29. package/ci/test-optimization-validation/scenarios/basic-reporting.js +0 -1
  30. package/ci/test-optimization-validation/scenarios/ci-wiring.js +0 -1
  31. package/ci/test-optimization-validation/source-text.js +0 -3
  32. package/ci/vitest-no-worker-init-setup.mjs +41 -16
  33. package/index.d.ts +165 -0
  34. package/package.json +17 -16
  35. package/packages/datadog-esbuild/src/utils.js +0 -2
  36. package/packages/datadog-instrumentations/src/aerospike.js +28 -6
  37. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +0 -2
  38. package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
  39. package/packages/datadog-instrumentations/src/claude-agent-sdk.js +0 -2
  40. package/packages/datadog-instrumentations/src/console.js +97 -0
  41. package/packages/datadog-instrumentations/src/cucumber.js +72 -12
  42. package/packages/datadog-instrumentations/src/cypress-config.js +0 -23
  43. package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
  44. package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
  45. package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -0
  46. package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +0 -3
  47. package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
  48. package/packages/datadog-instrumentations/src/helpers/register.js +4 -0
  49. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +72 -24
  50. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +39 -0
  51. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -17
  52. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +12 -0
  53. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +36 -0
  54. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/supabase.js +128 -0
  55. package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +16 -0
  56. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
  57. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +0 -5
  58. package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
  59. package/packages/datadog-instrumentations/src/jest.js +141 -51
  60. package/packages/datadog-instrumentations/src/knex.js +0 -1
  61. package/packages/datadog-instrumentations/src/mariadb-bundle.js +0 -24
  62. package/packages/datadog-instrumentations/src/mariadb.js +0 -2
  63. package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
  64. package/packages/datadog-instrumentations/src/mocha/main.js +22 -25
  65. package/packages/datadog-instrumentations/src/mocha/utils.js +119 -49
  66. package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +0 -6
  67. package/packages/datadog-instrumentations/src/mocha/worker.js +14 -17
  68. package/packages/datadog-instrumentations/src/mysql2.js +0 -2
  69. package/packages/datadog-instrumentations/src/openai-realtime/audio-accumulator.js +241 -0
  70. package/packages/datadog-instrumentations/src/openai-realtime/events.js +76 -0
  71. package/packages/datadog-instrumentations/src/openai-realtime/index.js +301 -0
  72. package/packages/datadog-instrumentations/src/openai-realtime/session.js +998 -0
  73. package/packages/datadog-instrumentations/src/openai-realtime/turns.js +211 -0
  74. package/packages/datadog-instrumentations/src/openai.js +51 -12
  75. package/packages/datadog-instrumentations/src/oracledb.js +9 -3
  76. package/packages/datadog-instrumentations/src/playwright-reporter.js +3 -16
  77. package/packages/datadog-instrumentations/src/playwright.js +238 -55
  78. package/packages/datadog-instrumentations/src/postgres.js +7 -0
  79. package/packages/datadog-instrumentations/src/router.js +0 -2
  80. package/packages/datadog-instrumentations/src/rum-browser-scripts.js +0 -2
  81. package/packages/datadog-instrumentations/src/sequelize.js +0 -1
  82. package/packages/datadog-instrumentations/src/supabase.js +15 -0
  83. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +18 -18
  84. package/packages/datadog-instrumentations/src/vitest-main.js +37 -17
  85. package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
  86. package/packages/datadog-instrumentations/src/vitest-worker.js +49 -13
  87. package/packages/datadog-instrumentations/src/webdriverio.js +23 -42
  88. package/packages/datadog-instrumentations/src/ws.js +0 -1
  89. package/packages/datadog-plugin-ai/src/utils.js +0 -2
  90. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +0 -1
  91. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +0 -2
  92. package/packages/datadog-plugin-aws-sdk/src/base.js +0 -1
  93. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +0 -1
  94. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +0 -1
  95. package/packages/datadog-plugin-aws-sdk/src/util.js +0 -1
  96. package/packages/datadog-plugin-azure-durable-functions/src/index.js +0 -1
  97. package/packages/datadog-plugin-cucumber/src/index.js +10 -0
  98. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +171 -75
  99. package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
  100. package/packages/datadog-plugin-cypress/src/source-map-utils.js +0 -4
  101. package/packages/datadog-plugin-cypress/src/support.js +52 -7
  102. package/packages/datadog-plugin-graphql/src/resolve-error.js +1 -2
  103. package/packages/datadog-plugin-graphql/src/utils.js +0 -5
  104. package/packages/datadog-plugin-jest/src/index.js +13 -0
  105. package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
  106. package/packages/datadog-plugin-mocha/src/index.js +39 -11
  107. package/packages/datadog-plugin-mongodb-core/src/query.js +0 -1
  108. package/packages/datadog-plugin-openai/src/index.js +16 -1
  109. package/packages/datadog-plugin-openai/src/realtime.js +144 -0
  110. package/packages/datadog-plugin-openai-agents/src/integration.js +0 -4
  111. package/packages/datadog-plugin-openai-agents/src/util.js +0 -1
  112. package/packages/datadog-plugin-playwright/src/index.js +76 -9
  113. package/packages/datadog-plugin-postgres/src/index.js +167 -0
  114. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +0 -1
  115. package/packages/datadog-plugin-redis/src/index.js +15 -1
  116. package/packages/datadog-plugin-supabase/src/error.js +18 -0
  117. package/packages/datadog-plugin-supabase/src/index.js +21 -0
  118. package/packages/datadog-plugin-supabase/src/supabase-auth-js-gotrueclient-getuser.js +69 -0
  119. package/packages/datadog-plugin-supabase/src/supabase-functions-js-functionsclient-invoke.js +70 -0
  120. package/packages/datadog-plugin-supabase/src/supabase-postgrest-js-postgrestbuilder-then.js +122 -0
  121. package/packages/datadog-plugin-supabase/src/supabase-realtime-js-realtimechannel-send.js +66 -0
  122. package/packages/datadog-plugin-supabase/src/supabase-storage-js-handle-request.js +93 -0
  123. package/packages/datadog-plugin-supabase/src/url.js +17 -0
  124. package/packages/datadog-plugin-vitest/src/index.js +10 -0
  125. package/packages/datadog-plugin-ws/src/util.js +0 -4
  126. package/packages/datadog-turbopack/index.js +0 -6
  127. package/packages/datadog-turbopack/src/loader.js +0 -16
  128. package/packages/datadog-webpack/src/loader.js +0 -1
  129. package/packages/dd-trace/src/aiguard/client.js +2 -3
  130. package/packages/dd-trace/src/aiguard/evaluation.js +6 -12
  131. package/packages/dd-trace/src/aiguard/index.js +2 -2
  132. package/packages/dd-trace/src/aiguard/integrations/index.js +1 -1
  133. package/packages/dd-trace/src/aiguard/integrations/openai.js +81 -7
  134. package/packages/dd-trace/src/aiguard/messages/anthropic.js +0 -2
  135. package/packages/dd-trace/src/aiguard/messages/openai.js +64 -1
  136. package/packages/dd-trace/src/aiguard/messages/utils.js +0 -1
  137. package/packages/dd-trace/src/aiguard/redaction.js +0 -1
  138. package/packages/dd-trace/src/aiguard/sdk.js +1 -1
  139. package/packages/dd-trace/src/appsec/activation.js +1 -1
  140. package/packages/dd-trace/src/appsec/api_security/normalized-route.js +0 -5
  141. package/packages/dd-trace/src/appsec/api_security/sampler.js +0 -4
  142. package/packages/dd-trace/src/appsec/blocking/index.js +3 -3
  143. package/packages/dd-trace/src/appsec/downstream_requests.js +1 -4
  144. package/packages/dd-trace/src/appsec/iast/index.js +1 -1
  145. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +5 -5
  146. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -1
  147. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  148. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +3 -3
  149. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +8 -10
  150. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -2
  151. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +4 -1
  152. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +7 -7
  153. package/packages/dd-trace/src/appsec/index.js +2 -2
  154. package/packages/dd-trace/src/appsec/lambda.js +71 -2
  155. package/packages/dd-trace/src/appsec/rasp/utils.js +5 -1
  156. package/packages/dd-trace/src/appsec/remote_config.js +8 -6
  157. package/packages/dd-trace/src/appsec/reporter.js +10 -6
  158. package/packages/dd-trace/src/appsec/rule_manager.js +3 -3
  159. package/packages/dd-trace/src/appsec/sdk/track_event.js +0 -2
  160. package/packages/dd-trace/src/appsec/waf/index.js +2 -2
  161. package/packages/dd-trace/src/appsec/waf/waf_manager.js +8 -5
  162. package/packages/dd-trace/src/carrier.js +0 -5
  163. package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +104 -0
  164. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +0 -2
  165. package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +34 -3
  166. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +0 -1
  167. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +0 -1
  168. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +0 -1
  169. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/index.js +0 -4
  170. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +0 -1
  171. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +0 -2
  172. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -15
  173. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +0 -3
  174. package/packages/dd-trace/src/ci-visibility/exporters/request.js +0 -11
  175. package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +0 -1
  176. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +0 -1
  177. package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +0 -6
  178. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +2 -2
  179. package/packages/dd-trace/src/ci-visibility/requests/rate-limit.js +0 -1
  180. package/packages/dd-trace/src/ci-visibility/requests/upload-test-screenshot.js +0 -5
  181. package/packages/dd-trace/src/ci-visibility/requests/video-request.js +0 -1
  182. package/packages/dd-trace/src/ci-visibility/telemetry.js +13 -0
  183. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +0 -1
  184. package/packages/dd-trace/src/ci-visibility/test-screenshot.js +0 -2
  185. package/packages/dd-trace/src/ci-visibility/test-video.js +0 -1
  186. package/packages/dd-trace/src/config/defaults.js +3 -2
  187. package/packages/dd-trace/src/config/generated-config-types.d.ts +73 -67
  188. package/packages/dd-trace/src/config/helper.js +0 -1
  189. package/packages/dd-trace/src/config/index.js +24 -24
  190. package/packages/dd-trace/src/config/parsers.js +34 -6
  191. package/packages/dd-trace/src/config/remote_config.js +25 -109
  192. package/packages/dd-trace/src/config/supported-configurations.json +139 -10
  193. package/packages/dd-trace/src/datastreams/encoding.js +0 -1
  194. package/packages/dd-trace/src/datastreams/pathway.js +0 -1
  195. package/packages/dd-trace/src/debugger/constants.js +10 -0
  196. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +62 -10
  197. package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
  198. package/packages/dd-trace/src/debugger/devtools_client/guardrail-metrics.js +15 -0
  199. package/packages/dd-trace/src/debugger/devtools_client/index.js +103 -27
  200. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +50 -7
  201. package/packages/dd-trace/src/debugger/devtools_client/log.js +3 -1
  202. package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +21 -8
  203. package/packages/dd-trace/src/debugger/devtools_client/send.js +40 -14
  204. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +53 -13
  205. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +118 -71
  206. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +0 -3
  207. package/packages/dd-trace/src/debugger/devtools_client/status.js +20 -6
  208. package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
  209. package/packages/dd-trace/src/debugger/index.js +50 -2
  210. package/packages/dd-trace/src/debugger/inspect-segment.js +0 -3
  211. package/packages/dd-trace/src/debugger/probe_sampler.js +133 -9
  212. package/packages/dd-trace/src/debugger/probe_sampler_constants.js +31 -1
  213. package/packages/dd-trace/src/dogstatsd.js +0 -23
  214. package/packages/dd-trace/src/encode/0.4-cross-payload.js +0 -3
  215. package/packages/dd-trace/src/encode/0.4.js +0 -7
  216. package/packages/dd-trace/src/encode/0.5.js +0 -2
  217. package/packages/dd-trace/src/encode/tags-processors.js +0 -1
  218. package/packages/dd-trace/src/evp_proxy/discovery.js +0 -1
  219. package/packages/dd-trace/src/evp_proxy/path.js +0 -2
  220. package/packages/dd-trace/src/exporters/agent/writer.js +0 -1
  221. package/packages/dd-trace/src/exporters/agentless/index.js +0 -1
  222. package/packages/dd-trace/src/exporters/agentless/intake.js +0 -1
  223. package/packages/dd-trace/src/exporters/agentless/writer.js +0 -3
  224. package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
  225. package/packages/dd-trace/src/exporters/common/request.js +1 -0
  226. package/packages/dd-trace/src/exporters/common/url.js +0 -2
  227. package/packages/dd-trace/src/exporters/common/writer.js +0 -2
  228. package/packages/dd-trace/src/id.js +0 -11
  229. package/packages/dd-trace/src/llmobs/audio-codec.js +192 -0
  230. package/packages/dd-trace/src/llmobs/audio-utils.js +121 -0
  231. package/packages/dd-trace/src/llmobs/constants/audio.js +35 -0
  232. package/packages/dd-trace/src/llmobs/constants/prompts.js +14 -0
  233. package/packages/dd-trace/src/llmobs/constants/tags.js +17 -0
  234. package/packages/dd-trace/src/llmobs/eval-metric.js +0 -6
  235. package/packages/dd-trace/src/llmobs/experiments/dataset.js +0 -4
  236. package/packages/dd-trace/src/llmobs/experiments/experiment.js +0 -3
  237. package/packages/dd-trace/src/llmobs/experiments/index.js +7 -6
  238. package/packages/dd-trace/src/llmobs/experiments/util.js +1 -11
  239. package/packages/dd-trace/src/llmobs/index.js +1 -3
  240. package/packages/dd-trace/src/llmobs/noop.js +10 -0
  241. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +0 -4
  242. package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +0 -1
  243. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +0 -4
  244. package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +0 -2
  245. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +0 -2
  246. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +4 -6
  247. package/packages/dd-trace/src/llmobs/plugins/openai/realtime.js +285 -0
  248. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +16 -3
  249. package/packages/dd-trace/src/llmobs/prompts/cache.js +272 -0
  250. package/packages/dd-trace/src/llmobs/prompts/manager.js +639 -0
  251. package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
  252. package/packages/dd-trace/src/llmobs/prompts/prompt.js +92 -0
  253. package/packages/dd-trace/src/llmobs/sdk.js +21 -6
  254. package/packages/dd-trace/src/llmobs/span_processor.js +81 -2
  255. package/packages/dd-trace/src/llmobs/tagger.js +30 -7
  256. package/packages/dd-trace/src/llmobs/telemetry.js +36 -4
  257. package/packages/dd-trace/src/llmobs/util.js +0 -34
  258. package/packages/dd-trace/src/llmobs/writers/base.js +0 -1
  259. package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
  260. package/packages/dd-trace/src/log/channels.js +3 -0
  261. package/packages/dd-trace/src/log/index.js +23 -5
  262. package/packages/dd-trace/src/log-submission/log-submission-plugin.js +74 -6
  263. package/packages/dd-trace/src/msgpack/chunk.js +0 -1
  264. package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +0 -12
  265. package/packages/dd-trace/src/openfeature/encoding.js +0 -2
  266. package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
  267. package/packages/dd-trace/src/openfeature/index.js +0 -4
  268. package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +0 -1
  269. package/packages/dd-trace/src/openfeature/span-enrichment.js +0 -4
  270. package/packages/dd-trace/src/openfeature/writers/base.js +0 -6
  271. package/packages/dd-trace/src/openfeature/writers/exposures.js +0 -5
  272. package/packages/dd-trace/src/openfeature/writers/util.js +0 -4
  273. package/packages/dd-trace/src/opentelemetry/logs/logger.js +0 -1
  274. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +0 -1
  275. package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +0 -1
  276. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +0 -2
  277. package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +0 -1
  278. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +0 -1
  279. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +0 -1
  280. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -14
  281. package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
  282. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +30 -13
  283. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +0 -1
  284. package/packages/dd-trace/src/opentelemetry/span-helpers.js +0 -1
  285. package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +0 -1
  286. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +0 -3
  287. package/packages/dd-trace/src/opentracing/propagation/text_map.js +0 -6
  288. package/packages/dd-trace/src/opentracing/span_context.js +0 -1
  289. package/packages/dd-trace/src/otel-thread-ctx.js +38 -11
  290. package/packages/dd-trace/src/payload-tagging/tagging.js +15 -3
  291. package/packages/dd-trace/src/plugins/ci_plugin.js +0 -1
  292. package/packages/dd-trace/src/plugins/database.js +2 -6
  293. package/packages/dd-trace/src/plugins/index.js +7 -0
  294. package/packages/dd-trace/src/plugins/plugin.js +0 -4
  295. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  296. package/packages/dd-trace/src/plugins/util/git.js +1 -3
  297. package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +0 -1
  298. package/packages/dd-trace/src/plugins/util/llm.js +0 -2
  299. package/packages/dd-trace/src/plugins/util/status-validator.js +0 -1
  300. package/packages/dd-trace/src/plugins/util/test.js +21 -20
  301. package/packages/dd-trace/src/plugins/util/url.js +0 -5
  302. package/packages/dd-trace/src/priority_sampler.js +0 -6
  303. package/packages/dd-trace/src/process-tags/index.js +0 -1
  304. package/packages/dd-trace/src/profiler.js +132 -35
  305. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +0 -1
  306. package/packages/dd-trace/src/profiling/profiler.js +101 -41
  307. package/packages/dd-trace/src/profiling/ssi-heuristics.js +29 -15
  308. package/packages/dd-trace/src/propagation-hash/index.js +0 -1
  309. package/packages/dd-trace/src/proxy.js +21 -45
  310. package/packages/dd-trace/src/random_sampler.js +0 -4
  311. package/packages/dd-trace/src/rate_limiter.js +0 -4
  312. package/packages/dd-trace/src/remote_config/capabilities.js +1 -9
  313. package/packages/dd-trace/src/remote_config/index.js +0 -1
  314. package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +0 -3
  315. package/packages/dd-trace/src/sampler.js +0 -4
  316. package/packages/dd-trace/src/sampling_rule.js +0 -7
  317. package/packages/dd-trace/src/serverless/vercel.js +0 -1
  318. package/packages/dd-trace/src/serverless.js +0 -1
  319. package/packages/dd-trace/src/service-naming/index.js +0 -1
  320. package/packages/dd-trace/src/service-naming/schemas/util.js +0 -1
  321. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +7 -0
  322. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +5 -0
  323. package/packages/dd-trace/src/span_processor.js +2 -2
  324. package/packages/dd-trace/src/span_sampler.js +0 -1
  325. package/packages/dd-trace/src/standalone/product.js +2 -2
  326. package/packages/dd-trace/src/standalone/tracesource.js +0 -1
  327. package/packages/dd-trace/src/startup-log.js +1 -1
  328. package/packages/dd-trace/src/telemetry/endpoints.js +0 -8
  329. package/packages/dd-trace/src/telemetry/logs/index.js +16 -5
  330. package/packages/dd-trace/src/telemetry/logs/log-collector.js +16 -6
  331. package/packages/dd-trace/src/telemetry/metrics.js +0 -2
  332. package/packages/dd-trace/src/telemetry/telemetry.js +4 -1
  333. package/packages/dd-trace/src/util.js +13 -1
  334. package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
@@ -2,9 +2,10 @@
2
2
 
3
3
  const { readFileSync } = require('node:fs')
4
4
  const { join } = require('node:path')
5
- const { pathToFileURL } = require('node:url')
5
+ const { fileURLToPath, pathToFileURL } = require('node:url')
6
6
 
7
7
  const log = require('../../../../dd-trace/src/log')
8
+ const { getDisabledInstrumentations } = require('../instrumentation-utils')
8
9
  const instrumentations = require('./instrumentations')
9
10
  const { getRewriteTarget } = require('./targets')
10
11
 
@@ -26,7 +27,8 @@ const { getRewriteTarget } = require('./targets')
26
27
  * @type {Record<string, string>} map of module base name to version
27
28
  */
28
29
  const moduleVersions = {}
29
- const disabled = new Set()
30
+ // Asynchronous loader workers have their own module graph and cannot receive disable() calls made on the main thread.
31
+ const disabled = getDisabledInstrumentations()
30
32
 
31
33
  // Matchers are built on the first module that actually needs rewriting. The
32
34
  // vendored transformer is a quarter megabyte of bundle that an application
@@ -42,6 +44,20 @@ let matcherEsm
42
44
  // eslint-disable-next-line unicorn/no-useless-concat -- Keep the source-map marker non-contiguous.
43
45
  const SOURCE_MAP_PREFIX = '//# sourceMapping' + 'URL=data:application/json;base64,'
44
46
 
47
+ /**
48
+ * Loader hooks hand `file://` URLs to the rewriter while CommonJS and bundler
49
+ * callers pass plain paths. `fileURLToPath` is the only correct conversion: a
50
+ * plain scheme strip leaves Windows paths rooted at `/C:/` and keeps
51
+ * percent-encoded characters undecoded, which breaks version resolution.
52
+ * Rewrite-target paths use forward slashes, including on Windows.
53
+ *
54
+ * @param {string} filename
55
+ */
56
+ function normalizeFilename (filename) {
57
+ const path = filename.startsWith('file://') ? fileURLToPath(filename) : filename
58
+ return path.replaceAll('\\', '/')
59
+ }
60
+
45
61
  /**
46
62
  * @param {string|Buffer|ArrayBuffer|Uint8Array} content
47
63
  * @param {string} filename
@@ -52,30 +68,39 @@ const SOURCE_MAP_PREFIX = '//# sourceMapping' + 'URL=data:application/json;base6
52
68
  function rewrite (content, filename, format, target) {
53
69
  if (!content) return content
54
70
 
55
- target ||= getRewriteTarget(filename)
56
- if (!target) return content
57
-
58
- filename = filename.replace('file://', '')
71
+ try {
72
+ filename = normalizeFilename(filename)
73
+ target ||= getRewriteTarget(filename)
74
+ if (!target) return content
59
75
 
60
- const moduleType = format === 'module' ? 'esm' : 'cjs'
61
- const { moduleName, filePath } = target
62
- const version = getVersion(filename, filePath)
76
+ const moduleType = format === 'module' ? 'esm' : 'cjs'
77
+ const { moduleName, filePath } = target
78
+ if (disabled.has(moduleName)) return content
63
79
 
64
- if (disabled.has(moduleName)) return content
80
+ const version = getVersion(filename, filePath)
81
+ if (!version) return content
65
82
 
66
- const transformer = getMatcher(moduleType).getTransformer(moduleName, version, filePath)
83
+ const transformer = getMatcher(moduleType).getTransformer(moduleName, version, filePath)
67
84
 
68
- if (!transformer) return content
85
+ if (!transformer) return content
69
86
 
70
- try {
71
87
  const source = getSourceText(content)
72
88
 
73
89
  // TODO: pass existing sourcemap as input for remapping
74
- const { code, map } = transformer.transform(source, moduleType)
90
+ let { code, map } = transformer.transform(source, moduleType)
91
+
92
+ if (source.startsWith('#!') && !code.startsWith('#!')) {
93
+ // A shebang must be the entire first line, and JavaScript recognizes
94
+ // exactly four line terminators: \n, \r, \u2028 (line separator), and
95
+ // \u2029 (paragraph separator). Any of the four can end the shebang line.
96
+ const shebangEnd = source.search(/[\r\n\u2028\u2029]/)
97
+ code = (shebangEnd === -1 ? source : source.slice(0, shebangEnd)) + '\n' + code
98
+ map = shiftSourceMapLine(map)
99
+ }
75
100
 
76
101
  if (!map) return code
77
102
 
78
- const inlineMap = Buffer.from(map).toString('base64')
103
+ const inlineMap = Buffer.from(typeof map === 'string' ? map : JSON.stringify(map)).toString('base64')
79
104
 
80
105
  return code + '\n' + SOURCE_MAP_PREFIX + inlineMap
81
106
  } catch (e) {
@@ -95,16 +120,19 @@ function createBundlerRewriter (dcModule) {
95
120
  return function rewriteBundled (content, filename, format, target, sourceMap) {
96
121
  if (!content) return { code: content, map: sourceMap }
97
122
 
98
- target ||= getRewriteTarget(filename)
99
- if (!target) return { code: content, map: sourceMap }
123
+ try {
124
+ filename = normalizeFilename(filename)
125
+ target ||= getRewriteTarget(filename)
126
+ if (!target) return { code: content, map: sourceMap }
100
127
 
101
- filename = filename.replace('file://', '')
102
- const moduleType = format === 'module' ? 'esm' : 'cjs'
103
- const { moduleName, filePath } = target
104
- const transformer = matcher.getTransformer(moduleName, getVersion(filename, filePath), filePath)
105
- if (!transformer) return { code: content, map: sourceMap }
128
+ const moduleType = format === 'module' ? 'esm' : 'cjs'
129
+ const { moduleName, filePath } = target
130
+ const version = getVersion(filename, filePath)
131
+ if (!version) return { code: content, map: sourceMap }
132
+
133
+ const transformer = matcher.getTransformer(moduleName, version, filePath)
134
+ if (!transformer) return { code: content, map: sourceMap }
106
135
 
107
- try {
108
136
  return transformer.transform(getSourceText(content), moduleType, sourceMap)
109
137
  } catch (error) {
110
138
  log.error(error)
@@ -146,6 +174,11 @@ function createMatcher (dcModule) {
146
174
  publishDurableOrchestrationFailure,
147
175
  waitForAsyncEnd,
148
176
  } = require('./transforms')
177
+ const {
178
+ postgresQueryHandlers,
179
+ postgresQueryLifecycle,
180
+ postgresQueryPreparation,
181
+ } = require('./transforms/postgres')
149
182
 
150
183
  const matcher = create(instrumentations, dcModule)
151
184
 
@@ -158,6 +191,9 @@ function createMatcher (dcModule) {
158
191
  matcher.addTransform('configureGraphqlJitRuntime', configureGraphqlJitRuntime)
159
192
  matcher.addTransform('configureMercuriusRequest', configureMercuriusRequest)
160
193
  matcher.addTransform('publishDurableOrchestrationFailure', publishDurableOrchestrationFailure)
194
+ matcher.addTransform('postgresQueryHandlers', postgresQueryHandlers)
195
+ matcher.addTransform('postgresQueryLifecycle', postgresQueryLifecycle)
196
+ matcher.addTransform('postgresQueryPreparation', postgresQueryPreparation)
161
197
 
162
198
  return matcher
163
199
  }
@@ -191,7 +227,6 @@ function getDcPolyfillSpecifier (moduleType) {
191
227
  * Convert the source representations accepted by Node.js loader hooks to text.
192
228
  *
193
229
  * @param {string | ArrayBuffer | BufferView} source
194
- * @returns {string}
195
230
  */
196
231
  function getSourceText (source) {
197
232
  if (typeof source === 'string') return source
@@ -201,6 +236,19 @@ function getSourceText (source) {
201
236
  return Buffer.from(source).toString('utf8')
202
237
  }
203
238
 
239
+ /**
240
+ * Account for a shebang restored ahead of the generated program. The transformer already maps original positions
241
+ * past the input shebang, so only the generated side needs an additional empty line.
242
+ *
243
+ * @param {string|object|undefined} map
244
+ */
245
+ function shiftSourceMapLine (map) {
246
+ if (!map) return map
247
+ const sourceMap = typeof map === 'string' ? JSON.parse(map) : map
248
+ const shifted = { ...sourceMap, mappings: `;${sourceMap.mappings}` }
249
+ return typeof map === 'string' ? JSON.stringify(shifted) : shifted
250
+ }
251
+
204
252
  function disable (instrumentation) {
205
253
  disabled.add(instrumentation)
206
254
  }
@@ -0,0 +1,39 @@
1
+ 'use strict'
2
+
3
+ // activationName is the plugin-manager key published after a target is successfully rewritten.
4
+ const registry = [
5
+ { instrumentations: require('./instrumentations/ai') },
6
+ { activationName: '@azure/cosmos', instrumentations: require('./instrumentations/azure-cosmos') },
7
+ { instrumentations: require('./instrumentations/azure-durable-functions') },
8
+ { activationName: 'bullmq', instrumentations: require('./instrumentations/bullmq') },
9
+ { instrumentations: require('./instrumentations/claude-agent-sdk') },
10
+ { instrumentations: require('./instrumentations/graphql') },
11
+ { instrumentations: require('./instrumentations/graphql-jit') },
12
+ { activationName: '@langchain/core', instrumentations: require('./instrumentations/langchain') },
13
+ { activationName: '@langchain/langgraph', instrumentations: require('./instrumentations/langgraph') },
14
+ { activationName: 'mercurius', instrumentations: require('./instrumentations/mercurius') },
15
+ { instrumentations: require('./instrumentations/modelcontextprotocol-sdk') },
16
+ { instrumentations: require('./instrumentations/openai-agents') },
17
+ { instrumentations: require('./instrumentations/playwright') },
18
+ { instrumentations: require('./instrumentations/postgres') },
19
+ { instrumentations: require('./instrumentations/webdriverio') },
20
+ { instrumentations: require('./instrumentations/aws-durable-execution-sdk-js') },
21
+ { instrumentations: require('./instrumentations/supabase') },
22
+ ]
23
+
24
+ const activationNames = new Map()
25
+ for (const { activationName, instrumentations } of registry) {
26
+ if (!activationName) continue
27
+ for (const { module } of instrumentations) activationNames.set(module.name, activationName)
28
+ }
29
+
30
+ const instrumentations = registry.flatMap(entry => entry.instrumentations)
31
+
32
+ /**
33
+ * @param {string} moduleName
34
+ */
35
+ function getRewriteActivationName (moduleName) {
36
+ return activationNames.get(moduleName)
37
+ }
38
+
39
+ module.exports = { getRewriteActivationName, instrumentations, registry }
@@ -1,19 +1,5 @@
1
1
  'use strict'
2
2
 
3
- module.exports = [
4
- ...require('./ai'),
5
- ...require('./azure-cosmos'),
6
- ...require('./azure-durable-functions'),
7
- ...require('./bullmq'),
8
- ...require('./claude-agent-sdk'),
9
- ...require('./graphql'),
10
- ...require('./graphql-jit'),
11
- ...require('./langchain'),
12
- ...require('./langgraph'),
13
- ...require('./mercurius'),
14
- ...require('./modelcontextprotocol-sdk'),
15
- ...require('./openai-agents'),
16
- ...require('./playwright'),
17
- ...require('./webdriverio'),
18
- ...require('./aws-durable-execution-sdk-js'),
19
- ]
3
+ const { instrumentations } = require('../instrumentation-registry')
4
+
5
+ module.exports = instrumentations
@@ -93,6 +93,18 @@ module.exports = [
93
93
  },
94
94
  channelName: 'createRootSuite',
95
95
  },
96
+ {
97
+ module: {
98
+ name: 'playwright',
99
+ versionRange: '>=1.60.0',
100
+ filePath: 'lib/runner/index.js',
101
+ },
102
+ functionQuery: {
103
+ functionName: 'filterForShard',
104
+ kind: 'Sync',
105
+ },
106
+ channelName: 'filterForShard',
107
+ },
96
108
  {
97
109
  module: {
98
110
  name: 'playwright-core',
@@ -0,0 +1,36 @@
1
+ 'use strict'
2
+
3
+ const handlers = ['src/index.js', 'cjs/src/index.js'].map(filePath => ({
4
+ module: {
5
+ name: 'postgres',
6
+ versionRange: '>=3.0.0',
7
+ filePath,
8
+ },
9
+ astQuery: 'Program',
10
+ transform: 'postgresQueryHandlers',
11
+ channelName: 'query',
12
+ }))
13
+
14
+ const preparations = ['src/connection.js', 'cjs/src/connection.js'].map(filePath => ({
15
+ module: {
16
+ name: 'postgres',
17
+ versionRange: '>=3.0.0',
18
+ filePath,
19
+ },
20
+ astQuery: 'Program',
21
+ transform: 'postgresQueryPreparation',
22
+ channelName: 'query:prepare',
23
+ }))
24
+
25
+ const lifecycles = ['src/query.js', 'cjs/src/query.js'].map(filePath => ({
26
+ module: {
27
+ name: 'postgres',
28
+ versionRange: '>=3.0.0',
29
+ filePath,
30
+ },
31
+ astQuery: 'Program',
32
+ transform: 'postgresQueryLifecycle',
33
+ channelName: 'query',
34
+ }))
35
+
36
+ module.exports = [...handlers, ...preparations, ...lifecycles]
@@ -0,0 +1,128 @@
1
+ 'use strict'
2
+
3
+ const versionRange = '>=2.112.2'
4
+
5
+ module.exports = [
6
+ {
7
+ module: {
8
+ name: '@supabase/storage-js',
9
+ versionRange,
10
+ filePath: 'dist/index.cjs',
11
+ },
12
+ functionQuery: { functionName: '_handleRequest', kind: 'Async' },
13
+ channelName: 'handleRequest',
14
+ },
15
+ {
16
+ module: {
17
+ name: '@supabase/storage-js',
18
+ versionRange,
19
+ filePath: 'dist/index.mjs',
20
+ },
21
+ functionQuery: { functionName: '_handleRequest', kind: 'Async' },
22
+ channelName: 'handleRequest',
23
+ },
24
+ {
25
+ module: {
26
+ name: '@supabase/auth-js',
27
+ versionRange,
28
+ filePath: 'dist/main/GoTrueClient.js',
29
+ },
30
+ functionQuery: {
31
+ methodName: 'getUser',
32
+ className: 'GoTrueClient',
33
+ kind: 'Async',
34
+ },
35
+ channelName: 'GoTrueClient_getUser',
36
+ },
37
+ {
38
+ module: {
39
+ name: '@supabase/auth-js',
40
+ versionRange,
41
+ filePath: 'dist/module/GoTrueClient.js',
42
+ },
43
+ functionQuery: {
44
+ methodName: 'getUser',
45
+ className: 'GoTrueClient',
46
+ kind: 'Async',
47
+ },
48
+ channelName: 'GoTrueClient_getUser',
49
+ },
50
+ {
51
+ module: {
52
+ name: '@supabase/realtime-js',
53
+ versionRange,
54
+ filePath: 'dist/main/RealtimeChannel.js',
55
+ },
56
+ functionQuery: {
57
+ methodName: 'send',
58
+ className: 'RealtimeChannel',
59
+ kind: 'Async',
60
+ },
61
+ channelName: 'RealtimeChannel_send',
62
+ },
63
+ {
64
+ module: {
65
+ name: '@supabase/realtime-js',
66
+ versionRange,
67
+ filePath: 'dist/module/RealtimeChannel.js',
68
+ },
69
+ functionQuery: {
70
+ methodName: 'send',
71
+ className: 'RealtimeChannel',
72
+ kind: 'Async',
73
+ },
74
+ channelName: 'RealtimeChannel_send',
75
+ },
76
+ {
77
+ module: {
78
+ name: '@supabase/functions-js',
79
+ versionRange,
80
+ filePath: 'dist/main/FunctionsClient.js',
81
+ },
82
+ functionQuery: {
83
+ methodName: 'invoke',
84
+ className: 'FunctionsClient',
85
+ kind: 'Async',
86
+ },
87
+ channelName: 'FunctionsClient_invoke',
88
+ },
89
+ {
90
+ module: {
91
+ name: '@supabase/functions-js',
92
+ versionRange,
93
+ filePath: 'dist/module/FunctionsClient.js',
94
+ },
95
+ functionQuery: {
96
+ methodName: 'invoke',
97
+ className: 'FunctionsClient',
98
+ kind: 'Async',
99
+ },
100
+ channelName: 'FunctionsClient_invoke',
101
+ },
102
+ {
103
+ module: {
104
+ name: '@supabase/postgrest-js',
105
+ versionRange,
106
+ filePath: 'dist/index.cjs',
107
+ },
108
+ functionQuery: {
109
+ methodName: 'then',
110
+ className: 'PostgrestBuilder',
111
+ kind: 'Async',
112
+ },
113
+ channelName: 'PostgrestBuilder_then',
114
+ },
115
+ {
116
+ module: {
117
+ name: '@supabase/postgrest-js',
118
+ versionRange,
119
+ filePath: 'dist/index.mjs',
120
+ },
121
+ functionQuery: {
122
+ methodName: 'then',
123
+ className: 'PostgrestBuilder',
124
+ kind: 'Async',
125
+ },
126
+ channelName: 'PostgrestBuilder_then',
127
+ },
128
+ ]
@@ -30,6 +30,16 @@
30
30
  "@modelcontextprotocol/sdk/dist/esm/server/mcp.js": "@modelcontextprotocol/sdk",
31
31
  "@openai/agents-openai/dist/openaiChatCompletionsModel.js": "@openai/agents-openai",
32
32
  "@openai/agents-openai/dist/openaiChatCompletionsModel.mjs": "@openai/agents-openai",
33
+ "@supabase/auth-js/dist/main/GoTrueClient.js": "@supabase/auth-js",
34
+ "@supabase/auth-js/dist/module/GoTrueClient.js": "@supabase/auth-js",
35
+ "@supabase/functions-js/dist/main/FunctionsClient.js": "@supabase/functions-js",
36
+ "@supabase/functions-js/dist/module/FunctionsClient.js": "@supabase/functions-js",
37
+ "@supabase/postgrest-js/dist/index.cjs": "@supabase/postgrest-js",
38
+ "@supabase/postgrest-js/dist/index.mjs": "@supabase/postgrest-js",
39
+ "@supabase/realtime-js/dist/main/RealtimeChannel.js": "@supabase/realtime-js",
40
+ "@supabase/realtime-js/dist/module/RealtimeChannel.js": "@supabase/realtime-js",
41
+ "@supabase/storage-js/dist/index.cjs": "@supabase/storage-js",
42
+ "@supabase/storage-js/dist/index.mjs": "@supabase/storage-js",
33
43
  "@wdio/cli/build/index.js": "@wdio/cli",
34
44
  "@wdio/jasmine-framework/build/index.js": "@wdio/jasmine-framework",
35
45
  "@wdio/local-runner/build/index.js": "@wdio/local-runner",
@@ -67,6 +77,12 @@
67
77
  "playwright-core/lib/coreBundle.js": "playwright-core",
68
78
  "playwright/lib/index.js": "playwright",
69
79
  "playwright/lib/runner/index.js": "playwright",
80
+ "postgres/cjs/src/connection.js": "postgres",
81
+ "postgres/cjs/src/index.js": "postgres",
82
+ "postgres/cjs/src/query.js": "postgres",
83
+ "postgres/src/connection.js": "postgres",
84
+ "postgres/src/index.js": "postgres",
85
+ "postgres/src/query.js": "postgres",
70
86
  "webdriver/build/index.js": "webdriver",
71
87
  "webdriver/build/node.js": "webdriver",
72
88
  "webdriverio/build/index.js": "webdriverio",