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
@@ -7,11 +7,11 @@ const {
7
7
  parseAnnotations,
8
8
  getTestSuitePath,
9
9
  PLAYWRIGHT_WORKER_TRACE_PAYLOAD_CODE,
10
- getIsFaultyEarlyFlakeDetection
10
+ getIsFaultyEarlyFlakeDetection,
11
11
  } = require('../../dd-trace/src/plugins/util/test')
12
12
  const log = require('../../dd-trace/src/log')
13
13
  const {
14
- getValueFromEnvSources
14
+ getValueFromEnvSources,
15
15
  } = require('../../dd-trace/src/config/helper')
16
16
  const { DD_MAJOR } = require('../../../version')
17
17
  const { addHook, channel } = require('./helpers/instrument')
@@ -51,7 +51,7 @@ const STATUS_TO_TEST_STATUS = {
51
51
  passed: 'pass',
52
52
  failed: 'fail',
53
53
  timedOut: 'fail',
54
- skipped: 'skip'
54
+ skipped: 'skip',
55
55
  }
56
56
 
57
57
  let remainingTestsByFile = {}
@@ -120,13 +120,13 @@ function deepCloneSuite (suite, filterTest, tags = []) {
120
120
  } else {
121
121
  if (filterTest(entry)) {
122
122
  const copiedTest = entry._clone()
123
- tags.forEach(tag => {
123
+ for (const tag of tags) {
124
124
  const resolvedTag = typeof tag === 'function' ? tag(entry) : tag
125
125
 
126
126
  if (resolvedTag) {
127
127
  copiedTest[resolvedTag] = true
128
128
  }
129
- })
129
+ }
130
130
  copy._addTest(copiedTest)
131
131
  }
132
132
  }
@@ -302,9 +302,9 @@ function testBeginHandler (test, browserName, shouldCreateTestSpan) {
302
302
  const {
303
303
  _requireFile: testSuiteAbsolutePath,
304
304
  location: {
305
- line: testSourceLine
305
+ line: testSourceLine,
306
306
  },
307
- _type
307
+ _type,
308
308
  } = test
309
309
 
310
310
  if (_type === 'beforeAll' || _type === 'afterAll') {
@@ -337,7 +337,7 @@ function testBeginHandler (test, browserName, shouldCreateTestSpan) {
337
337
  testSuiteAbsolutePath,
338
338
  testSourceLine,
339
339
  browserName,
340
- isDisabled: test._ddIsDisabled
340
+ isDisabled: test._ddIsDisabled,
341
341
  }
342
342
  testToCtx.set(test, testCtx)
343
343
 
@@ -352,7 +352,7 @@ function testEndHandler ({
352
352
  error,
353
353
  isTimeout,
354
354
  shouldCreateTestSpan,
355
- projects
355
+ projects,
356
356
  }) {
357
357
  const {
358
358
  _requireFile: testSuiteAbsolutePath,
@@ -422,7 +422,7 @@ function testEndHandler ({
422
422
  hasFailedAttemptToFixRetries: test._ddHasFailedAttemptToFixRetries,
423
423
  isAtrRetry,
424
424
  isModified: test._ddIsModified,
425
- ...testCtx.currentStore
425
+ ...testCtx.currentStore,
426
426
  })
427
427
  }
428
428
  }
@@ -456,7 +456,7 @@ function testEndHandler ({
456
456
  isNew: test._ddIsNew,
457
457
  isDisabled: test._ddIsDisabled,
458
458
  isModified: test._ddIsModified,
459
- isQuarantined: test._ddIsQuarantined
459
+ isQuarantined: test._ddIsQuarantined,
460
460
  })
461
461
  }
462
462
  remainingTestsByFile[testSuiteAbsolutePath] = []
@@ -484,11 +484,12 @@ function dispatcherRunWrapper (run) {
484
484
 
485
485
  function dispatcherRunWrapperNew (run) {
486
486
  return function (testGroups) {
487
- // Filter out disabled tests from testGroups before they get scheduled
487
+ // Filter out disabled tests from testGroups before they get scheduled,
488
+ // unless they have attemptToFix (in which case they should still run and be retried)
488
489
  if (isTestManagementTestsEnabled) {
489
- testGroups.forEach(group => {
490
- group.tests = group.tests.filter(test => !test._ddIsDisabled)
491
- })
490
+ for (const group of testGroups) {
491
+ group.tests = group.tests.filter(test => !test._ddIsDisabled || test._ddIsAttemptToFix)
492
+ }
492
493
  // Remove empty groups
493
494
  testGroups = testGroups.filter(group => group.tests.length > 0)
494
495
  }
@@ -533,7 +534,7 @@ function dispatcherHook (dispatcherExport) {
533
534
  error: testResult.error,
534
535
  isTimeout,
535
536
  shouldCreateTestSpan: true,
536
- projects
537
+ projects,
537
538
  }
538
539
  )
539
540
  }
@@ -571,7 +572,7 @@ function dispatcherHookNew (dispatcherExport, runWrapper) {
571
572
  error: errors && errors[0],
572
573
  isTimeout,
573
574
  shouldCreateTestSpan,
574
- projects
575
+ projects,
575
576
  }
576
577
  )
577
578
  const testResult = test.results.at(-1)
@@ -594,8 +595,8 @@ function dispatcherHookNew (dispatcherExport, runWrapper) {
594
595
  _ddHasPassedAttemptToFixRetries: test._ddHasPassedAttemptToFixRetries,
595
596
  _ddHasFailedAttemptToFixRetries: test._ddHasFailedAttemptToFixRetries,
596
597
  _ddIsAtrRetry: isAtrRetry,
597
- _ddIsModified: test._ddIsModified
598
- }
598
+ _ddIsModified: test._ddIsModified,
599
+ },
599
600
  })
600
601
  })
601
602
 
@@ -695,11 +696,11 @@ function runAllTestsWrapper (runAllTests, playwrightVersion) {
695
696
  // preventing them from being retried by ATR or `--retries`.
696
697
  const shouldSetATRRetries = isFlakyTestRetriesEnabled && flakyTestRetriesCount > 0
697
698
  if (shouldSetATRRetries) {
698
- projects.forEach(project => {
699
+ for (const project of projects) {
699
700
  if (project.retries === 0) { // Only if it hasn't been set by the user
700
701
  project.retries = flakyTestRetriesCount
701
702
  }
702
- })
703
+ }
703
704
  }
704
705
 
705
706
  let runAllTestsReturn = await runAllTests.apply(this, arguments)
@@ -707,11 +708,11 @@ function runAllTestsWrapper (runAllTests, playwrightVersion) {
707
708
  // Tests that have only skipped tests may reach this point
708
709
  // Skipped tests may or may not go through `testBegin` or `testEnd`
709
710
  // depending on the playwright configuration
710
- Object.values(remainingTestsByFile).forEach(tests => {
711
+ for (const tests of Object.values(remainingTestsByFile)) {
711
712
  // `tests` should normally be empty, but if it isn't,
712
713
  // there were tests that did not go through `testBegin` or `testEnd`,
713
714
  // because they were skipped
714
- tests.forEach(test => {
715
+ for (const test of tests) {
715
716
  const browser = getBrowserNameFromProjects(projects, test)
716
717
  testBeginHandler(test, browser, true)
717
718
  testEndHandler({
@@ -721,10 +722,10 @@ function runAllTestsWrapper (runAllTests, playwrightVersion) {
721
722
  error: null,
722
723
  isTimeout: false,
723
724
  shouldCreateTestSpan: true,
724
- projects
725
+ projects,
725
726
  })
726
- })
727
- })
727
+ }
728
+ }
728
729
 
729
730
  let preventedToFail = false
730
731
 
@@ -771,7 +772,7 @@ function runAllTestsWrapper (runAllTests, playwrightVersion) {
771
772
  isEarlyFlakeDetectionEnabled,
772
773
  isEarlyFlakeDetectionFaulty,
773
774
  isTestManagementTestsEnabled,
774
- onDone
775
+ onDone,
775
776
  })
776
777
  await flushWait
777
778
 
@@ -808,56 +809,56 @@ if (DD_MAJOR < 6) { // <1.38.0 is only supported up to version 5
808
809
  addHook({
809
810
  name: '@playwright/test',
810
811
  file: 'lib/runner.js',
811
- versions: ['>=1.18.0 <=1.30.0']
812
+ versions: ['>=1.18.0 <=1.30.0'],
812
813
  }, runnerHook)
813
814
 
814
815
  addHook({
815
816
  name: '@playwright/test',
816
817
  file: 'lib/dispatcher.js',
817
- versions: ['>=1.18.0 <1.30.0']
818
+ versions: ['>=1.18.0 <1.30.0'],
818
819
  }, dispatcherHook)
819
820
 
820
821
  addHook({
821
822
  name: '@playwright/test',
822
823
  file: 'lib/dispatcher.js',
823
- versions: ['>=1.30.0 <1.31.0']
824
+ versions: ['>=1.30.0 <1.31.0'],
824
825
  }, (dispatcher) => dispatcherHookNew(dispatcher, dispatcherRunWrapper))
825
826
 
826
827
  addHook({
827
828
  name: '@playwright/test',
828
829
  file: 'lib/runner/dispatcher.js',
829
- versions: ['>=1.31.0 <1.38.0']
830
+ versions: ['>=1.31.0 <1.38.0'],
830
831
  }, (dispatcher) => dispatcherHookNew(dispatcher, dispatcherRunWrapperNew))
831
832
 
832
833
  addHook({
833
834
  name: '@playwright/test',
834
835
  file: 'lib/runner/runner.js',
835
- versions: ['>=1.31.0 <1.38.0']
836
+ versions: ['>=1.31.0 <1.38.0'],
836
837
  }, runnerHook)
837
838
  }
838
839
 
839
840
  addHook({
840
841
  name: 'playwright',
841
842
  file: 'lib/runner/runner.js',
842
- versions: ['>=1.38.0']
843
+ versions: ['>=1.38.0'],
843
844
  }, runnerHook)
844
845
 
845
846
  addHook({
846
847
  name: 'playwright',
847
848
  file: 'lib/runner/testRunner.js',
848
- versions: ['>=1.55.0']
849
+ versions: ['>=1.55.0'],
849
850
  }, runnerHookNew)
850
851
 
851
852
  addHook({
852
853
  name: 'playwright',
853
854
  file: 'lib/runner/dispatcher.js',
854
- versions: ['>=1.38.0']
855
+ versions: ['>=1.38.0'],
855
856
  }, (dispatcher) => dispatcherHookNew(dispatcher, dispatcherRunWrapperNew))
856
857
 
857
858
  addHook({
858
859
  name: 'playwright',
859
860
  file: 'lib/common/suiteUtils.js',
860
- versions: ['>=1.38.0']
861
+ versions: ['>=1.38.0'],
861
862
  }, suiteUtilsPackage => {
862
863
  // We grab `applyRepeatEachIndex` to use it later
863
864
  // `applyRepeatEachIndex` needs to be applied to a cloned suite
@@ -892,7 +893,7 @@ function applyRetriesToTests (fileSuitesWithTestsToRetry, filterTest, tagsToAppl
892
893
  addHook({
893
894
  name: 'playwright',
894
895
  file: 'lib/runner/loadUtils.js',
895
- versions: ['>=1.38.0']
896
+ versions: ['>=1.38.0'],
896
897
  }, (loadUtilsPackage) => {
897
898
  const oldCreateRootSuite = loadUtilsPackage.createRootSuite
898
899
 
@@ -911,14 +912,16 @@ addHook({
911
912
  const fileSuitesWithManagedTestsToProjects = new Map()
912
913
  for (const test of allTests) {
913
914
  const testProperties = getTestProperties(test)
914
- // Disabled tests are skipped and not retried
915
+ // Disabled tests are skipped unless they have attemptToFix
915
916
  if (testProperties.disabled) {
916
917
  test._ddIsDisabled = true
917
- test.expectedStatus = 'skipped'
918
- // setting test.expectedStatus to 'skipped' does not work for every case,
919
- // so we need to filter out disabled tests in dispatcherRunWrapperNew,
920
- // so they don't get to the workers
921
- continue
918
+ if (!testProperties.attemptToFix) {
919
+ test.expectedStatus = 'skipped'
920
+ // setting test.expectedStatus to 'skipped' does not work for every case,
921
+ // so we need to filter out disabled tests in dispatcherRunWrapperNew,
922
+ // so they don't get to the workers
923
+ continue
924
+ }
922
925
  }
923
926
  if (testProperties.quarantined) {
924
927
  test._ddIsQuarantined = true
@@ -947,8 +950,9 @@ addHook({
947
950
  (test) => test._ddIsAttemptToFix,
948
951
  [
949
952
  (test) => test._ddIsQuarantined && '_ddIsQuarantined',
953
+ (test) => test._ddIsDisabled && '_ddIsDisabled',
950
954
  '_ddIsAttemptToFix',
951
- '_ddIsAttemptToFixRetry'
955
+ '_ddIsAttemptToFixRetry',
952
956
  ],
953
957
  testManagementAttemptToFixRetries
954
958
  )
@@ -960,13 +964,13 @@ addHook({
960
964
  isModifiedCh.publish({
961
965
  filePath: test._requireFile,
962
966
  modifiedFiles,
963
- onDone: (isModified) => { isImpacted = isModified }
967
+ onDone: (isModified) => { isImpacted = isModified },
964
968
  })
965
969
  return isImpacted
966
970
  })
967
971
 
968
972
  const fileSuitesWithImpactedTestsToProjects = new Map()
969
- impactedTests.forEach(impactedTest => {
973
+ for (const impactedTest of impactedTests) {
970
974
  impactedTest._ddIsModified = true
971
975
  if (isEarlyFlakeDetectionEnabled && impactedTest.expectedStatus !== 'skipped') {
972
976
  const fileSuite = getSuiteType(impactedTest, 'file')
@@ -974,7 +978,7 @@ addHook({
974
978
  fileSuitesWithImpactedTestsToProjects.set(fileSuite, getSuiteType(impactedTest, 'project'))
975
979
  }
976
980
  }
977
- })
981
+ }
978
982
  // If something change in the file, all tests in the file are impacted, hence the () => true filter
979
983
  applyRetriesToTests(
980
984
  fileSuitesWithImpactedTestsToProjects,
@@ -982,7 +986,7 @@ addHook({
982
986
  [
983
987
  '_ddIsModified',
984
988
  '_ddIsEfdRetry',
985
- (test) => (isKnownTestsEnabled && isNewTest(test) ? '_ddIsNew' : null)
989
+ (test) => (isKnownTestsEnabled && isNewTest(test) ? '_ddIsNew' : null),
986
990
  ],
987
991
  earlyFlakeDetectionNumRetries
988
992
  )
@@ -1003,7 +1007,7 @@ addHook({
1003
1007
  isEarlyFlakeDetectionFaulty = true
1004
1008
  } else {
1005
1009
  const fileSuitesWithNewTestsToProjects = new Map()
1006
- newTests.forEach(newTest => {
1010
+ for (const newTest of newTests) {
1007
1011
  newTest._ddIsNew = true
1008
1012
  if (isEarlyFlakeDetectionEnabled && newTest.expectedStatus !== 'skipped' && !newTest._ddIsModified) {
1009
1013
  // Prevent ATR or `--retries` from retrying new tests if EFD is enabled
@@ -1013,7 +1017,7 @@ addHook({
1013
1017
  fileSuitesWithNewTestsToProjects.set(fileSuite, getSuiteType(newTest, 'project'))
1014
1018
  }
1015
1019
  }
1016
- })
1020
+ }
1017
1021
 
1018
1022
  applyRetriesToTests(
1019
1023
  fileSuitesWithNewTestsToProjects,
@@ -1034,7 +1038,7 @@ addHook({
1034
1038
  return newCreateRootSuite
1035
1039
  }
1036
1040
  return target[prop]
1037
- }
1041
+ },
1038
1042
  })
1039
1043
 
1040
1044
  return proxy
@@ -1044,13 +1048,13 @@ addHook({
1044
1048
  addHook({
1045
1049
  name: 'playwright',
1046
1050
  file: 'lib/runner/processHost.js',
1047
- versions: ['>=1.38.0']
1051
+ versions: ['>=1.38.0'],
1048
1052
  }, (processHostPackage) => {
1049
1053
  shimmer.wrap(processHostPackage.ProcessHost.prototype, 'startRunner', startRunner => async function () {
1050
1054
  this._extraEnv = {
1051
1055
  ...this._extraEnv,
1052
1056
  // Used to detect that we're in a playwright worker
1053
- DD_PLAYWRIGHT_WORKER: '1'
1057
+ DD_PLAYWRIGHT_WORKER: '1',
1054
1058
  }
1055
1059
 
1056
1060
  const res = await startRunner.apply(this, arguments)
@@ -1072,7 +1076,7 @@ addHook({
1072
1076
  addHook({
1073
1077
  name: 'playwright-core',
1074
1078
  file: 'lib/client/page.js',
1075
- versions: ['>=1.38.0']
1079
+ versions: ['>=1.38.0'],
1076
1080
  }, (pagePackage) => {
1077
1081
  shimmer.wrap(pagePackage.Page.prototype, 'goto', goto => async function (url, options) {
1078
1082
  const response = await goto.apply(this, arguments)
@@ -1098,7 +1102,7 @@ addHook({
1098
1102
  if (isRumActive) {
1099
1103
  testPageGotoCh.publish({
1100
1104
  isRumActive,
1101
- page
1105
+ page,
1102
1106
  })
1103
1107
  }
1104
1108
  }
@@ -1117,7 +1121,7 @@ addHook({
1117
1121
  addHook({
1118
1122
  name: 'playwright',
1119
1123
  file: 'lib/worker/workerMain.js',
1120
- versions: ['>=1.38.0']
1124
+ versions: ['>=1.38.0'],
1121
1125
  }, (workerPackage) => {
1122
1126
  // we assume there's only a test running at a time
1123
1127
  let steps = []
@@ -1132,8 +1136,8 @@ addHook({
1132
1136
  const {
1133
1137
  _requireFile: testSuiteAbsolutePath,
1134
1138
  location: {
1135
- line: testSourceLine
1136
- }
1139
+ line: testSourceLine,
1140
+ },
1137
1141
  } = test
1138
1142
  let res
1139
1143
 
@@ -1148,7 +1152,7 @@ addHook({
1148
1152
  testName,
1149
1153
  testSuiteAbsolutePath,
1150
1154
  testSourceLine,
1151
- browserName
1155
+ browserName,
1152
1156
  }
1153
1157
  testToCtx.set(test, testCtx)
1154
1158
  // TODO - In the future we may need to implement a mechanism to send test properties
@@ -1189,7 +1193,7 @@ addHook({
1189
1193
  name: 'datadog-ci-visibility-test-execution-id',
1190
1194
  value: '',
1191
1195
  domain,
1192
- path: '/'
1196
+ path: '/',
1193
1197
  }])
1194
1198
  } else {
1195
1199
  log.error('RUM is active but page.url() is not available')
@@ -1202,7 +1206,7 @@ addHook({
1202
1206
  }
1203
1207
  },
1204
1208
  title: 'afterEach hook',
1205
- _ddHook: true
1209
+ _ddHook: true,
1206
1210
  })
1207
1211
  }
1208
1212
 
@@ -1267,7 +1271,7 @@ addHook({
1267
1271
  isAtrRetry: test._ddIsAtrRetry,
1268
1272
  isModified: test._ddIsModified,
1269
1273
  onDone,
1270
- ...testCtx.currentStore
1274
+ ...testCtx.currentStore,
1271
1275
  })
1272
1276
 
1273
1277
  await flushPromise
@@ -1282,7 +1286,7 @@ addHook({
1282
1286
  stepInfoByStepId[payload.stepId] = {
1283
1287
  startTime: payload.wallTime,
1284
1288
  title: payload.title,
1285
- testId: payload.testId
1289
+ testId: payload.testId,
1286
1290
  }
1287
1291
  } else if (event === 'stepEnd') {
1288
1292
  const stepInfo = stepInfoByStepId[payload.stepId]
@@ -1292,7 +1296,7 @@ addHook({
1292
1296
  startTime: new Date(stepInfo.startTime),
1293
1297
  title: stepInfo.title,
1294
1298
  duration: payload.wallTime - stepInfo.startTime,
1295
- error: payload.error
1299
+ error: payload.error,
1296
1300
  })
1297
1301
  }
1298
1302
  return dispatchEvent.apply(this, arguments)
@@ -1314,7 +1318,7 @@ function generateSummaryWrapper (generateSummary) {
1314
1318
  _ddIsNew: isNew,
1315
1319
  _ddIsDisabled: isDisabled,
1316
1320
  _ddIsModified: isModified,
1317
- _ddIsQuarantined: isQuarantined
1321
+ _ddIsQuarantined: isQuarantined,
1318
1322
  } = test
1319
1323
  const browserName = getBrowserNameFromProjects(sessionProjects, test)
1320
1324
 
@@ -1326,7 +1330,7 @@ function generateSummaryWrapper (generateSummary) {
1326
1330
  isNew,
1327
1331
  isDisabled,
1328
1332
  isModified,
1329
- isQuarantined
1333
+ isQuarantined,
1330
1334
  })
1331
1335
  }
1332
1336
  }
@@ -1341,7 +1345,7 @@ function generateSummaryWrapper (generateSummary) {
1341
1345
  addHook({
1342
1346
  name: 'playwright',
1343
1347
  file: 'lib/reporters/base.js',
1344
- versions: ['>=1.38.0']
1348
+ versions: ['>=1.38.0'],
1345
1349
  }, (reportersPackage) => {
1346
1350
  // v1.50.0 changed the name of the base reporter from BaseReporter to TerminalReporter
1347
1351
  if (reportersPackage.TerminalReporter) {
@@ -1,92 +1,38 @@
1
1
  'use strict'
2
2
 
3
- const tracingChannel = require('dc-polyfill').tracingChannel
4
-
3
+ const { getEnvironmentVariable } = require('../../dd-trace/src/config/helper')
5
4
  const { channel, addHook } = require('./helpers/instrument')
6
- const prismaEngineStart = channel('apm:prisma:engine:start')
7
- const clientCH = tracingChannel('apm:prisma:client')
8
-
9
- const allowedClientSpanOperations = new Set([
10
- 'operation',
11
- 'serialize',
12
- 'transaction'
13
- ])
14
-
15
- class DatadogTracingHelper {
16
- dbConfig = null
17
-
18
- constructor (dbConfig = null) {
19
- this.dbConfig = dbConfig
20
- }
21
-
22
- isEnabled () {
23
- return true
24
- }
25
-
26
- // needs a sampled tracecontext to generate engine spans
27
- getTraceParent (context) {
28
- // TODO: Fix the id
29
- return '00-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bbbbbbbbbbbbbbbb-01' // valid sampled traceparent
30
- }
31
-
32
- dispatchEngineSpans (spans) {
33
- for (const span of spans) {
34
- if (span.parentId === null) {
35
- prismaEngineStart.publish({ engineSpan: span, allEngineSpans: spans, dbConfig: this.dbConfig })
36
- }
37
- }
38
- }
39
-
40
- getActiveContext () {
41
- // TODO: Fix context
42
- }
43
-
44
- runInChildSpan (options, callback) {
45
- if (typeof options === 'string') {
46
- options = {
47
- name: options
48
- }
49
- }
50
-
51
- if (allowedClientSpanOperations.has(options.name)) {
52
- const ctx = {
53
- resourceName: options.name,
54
- attributes: options.attributes || {}
55
- }
56
-
57
- if (options.name !== 'serialize') {
58
- return clientCH.tracePromise(callback, ctx, this, ...arguments)
59
- }
60
-
61
- return clientCH.traceSync(callback, ctx, this, ...arguments)
62
- }
63
- return callback()
64
- }
65
-
66
- setDbString (dbConfig) {
67
- this.dbConfig = dbConfig
68
- }
69
- }
5
+ const prismaHelperInit = channel('apm:prisma:helper:init')
70
6
 
71
7
  const prismaHook = (runtime, versions, name, isIitm) => {
72
8
  const originalGetPrismaClient = runtime.getPrismaClient
73
9
 
74
10
  if (!originalGetPrismaClient) return runtime
75
- const datadogTracingHelper = new DatadogTracingHelper()
11
+
12
+ const prismaHelperCtx = {}
76
13
 
77
14
  const wrappedGetPrismaClient = function (config) {
78
- const datasources = config.inlineDatasources?.db.url?.value
79
- if (datasources) {
80
- const dbConfig = parseDBString(datasources)
81
- datadogTracingHelper.setDbString(dbConfig)
15
+ // Prisma config shapes vary by version/runtime entrypoint. We try a few known locations
16
+ // and fall back to DATABASE_URL when present.
17
+ const datasourceUrl =
18
+ config?.inlineDatasources?.db?.url?.value ??
19
+ config?.inlineDatasources?.db?.url ??
20
+ config?.overrideDatasources?.db?.url ??
21
+ config?.datasources?.db?.url ??
22
+ config?.datasourceUrl ??
23
+ getEnvironmentVariable('DATABASE_URL')
24
+
25
+ if (datasourceUrl && !prismaHelperCtx.dbConfig) {
26
+ prismaHelperCtx.dbConfig = parseDBString(datasourceUrl)
82
27
  }
28
+ prismaHelperInit.publish(prismaHelperCtx)
83
29
 
84
30
  const PrismaClient = originalGetPrismaClient.call(this, config)
85
31
  return class WrappedPrismaClientClass extends PrismaClient {
86
32
  constructor (clientConfig) {
87
33
  super(clientConfig)
88
- this._tracingHelper = datadogTracingHelper
89
- this._engine.tracingHelper = datadogTracingHelper
34
+ this._tracingHelper = prismaHelperCtx.helper
35
+ this._engine.tracingHelper = prismaHelperCtx.helper
90
36
  }
91
37
  }
92
38
  }
@@ -102,19 +48,19 @@ const prismaHook = (runtime, versions, name, isIitm) => {
102
48
  return wrappedGetPrismaClient
103
49
  }
104
50
  return target[prop]
105
- }
51
+ },
106
52
  })
107
53
  }
108
54
 
109
55
  const prismaConfigs = [
110
56
  { name: '@prisma/client', versions: ['>=6.1.0 <7.0.0'], filePattern: 'runtime/library.*' },
111
57
  { name: './runtime/library.js', versions: ['>=6.1.0 <7.0.0'], file: 'runtime/library.js' },
112
- { name: '@prisma/client', versions: ['>=7.0.0'], filePattern: 'runtime/client.*' }
58
+ { name: '@prisma/client', versions: ['>=7.0.0'], filePattern: 'runtime/client.*' },
113
59
  ]
114
60
 
115
- prismaConfigs.forEach(config => {
61
+ for (const config of prismaConfigs) {
116
62
  addHook(config, prismaHook)
117
- })
63
+ }
118
64
 
119
65
  function parseDBString (dbString) {
120
66
  const url = new URL(dbString)
@@ -123,7 +69,7 @@ function parseDBString (dbString) {
123
69
  password: url.password,
124
70
  host: url.hostname,
125
71
  port: url.port,
126
- database: url.pathname.slice(1) // Remove leading slash
72
+ database: url.pathname.slice(1), // Remove leading slash
127
73
  }
128
74
  return dbConfig
129
75
  }
@@ -6,7 +6,7 @@ const { wrapThen } = require('./helpers/promise')
6
6
 
7
7
  addHook({
8
8
  name: 'promise-js',
9
- versions: ['>=0.0.3']
9
+ versions: ['>=0.0.3'],
10
10
  }, Promise => {
11
11
  if (Promise !== global.Promise) {
12
12
  shimmer.wrap(Promise.prototype, 'then', wrapThen)
@@ -7,7 +7,7 @@ const { wrapThen } = require('./helpers/promise')
7
7
  addHook({
8
8
  name: 'promise',
9
9
  file: 'lib/core.js',
10
- versions: ['>=7']
10
+ versions: ['>=7'],
11
11
  }, Promise => {
12
12
  shimmer.wrap(Promise.prototype, 'then', wrapThen)
13
13
  return Promise
@@ -65,15 +65,15 @@ function wrapReflection (protobuf) {
65
65
  const reflectionMethods = [
66
66
  {
67
67
  target: protobuf.Root,
68
- name: 'fromJSON'
68
+ name: 'fromJSON',
69
69
  },
70
70
  {
71
71
  target: protobuf.Type.prototype,
72
- name: 'fromObject'
73
- }
72
+ name: 'fromObject',
73
+ },
74
74
  ]
75
75
 
76
- reflectionMethods.forEach(method => {
76
+ for (const method of reflectionMethods) {
77
77
  shimmer.wrap(method.target, method.name, original => function () {
78
78
  const result = original.apply(this, arguments)
79
79
  if (result.nested) {
@@ -86,7 +86,7 @@ function wrapReflection (protobuf) {
86
86
  }
87
87
  return result
88
88
  })
89
- })
89
+ }
90
90
  }
91
91
 
92
92
  function isPromise (obj) {
@@ -95,7 +95,7 @@ function isPromise (obj) {
95
95
 
96
96
  addHook({
97
97
  name: 'protobufjs',
98
- versions: ['>=6.8.0']
98
+ versions: ['>=6.8.0'],
99
99
  }, protobuf => {
100
100
  shimmer.wrap(protobuf.Root.prototype, 'load', original => function () {
101
101
  const result = original.apply(this, arguments)