dd-trace 5.83.0 → 5.85.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 (630) hide show
  1. package/LICENSE-3rdparty.csv +0 -1
  2. package/ci/cypress/polyfills.js +1 -1
  3. package/ci/init.js +5 -5
  4. package/ext/exporters.js +1 -1
  5. package/ext/formats.js +1 -1
  6. package/ext/index.js +1 -1
  7. package/ext/kinds.js +1 -1
  8. package/ext/priority.js +1 -1
  9. package/ext/scopes.js +1 -1
  10. package/ext/tags.js +1 -1
  11. package/ext/types.js +1 -1
  12. package/index.d.ts +115 -2
  13. package/initialize.mjs +47 -31
  14. package/loader-hook.mjs +35 -22
  15. package/package.json +36 -33
  16. package/packages/datadog-code-origin/index.js +12 -10
  17. package/packages/datadog-core/src/utils/src/pick.js +2 -2
  18. package/packages/datadog-esbuild/index.js +75 -79
  19. package/packages/datadog-esbuild/src/log.js +32 -0
  20. package/packages/datadog-esbuild/src/utils.js +12 -8
  21. package/packages/datadog-instrumentations/src/aerospike.js +3 -3
  22. package/packages/datadog-instrumentations/src/ai.js +5 -5
  23. package/packages/datadog-instrumentations/src/amqp10.js +1 -1
  24. package/packages/datadog-instrumentations/src/amqplib.js +1 -1
  25. package/packages/datadog-instrumentations/src/anthropic.js +3 -3
  26. package/packages/datadog-instrumentations/src/apollo-server.js +4 -4
  27. package/packages/datadog-instrumentations/src/apollo.js +2 -2
  28. package/packages/datadog-instrumentations/src/avsc.js +1 -1
  29. package/packages/datadog-instrumentations/src/aws-sdk.js +4 -4
  30. package/packages/datadog-instrumentations/src/azure-event-hubs.js +2 -2
  31. package/packages/datadog-instrumentations/src/azure-functions.js +1 -1
  32. package/packages/datadog-instrumentations/src/azure-service-bus.js +1 -1
  33. package/packages/datadog-instrumentations/src/body-parser.js +2 -2
  34. package/packages/datadog-instrumentations/src/bunyan.js +1 -1
  35. package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
  36. package/packages/datadog-instrumentations/src/child_process.js +7 -7
  37. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +17 -16
  38. package/packages/datadog-instrumentations/src/cookie-parser.js +1 -1
  39. package/packages/datadog-instrumentations/src/couchbase.js +8 -6
  40. package/packages/datadog-instrumentations/src/crypto.js +1 -1
  41. package/packages/datadog-instrumentations/src/cucumber.js +19 -19
  42. package/packages/datadog-instrumentations/src/cypress.js +1 -1
  43. package/packages/datadog-instrumentations/src/dns.js +2 -2
  44. package/packages/datadog-instrumentations/src/elasticsearch.js +2 -2
  45. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +2 -2
  46. package/packages/datadog-instrumentations/src/express-session.js +1 -1
  47. package/packages/datadog-instrumentations/src/express.js +4 -4
  48. package/packages/datadog-instrumentations/src/fastify.js +1 -1
  49. package/packages/datadog-instrumentations/src/fetch.js +2 -2
  50. package/packages/datadog-instrumentations/src/fs.js +7 -7
  51. package/packages/datadog-instrumentations/src/generic-pool.js +2 -2
  52. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +8 -8
  53. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +4 -4
  54. package/packages/datadog-instrumentations/src/google-genai.js +1 -1
  55. package/packages/datadog-instrumentations/src/graphql.js +10 -10
  56. package/packages/datadog-instrumentations/src/grpc/client.js +9 -13
  57. package/packages/datadog-instrumentations/src/grpc/types.js +1 -1
  58. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
  59. package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +1 -1
  60. package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +2 -2
  61. package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -1
  62. package/packages/datadog-instrumentations/src/helpers/register.js +7 -7
  63. package/packages/datadog-instrumentations/src/helpers/rewriter/compiler.js +6 -0
  64. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +1 -0
  65. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -1
  66. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +55 -55
  67. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +74 -17
  68. package/packages/datadog-instrumentations/src/helpers/router-helper.js +7 -7
  69. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +1 -1
  70. package/packages/datadog-instrumentations/src/hono.js +6 -6
  71. package/packages/datadog-instrumentations/src/http/client.js +1 -1
  72. package/packages/datadog-instrumentations/src/http/server.js +4 -4
  73. package/packages/datadog-instrumentations/src/http2/server.js +1 -1
  74. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  75. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  76. package/packages/datadog-instrumentations/src/jest.js +250 -106
  77. package/packages/datadog-instrumentations/src/kafkajs.js +9 -8
  78. package/packages/datadog-instrumentations/src/knex.js +2 -2
  79. package/packages/datadog-instrumentations/src/koa.js +3 -1
  80. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  81. package/packages/datadog-instrumentations/src/light-my-request.js +1 -1
  82. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  83. package/packages/datadog-instrumentations/src/mariadb.js +1 -1
  84. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  85. package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
  86. package/packages/datadog-instrumentations/src/mocha/main.js +24 -24
  87. package/packages/datadog-instrumentations/src/mocha/utils.js +15 -11
  88. package/packages/datadog-instrumentations/src/mocha/worker.js +4 -4
  89. package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
  90. package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
  91. package/packages/datadog-instrumentations/src/mongodb.js +7 -7
  92. package/packages/datadog-instrumentations/src/mongoose.js +10 -10
  93. package/packages/datadog-instrumentations/src/mquery.js +6 -6
  94. package/packages/datadog-instrumentations/src/multer.js +1 -1
  95. package/packages/datadog-instrumentations/src/mysql.js +1 -1
  96. package/packages/datadog-instrumentations/src/net.js +6 -6
  97. package/packages/datadog-instrumentations/src/next.js +6 -6
  98. package/packages/datadog-instrumentations/src/nyc.js +34 -2
  99. package/packages/datadog-instrumentations/src/openai.js +24 -24
  100. package/packages/datadog-instrumentations/src/oracledb.js +2 -2
  101. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
  102. package/packages/datadog-instrumentations/src/passport-http.js +1 -1
  103. package/packages/datadog-instrumentations/src/passport-local.js +1 -1
  104. package/packages/datadog-instrumentations/src/passport-utils.js +1 -1
  105. package/packages/datadog-instrumentations/src/passport.js +1 -1
  106. package/packages/datadog-instrumentations/src/pg.js +3 -3
  107. package/packages/datadog-instrumentations/src/pino.js +2 -2
  108. package/packages/datadog-instrumentations/src/playwright.js +71 -67
  109. package/packages/datadog-instrumentations/src/prisma.js +24 -78
  110. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  111. package/packages/datadog-instrumentations/src/promise.js +1 -1
  112. package/packages/datadog-instrumentations/src/protobufjs.js +6 -6
  113. package/packages/datadog-instrumentations/src/q.js +2 -2
  114. package/packages/datadog-instrumentations/src/redis.js +2 -2
  115. package/packages/datadog-instrumentations/src/rhea.js +5 -5
  116. package/packages/datadog-instrumentations/src/router.js +8 -8
  117. package/packages/datadog-instrumentations/src/selenium.js +3 -3
  118. package/packages/datadog-instrumentations/src/sequelize.js +1 -1
  119. package/packages/datadog-instrumentations/src/sharedb.js +2 -2
  120. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  121. package/packages/datadog-instrumentations/src/undici.js +2 -2
  122. package/packages/datadog-instrumentations/src/url.js +5 -5
  123. package/packages/datadog-instrumentations/src/vitest.js +56 -45
  124. package/packages/datadog-instrumentations/src/when.js +1 -1
  125. package/packages/datadog-instrumentations/src/winston.js +1 -1
  126. package/packages/datadog-instrumentations/src/ws.js +128 -41
  127. package/packages/datadog-plugin-aerospike/src/index.js +4 -4
  128. package/packages/datadog-plugin-ai/src/index.js +1 -1
  129. package/packages/datadog-plugin-ai/src/tracing.js +2 -2
  130. package/packages/datadog-plugin-ai/src/utils.js +1 -1
  131. package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
  132. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  133. package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
  134. package/packages/datadog-plugin-amqplib/src/client.js +2 -2
  135. package/packages/datadog-plugin-amqplib/src/consumer.js +2 -2
  136. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  137. package/packages/datadog-plugin-amqplib/src/producer.js +2 -2
  138. package/packages/datadog-plugin-amqplib/src/util.js +1 -1
  139. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  140. package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
  141. package/packages/datadog-plugin-apollo/src/gateway/fetch.js +1 -1
  142. package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
  143. package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -5
  144. package/packages/datadog-plugin-apollo/src/index.js +1 -1
  145. package/packages/datadog-plugin-avsc/src/schema_iterator.js +3 -3
  146. package/packages/datadog-plugin-aws-sdk/src/base.js +11 -10
  147. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  148. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
  149. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +24 -24
  150. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
  151. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -1
  152. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
  153. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +3 -3
  154. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
  155. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
  156. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +5 -5
  157. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +12 -12
  158. package/packages/datadog-plugin-aws-sdk/src/util.js +1 -1
  159. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  160. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +3 -3
  161. package/packages/datadog-plugin-azure-functions/src/index.js +11 -10
  162. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  163. package/packages/datadog-plugin-azure-service-bus/src/producer.js +3 -3
  164. package/packages/datadog-plugin-bullmq/src/consumer.js +2 -2
  165. package/packages/datadog-plugin-bullmq/src/index.js +1 -1
  166. package/packages/datadog-plugin-bullmq/src/producer.js +11 -11
  167. package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
  168. package/packages/datadog-plugin-child_process/src/index.js +2 -2
  169. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -5
  170. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  171. package/packages/datadog-plugin-couchbase/src/index.js +3 -3
  172. package/packages/datadog-plugin-cucumber/src/index.js +46 -45
  173. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +68 -55
  174. package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
  175. package/packages/datadog-plugin-cypress/src/support.js +56 -9
  176. package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
  177. package/packages/datadog-plugin-dns/src/index.js +1 -1
  178. package/packages/datadog-plugin-dns/src/lookup.js +2 -2
  179. package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
  180. package/packages/datadog-plugin-dns/src/resolve.js +2 -2
  181. package/packages/datadog-plugin-dns/src/reverse.js +2 -2
  182. package/packages/datadog-plugin-elasticsearch/src/index.js +2 -2
  183. package/packages/datadog-plugin-express/src/index.js +1 -1
  184. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  185. package/packages/datadog-plugin-fs/src/index.js +2 -2
  186. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +2 -2
  187. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +8 -6
  188. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -1
  189. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +11 -10
  190. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +6 -6
  191. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  192. package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
  193. package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
  194. package/packages/datadog-plugin-google-genai/src/index.js +1 -1
  195. package/packages/datadog-plugin-google-genai/src/tracing.js +2 -2
  196. package/packages/datadog-plugin-graphql/src/execute.js +2 -2
  197. package/packages/datadog-plugin-graphql/src/index.js +2 -2
  198. package/packages/datadog-plugin-graphql/src/parse.js +1 -1
  199. package/packages/datadog-plugin-graphql/src/resolve.js +6 -6
  200. package/packages/datadog-plugin-graphql/src/utils.js +1 -1
  201. package/packages/datadog-plugin-graphql/src/validate.js +2 -2
  202. package/packages/datadog-plugin-grpc/src/client.js +3 -3
  203. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  204. package/packages/datadog-plugin-grpc/src/server.js +3 -3
  205. package/packages/datadog-plugin-grpc/src/util.js +2 -2
  206. package/packages/datadog-plugin-http/src/client.js +10 -10
  207. package/packages/datadog-plugin-http/src/index.js +1 -1
  208. package/packages/datadog-plugin-http2/src/client.js +6 -6
  209. package/packages/datadog-plugin-http2/src/index.js +1 -1
  210. package/packages/datadog-plugin-http2/src/server.js +1 -1
  211. package/packages/datadog-plugin-jest/src/index.js +39 -22
  212. package/packages/datadog-plugin-jest/src/util.js +1 -1
  213. package/packages/datadog-plugin-kafkajs/src/consumer.js +5 -5
  214. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  215. package/packages/datadog-plugin-kafkajs/src/producer.js +5 -5
  216. package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
  217. package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
  218. package/packages/datadog-plugin-langchain/src/tracing.js +4 -4
  219. package/packages/datadog-plugin-memcached/src/index.js +2 -2
  220. package/packages/datadog-plugin-mocha/src/index.js +12 -12
  221. package/packages/datadog-plugin-moleculer/src/client.js +1 -1
  222. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  223. package/packages/datadog-plugin-moleculer/src/server.js +2 -2
  224. package/packages/datadog-plugin-moleculer/src/util.js +1 -1
  225. package/packages/datadog-plugin-mongodb-core/src/index.js +5 -5
  226. package/packages/datadog-plugin-mysql/src/index.js +2 -2
  227. package/packages/datadog-plugin-net/src/ipc.js +2 -2
  228. package/packages/datadog-plugin-net/src/tcp.js +4 -4
  229. package/packages/datadog-plugin-next/src/index.js +4 -4
  230. package/packages/datadog-plugin-nyc/src/index.js +60 -0
  231. package/packages/datadog-plugin-openai/src/index.js +1 -1
  232. package/packages/datadog-plugin-openai/src/services.js +3 -3
  233. package/packages/datadog-plugin-openai/src/stream-helpers.js +1 -1
  234. package/packages/datadog-plugin-openai/src/tracing.js +10 -10
  235. package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
  236. package/packages/datadog-plugin-oracledb/src/index.js +1 -1
  237. package/packages/datadog-plugin-pg/src/index.js +2 -2
  238. package/packages/datadog-plugin-playwright/src/index.js +42 -42
  239. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +95 -0
  240. package/packages/datadog-plugin-prisma/src/index.js +129 -10
  241. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +3 -3
  242. package/packages/datadog-plugin-redis/src/index.js +2 -2
  243. package/packages/datadog-plugin-restify/src/index.js +1 -1
  244. package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
  245. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  246. package/packages/datadog-plugin-rhea/src/producer.js +2 -2
  247. package/packages/datadog-plugin-router/src/index.js +3 -3
  248. package/packages/datadog-plugin-selenium/src/index.js +2 -2
  249. package/packages/datadog-plugin-sharedb/src/index.js +2 -2
  250. package/packages/datadog-plugin-tedious/src/index.js +2 -2
  251. package/packages/datadog-plugin-undici/src/index.js +5 -5
  252. package/packages/datadog-plugin-vitest/src/index.js +39 -18
  253. package/packages/datadog-plugin-ws/src/close.js +10 -11
  254. package/packages/datadog-plugin-ws/src/index.js +1 -1
  255. package/packages/datadog-plugin-ws/src/producer.js +8 -9
  256. package/packages/datadog-plugin-ws/src/receiver.js +8 -9
  257. package/packages/datadog-plugin-ws/src/server.js +17 -12
  258. package/packages/datadog-plugin-ws/src/util.js +48 -16
  259. package/packages/datadog-shimmer/src/shimmer.js +5 -8
  260. package/packages/dd-trace/index.js +2 -2
  261. package/packages/dd-trace/src/agent/info.js +57 -0
  262. package/packages/dd-trace/src/agent/url.js +28 -0
  263. package/packages/dd-trace/src/aiguard/client.js +3 -3
  264. package/packages/dd-trace/src/aiguard/sdk.js +6 -6
  265. package/packages/dd-trace/src/aiguard/tags.js +1 -1
  266. package/packages/dd-trace/src/analytics_sampler.js +1 -1
  267. package/packages/dd-trace/src/appsec/activation.js +1 -1
  268. package/packages/dd-trace/src/appsec/addresses.js +1 -1
  269. package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
  270. package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
  271. package/packages/dd-trace/src/appsec/blocking.js +5 -5
  272. package/packages/dd-trace/src/appsec/channels.js +1 -1
  273. package/packages/dd-trace/src/appsec/graphql.js +13 -13
  274. package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
  275. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  276. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +6 -5
  277. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +2 -2
  278. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
  279. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +148 -148
  280. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +148 -148
  281. package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
  282. package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
  283. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +7 -8
  284. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +2 -2
  285. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
  286. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +2 -2
  287. package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +3 -3
  288. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  289. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -2
  290. package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
  291. package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
  292. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +17 -9
  293. package/packages/dd-trace/src/appsec/iast/index.js +2 -2
  294. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +9 -9
  295. package/packages/dd-trace/src/appsec/iast/path-line.js +6 -6
  296. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +11 -11
  297. package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
  298. package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
  299. package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
  300. package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
  301. package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
  302. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +2 -2
  303. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -6
  304. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
  305. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +5 -5
  306. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +4 -4
  307. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +5 -5
  308. package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
  309. package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
  310. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +8 -8
  311. package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
  312. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +2 -2
  313. package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
  314. package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
  315. package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
  316. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
  317. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
  318. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
  319. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
  320. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
  321. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +8 -8
  322. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +1 -1
  323. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +12 -11
  324. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +5 -5
  325. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
  326. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
  327. package/packages/dd-trace/src/appsec/index.js +65 -27
  328. package/packages/dd-trace/src/appsec/rasp/command_injection.js +3 -3
  329. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
  330. package/packages/dd-trace/src/appsec/rasp/index.js +2 -2
  331. package/packages/dd-trace/src/appsec/rasp/lfi.js +5 -5
  332. package/packages/dd-trace/src/appsec/rasp/sql_injection.js +2 -2
  333. package/packages/dd-trace/src/appsec/rasp/ssrf.js +1 -1
  334. package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
  335. package/packages/dd-trace/src/appsec/rc-products.js +1 -1
  336. package/packages/dd-trace/src/appsec/remote_config.js +3 -3
  337. package/packages/dd-trace/src/appsec/reporter.js +11 -11
  338. package/packages/dd-trace/src/appsec/rule_manager.js +1 -1
  339. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  340. package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
  341. package/packages/dd-trace/src/appsec/sdk/track_event.js +7 -7
  342. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +1 -1
  343. package/packages/dd-trace/src/appsec/sdk/utils.js +1 -1
  344. package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
  345. package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
  346. package/packages/dd-trace/src/appsec/telemetry/index.js +5 -5
  347. package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
  348. package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
  349. package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
  350. package/packages/dd-trace/src/appsec/user_tracking.js +7 -7
  351. package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
  352. package/packages/dd-trace/src/appsec/waf/index.js +1 -1
  353. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +2 -2
  354. package/packages/dd-trace/src/azure_metadata.js +16 -9
  355. package/packages/dd-trace/src/baggage.js +1 -1
  356. package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
  357. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -5
  358. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +9 -9
  359. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +8 -8
  360. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +11 -11
  361. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +4 -3
  362. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +8 -6
  363. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -0
  364. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +4 -3
  365. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +39 -20
  366. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +22 -22
  367. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
  368. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
  369. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +8 -8
  370. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +3 -3
  371. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +17 -12
  372. package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +92 -0
  373. package/packages/dd-trace/src/ci-visibility/telemetry.js +8 -4
  374. package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +1 -1
  375. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +6 -6
  376. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +61 -0
  377. package/packages/dd-trace/src/config/defaults.js +1 -1
  378. package/packages/dd-trace/src/config/git_properties.js +1 -1
  379. package/packages/dd-trace/src/config/helper.js +2 -2
  380. package/packages/dd-trace/src/config/index.js +645 -641
  381. package/packages/dd-trace/src/config/remote_config.js +2 -1
  382. package/packages/dd-trace/src/config/stable.js +2 -2
  383. package/packages/dd-trace/src/config/supported-configurations.json +2 -1
  384. package/packages/dd-trace/src/constants.js +3 -3
  385. package/packages/dd-trace/src/crashtracking/crashtracker.js +8 -11
  386. package/packages/dd-trace/src/datastreams/checkpointer.js +1 -1
  387. package/packages/dd-trace/src/datastreams/context.js +1 -1
  388. package/packages/dd-trace/src/datastreams/encoding.js +1 -1
  389. package/packages/dd-trace/src/datastreams/fnv.js +1 -1
  390. package/packages/dd-trace/src/datastreams/index.js +8 -8
  391. package/packages/dd-trace/src/datastreams/pathway.js +5 -3
  392. package/packages/dd-trace/src/datastreams/processor.js +14 -12
  393. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +27 -25
  394. package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
  395. package/packages/dd-trace/src/datastreams/size.js +3 -3
  396. package/packages/dd-trace/src/datastreams/writer.js +5 -11
  397. package/packages/dd-trace/src/debugger/config.js +2 -1
  398. package/packages/dd-trace/src/debugger/constants.js +7 -0
  399. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +14 -10
  400. package/packages/dd-trace/src/debugger/devtools_client/condition.js +2 -2
  401. package/packages/dd-trace/src/debugger/devtools_client/config.js +6 -12
  402. package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
  403. package/packages/dd-trace/src/debugger/devtools_client/index.js +32 -25
  404. package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
  405. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +10 -11
  406. package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
  407. package/packages/dd-trace/src/debugger/devtools_client/send.js +54 -10
  408. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +94 -37
  409. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +4 -4
  410. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +7 -7
  411. package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
  412. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +1 -1
  413. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -1
  414. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +10 -1
  415. package/packages/dd-trace/src/debugger/devtools_client/state.js +65 -8
  416. package/packages/dd-trace/src/debugger/devtools_client/status.js +9 -8
  417. package/packages/dd-trace/src/debugger/index.js +95 -37
  418. package/packages/dd-trace/src/dogstatsd.js +17 -18
  419. package/packages/dd-trace/src/encode/0.4.js +7 -6
  420. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
  421. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +3 -3
  422. package/packages/dd-trace/src/encode/span-stats.js +2 -2
  423. package/packages/dd-trace/src/encode/tags-processors.js +1 -1
  424. package/packages/dd-trace/src/exporters/agent/index.js +5 -9
  425. package/packages/dd-trace/src/exporters/agent/writer.js +5 -4
  426. package/packages/dd-trace/src/exporters/common/agents.js +1 -1
  427. package/packages/dd-trace/src/exporters/common/{agent-info-exporter.js → buffering-exporter.js} +12 -39
  428. package/packages/dd-trace/src/exporters/common/docker.js +11 -7
  429. package/packages/dd-trace/src/exporters/common/request.js +28 -8
  430. package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
  431. package/packages/dd-trace/src/exporters/common/writer.js +2 -0
  432. package/packages/dd-trace/src/exporters/span-stats/index.js +4 -11
  433. package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -3
  434. package/packages/dd-trace/src/external-logger/src/index.js +4 -4
  435. package/packages/dd-trace/src/flare/index.js +3 -3
  436. package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
  437. package/packages/dd-trace/src/heap_snapshots.js +1 -1
  438. package/packages/dd-trace/src/id.js +1 -1
  439. package/packages/dd-trace/src/iitm.js +1 -1
  440. package/packages/dd-trace/src/lambda/handler.js +1 -1
  441. package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
  442. package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
  443. package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
  444. package/packages/dd-trace/src/llmobs/constants/text.js +1 -1
  445. package/packages/dd-trace/src/llmobs/constants/writers.js +1 -1
  446. package/packages/dd-trace/src/llmobs/index.js +2 -4
  447. package/packages/dd-trace/src/llmobs/noop.js +2 -2
  448. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +8 -8
  449. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +2 -2
  450. package/packages/dd-trace/src/llmobs/plugins/anthropic.js +5 -5
  451. package/packages/dd-trace/src/llmobs/plugins/base.js +1 -1
  452. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +8 -8
  453. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +2 -2
  454. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +15 -15
  455. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +2 -2
  456. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +5 -5
  457. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  458. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +3 -3
  459. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +1 -1
  460. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +17 -17
  461. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +3 -3
  462. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +6 -6
  463. package/packages/dd-trace/src/llmobs/sdk.js +11 -11
  464. package/packages/dd-trace/src/llmobs/span_processor.js +6 -6
  465. package/packages/dd-trace/src/llmobs/tagger.js +4 -4
  466. package/packages/dd-trace/src/llmobs/telemetry.js +8 -8
  467. package/packages/dd-trace/src/llmobs/util.js +1 -1
  468. package/packages/dd-trace/src/llmobs/writers/base.js +11 -17
  469. package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
  470. package/packages/dd-trace/src/llmobs/writers/spans.js +3 -3
  471. package/packages/dd-trace/src/llmobs/writers/util.js +4 -10
  472. package/packages/dd-trace/src/log/channels.js +2 -2
  473. package/packages/dd-trace/src/log/index.js +46 -31
  474. package/packages/dd-trace/src/log/log.js +1 -1
  475. package/packages/dd-trace/src/log/writer.js +14 -79
  476. package/packages/dd-trace/src/noop/span.js +2 -2
  477. package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
  478. package/packages/dd-trace/src/openfeature/flagging_provider.js +4 -4
  479. package/packages/dd-trace/src/openfeature/index.js +2 -2
  480. package/packages/dd-trace/src/openfeature/noop.js +3 -3
  481. package/packages/dd-trace/src/openfeature/remote_config.js +1 -1
  482. package/packages/dd-trace/src/openfeature/writers/base.js +14 -20
  483. package/packages/dd-trace/src/openfeature/writers/exposures.js +10 -10
  484. package/packages/dd-trace/src/openfeature/writers/util.js +4 -9
  485. package/packages/dd-trace/src/opentelemetry/context_manager.js +48 -29
  486. package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
  487. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +2 -2
  488. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +10 -10
  489. package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
  490. package/packages/dd-trace/src/opentelemetry/metrics/index.js +2 -2
  491. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
  492. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +1 -1
  493. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +11 -11
  494. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +18 -18
  495. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +6 -6
  496. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +10 -7
  497. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +3 -3
  498. package/packages/dd-trace/src/opentelemetry/span.js +8 -8
  499. package/packages/dd-trace/src/opentelemetry/span_context.js +1 -1
  500. package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
  501. package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
  502. package/packages/dd-trace/src/opentracing/propagation/log.js +2 -2
  503. package/packages/dd-trace/src/opentracing/propagation/text_map.js +14 -12
  504. package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -0
  505. package/packages/dd-trace/src/opentracing/span.js +20 -20
  506. package/packages/dd-trace/src/opentracing/span_context.js +3 -3
  507. package/packages/dd-trace/src/opentracing/tracer.js +3 -3
  508. package/packages/dd-trace/src/payload-tagging/config/index.js +1 -1
  509. package/packages/dd-trace/src/payload-tagging/index.js +1 -1
  510. package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
  511. package/packages/dd-trace/src/plugin_manager.js +6 -6
  512. package/packages/dd-trace/src/plugins/apollo.js +4 -4
  513. package/packages/dd-trace/src/plugins/ci_plugin.js +101 -36
  514. package/packages/dd-trace/src/plugins/database.js +1 -1
  515. package/packages/dd-trace/src/plugins/index.js +1 -1
  516. package/packages/dd-trace/src/plugins/log_plugin.js +2 -2
  517. package/packages/dd-trace/src/plugins/outbound.js +9 -8
  518. package/packages/dd-trace/src/plugins/plugin.js +17 -7
  519. package/packages/dd-trace/src/plugins/producer.js +6 -5
  520. package/packages/dd-trace/src/plugins/tracing.js +37 -8
  521. package/packages/dd-trace/src/plugins/util/ci.js +40 -40
  522. package/packages/dd-trace/src/plugins/util/env.js +2 -2
  523. package/packages/dd-trace/src/plugins/util/git-cache.js +2 -2
  524. package/packages/dd-trace/src/plugins/util/git.js +20 -18
  525. package/packages/dd-trace/src/plugins/util/inferred_proxy.js +6 -6
  526. package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
  527. package/packages/dd-trace/src/plugins/util/llm.js +1 -1
  528. package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -3
  529. package/packages/dd-trace/src/plugins/util/tags.js +1 -1
  530. package/packages/dd-trace/src/plugins/util/test.js +46 -40
  531. package/packages/dd-trace/src/plugins/util/url.js +1 -1
  532. package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
  533. package/packages/dd-trace/src/plugins/util/user-provided-git.js +2 -2
  534. package/packages/dd-trace/src/plugins/util/web.js +12 -12
  535. package/packages/dd-trace/src/priority_sampler.js +4 -4
  536. package/packages/dd-trace/src/process-tags/index.js +2 -2
  537. package/packages/dd-trace/src/profiler.js +1 -1
  538. package/packages/dd-trace/src/profiling/config.js +11 -14
  539. package/packages/dd-trace/src/profiling/constants.js +2 -2
  540. package/packages/dd-trace/src/profiling/exporter_cli.js +3 -3
  541. package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
  542. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +8 -8
  543. package/packages/dd-trace/src/profiling/index.js +1 -1
  544. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  545. package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
  546. package/packages/dd-trace/src/profiling/profiler.js +21 -23
  547. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  548. package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
  549. package/packages/dd-trace/src/profiling/profilers/events.js +27 -19
  550. package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
  551. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  552. package/packages/dd-trace/src/profiling/tagger.js +1 -1
  553. package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
  554. package/packages/dd-trace/src/proxy.js +13 -13
  555. package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
  556. package/packages/dd-trace/src/remote_config/capabilities.js +1 -0
  557. package/packages/dd-trace/src/remote_config/index.js +17 -22
  558. package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
  559. package/packages/dd-trace/src/ritm.js +1 -1
  560. package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
  561. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
  562. package/packages/dd-trace/src/serverless.js +1 -1
  563. package/packages/dd-trace/src/service-naming/extra-services.js +1 -1
  564. package/packages/dd-trace/src/service-naming/index.js +1 -1
  565. package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
  566. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +25 -25
  567. package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +3 -3
  568. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +18 -18
  569. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +23 -23
  570. package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +9 -9
  571. package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
  572. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +21 -21
  573. package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +3 -3
  574. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -17
  575. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +23 -23
  576. package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +9 -9
  577. package/packages/dd-trace/src/span_format.js +4 -4
  578. package/packages/dd-trace/src/span_sampler.js +1 -1
  579. package/packages/dd-trace/src/span_stats.js +11 -11
  580. package/packages/dd-trace/src/spanleak.js +1 -1
  581. package/packages/dd-trace/src/standalone/index.js +1 -1
  582. package/packages/dd-trace/src/standalone/product.js +2 -2
  583. package/packages/dd-trace/src/standalone/tracesource.js +1 -1
  584. package/packages/dd-trace/src/startup-log.js +4 -4
  585. package/packages/dd-trace/src/tagger.js +3 -1
  586. package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
  587. package/packages/dd-trace/src/telemetry/endpoints.js +4 -4
  588. package/packages/dd-trace/src/telemetry/index.js +1 -1
  589. package/packages/dd-trace/src/telemetry/logs/index.js +2 -2
  590. package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
  591. package/packages/dd-trace/src/telemetry/metrics.js +6 -6
  592. package/packages/dd-trace/src/telemetry/send-data.js +5 -5
  593. package/packages/dd-trace/src/telemetry/telemetry.js +10 -10
  594. package/packages/dd-trace/src/tracer.js +3 -2
  595. package/packages/dd-trace/src/util.js +1 -1
  596. package/scripts/preinstall.js +1 -1
  597. package/vendor/dist/@datadog/sketches-js/index.js +1 -1
  598. package/vendor/dist/@datadog/source-map/index.js +1 -1
  599. package/vendor/dist/@isaacs/ttlcache/index.js +1 -1
  600. package/vendor/dist/@opentelemetry/core/index.js +1 -1
  601. package/vendor/dist/@opentelemetry/resources/index.js +1 -1
  602. package/vendor/dist/astring/index.js +1 -1
  603. package/vendor/dist/crypto-randomuuid/index.js +1 -1
  604. package/vendor/dist/escape-string-regexp/index.js +1 -1
  605. package/vendor/dist/esquery/index.js +1 -1
  606. package/vendor/dist/ignore/index.js +1 -1
  607. package/vendor/dist/istanbul-lib-coverage/index.js +1 -1
  608. package/vendor/dist/jest-docblock/index.js +1 -1
  609. package/vendor/dist/jsonpath-plus/index.js +1 -1
  610. package/vendor/dist/limiter/index.js +1 -1
  611. package/vendor/dist/lodash.sortby/index.js +1 -1
  612. package/vendor/dist/lru-cache/index.js +1 -1
  613. package/vendor/dist/meriyah/index.js +1 -1
  614. package/vendor/dist/module-details-from-path/index.js +1 -1
  615. package/vendor/dist/mutexify/promise/index.js +1 -1
  616. package/vendor/dist/opentracing/index.js +1 -1
  617. package/vendor/dist/path-to-regexp/index.js +1 -1
  618. package/vendor/dist/pprof-format/index.js +1 -1
  619. package/vendor/dist/protobufjs/index.js +1 -1
  620. package/vendor/dist/protobufjs/minimal/index.js +1 -1
  621. package/vendor/dist/retry/index.js +1 -1
  622. package/vendor/dist/rfdc/index.js +1 -1
  623. package/vendor/dist/semifies/index.js +1 -1
  624. package/vendor/dist/shell-quote/index.js +1 -1
  625. package/vendor/dist/source-map/index.js +1 -1
  626. package/vendor/dist/source-map/lib/util/index.js +1 -1
  627. package/vendor/dist/tlhunter-sorted-set/index.js +1 -1
  628. package/vendor/dist/ttl-set/index.js +1 -1
  629. package/packages/datadog-plugin-prisma/src/client.js +0 -60
  630. package/packages/datadog-plugin-prisma/src/engine.js +0 -81
@@ -13,7 +13,7 @@ const {
13
13
  TELEMETRY_ENDPOINT_PAYLOAD_BYTES,
14
14
  TELEMETRY_ENDPOINT_PAYLOAD_REQUESTS_MS,
15
15
  TELEMETRY_ENDPOINT_PAYLOAD_REQUESTS_ERRORS,
16
- TELEMETRY_ENDPOINT_PAYLOAD_DROPPED
16
+ TELEMETRY_ENDPOINT_PAYLOAD_DROPPED,
17
17
  } = require('../../../ci-visibility/telemetry')
18
18
 
19
19
  class Writer extends BaseWriter {
@@ -31,10 +31,10 @@ class Writer extends BaseWriter {
31
31
  method: 'POST',
32
32
  headers: {
33
33
  'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
34
- 'Content-Type': 'application/msgpack'
34
+ 'Content-Type': 'application/msgpack',
35
35
  },
36
36
  timeout: 15_000,
37
- url: this._url
37
+ url: this._url,
38
38
  }
39
39
 
40
40
  if (this._evpProxyPrefix) {
@@ -43,6 +43,7 @@ class Writer extends BaseWriter {
43
43
  options.headers['X-Datadog-EVP-Subdomain'] = 'citestcycle-intake'
44
44
  }
45
45
 
46
+ // eslint-disable-next-line eslint-rules/eslint-log-printf-style
46
47
  log.debug(() => `Request to the intake: ${safeJSONStringify(options)}`)
47
48
 
48
49
  const startRequestTime = Date.now()
@@ -7,8 +7,9 @@ const { getSkippableSuites: getSkippableSuitesRequest } = require('../intelligen
7
7
  const { getKnownTests: getKnownTestsRequest } = require('../early-flake-detection/get-known-tests')
8
8
  const { getTestManagementTests: getTestManagementTestsRequest } =
9
9
  require('../test-management/get-test-management-tests')
10
+ const { uploadCoverageReport: uploadCoverageReportRequest } = require('../requests/upload-coverage-report')
10
11
  const log = require('../../log')
11
- const AgentInfoExporter = require('../../exporters/common/agent-info-exporter')
12
+ const BufferingExporter = require('../../exporters/common/buffering-exporter')
12
13
  const { GIT_REPOSITORY_URL, GIT_COMMIT_SHA } = require('../../plugins/util/tags')
13
14
  const { sendGitMetadata: sendGitMetadataRequest } = require('./git/git_metadata')
14
15
 
@@ -34,7 +35,7 @@ function getIsTestSessionTrace (trace) {
34
35
  const GIT_UPLOAD_TIMEOUT = 60_000 // 60 seconds
35
36
  const CAN_USE_CI_VIS_PROTOCOL_TIMEOUT = GIT_UPLOAD_TIMEOUT
36
37
 
37
- class CiVisibilityExporter extends AgentInfoExporter {
38
+ class CiVisibilityExporter extends BufferingExporter {
38
39
  constructor (config) {
39
40
  super(config)
40
41
  this._timer = undefined
@@ -103,10 +104,6 @@ class CiVisibilityExporter extends AgentInfoExporter {
103
104
  )
104
105
  }
105
106
 
106
- shouldRequestLibraryConfiguration () {
107
- return this._config.isIntelligentTestRunnerEnabled
108
- }
109
-
110
107
  canReportSessionTraces () {
111
108
  return this._canUseCiVisProtocol
112
109
  }
@@ -124,7 +121,7 @@ class CiVisibilityExporter extends AgentInfoExporter {
124
121
  isGzipCompatible: this._isGzipCompatible,
125
122
  evpProxyPrefix: this.evpProxyPrefix,
126
123
  custom: getTestConfigurationTags(this._config.tags),
127
- ...testConfiguration
124
+ ...testConfiguration,
128
125
  }
129
126
  }
130
127
 
@@ -163,9 +160,6 @@ class CiVisibilityExporter extends AgentInfoExporter {
163
160
  getLibraryConfiguration (testConfiguration, callback) {
164
161
  const { repositoryUrl } = testConfiguration
165
162
  this.sendGitMetadata(repositoryUrl)
166
- if (!this.shouldRequestLibraryConfiguration()) {
167
- return callback(null, {})
168
- }
169
163
  this._canUseCiVisProtocolPromise.then((canUseCiVisProtocol) => {
170
164
  if (!canUseCiVisProtocol) {
171
165
  return callback(null, {})
@@ -218,7 +212,8 @@ class CiVisibilityExporter extends AgentInfoExporter {
218
212
  isKnownTestsEnabled,
219
213
  isTestManagementEnabled,
220
214
  testManagementAttemptToFixRetries,
221
- isImpactedTestsEnabled
215
+ isImpactedTestsEnabled,
216
+ isCoverageReportUploadEnabled,
222
217
  } = remoteConfiguration
223
218
  return {
224
219
  isCodeCoverageEnabled,
@@ -235,7 +230,8 @@ class CiVisibilityExporter extends AgentInfoExporter {
235
230
  isTestManagementEnabled: isTestManagementEnabled && this._config.isTestManagementEnabled,
236
231
  testManagementAttemptToFixRetries:
237
232
  testManagementAttemptToFixRetries ?? this._config.testManagementAttemptToFixRetries,
238
- isImpactedTestsEnabled: isImpactedTestsEnabled && this._config.isImpactedTestsEnabled
233
+ isImpactedTestsEnabled: isImpactedTestsEnabled && this._config.isImpactedTestsEnabled,
234
+ isCoverageReportUploadEnabled,
239
235
  }
240
236
  }
241
237
 
@@ -291,7 +287,7 @@ class CiVisibilityExporter extends AgentInfoExporter {
291
287
  formatLogMessage (testEnvironmentMetadata, logMessage) {
292
288
  const {
293
289
  [GIT_REPOSITORY_URL]: gitRepositoryUrl,
294
- [GIT_COMMIT_SHA]: gitCommitSha
290
+ [GIT_COMMIT_SHA]: gitCommitSha,
295
291
  } = testEnvironmentMetadata
296
292
 
297
293
  const { service, env, version } = this._config
@@ -300,7 +296,7 @@ class CiVisibilityExporter extends AgentInfoExporter {
300
296
  ddtags: [
301
297
  ...(logMessage.ddtags || []),
302
298
  `${GIT_REPOSITORY_URL}:${gitRepositoryUrl}`,
303
- `${GIT_COMMIT_SHA}:${gitCommitSha}`
299
+ `${GIT_COMMIT_SHA}:${gitCommitSha}`,
304
300
  ].join(','),
305
301
  level: 'error',
306
302
  service,
@@ -308,10 +304,10 @@ class CiVisibilityExporter extends AgentInfoExporter {
308
304
  ...(logMessage.dd || []),
309
305
  service,
310
306
  env,
311
- version
307
+ version,
312
308
  },
313
309
  ddsource: 'dd_debugger',
314
- ...logMessage
310
+ ...logMessage,
315
311
  }
316
312
  }
317
313
 
@@ -338,7 +334,7 @@ class CiVisibilityExporter extends AgentInfoExporter {
338
334
  const writers = [
339
335
  this._writer,
340
336
  this._coverageWriter,
341
- this._logsWriter
337
+ this._logsWriter,
342
338
  ].filter(Boolean)
343
339
 
344
340
  let remaining = writers.length
@@ -354,13 +350,13 @@ class CiVisibilityExporter extends AgentInfoExporter {
354
350
  }
355
351
  }
356
352
 
357
- writers.forEach(writer => writer.flush(onFlushComplete))
353
+ for (const writer of writers) writer.flush(onFlushComplete)
358
354
  }
359
355
 
360
356
  exportUncodedCoverages () {
361
- this._coverageBuffer.forEach(oldCoveragePayload => {
357
+ for (const oldCoveragePayload of this._coverageBuffer) {
362
358
  this.exportCoverage(oldCoveragePayload)
363
- })
359
+ }
364
360
  this._coverageBuffer = []
365
361
  }
366
362
 
@@ -393,6 +389,29 @@ class CiVisibilityExporter extends AgentInfoExporter {
393
389
  })
394
390
  }
395
391
  }
392
+
393
+ /**
394
+ * Uploads a single coverage report to the CI intake.
395
+ * @param {object} options - Upload options
396
+ * @param {string} options.filePath - Path to the coverage report file
397
+ * @param {string} options.format - Format of the coverage report
398
+ * @param {object} options.testEnvironmentMetadata - Test environment metadata containing git/CI tags
399
+ * @param {Function} callback - Callback function (err)
400
+ */
401
+ uploadCoverageReport ({ filePath, format, testEnvironmentMetadata }, callback) {
402
+ if (!this._codeCoverageReportUrl) {
403
+ return callback(new Error('Coverage report upload URL not configured'))
404
+ }
405
+
406
+ uploadCoverageReportRequest({
407
+ filePath,
408
+ format,
409
+ testEnvironmentMetadata,
410
+ url: this._codeCoverageReportUrl,
411
+ isEvpProxy: !!this._isUsingEvpProxy,
412
+ evpProxyPrefix: this.evpProxyPrefix,
413
+ }, callback)
414
+ }
396
415
  }
397
416
 
398
417
  module.exports = CiVisibilityExporter
@@ -16,7 +16,7 @@ const {
16
16
  getCommitsRevList,
17
17
  isShallowRepository,
18
18
  unshallowRepository,
19
- isGitAvailable
19
+ isGitAvailable,
20
20
  } = require('../../../plugins/util/git')
21
21
 
22
22
  const {
@@ -29,7 +29,7 @@ const {
29
29
  TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES,
30
30
  TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_MS,
31
31
  TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_ERRORS,
32
- TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_BYTES
32
+ TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_BYTES,
33
33
  } = require('../../../ci-visibility/telemetry')
34
34
 
35
35
  const isValidSha1 = (sha) => /^[0-9a-f]{40}$/.test(sha)
@@ -51,10 +51,10 @@ function getCommonRequestOptions (url) {
51
51
  return {
52
52
  method: 'POST',
53
53
  headers: {
54
- 'dd-api-key': getValueFromEnvSources('DD_API_KEY')
54
+ 'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
55
55
  },
56
56
  timeout: 15_000,
57
- url
57
+ url,
58
58
  }
59
59
  }
60
60
 
@@ -70,9 +70,9 @@ function getCommitsToUpload ({ url, repositoryUrl, latestCommits, isEvpProxy, ev
70
70
  ...commonOptions,
71
71
  headers: {
72
72
  ...commonOptions.headers,
73
- 'Content-Type': 'application/json'
73
+ 'Content-Type': 'application/json',
74
74
  },
75
- path: '/api/v2/git/repository/search_commits'
75
+ path: '/api/v2/git/repository/search_commits',
76
76
  }
77
77
 
78
78
  if (isEvpProxy) {
@@ -83,12 +83,12 @@ function getCommitsToUpload ({ url, repositoryUrl, latestCommits, isEvpProxy, ev
83
83
 
84
84
  const localCommitData = JSON.stringify({
85
85
  meta: {
86
- repository_url: repositoryUrl
86
+ repository_url: repositoryUrl,
87
87
  },
88
88
  data: latestCommits.map(commit => ({
89
89
  id: commit,
90
- type: 'commit'
91
- }))
90
+ type: 'commit',
91
+ })),
92
92
  })
93
93
 
94
94
  incrementCountMetric(TELEMETRY_GIT_REQUESTS_SEARCH_COMMITS)
@@ -134,11 +134,11 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
134
134
  const pushedSha = JSON.stringify({
135
135
  data: {
136
136
  id: headCommit,
137
- type: 'commit'
137
+ type: 'commit',
138
138
  },
139
139
  meta: {
140
- repository_url: repositoryUrl
141
- }
140
+ repository_url: repositoryUrl,
141
+ },
142
142
  })
143
143
 
144
144
  form.append('pushedSha', pushedSha, { contentType: 'application/json' })
@@ -149,7 +149,7 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
149
149
  const [, filename] = path.basename(packFileToUpload).split('-')
150
150
  form.append('packfile', packFileContent, {
151
151
  filename,
152
- contentType: 'application/octet-stream'
152
+ contentType: 'application/octet-stream',
153
153
  })
154
154
  } catch {
155
155
  callback(new Error(`Could not read "${packFileToUpload}"`))
@@ -163,8 +163,8 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
163
163
  path: '/api/v2/git/repository/packfile',
164
164
  headers: {
165
165
  ...commonOptions.headers,
166
- ...form.getHeaders()
167
- }
166
+ ...form.getHeaders(),
167
+ },
168
168
  }
169
169
 
170
170
  if (isEvpProxy) {
@@ -195,7 +195,7 @@ function generateAndUploadPackFiles ({
195
195
  evpProxyPrefix,
196
196
  commitsToUpload,
197
197
  repositoryUrl,
198
- headCommit
198
+ headCommit,
199
199
  }, callback) {
200
200
  log.debug('There are %s commits to upload', commitsToUpload.length)
201
201
 
@@ -224,7 +224,7 @@ function generateAndUploadPackFiles ({
224
224
  isEvpProxy,
225
225
  evpProxyPrefix,
226
226
  repositoryUrl,
227
- headCommit
227
+ headCommit,
228
228
  },
229
229
  uploadPackFileCallback
230
230
  )
@@ -237,7 +237,7 @@ function generateAndUploadPackFiles ({
237
237
  isEvpProxy,
238
238
  evpProxyPrefix,
239
239
  repositoryUrl,
240
- headCommit
240
+ headCommit,
241
241
  },
242
242
  uploadPackFileCallback
243
243
  )
@@ -283,7 +283,7 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
283
283
  evpProxyPrefix,
284
284
  commitsToUpload,
285
285
  repositoryUrl,
286
- headCommit
286
+ headCommit,
287
287
  }, callback)
288
288
  }
289
289
  // Otherwise we unshallow and get commits to upload again
@@ -299,7 +299,7 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
299
299
  repositoryUrl,
300
300
  latestCommits,
301
301
  isEvpProxy,
302
- evpProxyPrefix
302
+ evpProxyPrefix,
303
303
  }, getOnFinishGetCommitsToUpload(true))
304
304
  }
305
305
 
@@ -308,10 +308,10 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
308
308
  repositoryUrl,
309
309
  latestCommits,
310
310
  isEvpProxy,
311
- evpProxyPrefix
311
+ evpProxyPrefix,
312
312
  }, getOnFinishGetCommitsToUpload(false))
313
313
  }
314
314
 
315
315
  module.exports = {
316
- sendGitMetadata
316
+ sendGitMetadata,
317
317
  }
@@ -8,7 +8,7 @@ const {
8
8
  JEST_WORKER_LOGS_PAYLOAD_CODE,
9
9
  PLAYWRIGHT_WORKER_TRACE_PAYLOAD_CODE,
10
10
  VITEST_WORKER_TRACE_PAYLOAD_CODE,
11
- VITEST_WORKER_LOGS_PAYLOAD_CODE
11
+ VITEST_WORKER_LOGS_PAYLOAD_CODE,
12
12
  } = require('../../../plugins/util/test')
13
13
  const { getEnvironmentVariable, getValueFromEnvSources } = require('../../../config/helper')
14
14
  const Writer = require('./writer')
@@ -4,7 +4,7 @@ const { getEnvironmentVariable } = require('../../../config/helper')
4
4
  const log = require('../../../log')
5
5
  const {
6
6
  VITEST_WORKER_TRACE_PAYLOAD_CODE,
7
- VITEST_WORKER_LOGS_PAYLOAD_CODE
7
+ VITEST_WORKER_LOGS_PAYLOAD_CODE,
8
8
  } = require('../../../plugins/util/test')
9
9
 
10
10
  class Writer {
@@ -11,7 +11,7 @@ const {
11
11
  TELEMETRY_ITR_SKIPPABLE_TESTS_ERRORS,
12
12
  TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_SUITES,
13
13
  TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_TESTS,
14
- TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES
14
+ TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES,
15
15
  } = require('../../ci-visibility/telemetry')
16
16
 
17
17
  function getSkippableSuites ({
@@ -29,16 +29,16 @@ function getSkippableSuites ({
29
29
  runtimeName,
30
30
  runtimeVersion,
31
31
  custom,
32
- testLevel = 'suite'
32
+ testLevel = 'suite',
33
33
  }, done) {
34
34
  const options = {
35
35
  path: '/api/v2/ci/tests/skippable',
36
36
  method: 'POST',
37
37
  headers: {
38
- 'Content-Type': 'application/json'
38
+ 'Content-Type': 'application/json',
39
39
  },
40
40
  timeout: 20_000,
41
- url
41
+ url,
42
42
  }
43
43
 
44
44
  if (isGzipCompatible) {
@@ -68,14 +68,14 @@ function getSkippableSuites ({
68
68
  'os.architecture': osArchitecture,
69
69
  'runtime.name': runtimeName,
70
70
  'runtime.version': runtimeVersion,
71
- custom
71
+ custom,
72
72
  },
73
73
  service,
74
74
  env,
75
75
  repository_url: repositoryUrl,
76
- sha
77
- }
78
- }
76
+ sha,
77
+ },
78
+ },
79
79
  })
80
80
 
81
81
  incrementCountMetric(TELEMETRY_ITR_SKIPPABLE_TESTS)
@@ -12,8 +12,8 @@ function getWinstonLogSubmissionParameters (config) {
12
12
  path: `/api/v2/logs?ddsource=winston&service=${service}`,
13
13
  ssl: true,
14
14
  headers: {
15
- 'DD-API-KEY': getValueFromEnvSources('DD_API_KEY')
16
- }
15
+ 'DD-API-KEY': getValueFromEnvSources('DD_API_KEY'),
16
+ },
17
17
  }
18
18
 
19
19
  if (!getValueFromEnvSources('DD_AGENTLESS_LOG_SUBMISSION_URL')) {
@@ -27,7 +27,7 @@ function getWinstonLogSubmissionParameters (config) {
27
27
  port: url.port,
28
28
  ssl: url.protocol === 'https:',
29
29
  path: defaultParameters.path,
30
- headers: defaultParameters.headers
30
+ headers: defaultParameters.headers,
31
31
  }
32
32
  } catch {
33
33
  log.error('Could not parse DD_AGENTLESS_LOG_SUBMISSION_URL')
@@ -10,8 +10,9 @@ const {
10
10
  TELEMETRY_GIT_REQUESTS_SETTINGS,
11
11
  TELEMETRY_GIT_REQUESTS_SETTINGS_MS,
12
12
  TELEMETRY_GIT_REQUESTS_SETTINGS_ERRORS,
13
- TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE
13
+ TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE,
14
14
  } = require('../telemetry')
15
+ const { writeSettingsToCache } = require('../test-optimization-cache')
15
16
 
16
17
  const DEFAULT_EARLY_FLAKE_DETECTION_NUM_RETRIES = 2
17
18
  const DEFAULT_EARLY_FLAKE_DETECTION_ERROR_THRESHOLD = 30
@@ -32,16 +33,16 @@ function getLibraryConfiguration ({
32
33
  branch,
33
34
  testLevel = 'suite',
34
35
  custom,
35
- tag
36
+ tag,
36
37
  }, done) {
37
38
  const options = {
38
39
  path: '/api/v2/libraries/tests/services/setting',
39
40
  method: 'POST',
40
41
  headers: {
41
- 'Content-Type': 'application/json'
42
+ 'Content-Type': 'application/json',
42
43
  },
43
44
  url,
44
- timeout: 20_000
45
+ timeout: 20_000,
45
46
  }
46
47
 
47
48
  if (isEvpProxy) {
@@ -67,15 +68,15 @@ function getLibraryConfiguration ({
67
68
  'os.architecture': osArchitecture,
68
69
  'runtime.name': runtimeName,
69
70
  'runtime.version': runtimeVersion,
70
- custom
71
+ custom,
71
72
  },
72
73
  service,
73
74
  env,
74
75
  repository_url: repositoryUrl,
75
76
  sha,
76
- branch: branch || tag
77
- }
78
- }
77
+ branch: branch || tag,
78
+ },
79
+ },
79
80
  })
80
81
 
81
82
  incrementCountMetric(TELEMETRY_GIT_REQUESTS_SETTINGS)
@@ -100,9 +101,10 @@ function getLibraryConfiguration ({
100
101
  di_enabled: isDiEnabled,
101
102
  known_tests_enabled: isKnownTestsEnabled,
102
103
  test_management: testManagementConfig,
103
- impacted_tests_enabled: isImpactedTestsEnabled
104
- }
105
- }
104
+ impacted_tests_enabled: isImpactedTestsEnabled,
105
+ coverage_report_upload_enabled: isCoverageReportUploadEnabled,
106
+ },
107
+ },
106
108
  } = JSON.parse(res)
107
109
 
108
110
  const settings = {
@@ -121,7 +123,8 @@ function getLibraryConfiguration ({
121
123
  isTestManagementEnabled: (testManagementConfig?.enabled ?? false),
122
124
  testManagementAttemptToFixRetries:
123
125
  testManagementConfig?.attempt_to_fix_retries,
124
- isImpactedTestsEnabled
126
+ isImpactedTestsEnabled,
127
+ isCoverageReportUploadEnabled: isCoverageReportUploadEnabled ?? false,
125
128
  }
126
129
 
127
130
  log.debug('Remote settings: %j', settings)
@@ -137,6 +140,8 @@ function getLibraryConfiguration ({
137
140
 
138
141
  incrementCountMetric(TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE, settings)
139
142
 
143
+ writeSettingsToCache(settings)
144
+
140
145
  done(null, settings)
141
146
  } catch (err) {
142
147
  done(err)
@@ -0,0 +1,92 @@
1
+ 'use strict'
2
+
3
+ const { readFileSync } = require('node:fs')
4
+ const { gzipSync } = require('node:zlib')
5
+
6
+ const FormData = require('../../exporters/common/form-data')
7
+ const request = require('../../exporters/common/request')
8
+ const log = require('../../log')
9
+ const { getValueFromEnvSources } = require('../../config/helper')
10
+
11
+ const UPLOAD_TIMEOUT_MS = 30_000
12
+
13
+ /**
14
+ * Uploads a single coverage report to the Datadog CI intake.
15
+ * One file per request with field names 'coverage' and 'event'.
16
+ * @param {object} options - Upload options
17
+ * @param {string} options.filePath - Path to the coverage report file
18
+ * @param {string} options.format - Format of the coverage report (e.g., 'lcov', 'cobertura')
19
+ * @param {object} options.testEnvironmentMetadata - Test environment metadata containing git/CI tags
20
+ * @param {URL} options.url - The base URL for the coverage report upload
21
+ * @param {boolean} [options.isEvpProxy] - Whether to use EVP proxy for the upload
22
+ * @param {string} [options.evpProxyPrefix] - The EVP proxy prefix (e.g., '/evp_proxy/v4')
23
+ * @param {Function} callback - Callback function (err)
24
+ */
25
+ function uploadCoverageReport (
26
+ { filePath, format, testEnvironmentMetadata, url, isEvpProxy, evpProxyPrefix },
27
+ callback
28
+ ) {
29
+ const apiKey = getValueFromEnvSources('DD_API_KEY')
30
+
31
+ if (!apiKey && !isEvpProxy) {
32
+ return callback(new Error('DD_API_KEY is required for coverage report upload'))
33
+ }
34
+
35
+ let compressedCoverage
36
+ try {
37
+ const coverageContent = readFileSync(filePath)
38
+ compressedCoverage = gzipSync(coverageContent)
39
+ } catch (err) {
40
+ return callback(new Error(`Failed to read coverage report at ${filePath}: ${err.message}`))
41
+ }
42
+
43
+ // Build the event payload with format, type, and all tags from test environment metadata
44
+ const eventPayload = {
45
+ type: 'coverage_report',
46
+ format,
47
+ ...testEnvironmentMetadata,
48
+ }
49
+
50
+ // Create multipart form
51
+ const form = new FormData()
52
+
53
+ form.append('coverage', compressedCoverage, {
54
+ filename: 'coverage.gz',
55
+ contentType: 'application/gzip',
56
+ })
57
+
58
+ form.append('event', JSON.stringify(eventPayload), {
59
+ filename: 'event.json',
60
+ contentType: 'application/json',
61
+ })
62
+
63
+ const options = {
64
+ method: 'POST',
65
+ headers: {
66
+ ...form.getHeaders(),
67
+ },
68
+ timeout: UPLOAD_TIMEOUT_MS,
69
+ url,
70
+ }
71
+
72
+ if (isEvpProxy) {
73
+ options.path = `${evpProxyPrefix}/api/v2/cicovreprt`
74
+ options.headers['X-Datadog-EVP-Subdomain'] = 'ci-intake'
75
+ } else {
76
+ options.path = '/api/v2/cicovreprt'
77
+ options.headers['dd-api-key'] = apiKey
78
+ }
79
+
80
+ log.debug('Uploading coverage report %s to %s%s', filePath, url, options.path)
81
+
82
+ request(form, options, (err, res, statusCode) => {
83
+ if (err) {
84
+ log.error('Error uploading coverage report: %s', err.message)
85
+ return callback(err)
86
+ }
87
+ log.debug('Coverage report uploaded successfully (status: %d)', statusCode)
88
+ callback(null)
89
+ })
90
+ }
91
+
92
+ module.exports = { uploadCoverageReport }
@@ -16,13 +16,17 @@ const formattedTags = {
16
16
  isNew: 'is_new',
17
17
  isRum: 'is_rum',
18
18
  browserDriver: 'browser_driver',
19
- autoInjected: 'auto_injected'
19
+ autoInjected: 'auto_injected',
20
20
  }
21
21
 
22
22
  // Transform tags dictionary to array of strings.
23
23
  // If tag value is true, then only tag key is added to the array.
24
+ /**
25
+ * @param {Record<string, unknown>} tagsDictionary
26
+ * @returns {string[]}
27
+ */
24
28
  function formatMetricTags (tagsDictionary) {
25
- return Object.keys(tagsDictionary).reduce((acc, tagKey) => {
29
+ return Object.keys(tagsDictionary).reduce((/** @type {string[]} */ acc, tagKey) => {
26
30
  if (tagKey === 'statusCode') {
27
31
  const statusCode = tagsDictionary[tagKey]
28
32
  if (isStatusCode400(statusCode)) {
@@ -31,7 +35,7 @@ function formatMetricTags (tagsDictionary) {
31
35
  acc.push(`error_type:${getErrorTypeFromStatusCode(statusCode)}`)
32
36
  return acc
33
37
  }
34
- const formattedTagKey = formattedTags[tagKey] || tagKey
38
+ const formattedTagKey = /** @type {string} */(formattedTags[tagKey] || tagKey)
35
39
  if (tagsDictionary[tagKey] === true) {
36
40
  acc.push(formattedTagKey)
37
41
  } else if (tagsDictionary[tagKey] !== undefined && tagsDictionary[tagKey] !== null) {
@@ -160,5 +164,5 @@ module.exports = {
160
164
  TELEMETRY_KNOWN_TESTS_MS,
161
165
  TELEMETRY_KNOWN_TESTS_ERRORS,
162
166
  TELEMETRY_KNOWN_TESTS_RESPONSE_TESTS,
163
- TELEMETRY_KNOWN_TESTS_RESPONSE_BYTES
167
+ TELEMETRY_KNOWN_TESTS_RESPONSE_BYTES,
164
168
  }
@@ -4,7 +4,7 @@ const CiPlugin = require('../../plugins/ci_plugin')
4
4
  const {
5
5
  TEST_STATUS,
6
6
  finishAllTraceSpans,
7
- getTestSuitePath
7
+ getTestSuitePath,
8
8
  } = require('../../plugins/util/test')
9
9
  const { storage } = require('../../../../datadog-core')
10
10
 
@@ -15,16 +15,16 @@ function getTestManagementTests ({
15
15
  sha,
16
16
  commitHeadSha,
17
17
  commitHeadMessage,
18
- branch
18
+ branch,
19
19
  }, done) {
20
20
  const options = {
21
21
  path: '/api/v2/test/libraries/test-management/tests',
22
22
  method: 'POST',
23
23
  headers: {
24
- 'Content-Type': 'application/json'
24
+ 'Content-Type': 'application/json',
25
25
  },
26
26
  timeout: 20_000,
27
- url
27
+ url,
28
28
  }
29
29
 
30
30
  if (isGzipCompatible) {
@@ -51,9 +51,9 @@ function getTestManagementTests ({
51
51
  repository_url: repositoryUrl,
52
52
  commit_message: commitHeadMessage || commitMessage,
53
53
  sha: commitHeadSha || sha,
54
- branch
55
- }
56
- }
54
+ branch,
55
+ },
56
+ },
57
57
  })
58
58
 
59
59
  log.debug('Requesting test management tests: %s', data)