dd-trace 5.84.0 → 5.86.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 (628) hide show
  1. package/ci/cypress/polyfills.js +1 -1
  2. package/ci/init.js +5 -5
  3. package/ext/exporters.js +1 -1
  4. package/ext/formats.js +1 -1
  5. package/ext/index.js +1 -1
  6. package/ext/kinds.js +1 -1
  7. package/ext/priority.js +1 -1
  8. package/ext/scopes.js +1 -1
  9. package/ext/tags.js +1 -1
  10. package/ext/types.js +1 -1
  11. package/index.d.ts +96 -24
  12. package/initialize.mjs +47 -31
  13. package/loader-hook.mjs +35 -22
  14. package/package.json +34 -31
  15. package/packages/datadog-code-origin/index.js +12 -10
  16. package/packages/datadog-core/src/storage.js +30 -12
  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/instrumentations/index.js +1 -1
  64. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +55 -55
  65. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +1 -1
  66. package/packages/datadog-instrumentations/src/helpers/router-helper.js +7 -7
  67. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +1 -1
  68. package/packages/datadog-instrumentations/src/hono.js +6 -6
  69. package/packages/datadog-instrumentations/src/http/client.js +1 -1
  70. package/packages/datadog-instrumentations/src/http/server.js +4 -4
  71. package/packages/datadog-instrumentations/src/http2/server.js +1 -1
  72. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  73. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  74. package/packages/datadog-instrumentations/src/jest.js +196 -66
  75. package/packages/datadog-instrumentations/src/kafkajs.js +9 -8
  76. package/packages/datadog-instrumentations/src/knex.js +2 -2
  77. package/packages/datadog-instrumentations/src/koa.js +3 -1
  78. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  79. package/packages/datadog-instrumentations/src/light-my-request.js +1 -1
  80. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  81. package/packages/datadog-instrumentations/src/mariadb.js +1 -1
  82. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  83. package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
  84. package/packages/datadog-instrumentations/src/mocha/main.js +33 -24
  85. package/packages/datadog-instrumentations/src/mocha/utils.js +15 -11
  86. package/packages/datadog-instrumentations/src/mocha/worker.js +4 -4
  87. package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
  88. package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
  89. package/packages/datadog-instrumentations/src/mongodb.js +7 -7
  90. package/packages/datadog-instrumentations/src/mongoose.js +10 -10
  91. package/packages/datadog-instrumentations/src/mquery.js +6 -6
  92. package/packages/datadog-instrumentations/src/multer.js +1 -1
  93. package/packages/datadog-instrumentations/src/mysql.js +1 -1
  94. package/packages/datadog-instrumentations/src/net.js +6 -6
  95. package/packages/datadog-instrumentations/src/next.js +6 -6
  96. package/packages/datadog-instrumentations/src/nyc.js +34 -2
  97. package/packages/datadog-instrumentations/src/openai.js +24 -24
  98. package/packages/datadog-instrumentations/src/oracledb.js +2 -2
  99. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
  100. package/packages/datadog-instrumentations/src/passport-http.js +1 -1
  101. package/packages/datadog-instrumentations/src/passport-local.js +1 -1
  102. package/packages/datadog-instrumentations/src/passport-utils.js +1 -1
  103. package/packages/datadog-instrumentations/src/passport.js +1 -1
  104. package/packages/datadog-instrumentations/src/pg.js +3 -3
  105. package/packages/datadog-instrumentations/src/pino.js +2 -2
  106. package/packages/datadog-instrumentations/src/playwright.js +59 -59
  107. package/packages/datadog-instrumentations/src/prisma.js +216 -75
  108. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  109. package/packages/datadog-instrumentations/src/promise.js +1 -1
  110. package/packages/datadog-instrumentations/src/protobufjs.js +6 -6
  111. package/packages/datadog-instrumentations/src/q.js +2 -2
  112. package/packages/datadog-instrumentations/src/redis.js +2 -2
  113. package/packages/datadog-instrumentations/src/rhea.js +5 -5
  114. package/packages/datadog-instrumentations/src/router.js +8 -8
  115. package/packages/datadog-instrumentations/src/selenium.js +3 -3
  116. package/packages/datadog-instrumentations/src/sequelize.js +1 -1
  117. package/packages/datadog-instrumentations/src/sharedb.js +2 -2
  118. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  119. package/packages/datadog-instrumentations/src/undici.js +2 -2
  120. package/packages/datadog-instrumentations/src/url.js +5 -5
  121. package/packages/datadog-instrumentations/src/vitest.js +56 -45
  122. package/packages/datadog-instrumentations/src/when.js +1 -1
  123. package/packages/datadog-instrumentations/src/winston.js +1 -1
  124. package/packages/datadog-instrumentations/src/ws.js +150 -41
  125. package/packages/datadog-plugin-aerospike/src/index.js +4 -4
  126. package/packages/datadog-plugin-ai/src/index.js +1 -1
  127. package/packages/datadog-plugin-ai/src/tracing.js +2 -2
  128. package/packages/datadog-plugin-ai/src/utils.js +1 -1
  129. package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
  130. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  131. package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
  132. package/packages/datadog-plugin-amqplib/src/client.js +2 -2
  133. package/packages/datadog-plugin-amqplib/src/consumer.js +2 -2
  134. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  135. package/packages/datadog-plugin-amqplib/src/producer.js +2 -2
  136. package/packages/datadog-plugin-amqplib/src/util.js +1 -1
  137. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  138. package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
  139. package/packages/datadog-plugin-apollo/src/gateway/fetch.js +1 -1
  140. package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
  141. package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -5
  142. package/packages/datadog-plugin-apollo/src/index.js +1 -1
  143. package/packages/datadog-plugin-avsc/src/schema_iterator.js +3 -3
  144. package/packages/datadog-plugin-aws-sdk/src/base.js +11 -10
  145. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  146. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
  147. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +24 -24
  148. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
  149. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -1
  150. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
  151. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +3 -3
  152. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
  153. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
  154. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +5 -5
  155. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +12 -12
  156. package/packages/datadog-plugin-aws-sdk/src/util.js +1 -1
  157. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  158. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +3 -3
  159. package/packages/datadog-plugin-azure-functions/src/index.js +11 -10
  160. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  161. package/packages/datadog-plugin-azure-service-bus/src/producer.js +3 -3
  162. package/packages/datadog-plugin-bullmq/src/consumer.js +2 -2
  163. package/packages/datadog-plugin-bullmq/src/index.js +1 -1
  164. package/packages/datadog-plugin-bullmq/src/producer.js +11 -11
  165. package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
  166. package/packages/datadog-plugin-child_process/src/index.js +2 -2
  167. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -5
  168. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  169. package/packages/datadog-plugin-couchbase/src/index.js +3 -3
  170. package/packages/datadog-plugin-cucumber/src/index.js +17 -23
  171. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +73 -56
  172. package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
  173. package/packages/datadog-plugin-cypress/src/support.js +56 -9
  174. package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
  175. package/packages/datadog-plugin-dns/src/index.js +1 -1
  176. package/packages/datadog-plugin-dns/src/lookup.js +2 -2
  177. package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
  178. package/packages/datadog-plugin-dns/src/resolve.js +2 -2
  179. package/packages/datadog-plugin-dns/src/reverse.js +2 -2
  180. package/packages/datadog-plugin-elasticsearch/src/index.js +2 -2
  181. package/packages/datadog-plugin-express/src/index.js +1 -1
  182. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  183. package/packages/datadog-plugin-fs/src/index.js +2 -2
  184. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +2 -2
  185. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +10 -10
  186. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -1
  187. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +11 -10
  188. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +6 -6
  189. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  190. package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
  191. package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
  192. package/packages/datadog-plugin-google-genai/src/index.js +1 -1
  193. package/packages/datadog-plugin-google-genai/src/tracing.js +2 -2
  194. package/packages/datadog-plugin-graphql/src/execute.js +2 -2
  195. package/packages/datadog-plugin-graphql/src/index.js +2 -2
  196. package/packages/datadog-plugin-graphql/src/parse.js +1 -1
  197. package/packages/datadog-plugin-graphql/src/resolve.js +6 -6
  198. package/packages/datadog-plugin-graphql/src/utils.js +1 -1
  199. package/packages/datadog-plugin-graphql/src/validate.js +2 -2
  200. package/packages/datadog-plugin-grpc/src/client.js +3 -3
  201. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  202. package/packages/datadog-plugin-grpc/src/server.js +3 -3
  203. package/packages/datadog-plugin-grpc/src/util.js +2 -2
  204. package/packages/datadog-plugin-http/src/client.js +10 -10
  205. package/packages/datadog-plugin-http/src/index.js +1 -1
  206. package/packages/datadog-plugin-http/src/server.js +23 -8
  207. package/packages/datadog-plugin-http2/src/client.js +6 -6
  208. package/packages/datadog-plugin-http2/src/index.js +1 -1
  209. package/packages/datadog-plugin-http2/src/server.js +1 -1
  210. package/packages/datadog-plugin-jest/src/index.js +67 -31
  211. package/packages/datadog-plugin-jest/src/util.js +8 -2
  212. package/packages/datadog-plugin-kafkajs/src/consumer.js +5 -5
  213. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  214. package/packages/datadog-plugin-kafkajs/src/producer.js +5 -5
  215. package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
  216. package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
  217. package/packages/datadog-plugin-langchain/src/tracing.js +4 -4
  218. package/packages/datadog-plugin-memcached/src/index.js +2 -2
  219. package/packages/datadog-plugin-mocha/src/index.js +15 -27
  220. package/packages/datadog-plugin-moleculer/src/client.js +1 -1
  221. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  222. package/packages/datadog-plugin-moleculer/src/server.js +2 -2
  223. package/packages/datadog-plugin-moleculer/src/util.js +1 -1
  224. package/packages/datadog-plugin-mongodb-core/src/index.js +5 -5
  225. package/packages/datadog-plugin-mysql/src/index.js +2 -2
  226. package/packages/datadog-plugin-net/src/ipc.js +2 -2
  227. package/packages/datadog-plugin-net/src/tcp.js +4 -4
  228. package/packages/datadog-plugin-next/src/index.js +4 -4
  229. package/packages/datadog-plugin-nyc/src/index.js +60 -0
  230. package/packages/datadog-plugin-openai/src/index.js +1 -1
  231. package/packages/datadog-plugin-openai/src/services.js +3 -3
  232. package/packages/datadog-plugin-openai/src/stream-helpers.js +1 -1
  233. package/packages/datadog-plugin-openai/src/tracing.js +10 -10
  234. package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
  235. package/packages/datadog-plugin-oracledb/src/index.js +1 -1
  236. package/packages/datadog-plugin-pg/src/index.js +2 -2
  237. package/packages/datadog-plugin-playwright/src/index.js +22 -19
  238. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +118 -0
  239. package/packages/datadog-plugin-prisma/src/index.js +132 -10
  240. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +3 -3
  241. package/packages/datadog-plugin-redis/src/index.js +2 -2
  242. package/packages/datadog-plugin-restify/src/index.js +1 -1
  243. package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
  244. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  245. package/packages/datadog-plugin-rhea/src/producer.js +2 -2
  246. package/packages/datadog-plugin-router/src/index.js +31 -22
  247. package/packages/datadog-plugin-selenium/src/index.js +2 -2
  248. package/packages/datadog-plugin-sharedb/src/index.js +2 -2
  249. package/packages/datadog-plugin-tedious/src/index.js +2 -2
  250. package/packages/datadog-plugin-undici/src/index.js +5 -5
  251. package/packages/datadog-plugin-vitest/src/index.js +42 -25
  252. package/packages/datadog-plugin-ws/src/close.js +10 -11
  253. package/packages/datadog-plugin-ws/src/index.js +1 -1
  254. package/packages/datadog-plugin-ws/src/producer.js +8 -9
  255. package/packages/datadog-plugin-ws/src/receiver.js +8 -9
  256. package/packages/datadog-plugin-ws/src/server.js +25 -12
  257. package/packages/datadog-plugin-ws/src/util.js +48 -16
  258. package/packages/datadog-shimmer/src/shimmer.js +3 -3
  259. package/packages/dd-trace/index.js +2 -2
  260. package/packages/dd-trace/src/agent/info.js +2 -2
  261. package/packages/dd-trace/src/agent/url.js +1 -1
  262. package/packages/dd-trace/src/aiguard/client.js +3 -3
  263. package/packages/dd-trace/src/aiguard/sdk.js +6 -6
  264. package/packages/dd-trace/src/aiguard/tags.js +1 -1
  265. package/packages/dd-trace/src/analytics_sampler.js +1 -1
  266. package/packages/dd-trace/src/appsec/activation.js +1 -1
  267. package/packages/dd-trace/src/appsec/addresses.js +1 -1
  268. package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
  269. package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
  270. package/packages/dd-trace/src/appsec/blocking.js +5 -5
  271. package/packages/dd-trace/src/appsec/channels.js +1 -1
  272. package/packages/dd-trace/src/appsec/graphql.js +13 -13
  273. package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
  274. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  275. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +6 -5
  276. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +2 -2
  277. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
  278. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +148 -148
  279. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +148 -148
  280. package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
  281. package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
  282. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +7 -8
  283. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +2 -2
  284. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
  285. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +2 -2
  286. package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +3 -3
  287. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  288. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -2
  289. package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
  290. package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
  291. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +17 -9
  292. package/packages/dd-trace/src/appsec/iast/index.js +2 -2
  293. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +9 -9
  294. package/packages/dd-trace/src/appsec/iast/path-line.js +7 -6
  295. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +11 -11
  296. package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
  297. package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
  298. package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
  299. package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
  300. package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
  301. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +2 -2
  302. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -6
  303. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
  304. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +5 -5
  305. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +4 -4
  306. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +5 -5
  307. package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
  308. package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
  309. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +8 -8
  310. package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
  311. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +2 -2
  312. package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
  313. package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
  314. package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
  315. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
  316. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
  317. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
  318. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
  319. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
  320. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +8 -8
  321. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +1 -1
  322. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +12 -11
  323. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +5 -5
  324. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
  325. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
  326. package/packages/dd-trace/src/appsec/index.js +20 -22
  327. package/packages/dd-trace/src/appsec/rasp/command_injection.js +3 -3
  328. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
  329. package/packages/dd-trace/src/appsec/rasp/index.js +2 -2
  330. package/packages/dd-trace/src/appsec/rasp/lfi.js +5 -5
  331. package/packages/dd-trace/src/appsec/rasp/sql_injection.js +2 -2
  332. package/packages/dd-trace/src/appsec/rasp/ssrf.js +1 -1
  333. package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
  334. package/packages/dd-trace/src/appsec/rc-products.js +1 -1
  335. package/packages/dd-trace/src/appsec/remote_config.js +3 -3
  336. package/packages/dd-trace/src/appsec/reporter.js +11 -11
  337. package/packages/dd-trace/src/appsec/rule_manager.js +1 -1
  338. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  339. package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
  340. package/packages/dd-trace/src/appsec/sdk/track_event.js +7 -7
  341. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +1 -1
  342. package/packages/dd-trace/src/appsec/sdk/utils.js +1 -1
  343. package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
  344. package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
  345. package/packages/dd-trace/src/appsec/telemetry/index.js +5 -5
  346. package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
  347. package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
  348. package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
  349. package/packages/dd-trace/src/appsec/user_tracking.js +7 -7
  350. package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
  351. package/packages/dd-trace/src/appsec/waf/index.js +1 -1
  352. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +2 -2
  353. package/packages/dd-trace/src/azure_metadata.js +16 -9
  354. package/packages/dd-trace/src/baggage.js +1 -1
  355. package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
  356. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -5
  357. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +9 -9
  358. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +9 -9
  359. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +8 -7
  360. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +4 -3
  361. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +5 -3
  362. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -0
  363. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +4 -3
  364. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -11
  365. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +22 -22
  366. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +20 -1
  367. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
  368. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +8 -8
  369. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +3 -3
  370. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +17 -12
  371. package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +107 -0
  372. package/packages/dd-trace/src/ci-visibility/telemetry.js +38 -2
  373. package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +1 -1
  374. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +50 -7
  375. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +61 -0
  376. package/packages/dd-trace/src/config/defaults.js +1 -1
  377. package/packages/dd-trace/src/config/git_properties.js +1 -1
  378. package/packages/dd-trace/src/config/helper.js +2 -2
  379. package/packages/dd-trace/src/config/index.js +612 -622
  380. package/packages/dd-trace/src/config/remote_config.js +1 -1
  381. package/packages/dd-trace/src/config/stable.js +2 -2
  382. package/packages/dd-trace/src/config/supported-configurations.json +1 -0
  383. package/packages/dd-trace/src/constants.js +3 -3
  384. package/packages/dd-trace/src/crashtracking/crashtracker.js +6 -6
  385. package/packages/dd-trace/src/datastreams/checkpointer.js +1 -1
  386. package/packages/dd-trace/src/datastreams/context.js +1 -1
  387. package/packages/dd-trace/src/datastreams/encoding.js +1 -1
  388. package/packages/dd-trace/src/datastreams/fnv.js +1 -1
  389. package/packages/dd-trace/src/datastreams/index.js +8 -8
  390. package/packages/dd-trace/src/datastreams/pathway.js +5 -3
  391. package/packages/dd-trace/src/datastreams/processor.js +14 -12
  392. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +27 -25
  393. package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
  394. package/packages/dd-trace/src/datastreams/size.js +3 -3
  395. package/packages/dd-trace/src/datastreams/writer.js +3 -3
  396. package/packages/dd-trace/src/debugger/config.js +2 -1
  397. package/packages/dd-trace/src/debugger/constants.js +7 -0
  398. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +14 -10
  399. package/packages/dd-trace/src/debugger/devtools_client/condition.js +2 -2
  400. package/packages/dd-trace/src/debugger/devtools_client/config.js +4 -5
  401. package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
  402. package/packages/dd-trace/src/debugger/devtools_client/index.js +32 -25
  403. package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
  404. package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
  405. package/packages/dd-trace/src/debugger/devtools_client/send.js +54 -10
  406. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +94 -37
  407. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +4 -4
  408. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +7 -7
  409. package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
  410. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +1 -1
  411. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -1
  412. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +10 -1
  413. package/packages/dd-trace/src/debugger/devtools_client/state.js +65 -8
  414. package/packages/dd-trace/src/debugger/devtools_client/status.js +9 -8
  415. package/packages/dd-trace/src/debugger/index.js +95 -37
  416. package/packages/dd-trace/src/dogstatsd.js +14 -9
  417. package/packages/dd-trace/src/encode/0.4.js +7 -6
  418. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
  419. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +3 -3
  420. package/packages/dd-trace/src/encode/span-stats.js +2 -2
  421. package/packages/dd-trace/src/encode/tags-processors.js +1 -1
  422. package/packages/dd-trace/src/exporters/agent/index.js +1 -1
  423. package/packages/dd-trace/src/exporters/agent/writer.js +2 -2
  424. package/packages/dd-trace/src/exporters/common/agents.js +1 -1
  425. package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -2
  426. package/packages/dd-trace/src/exporters/common/docker.js +11 -7
  427. package/packages/dd-trace/src/exporters/common/request.js +41 -21
  428. package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
  429. package/packages/dd-trace/src/exporters/common/writer.js +2 -0
  430. package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
  431. package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -3
  432. package/packages/dd-trace/src/external-logger/src/index.js +4 -4
  433. package/packages/dd-trace/src/flare/index.js +3 -3
  434. package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
  435. package/packages/dd-trace/src/heap_snapshots.js +1 -1
  436. package/packages/dd-trace/src/id.js +2 -2
  437. package/packages/dd-trace/src/iitm.js +1 -1
  438. package/packages/dd-trace/src/lambda/context.js +27 -0
  439. package/packages/dd-trace/src/lambda/handler.js +6 -19
  440. package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
  441. package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
  442. package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
  443. package/packages/dd-trace/src/llmobs/constants/text.js +1 -1
  444. package/packages/dd-trace/src/llmobs/constants/writers.js +1 -1
  445. package/packages/dd-trace/src/llmobs/index.js +2 -4
  446. package/packages/dd-trace/src/llmobs/noop.js +2 -2
  447. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +8 -8
  448. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +2 -2
  449. package/packages/dd-trace/src/llmobs/plugins/anthropic.js +5 -5
  450. package/packages/dd-trace/src/llmobs/plugins/base.js +1 -1
  451. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +8 -8
  452. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +2 -2
  453. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +15 -15
  454. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +2 -2
  455. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +5 -5
  456. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  457. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +3 -3
  458. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +1 -1
  459. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +17 -17
  460. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +3 -3
  461. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +6 -6
  462. package/packages/dd-trace/src/llmobs/sdk.js +11 -11
  463. package/packages/dd-trace/src/llmobs/span_processor.js +6 -6
  464. package/packages/dd-trace/src/llmobs/tagger.js +4 -4
  465. package/packages/dd-trace/src/llmobs/telemetry.js +8 -8
  466. package/packages/dd-trace/src/llmobs/util.js +1 -1
  467. package/packages/dd-trace/src/llmobs/writers/base.js +9 -9
  468. package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
  469. package/packages/dd-trace/src/llmobs/writers/spans.js +3 -3
  470. package/packages/dd-trace/src/llmobs/writers/util.js +1 -1
  471. package/packages/dd-trace/src/log/channels.js +2 -2
  472. package/packages/dd-trace/src/log/index.js +2 -2
  473. package/packages/dd-trace/src/log/log.js +1 -1
  474. package/packages/dd-trace/src/log/writer.js +2 -6
  475. package/packages/dd-trace/src/noop/span.js +2 -2
  476. package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
  477. package/packages/dd-trace/src/openfeature/flagging_provider.js +4 -4
  478. package/packages/dd-trace/src/openfeature/index.js +2 -2
  479. package/packages/dd-trace/src/openfeature/noop.js +3 -3
  480. package/packages/dd-trace/src/openfeature/remote_config.js +1 -1
  481. package/packages/dd-trace/src/openfeature/writers/base.js +12 -12
  482. package/packages/dd-trace/src/openfeature/writers/exposures.js +10 -10
  483. package/packages/dd-trace/src/openfeature/writers/util.js +1 -1
  484. package/packages/dd-trace/src/opentelemetry/context_manager.js +48 -29
  485. package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
  486. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +2 -2
  487. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +10 -10
  488. package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
  489. package/packages/dd-trace/src/opentelemetry/metrics/index.js +2 -2
  490. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
  491. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +1 -1
  492. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +11 -11
  493. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +18 -18
  494. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +6 -6
  495. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +10 -7
  496. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +3 -3
  497. package/packages/dd-trace/src/opentelemetry/span.js +8 -8
  498. package/packages/dd-trace/src/opentelemetry/span_context.js +1 -1
  499. package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
  500. package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
  501. package/packages/dd-trace/src/opentracing/propagation/log.js +2 -2
  502. package/packages/dd-trace/src/opentracing/propagation/text_map.js +14 -12
  503. package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -0
  504. package/packages/dd-trace/src/opentracing/span.js +20 -20
  505. package/packages/dd-trace/src/opentracing/span_context.js +3 -3
  506. package/packages/dd-trace/src/opentracing/tracer.js +3 -3
  507. package/packages/dd-trace/src/payload-tagging/config/index.js +1 -1
  508. package/packages/dd-trace/src/payload-tagging/index.js +1 -1
  509. package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
  510. package/packages/dd-trace/src/plugin_manager.js +6 -6
  511. package/packages/dd-trace/src/plugins/apollo.js +4 -4
  512. package/packages/dd-trace/src/plugins/ci_plugin.js +164 -37
  513. package/packages/dd-trace/src/plugins/database.js +1 -1
  514. package/packages/dd-trace/src/plugins/index.js +1 -1
  515. package/packages/dd-trace/src/plugins/log_plugin.js +2 -2
  516. package/packages/dd-trace/src/plugins/outbound.js +9 -8
  517. package/packages/dd-trace/src/plugins/plugin.js +17 -7
  518. package/packages/dd-trace/src/plugins/producer.js +6 -5
  519. package/packages/dd-trace/src/plugins/tracing.js +37 -8
  520. package/packages/dd-trace/src/plugins/util/ci.js +40 -40
  521. package/packages/dd-trace/src/plugins/util/env.js +2 -2
  522. package/packages/dd-trace/src/plugins/util/git-cache.js +2 -2
  523. package/packages/dd-trace/src/plugins/util/git.js +46 -47
  524. package/packages/dd-trace/src/plugins/util/inferred_proxy.js +6 -6
  525. package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
  526. package/packages/dd-trace/src/plugins/util/llm.js +1 -1
  527. package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -3
  528. package/packages/dd-trace/src/plugins/util/tags.js +1 -1
  529. package/packages/dd-trace/src/plugins/util/test.js +49 -41
  530. package/packages/dd-trace/src/plugins/util/url.js +1 -1
  531. package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
  532. package/packages/dd-trace/src/plugins/util/user-provided-git.js +2 -2
  533. package/packages/dd-trace/src/plugins/util/web.js +13 -12
  534. package/packages/dd-trace/src/priority_sampler.js +4 -4
  535. package/packages/dd-trace/src/process-tags/index.js +2 -2
  536. package/packages/dd-trace/src/profiler.js +1 -1
  537. package/packages/dd-trace/src/profiling/config.js +14 -22
  538. package/packages/dd-trace/src/profiling/constants.js +2 -2
  539. package/packages/dd-trace/src/profiling/exporter_cli.js +3 -3
  540. package/packages/dd-trace/src/profiling/exporters/agent.js +28 -29
  541. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +8 -8
  542. package/packages/dd-trace/src/profiling/index.js +1 -1
  543. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  544. package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
  545. package/packages/dd-trace/src/profiling/profiler.js +23 -23
  546. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  547. package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
  548. package/packages/dd-trace/src/profiling/profilers/events.js +27 -19
  549. package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
  550. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  551. package/packages/dd-trace/src/profiling/tagger.js +1 -1
  552. package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
  553. package/packages/dd-trace/src/proxy.js +13 -13
  554. package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
  555. package/packages/dd-trace/src/remote_config/index.js +15 -15
  556. package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
  557. package/packages/dd-trace/src/ritm.js +1 -1
  558. package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
  559. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
  560. package/packages/dd-trace/src/serverless.js +1 -1
  561. package/packages/dd-trace/src/service-naming/extra-services.js +1 -1
  562. package/packages/dd-trace/src/service-naming/index.js +1 -1
  563. package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
  564. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +25 -25
  565. package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +3 -3
  566. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +18 -18
  567. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +23 -23
  568. package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +9 -9
  569. package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
  570. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +21 -21
  571. package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +3 -3
  572. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -17
  573. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +23 -23
  574. package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +9 -9
  575. package/packages/dd-trace/src/span_format.js +4 -4
  576. package/packages/dd-trace/src/span_sampler.js +1 -1
  577. package/packages/dd-trace/src/span_stats.js +11 -11
  578. package/packages/dd-trace/src/spanleak.js +1 -1
  579. package/packages/dd-trace/src/standalone/index.js +1 -1
  580. package/packages/dd-trace/src/standalone/product.js +2 -2
  581. package/packages/dd-trace/src/standalone/tracesource.js +1 -1
  582. package/packages/dd-trace/src/startup-log.js +3 -2
  583. package/packages/dd-trace/src/tagger.js +3 -1
  584. package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
  585. package/packages/dd-trace/src/telemetry/endpoints.js +4 -4
  586. package/packages/dd-trace/src/telemetry/index.js +1 -1
  587. package/packages/dd-trace/src/telemetry/logs/index.js +2 -2
  588. package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
  589. package/packages/dd-trace/src/telemetry/metrics.js +6 -6
  590. package/packages/dd-trace/src/telemetry/send-data.js +5 -5
  591. package/packages/dd-trace/src/telemetry/telemetry.js +10 -10
  592. package/packages/dd-trace/src/tracer.js +3 -2
  593. package/packages/dd-trace/src/util.js +1 -1
  594. package/scripts/preinstall.js +1 -1
  595. package/vendor/dist/@datadog/sketches-js/index.js +1 -1
  596. package/vendor/dist/@datadog/source-map/index.js +1 -1
  597. package/vendor/dist/@isaacs/ttlcache/index.js +1 -1
  598. package/vendor/dist/@opentelemetry/core/index.js +1 -1
  599. package/vendor/dist/@opentelemetry/resources/index.js +1 -1
  600. package/vendor/dist/astring/index.js +1 -1
  601. package/vendor/dist/crypto-randomuuid/index.js +1 -1
  602. package/vendor/dist/escape-string-regexp/index.js +1 -1
  603. package/vendor/dist/esquery/index.js +1 -1
  604. package/vendor/dist/ignore/index.js +1 -1
  605. package/vendor/dist/istanbul-lib-coverage/index.js +1 -1
  606. package/vendor/dist/jest-docblock/index.js +1 -1
  607. package/vendor/dist/jsonpath-plus/index.js +1 -1
  608. package/vendor/dist/limiter/index.js +1 -1
  609. package/vendor/dist/lodash.sortby/index.js +1 -1
  610. package/vendor/dist/lru-cache/index.js +1 -1
  611. package/vendor/dist/meriyah/index.js +1 -1
  612. package/vendor/dist/module-details-from-path/index.js +1 -1
  613. package/vendor/dist/mutexify/promise/index.js +1 -1
  614. package/vendor/dist/opentracing/index.js +1 -1
  615. package/vendor/dist/path-to-regexp/index.js +1 -1
  616. package/vendor/dist/pprof-format/index.js +1 -1
  617. package/vendor/dist/protobufjs/index.js +1 -1
  618. package/vendor/dist/protobufjs/minimal/index.js +1 -1
  619. package/vendor/dist/retry/index.js +1 -1
  620. package/vendor/dist/rfdc/index.js +1 -1
  621. package/vendor/dist/semifies/index.js +1 -1
  622. package/vendor/dist/shell-quote/index.js +1 -1
  623. package/vendor/dist/source-map/index.js +1 -1
  624. package/vendor/dist/source-map/lib/util/index.js +1 -1
  625. package/vendor/dist/tlhunter-sorted-set/index.js +1 -1
  626. package/vendor/dist/ttl-set/index.js +1 -1
  627. package/packages/datadog-plugin-prisma/src/client.js +0 -60
  628. package/packages/datadog-plugin-prisma/src/engine.js +0 -81
@@ -47,7 +47,7 @@ const {
47
47
  getPullRequestDiff,
48
48
  getModifiedFilesFromDiff,
49
49
  TEST_IS_MODIFIED,
50
- getPullRequestBaseBranch
50
+ getPullRequestBaseBranch,
51
51
  } = require('../../dd-trace/src/plugins/util/test')
52
52
  const { isMarkedAsUnskippable } = require('../../datadog-plugin-jest/src/util')
53
53
  const { ORIGIN_KEY, COMPONENT } = require('../../dd-trace/src/constants')
@@ -65,7 +65,7 @@ const {
65
65
  incrementCountMetric,
66
66
  distributionMetric,
67
67
  TELEMETRY_ITR_SKIPPED,
68
- TELEMETRY_TEST_SESSION
68
+ TELEMETRY_TEST_SESSION,
69
69
  } = require('../../dd-trace/src/ci-visibility/telemetry')
70
70
 
71
71
  const {
@@ -79,14 +79,14 @@ const {
79
79
  GIT_PULL_REQUEST_BASE_BRANCH_SHA,
80
80
  GIT_COMMIT_HEAD_SHA,
81
81
  GIT_PULL_REQUEST_BASE_BRANCH,
82
- GIT_COMMIT_HEAD_MESSAGE
82
+ GIT_COMMIT_HEAD_MESSAGE,
83
83
  } = require('../../dd-trace/src/plugins/util/tags')
84
84
  const {
85
85
  OS_VERSION,
86
86
  OS_PLATFORM,
87
87
  OS_ARCHITECTURE,
88
88
  RUNTIME_NAME,
89
- RUNTIME_VERSION
89
+ RUNTIME_VERSION,
90
90
  } = require('../../dd-trace/src/plugins/util/env')
91
91
  const { DD_MAJOR } = require('../../../version')
92
92
 
@@ -96,7 +96,7 @@ const CYPRESS_STATUS_TO_TEST_STATUS = {
96
96
  passed: 'pass',
97
97
  failed: 'fail',
98
98
  pending: 'skip',
99
- skipped: 'skip'
99
+ skipped: 'skip',
100
100
  }
101
101
 
102
102
  function getSessionStatus (summary) {
@@ -162,7 +162,7 @@ function getSkippableTests (tracer, testConfiguration) {
162
162
  resolve({
163
163
  err,
164
164
  skippableTests,
165
- correlationId
165
+ correlationId,
166
166
  })
167
167
  })
168
168
  })
@@ -176,7 +176,7 @@ function getKnownTests (tracer, testConfiguration) {
176
176
  tracer._tracer._exporter.getKnownTests(testConfiguration, (err, knownTests) => {
177
177
  resolve({
178
178
  err,
179
- knownTests
179
+ knownTests,
180
180
  })
181
181
  })
182
182
  })
@@ -190,7 +190,7 @@ function getTestManagementTests (tracer, testConfiguration) {
190
190
  tracer._tracer._exporter.getTestManagementTests(testConfiguration, (err, testManagementTests) => {
191
191
  resolve({
192
192
  err,
193
- testManagementTests
193
+ testManagementTests,
194
194
  })
195
195
  })
196
196
  })
@@ -200,7 +200,7 @@ function getModifiedFiles (testEnvironmentMetadata) {
200
200
  const {
201
201
  [GIT_PULL_REQUEST_BASE_BRANCH]: pullRequestBaseBranch,
202
202
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseBranchSha,
203
- [GIT_COMMIT_HEAD_SHA]: commitHeadSha
203
+ [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
204
204
  } = testEnvironmentMetadata
205
205
 
206
206
  const baseBranchSha = pullRequestBaseBranchSha || getPullRequestBaseBranch(pullRequestBaseBranch)
@@ -271,7 +271,7 @@ class CypressPlugin {
271
271
  [GIT_TAG]: tag,
272
272
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseSha,
273
273
  [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
274
- [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage
274
+ [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage,
275
275
  } = this.testEnvironmentMetadata
276
276
 
277
277
  this.repositoryRoot = repositoryRoot || process.cwd()
@@ -292,7 +292,7 @@ class CypressPlugin {
292
292
  tag,
293
293
  pullRequestBaseSha,
294
294
  commitHeadSha,
295
- commitHeadMessage
295
+ commitHeadMessage,
296
296
  }
297
297
  }
298
298
 
@@ -330,8 +330,8 @@ class CypressPlugin {
330
330
  isKnownTestsEnabled,
331
331
  isTestManagementEnabled,
332
332
  testManagementAttemptToFixRetries,
333
- isImpactedTestsEnabled
334
- }
333
+ isImpactedTestsEnabled,
334
+ },
335
335
  } = libraryConfigurationResponse
336
336
  this.isSuitesSkippingEnabled = isSuitesSkippingEnabled
337
337
  this.isCodeCoverageEnabled = isCodeCoverageEnabled
@@ -395,16 +395,16 @@ class CypressPlugin {
395
395
  tags: {
396
396
  [COMPONENT]: TEST_FRAMEWORK_NAME,
397
397
  ...this.testEnvironmentMetadata,
398
- ...testSuiteSpanMetadata
398
+ ...testSuiteSpanMetadata,
399
399
  },
400
- integrationName: TEST_FRAMEWORK_NAME
400
+ integrationName: TEST_FRAMEWORK_NAME,
401
401
  })
402
402
  }
403
403
 
404
404
  getTestSpan ({ testName, testSuite, isUnskippable, isForcedToRun, testSourceFile, isDisabled, isQuarantined }) {
405
405
  const testSuiteTags = {
406
406
  [TEST_COMMAND]: this.command,
407
- [TEST_MODULE]: TEST_FRAMEWORK_NAME
407
+ [TEST_MODULE]: TEST_FRAMEWORK_NAME,
408
408
  }
409
409
  if (this.testSuiteSpan) {
410
410
  testSuiteTags[TEST_SUITE_ID] = this.testSuiteSpan.context().toSpanId()
@@ -462,9 +462,9 @@ class CypressPlugin {
462
462
  [ORIGIN_KEY]: CI_APP_ORIGIN,
463
463
  ...testSpanMetadata,
464
464
  ...this.testEnvironmentMetadata,
465
- ...testSuiteTags
465
+ ...testSuiteTags,
466
466
  },
467
- integrationName: TEST_FRAMEWORK_NAME
467
+ integrationName: TEST_FRAMEWORK_NAME,
468
468
  })
469
469
  }
470
470
 
@@ -473,7 +473,7 @@ class CypressPlugin {
473
473
  testLevel,
474
474
  testFramework: 'cypress',
475
475
  isUnsupportedCIProvider: !this.ciProviderName,
476
- ...tags
476
+ ...tags,
477
477
  })
478
478
  }
479
479
 
@@ -543,12 +543,14 @@ class CypressPlugin {
543
543
  }
544
544
 
545
545
  // `details.specs` are test files
546
- details.specs?.forEach(({ absolute, relative }) => {
547
- const isUnskippableSuite = isMarkedAsUnskippable({ path: absolute })
548
- if (isUnskippableSuite) {
549
- this.unskippableSuites.push(relative)
546
+ if (details.specs) {
547
+ for (const { absolute, relative } of details.specs) {
548
+ const isUnskippableSuite = isMarkedAsUnskippable({ path: absolute })
549
+ if (isUnskippableSuite) {
550
+ this.unskippableSuites.push(relative)
551
+ }
550
552
  }
551
- })
553
+ }
552
554
 
553
555
  const childOf = getTestParentSpan(this.tracer)
554
556
 
@@ -573,13 +575,13 @@ class CypressPlugin {
573
575
  const metadataTags = {}
574
576
  for (const testLevel of TEST_LEVEL_EVENT_TYPES) {
575
577
  metadataTags[testLevel] = {
576
- [TEST_SESSION_NAME]: testSessionName
578
+ [TEST_SESSION_NAME]: testSessionName,
577
579
  }
578
580
  }
579
581
  const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id, false, this.frameworkVersion)
580
582
  metadataTags.test = {
581
583
  ...metadataTags.test,
582
- ...libraryCapabilitiesTags
584
+ ...libraryCapabilitiesTags,
583
585
  }
584
586
 
585
587
  this.tracer._tracer._exporter.addMetadataTags(metadataTags)
@@ -590,9 +592,9 @@ class CypressPlugin {
590
592
  tags: {
591
593
  [COMPONENT]: TEST_FRAMEWORK_NAME,
592
594
  ...this.testEnvironmentMetadata,
593
- ...testSessionSpanMetadata
595
+ ...testSessionSpanMetadata,
594
596
  },
595
- integrationName: TEST_FRAMEWORK_NAME
597
+ integrationName: TEST_FRAMEWORK_NAME,
596
598
  })
597
599
  this.ciVisEvent(TELEMETRY_EVENT_CREATED, 'session')
598
600
 
@@ -601,9 +603,9 @@ class CypressPlugin {
601
603
  tags: {
602
604
  [COMPONENT]: TEST_FRAMEWORK_NAME,
603
605
  ...this.testEnvironmentMetadata,
604
- ...testModuleSpanMetadata
606
+ ...testModuleSpanMetadata,
605
607
  },
606
- integrationName: TEST_FRAMEWORK_NAME
608
+ integrationName: TEST_FRAMEWORK_NAME,
607
609
  })
608
610
  this.ciVisEvent(TELEMETRY_EVENT_CREATED, 'module')
609
611
 
@@ -630,7 +632,7 @@ class CypressPlugin {
630
632
  skippingType: 'test',
631
633
  skippingCount: this.skippedTests.length,
632
634
  hasForcedToRunSuites: this.hasForcedToRunSuites,
633
- hasUnskippableSuites: this.hasUnskippableSuites
635
+ hasUnskippableSuites: this.hasUnskippableSuites,
634
636
  }
635
637
  )
636
638
 
@@ -644,7 +646,7 @@ class CypressPlugin {
644
646
  this.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'session')
645
647
  incrementCountMetric(TELEMETRY_TEST_SESSION, {
646
648
  provider: this.ciProviderName,
647
- autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
649
+ autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER'),
648
650
  })
649
651
 
650
652
  finishAllTraceSpans(this.testSessionSpan)
@@ -680,19 +682,20 @@ class CypressPlugin {
680
682
  log.warn('There was an error creating the test suite event.')
681
683
  this.testSuiteSpan = this.getTestSuiteSpan({
682
684
  testSuite: spec.relative,
683
- testSuiteAbsolutePath: spec.absolute
685
+ testSuiteAbsolutePath: spec.absolute,
684
686
  })
685
687
  }
686
688
 
687
689
  // Get tests that didn't go through `dd:afterEach`
688
690
  // and create a skipped test span for each of them
689
- cypressTests.filter(({ title }) => {
691
+ for (const { title } of cypressTests) {
690
692
  const cypressTestName = title.join(' ')
691
693
  const isTestFinished = finishedTests.find(({ testName }) => cypressTestName === testName)
692
694
 
693
- return !isTestFinished
694
- }).forEach(({ title }) => {
695
- const cypressTestName = title.join(' ')
695
+ if (isTestFinished) {
696
+ continue
697
+ }
698
+
696
699
  const isSkippedByItr = this.testsToSkip.find(test =>
697
700
  cypressTestName === test.name && spec.relative === test.suite
698
701
  )
@@ -719,7 +722,7 @@ class CypressPlugin {
719
722
  }
720
723
 
721
724
  skippedTestSpan.finish()
722
- })
725
+ }
723
726
 
724
727
  // Make sure that reported test statuses are the same as Cypress reports.
725
728
  // This is not always the case, such as when an `after` hook fails:
@@ -734,13 +737,13 @@ class CypressPlugin {
734
737
  return acc
735
738
  }, {})
736
739
 
737
- Object.entries(finishedTestsByTestName).forEach(([testName, finishedTestAttempts]) => {
738
- finishedTestAttempts.forEach((finishedTest, attemptIndex) => {
740
+ for (const [testName, finishedTestAttempts] of Object.entries(finishedTestsByTestName)) {
741
+ for (const [attemptIndex, finishedTest] of finishedTestAttempts.entries()) {
739
742
  // TODO: there could be multiple if there have been retries!
740
743
  // potentially we need to match the test status!
741
744
  const cypressTest = cypressTests.find(test => test.title.join(' ') === testName)
742
745
  if (!cypressTest) {
743
- return
746
+ continue
744
747
  }
745
748
  // finishedTests can include multiple tests with the same name if they have been retried
746
749
  // by early flake detection. Cypress is unaware of this so .attempts does not necessarily have
@@ -766,8 +769,10 @@ class CypressPlugin {
766
769
  if (cypressTest.displayError) {
767
770
  latestError = new Error(cypressTest.displayError)
768
771
  }
769
- // Update test status
770
- if (cypressTestStatus !== finishedTest.testStatus) {
772
+ // Update test status - but NOT for quarantined tests where we intentionally
773
+ // report 'fail' to Datadog even though Cypress sees it as 'pass'
774
+ const isQuarantinedTest = finishedTest.testSpan?.context()?._tags?.[TEST_MANAGEMENT_IS_QUARANTINED] === 'true'
775
+ if (cypressTestStatus !== finishedTest.testStatus && !isQuarantinedTest) {
771
776
  finishedTest.testSpan.setTag(TEST_STATUS, cypressTestStatus)
772
777
  finishedTest.testSpan.setTag('error', latestError)
773
778
  }
@@ -787,8 +792,8 @@ class CypressPlugin {
787
792
  }
788
793
 
789
794
  finishedTest.testSpan.finish(finishedTest.finishTime)
790
- })
791
- })
795
+ }
796
+ }
792
797
 
793
798
  if (this.testSuiteSpan) {
794
799
  const status = getSuiteStatus(stats)
@@ -817,7 +822,7 @@ class CypressPlugin {
817
822
  isImpactedTestsEnabled: this.isImpactedTestsEnabled,
818
823
  isModifiedTest: this.getIsTestModified(testSuiteAbsolutePath),
819
824
  repositoryRoot: this.repositoryRoot,
820
- isTestIsolationEnabled: this.isTestIsolationEnabled
825
+ isTestIsolationEnabled: this.isTestIsolationEnabled,
821
826
  }
822
827
 
823
828
  if (this.testSuiteSpan) {
@@ -841,11 +846,12 @@ class CypressPlugin {
841
846
  return { shouldSkip: true }
842
847
  }
843
848
 
844
- // TODO: I haven't found a way to trick cypress into ignoring a test
845
- // The way we'll implement quarantine in cypress is by skipping the test altogether
846
- if (!isAttemptToFix && (isDisabled || isQuarantined)) {
849
+ // For disabled tests (not attemptToFix), skip them
850
+ if (!isAttemptToFix && isDisabled) {
847
851
  return { shouldSkip: true }
848
852
  }
853
+ // Quarantined tests (not attemptToFix) run normally but their failures are caught
854
+ // by Cypress.on('fail') in support.js and suppressed, so Cypress sees them as passed
849
855
 
850
856
  if (!this.activeTestSpan) {
851
857
  this.activeTestSpan = this.getTestSpan({
@@ -854,7 +860,7 @@ class CypressPlugin {
854
860
  isUnskippable,
855
861
  isForcedToRun,
856
862
  isDisabled,
857
- isQuarantined
863
+ isQuarantined,
858
864
  })
859
865
  }
860
866
 
@@ -876,7 +882,8 @@ class CypressPlugin {
876
882
  isNew,
877
883
  isEfdRetry,
878
884
  isAttemptToFix,
879
- isModified
885
+ isModified,
886
+ isQuarantined: isQuarantinedFromSupport,
880
887
  } = test
881
888
  if (coverage && this.isCodeCoverageEnabled && this.tracer._tracer._exporter?.exportCoverage) {
882
889
  const coverageFiles = getCoveredFilenamesFromCoverage(coverage)
@@ -892,7 +899,7 @@ class CypressPlugin {
892
899
  sessionId: _traceId,
893
900
  suiteId: _spanId,
894
901
  testId: this.activeTestSpan.context()._spanId,
895
- files: relativeCoverageFiles
902
+ files: relativeCoverageFiles,
896
903
  }
897
904
  this.tracer._tracer._exporter.exportCoverage(formattedCoverage)
898
905
  }
@@ -949,13 +956,19 @@ class CypressPlugin {
949
956
  }
950
957
  }
951
958
 
959
+ // Ensure quarantined tests reported from support.js are tagged
960
+ // (This catches cases where the test ran but failed, but Cypress saw it as passed)
961
+ if (isQuarantinedFromSupport) {
962
+ this.activeTestSpan.setTag(TEST_MANAGEMENT_IS_QUARANTINED, 'true')
963
+ }
964
+
952
965
  const finishedTest = {
953
966
  testName,
954
967
  testStatus,
955
968
  finishTime: this.activeTestSpan._getTime(), // we store the finish time here
956
969
  testSpan: this.activeTestSpan,
957
970
  isEfdRetry,
958
- isAttemptToFix
971
+ isAttemptToFix,
959
972
  }
960
973
  if (this.finishedTestsByFile[testSuite]) {
961
974
  this.finishedTestsByFile[testSuite].push(finishedTest)
@@ -963,11 +976,15 @@ class CypressPlugin {
963
976
  this.finishedTestsByFile[testSuite] = [finishedTest]
964
977
  }
965
978
  // test spans are finished at after:spec
979
+ const activeSpanTags = this.activeTestSpan.context()._tags
966
980
  this.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'test', {
967
- hasCodeOwners: !!this.activeTestSpan.context()._tags[TEST_CODE_OWNERS],
981
+ hasCodeOwners: !!activeSpanTags[TEST_CODE_OWNERS],
968
982
  isNew,
969
983
  isRum: isRUMActive,
970
- browserDriver: 'cypress'
984
+ browserDriver: 'cypress',
985
+ isQuarantined: isQuarantinedFromSupport,
986
+ isModified,
987
+ isDisabled: activeSpanTags[TEST_MANAGEMENT_IS_DISABLED] === 'true',
971
988
  })
972
989
  this.activeTestSpan = null
973
990
 
@@ -983,7 +1000,7 @@ class CypressPlugin {
983
1000
  // eslint-disable-next-line no-console
984
1001
  console.log(`[datadog] ${message}`)
985
1002
  return null
986
- }
1003
+ },
987
1004
  }
988
1005
  }
989
1006
 
@@ -17,7 +17,7 @@ const noopTask = {
17
17
  },
18
18
  'dd:addTags': () => {
19
19
  return null
20
- }
20
+ },
21
21
  }
22
22
 
23
23
  module.exports = function CypressPlugin (on, config) {
@@ -12,6 +12,8 @@ let isModifiedTest = false
12
12
  let isTestIsolationEnabled = false
13
13
  // Array of test names that have been retried and the reason
14
14
  const retryReasonsByTestName = new Map()
15
+ // Track quarantined test errors - we catch them in Cypress.on('fail') but need to report to Datadog
16
+ const quarantinedTestErrors = new Map()
15
17
 
16
18
  // We need to grab the original window as soon as possible,
17
19
  // in case the test changes the origin. If the test does change the origin,
@@ -46,17 +48,41 @@ function getTestProperties (testName) {
46
48
  return { isAttemptToFix, isDisabled, isQuarantined }
47
49
  }
48
50
 
51
+ // Catch test failures for quarantined tests and suppress them
52
+ // By not re-throwing the error, Cypress marks the test as passed
53
+ // This allows quarantined tests to run but not affect the exit code
54
+ Cypress.on('fail', (err, runnable) => {
55
+ if (!isTestManagementEnabled) {
56
+ throw err
57
+ }
58
+
59
+ const testName = runnable.fullTitle()
60
+ const { isQuarantined, isAttemptToFix } = getTestProperties(testName)
61
+
62
+ // For pure quarantined tests (not attemptToFix), suppress the failure
63
+ // This makes the test "pass" from Cypress's perspective while we still track the error
64
+ if (isQuarantined && !isAttemptToFix) {
65
+ // Store the error so we can report it to Datadog in afterEach
66
+ quarantinedTestErrors.set(testName, err)
67
+ // Don't re-throw - this prevents Cypress from marking the test as failed
68
+ return
69
+ }
70
+
71
+ // For all other tests (including attemptToFix), let the error propagate normally
72
+ throw err
73
+ })
74
+
49
75
  function getRetriedTests (test, numRetries, tags) {
50
76
  const retriedTests = []
51
77
  for (let retryIndex = 0; retryIndex < numRetries; retryIndex++) {
52
78
  // TODO: signal in framework logs that this is a retry.
53
79
  // TODO: Change it so these tests are allowed to fail.
54
80
  const clonedTest = test.clone()
55
- tags.forEach(tag => {
81
+ for (const tag of tags) {
56
82
  if (tag) {
57
83
  clonedTest[tag] = true
58
84
  }
59
- })
85
+ }
60
86
  retriedTests.push(clonedTest)
61
87
  }
62
88
  return retriedTests
@@ -108,7 +134,7 @@ Cypress.mocha.getRunner().runTests = function (suite, fn) {
108
134
  retriedTests = getRetriedTests(test, earlyFlakeDetectionNumRetries, [
109
135
  '_ddIsModified',
110
136
  '_ddIsEfdRetry',
111
- isKnownTestsEnabled && isNewTest(test) && '_ddIsNew'
137
+ isKnownTestsEnabled && isNewTest(test) && '_ddIsNew',
112
138
  ])
113
139
  } else if (isNew && isEarlyFlakeDetectionEnabled) {
114
140
  retryMessage = 'to detect flakes because it is new'
@@ -141,7 +167,7 @@ beforeEach(function () {
141
167
 
142
168
  cy.task('dd:beforeEach', {
143
169
  testName,
144
- testSuite: Cypress.mocha.getRootSuite().file
170
+ testSuite: Cypress.mocha.getRootSuite().file,
145
171
  }).then(({ traceId, shouldSkip }) => {
146
172
  Cypress.env('traceId', traceId)
147
173
  if (shouldSkip) {
@@ -156,7 +182,7 @@ beforeEach(function () {
156
182
  before(function () {
157
183
  cy.task('dd:testSuiteStart', {
158
184
  testSuite: Cypress.mocha.getRootSuite().file,
159
- testSuiteAbsolutePath: Cypress.spec && Cypress.spec.absolute
185
+ testSuiteAbsolutePath: Cypress.spec && Cypress.spec.absolute,
160
186
  }).then((suiteConfig) => {
161
187
  if (suiteConfig) {
162
188
  isEarlyFlakeDetectionEnabled = suiteConfig.isEarlyFlakeDetectionEnabled
@@ -185,16 +211,31 @@ after(() => {
185
211
 
186
212
  afterEach(function () {
187
213
  const currentTest = Cypress.mocha.getRunner().suite.ctx.currentTest
214
+ const testName = currentTest.fullTitle()
215
+
216
+ // Check if this was a quarantined test that we suppressed the failure for
217
+ const quarantinedError = quarantinedTestErrors.get(testName)
218
+ const isQuarantinedTestThatFailed = !!quarantinedError
219
+
220
+ // For quarantined tests, convert Error to a serializable format for cy.task
221
+ const errorToReport = isQuarantinedTestThatFailed
222
+ ? { message: quarantinedError.message, stack: quarantinedError.stack }
223
+ : currentTest.err
224
+
188
225
  const testInfo = {
189
- testName: currentTest.fullTitle(),
226
+ testName,
190
227
  testSuite: Cypress.mocha.getRootSuite().file,
191
228
  testSuiteAbsolutePath: Cypress.spec && Cypress.spec.absolute,
192
- state: currentTest.state,
193
- error: currentTest.err,
229
+ // For quarantined tests, report the actual state (failed) to Datadog, not what Cypress thinks (passed)
230
+ state: isQuarantinedTestThatFailed ? 'failed' : currentTest.state,
231
+ // For quarantined tests, include the actual error that was suppressed
232
+ error: errorToReport,
194
233
  isNew: currentTest._ddIsNew,
195
234
  isEfdRetry: currentTest._ddIsEfdRetry,
196
235
  isAttemptToFix: currentTest._ddIsAttemptToFix,
197
- isModified: currentTest._ddIsModified
236
+ isModified: currentTest._ddIsModified,
237
+ // Mark quarantined tests that failed so the plugin knows to tag them appropriately
238
+ isQuarantined: isQuarantinedTestThatFailed,
198
239
  }
199
240
  try {
200
241
  testInfo.testSourceLine = Cypress.mocha.getRunner().currentRunnable.invocationDetails.line
@@ -209,5 +250,11 @@ afterEach(function () {
209
250
  } catch {
210
251
  // ignore error and continue
211
252
  }
253
+
254
+ // Clean up the quarantined error tracking
255
+ if (isQuarantinedTestThatFailed) {
256
+ quarantinedTestErrors.delete(testName)
257
+ }
258
+
212
259
  cy.task('dd:afterEach', { test: testInfo, coverage })
213
260
  })
@@ -30,7 +30,7 @@ module.exports = class DdTraceApiPlugin extends Plugin {
30
30
  const counter = apiMetrics.count('public_api.called', [
31
31
  `name:${name.replaceAll(':', '.')}`,
32
32
  'api_version:v1',
33
- injectionEnabledTag
33
+ injectionEnabledTag,
34
34
  ])
35
35
 
36
36
  // For v1, APIs are 1:1 with their internal equivalents, so we can just
@@ -15,7 +15,7 @@ class DNSPlugin extends CompositePlugin {
15
15
  lookup: DNSLookupPlugin,
16
16
  lookup_service: DNSLookupServicePlugin,
17
17
  resolve: DNSResolvePlugin,
18
- reverse: DNSReversePlugin
18
+ reverse: DNSReversePlugin,
19
19
  }
20
20
  }
21
21
  }
@@ -16,8 +16,8 @@ class DNSLookupPlugin extends ClientPlugin {
16
16
  meta: {
17
17
  'dns.hostname': hostname,
18
18
  'dns.address': '',
19
- 'dns.addresses': ''
20
- }
19
+ 'dns.addresses': '',
20
+ },
21
21
  }, ctx)
22
22
 
23
23
  return ctx.currentStore
@@ -14,11 +14,11 @@ class DNSLookupServicePlugin extends ClientPlugin {
14
14
  resource: `${address}:${port}`,
15
15
  kind: 'client',
16
16
  meta: {
17
- 'dns.address': address
17
+ 'dns.address': address,
18
18
  },
19
19
  metrics: {
20
- 'dns.port': port
21
- }
20
+ 'dns.port': port,
21
+ },
22
22
  }, ctx)
23
23
 
24
24
  return ctx.currentStore
@@ -16,8 +16,8 @@ class DNSResolvePlugin extends ClientPlugin {
16
16
  kind: 'client',
17
17
  meta: {
18
18
  'dns.hostname': hostname,
19
- 'dns.rrtype': rrtype
20
- }
19
+ 'dns.rrtype': rrtype,
20
+ },
21
21
  }, ctx)
22
22
 
23
23
  return ctx.currentStore
@@ -14,8 +14,8 @@ class DNSReversePlugin extends ClientPlugin {
14
14
  resource: ip,
15
15
  kind: 'client',
16
16
  meta: {
17
- 'dns.ip': ip
18
- }
17
+ 'dns.ip': ip,
18
+ },
19
19
  }, ctx)
20
20
 
21
21
  return ctx.currentStore
@@ -20,8 +20,8 @@ class ElasticsearchPlugin extends DatabasePlugin {
20
20
  [`${this.system}.url`]: params.path,
21
21
  [`${this.system}.method`]: params.method,
22
22
  [`${this.system}.body`]: body,
23
- [`${this.system}.params`]: JSON.stringify(params.querystring || params.query)
24
- }
23
+ [`${this.system}.params`]: JSON.stringify(params.querystring || params.query),
24
+ },
25
25
  }, ctx)
26
26
 
27
27
  return ctx.currentStore
@@ -9,7 +9,7 @@ class ExpressPlugin extends CompositePlugin {
9
9
  static get plugins () {
10
10
  return {
11
11
  tracing: ExpressTracingPlugin,
12
- codeOriginForSpans: ExpressCodeOriginForSpansPlugin
12
+ codeOriginForSpans: ExpressCodeOriginForSpansPlugin,
13
13
  }
14
14
  }
15
15
  }
@@ -9,7 +9,7 @@ class FastifyPlugin extends CompositePlugin {
9
9
  static get plugins () {
10
10
  return {
11
11
  tracing: FastifyTracingPlugin,
12
- codeOriginForSpans: FastifyCodeOriginForSpansPlugin
12
+ codeOriginForSpans: FastifyCodeOriginForSpansPlugin,
13
13
  }
14
14
  }
15
15
  }
@@ -37,8 +37,8 @@ class FsPlugin extends TracingPlugin {
37
37
  'file.mode': mode,
38
38
  'file.path': path || '',
39
39
  'file.src': params.src || params.oldPath || params.existingPath || params.target,
40
- 'file.uid': uid || ''
41
- }
40
+ 'file.uid': uid || '',
41
+ },
42
42
  }, ctx)
43
43
 
44
44
  return ctx.currentStore
@@ -18,8 +18,8 @@ class GoogleCloudPubsubClientPlugin extends ClientPlugin {
18
18
  kind: this.constructor.kind,
19
19
  meta: {
20
20
  'pubsub.method': api,
21
- 'gcloud.project_id': projectId
22
- }
21
+ 'gcloud.project_id': projectId,
22
+ },
23
23
  }
24
24
 
25
25
  /**