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
@@ -3,11 +3,12 @@
3
3
  const { storage } = require('../../../datadog-core')
4
4
  const { COMPONENT } = require('../constants')
5
5
  const log = require('../log')
6
+ const { discoverCoverageReports } = require('../ci-visibility/coverage-report-discovery')
6
7
  const {
7
8
  incrementCountMetric,
8
9
  distributionMetric,
9
10
  TELEMETRY_EVENT_CREATED,
10
- TELEMETRY_ITR_SKIPPED
11
+ TELEMETRY_ITR_SKIPPED,
11
12
  } = require('../ci-visibility/telemetry')
12
13
  const getDiClient = require('../ci-visibility/dynamic-instrumentation')
13
14
  const { DD_MAJOR } = require('../../../../version')
@@ -24,7 +25,7 @@ const {
24
25
  GIT_PULL_REQUEST_BASE_BRANCH_SHA,
25
26
  GIT_COMMIT_HEAD_SHA,
26
27
  GIT_PULL_REQUEST_BASE_BRANCH,
27
- GIT_COMMIT_HEAD_MESSAGE
28
+ GIT_COMMIT_HEAD_MESSAGE,
28
29
  } = require('./util/tags')
29
30
  const Plugin = require('./plugin')
30
31
  const { getRepositoryRoot } = require('./util/git')
@@ -62,7 +63,15 @@ const {
62
63
  getPullRequestDiff,
63
64
  getModifiedFilesFromDiff,
64
65
  getPullRequestBaseBranch,
65
- TEST_IS_TEST_FRAMEWORK_WORKER
66
+ TEST_IS_TEST_FRAMEWORK_WORKER,
67
+ TEST_IS_NEW,
68
+ TEST_IS_RUM_ACTIVE,
69
+ TEST_BROWSER_DRIVER,
70
+ TEST_MANAGEMENT_IS_QUARANTINED,
71
+ TEST_MANAGEMENT_IS_DISABLED,
72
+ TEST_IS_MODIFIED,
73
+ TEST_IS_RETRY,
74
+ TEST_RETRY_REASON,
66
75
  } = require('./util/test')
67
76
 
68
77
  const FRAMEWORK_TO_TRIMMED_COMMAND = {
@@ -70,7 +79,7 @@ const FRAMEWORK_TO_TRIMMED_COMMAND = {
70
79
  mocha: 'mocha',
71
80
  cucumber: 'cucumber-js',
72
81
  playwright: 'playwright test',
73
- jest: 'jest'
82
+ jest: 'jest',
74
83
  }
75
84
 
76
85
  const WORKER_EXPORTER_TO_TEST_FRAMEWORK = {
@@ -78,7 +87,7 @@ const WORKER_EXPORTER_TO_TEST_FRAMEWORK = {
78
87
  jest_worker: 'jest',
79
88
  cucumber_worker: 'cucumber',
80
89
  mocha_worker: 'mocha',
81
- playwright_worker: 'playwright'
90
+ playwright_worker: 'playwright',
82
91
  }
83
92
 
84
93
  const TEST_FRAMEWORKS_TO_SKIP_GIT_METADATA_EXTRACTION = new Set([
@@ -95,7 +104,7 @@ function getTestSuiteLevelVisibilityTags (testSuiteSpan, testFramework) {
95
104
  [TEST_SUITE_ID]: testSuiteSpanContext.toSpanId(),
96
105
  [TEST_SESSION_ID]: testSuiteSpanContext.toTraceId(),
97
106
  [TEST_COMMAND]: testSuiteSpanContext._tags[TEST_COMMAND],
98
- [TEST_MODULE]: testFramework
107
+ [TEST_MODULE]: testFramework,
99
108
  }
100
109
 
101
110
  if (testSuiteSpanContext._parentId) {
@@ -129,8 +138,8 @@ module.exports = class CiPlugin extends Plugin {
129
138
  const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id, isParallel, frameworkVersion)
130
139
  const metadataTags = {
131
140
  test: {
132
- ...libraryCapabilitiesTags
133
- }
141
+ ...libraryCapabilitiesTags,
142
+ },
134
143
  }
135
144
  this.tracer._exporter.addMetadataTags(metadataTags)
136
145
  onDone({ err, libraryConfig })
@@ -174,7 +183,7 @@ module.exports = class CiPlugin extends Plugin {
174
183
  const metadataTags = {}
175
184
  for (const testLevel of TEST_LEVEL_EVENT_TYPES) {
176
185
  metadataTags[testLevel] = {
177
- [TEST_SESSION_NAME]: testSessionName
186
+ [TEST_SESSION_NAME]: testSessionName,
178
187
  }
179
188
  }
180
189
  // tracer might not be initialized correctly
@@ -187,9 +196,9 @@ module.exports = class CiPlugin extends Plugin {
187
196
  tags: {
188
197
  [COMPONENT]: this.constructor.id,
189
198
  ...this.testEnvironmentMetadata,
190
- ...testSessionSpanMetadata
199
+ ...testSessionSpanMetadata,
191
200
  },
192
- integrationName: this.constructor.id
201
+ integrationName: this.constructor.id,
193
202
  })
194
203
  // TODO: add telemetry tag when we can add `is_agentless_log_submission_enabled` for agentless log submission
195
204
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_CREATED, 'session')
@@ -199,9 +208,9 @@ module.exports = class CiPlugin extends Plugin {
199
208
  tags: {
200
209
  [COMPONENT]: this.constructor.id,
201
210
  ...this.testEnvironmentMetadata,
202
- ...testModuleSpanMetadata
211
+ ...testModuleSpanMetadata,
203
212
  },
204
- integrationName: this.constructor.id
213
+ integrationName: this.constructor.id,
205
214
  })
206
215
  // only for vitest
207
216
  // These are added for the worker threads to use
@@ -220,7 +229,7 @@ module.exports = class CiPlugin extends Plugin {
220
229
 
221
230
  this.addSub(`ci:${this.constructor.id}:itr:skipped-suites`, ({ skippedSuites, frameworkVersion }) => {
222
231
  const testCommand = this.testSessionSpan.context()._tags[TEST_COMMAND]
223
- skippedSuites.forEach((testSuite) => {
232
+ for (const testSuite of skippedSuites) {
224
233
  const testSuiteMetadata = getTestSuiteCommonTags(testCommand, frameworkVersion, testSuite, this.constructor.id)
225
234
  if (this.itrCorrelationId) {
226
235
  testSuiteMetadata[ITR_CORRELATION_ID] = this.itrCorrelationId
@@ -233,11 +242,11 @@ module.exports = class CiPlugin extends Plugin {
233
242
  ...this.testEnvironmentMetadata,
234
243
  ...testSuiteMetadata,
235
244
  [TEST_STATUS]: 'skip',
236
- [TEST_SKIPPED_BY_ITR]: 'true'
245
+ [TEST_SKIPPED_BY_ITR]: 'true',
237
246
  },
238
- integrationName: this.constructor.id
247
+ integrationName: this.constructor.id,
239
248
  }).finish()
240
- })
249
+ }
241
250
  this.telemetry.count(TELEMETRY_ITR_SKIPPED, { testLevel: 'suite' }, skippedSuites.length)
242
251
  })
243
252
 
@@ -284,7 +293,7 @@ module.exports = class CiPlugin extends Plugin {
284
293
  const {
285
294
  [GIT_PULL_REQUEST_BASE_BRANCH]: pullRequestBaseBranch,
286
295
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseBranchSha,
287
- [GIT_COMMIT_HEAD_SHA]: commitHeadSha
296
+ [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
288
297
  } = this.testEnvironmentMetadata
289
298
 
290
299
  const baseBranchSha = pullRequestBaseBranchSha || getPullRequestBaseBranch(pullRequestBaseBranch)
@@ -329,14 +338,14 @@ module.exports = class CiPlugin extends Plugin {
329
338
  const testSuite = span.meta[TEST_SUITE]
330
339
  const testSuiteSpan = this._testSuiteSpansByTestSuite.get(testSuite)
331
340
  if (!testSuiteSpan) {
332
- log.warn(`Test suite span not found for test span with test suite ${testSuite}`)
341
+ log.warn('Test suite span not found for test span with test suite %s', testSuite)
333
342
  continue
334
343
  }
335
344
 
336
345
  const testSuiteTags = getTestSuiteLevelVisibilityTags(testSuiteSpan, this.constructor.id)
337
346
  span.meta = {
338
347
  ...span.meta,
339
- ...testSuiteTags
348
+ ...testSuiteTags,
340
349
  }
341
350
  }
342
351
  }
@@ -345,21 +354,59 @@ module.exports = class CiPlugin extends Plugin {
345
354
  })
346
355
 
347
356
  this.addSub(`ci:${this.constructor.id}:worker-report:logs`, (logsPayloads) => {
348
- JSON.parse(logsPayloads).forEach(({ logMessage }) => {
357
+ for (const { logMessage } of JSON.parse(logsPayloads)) {
349
358
  this.tracer._exporter.exportDiLogs(this.testEnvironmentMetadata, logMessage)
350
- })
359
+ }
351
360
  })
352
361
  }
353
362
 
354
363
  get telemetry () {
355
364
  const testFramework = this.constructor.id
365
+ const exporter = this.tracer?._exporter
366
+ // TODO: only jest worker supported yet
367
+ const isSupportedWorker = exporter && typeof exporter.exportTelemetry === 'function'
368
+ const ciProviderName = this.ciProviderName
369
+
370
+ if (isSupportedWorker) {
371
+ // In supported worker: send telemetry events to main process
372
+ return {
373
+ ciVisEvent: function (name, testLevel, tags = {}) {
374
+ exporter.exportTelemetry({
375
+ type: 'ciVisEvent',
376
+ name,
377
+ testLevel,
378
+ testFramework,
379
+ isUnsupportedCIProvider: !ciProviderName,
380
+ tags,
381
+ })
382
+ },
383
+ count: function (name, tags, value = 1) {
384
+ exporter.exportTelemetry({
385
+ type: 'count',
386
+ name,
387
+ tags,
388
+ value,
389
+ })
390
+ },
391
+ distribution: function (name, tags, measure) {
392
+ exporter.exportTelemetry({
393
+ type: 'distribution',
394
+ name,
395
+ tags,
396
+ measure,
397
+ })
398
+ },
399
+ }
400
+ }
401
+
402
+ // In main process or unsupported worker: execute telemetry directly
356
403
  return {
357
404
  ciVisEvent: function (name, testLevel, tags = {}) {
358
405
  incrementCountMetric(name, {
359
406
  testLevel,
360
407
  testFramework,
361
- isUnsupportedCIProvider: !this.ciProviderName,
362
- ...tags
408
+ isUnsupportedCIProvider: !ciProviderName,
409
+ ...tags,
363
410
  })
364
411
  },
365
412
  count: function (name, tags, value = 1) {
@@ -367,7 +414,7 @@ module.exports = class CiPlugin extends Plugin {
367
414
  },
368
415
  distribution: function (name, tags, measure) {
369
416
  distributionMetric(name, tags, measure)
370
- }
417
+ },
371
418
  }
372
419
  }
373
420
 
@@ -412,7 +459,7 @@ module.exports = class CiPlugin extends Plugin {
412
459
  [GIT_TAG]: tag,
413
460
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseSha,
414
461
  [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
415
- [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage
462
+ [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage,
416
463
  } = this.testEnvironmentMetadata
417
464
 
418
465
  this.repositoryRoot = repositoryRoot || getRepositoryRoot() || process.cwd()
@@ -435,14 +482,14 @@ module.exports = class CiPlugin extends Plugin {
435
482
  tag,
436
483
  pullRequestBaseSha,
437
484
  commitHeadSha,
438
- commitHeadMessage
485
+ commitHeadMessage,
439
486
  }
440
487
  }
441
488
 
442
489
  getCodeOwners (tags) {
443
490
  const {
444
491
  [TEST_SOURCE_FILE]: testSourceFile,
445
- [TEST_SUITE]: testSuite
492
+ [TEST_SUITE]: testSuite,
446
493
  } = tags
447
494
  // We'll try with the test source file if available (it could be different from the test suite)
448
495
  let codeOwners = getCodeOwnersForFilename(testSourceFile, this.codeOwnersEntries)
@@ -463,7 +510,7 @@ module.exports = class CiPlugin extends Plugin {
463
510
  this.constructor.id
464
511
  ),
465
512
  [COMPONENT]: this.constructor.id,
466
- ...extraTags
513
+ ...extraTags,
467
514
  }
468
515
 
469
516
  const codeOwners = this.getCodeOwners(testTags)
@@ -481,7 +528,7 @@ module.exports = class CiPlugin extends Plugin {
481
528
  [TEST_SUITE_ID]: testSuiteSpan.context().toSpanId(),
482
529
  [TEST_SESSION_ID]: testSuiteSpan.context().toTraceId(),
483
530
  [TEST_COMMAND]: testSuiteSpan.context()._tags[TEST_COMMAND],
484
- [TEST_MODULE]: this.constructor.id
531
+ [TEST_MODULE]: this.constructor.id,
485
532
  }
486
533
  if (testSuiteSpan.context()._parentId) {
487
534
  suiteTags[TEST_MODULE_ID] = testSuiteSpan.context()._parentId.toString(10)
@@ -489,7 +536,7 @@ module.exports = class CiPlugin extends Plugin {
489
536
 
490
537
  testTags = {
491
538
  ...testTags,
492
- ...suiteTags
539
+ ...suiteTags,
493
540
  }
494
541
  }
495
542
 
@@ -500,9 +547,9 @@ module.exports = class CiPlugin extends Plugin {
500
547
  childOf,
501
548
  tags: {
502
549
  ...this.testEnvironmentMetadata,
503
- ...testTags
550
+ ...testTags,
504
551
  },
505
- integrationName: this.constructor.id
552
+ integrationName: this.constructor.id,
506
553
  })
507
554
 
508
555
  testSpan.context()._trace.origin = CI_APP_ORIGIN
@@ -539,8 +586,8 @@ module.exports = class CiPlugin extends Plugin {
539
586
  debugger: { snapshot },
540
587
  dd: {
541
588
  trace_id: activeTestSpanContext.toTraceId(),
542
- span_id: activeTestSpanContext.toSpanId()
543
- }
589
+ span_id: activeTestSpanContext.toSpanId(),
590
+ },
544
591
  })
545
592
  }
546
593
 
@@ -588,7 +635,7 @@ module.exports = class CiPlugin extends Plugin {
588
635
  setProbePromise: Promise.resolve(),
589
636
  stackIndex,
590
637
  file,
591
- line
638
+ line,
592
639
  }
593
640
  }
594
641
 
@@ -601,7 +648,87 @@ module.exports = class CiPlugin extends Plugin {
601
648
  setProbePromise,
602
649
  stackIndex,
603
650
  file,
604
- line
651
+ line,
652
+ }
653
+ }
654
+
655
+ /**
656
+ * Uploads coverage reports if enabled. This is the common logic used by plugins.
657
+ * @param {object} options - Upload options
658
+ * @param {string} options.rootDir - The root directory where coverage reports are located
659
+ * @param {Function} [options.onDone] - Callback to signal completion
660
+ */
661
+ uploadCoverageReports ({ rootDir, onDone }) {
662
+ const done = onDone || (() => {})
663
+
664
+ // Check if the exporter supports coverage report upload
665
+ if (!this.tracer._exporter?.uploadCoverageReport) {
666
+ log.debug('Exporter does not support coverage report upload')
667
+ done()
668
+ return
669
+ }
670
+
671
+ const coverageReports = discoverCoverageReports(rootDir)
672
+ if (coverageReports.length === 0) {
673
+ log.debug('No coverage reports found to upload')
674
+ done()
675
+ return
676
+ }
677
+
678
+ log.debug('Coverage report upload is enabled, found %d report(s) to upload', coverageReports.length)
679
+
680
+ // Upload reports sequentially (one file per request)
681
+ let uploadedCount = 0
682
+ let failedCount = 0
683
+ let reportIndex = 0
684
+
685
+ const uploadNextReport = () => {
686
+ if (reportIndex >= coverageReports.length) {
687
+ // All reports processed, log summary
688
+ if (failedCount > 0) {
689
+ log.warn('Coverage report upload completed: %d succeeded, %d failed', uploadedCount, failedCount)
690
+ } else {
691
+ log.info('Coverage report upload completed: %d report(s) uploaded', uploadedCount)
692
+ }
693
+ done()
694
+ return
695
+ }
696
+
697
+ const { filePath, format } = coverageReports[reportIndex]
698
+ reportIndex++
699
+
700
+ this.tracer._exporter.uploadCoverageReport(
701
+ { filePath, format, testEnvironmentMetadata: this.testEnvironmentMetadata },
702
+ (err) => {
703
+ if (err) {
704
+ failedCount++
705
+ log.error('Failed to upload coverage report %s: %s', filePath, err.message)
706
+ } else {
707
+ uploadedCount++
708
+ }
709
+
710
+ // Process next report
711
+ uploadNextReport()
712
+ }
713
+ )
714
+ }
715
+
716
+ uploadNextReport()
717
+ }
718
+
719
+ getTestTelemetryTags (testSpan) {
720
+ const activeSpanTags = testSpan.context()._tags
721
+ return {
722
+ hasCodeOwners: !!activeSpanTags[TEST_CODE_OWNERS] || undefined,
723
+ isNew: activeSpanTags[TEST_IS_NEW] === 'true' || undefined,
724
+ isRum: activeSpanTags[TEST_IS_RUM_ACTIVE] === 'true' || undefined,
725
+ browserDriver: activeSpanTags[TEST_BROWSER_DRIVER],
726
+ isQuarantined: activeSpanTags[TEST_MANAGEMENT_IS_QUARANTINED] === 'true' || undefined,
727
+ isDisabled: activeSpanTags[TEST_MANAGEMENT_IS_DISABLED] === 'true' || undefined,
728
+ isModified: activeSpanTags[TEST_IS_MODIFIED] === 'true' || undefined,
729
+ isRetry: activeSpanTags[TEST_IS_RETRY] === 'true' || undefined,
730
+ retryReason: activeSpanTags[TEST_RETRY_REASON],
731
+ isFailedTestReplayEnabled: activeSpanTags[DI_ERROR_DEBUG_INFO_CAPTURED] === 'true' || undefined,
605
732
  }
606
733
  }
607
734
  }
@@ -17,7 +17,7 @@ class DatabasePlugin extends StoragePlugin {
17
17
  ddps: '',
18
18
  encodedDdps: '',
19
19
  ddpv: '',
20
- encodedDdpv: ''
20
+ encodedDdpv: '',
21
21
  }
22
22
  }
23
23
 
@@ -110,7 +110,7 @@ const plugins = {
110
110
  get tedious () { return require('../../../datadog-plugin-tedious/src') },
111
111
  get undici () { return require('../../../datadog-plugin-undici/src') },
112
112
  get winston () { return require('../../../datadog-plugin-winston/src') },
113
- get ws () { return require('../../../datadog-plugin-ws/src') }
113
+ get ws () { return require('../../../datadog-plugin-ws/src') },
114
114
  }
115
115
 
116
116
  module.exports = plugins
@@ -22,7 +22,7 @@ function messageProxy (message, holder) {
22
22
  },
23
23
  getOwnPropertyDescriptor (target, p) {
24
24
  return Reflect.getOwnPropertyDescriptor(shouldOverride(target, p) ? holder : target, p)
25
- }
25
+ },
26
26
  })
27
27
  }
28
28
 
@@ -48,7 +48,7 @@ module.exports = class LogPlugin extends Plugin {
48
48
  configure (config) {
49
49
  return super.configure({
50
50
  ...config,
51
- enabled: config.enabled && (config.logInjection || config.ciVisAgentlessLogSubmissionEnabled)
51
+ enabled: config.enabled && (config.logInjection || config.ciVisAgentlessLogSubmissionEnabled),
52
52
  })
53
53
  }
54
54
  }
@@ -4,15 +4,16 @@ const {
4
4
  CLIENT_PORT_KEY,
5
5
  PEER_SERVICE_KEY,
6
6
  PEER_SERVICE_SOURCE_KEY,
7
- PEER_SERVICE_REMAP_KEY
7
+ PEER_SERVICE_REMAP_KEY,
8
8
  } = require('../constants')
9
9
  const { exitTags } = require('../../../datadog-code-origin')
10
10
  const { storage } = require('../../../datadog-core')
11
+ const { IS_SERVERLESS } = require('../serverless')
11
12
  const TracingPlugin = require('./tracing')
12
13
 
13
14
  const COMMON_PEER_SVC_SOURCE_TAGS = [
14
15
  'net.peer.name',
15
- 'out.host'
16
+ 'out.host',
16
17
  ]
17
18
 
18
19
  // TODO: Exit span on finish when AsyncResource instances are removed.
@@ -55,20 +56,20 @@ class OutboundPlugin extends TracingPlugin {
55
56
  if (tags[PEER_SERVICE_KEY] !== undefined) {
56
57
  return {
57
58
  [PEER_SERVICE_KEY]: tags[PEER_SERVICE_KEY],
58
- [PEER_SERVICE_SOURCE_KEY]: PEER_SERVICE_KEY
59
+ [PEER_SERVICE_SOURCE_KEY]: PEER_SERVICE_KEY,
59
60
  }
60
61
  }
61
62
 
62
63
  const sourceTags = [
63
64
  ...this.constructor.peerServicePrecursors,
64
- ...COMMON_PEER_SVC_SOURCE_TAGS
65
+ ...COMMON_PEER_SVC_SOURCE_TAGS,
65
66
  ]
66
67
 
67
68
  for (const sourceTag of sourceTags) {
68
69
  if (tags[sourceTag]) {
69
70
  return {
70
71
  [PEER_SERVICE_KEY]: tags[sourceTag],
71
- [PEER_SERVICE_SOURCE_KEY]: sourceTag
72
+ [PEER_SERVICE_SOURCE_KEY]: sourceTag,
72
73
  }
73
74
  }
74
75
  }
@@ -85,7 +86,7 @@ class OutboundPlugin extends TracingPlugin {
85
86
  return {
86
87
  ...peerData,
87
88
  [PEER_SERVICE_KEY]: mappedService,
88
- [PEER_SERVICE_REMAP_KEY]: peerService
89
+ [PEER_SERVICE_REMAP_KEY]: peerService,
89
90
  }
90
91
  }
91
92
  return peerData
@@ -95,7 +96,7 @@ class OutboundPlugin extends TracingPlugin {
95
96
  const span = ctx?.currentStore?.span || this.activeSpan
96
97
  this.tagPeerService(span)
97
98
 
98
- if (this._tracerConfig?._isInServerlessEnvironment()) {
99
+ if (IS_SERVERLESS) {
99
100
  const peerHostname = storage('peerServerless').getStore()?.peerHostname
100
101
  if (peerHostname) span.setTag('peer.service', peerHostname)
101
102
  }
@@ -125,7 +126,7 @@ class OutboundPlugin extends TracingPlugin {
125
126
 
126
127
  span.addTags({
127
128
  'out.host': hostname,
128
- [CLIENT_PORT_KEY]: port
129
+ [CLIENT_PORT_KEY]: port,
129
130
  })
130
131
  }
131
132
  }
@@ -172,14 +172,24 @@ module.exports = class Plugin {
172
172
  config = { enabled: config }
173
173
  }
174
174
  this.config = config
175
- if (config.enabled && !this._enabled) {
176
- this._enabled = true
177
- this._subscriptions.forEach(sub => sub.enable())
178
- this._bindings.forEach(sub => sub.enable())
179
- } else if (!config.enabled && this._enabled) {
175
+ if (config.enabled) {
176
+ if (!this._enabled) {
177
+ this._enabled = true
178
+ for (const sub of this._subscriptions) {
179
+ sub.enable()
180
+ }
181
+ for (const sub of this._bindings) {
182
+ sub.enable()
183
+ }
184
+ }
185
+ } else if (this._enabled) {
180
186
  this._enabled = false
181
- this._subscriptions.forEach(sub => sub.disable())
182
- this._bindings.forEach(sub => sub.disable())
187
+ for (const sub of this._subscriptions) {
188
+ sub.disable()
189
+ }
190
+ for (const sub of this._bindings) {
191
+ sub.disable()
192
+ }
183
193
  }
184
194
  }
185
195
  }
@@ -9,16 +9,17 @@ class ProducerPlugin extends OutboundPlugin {
9
9
 
10
10
  startSpan (options, enterOrCtx) {
11
11
  const spanDefaults = {
12
- kind: this.constructor.kind
12
+ kind: this.constructor.kind,
13
13
  }
14
14
  if (!options.service) {
15
15
  options.service = this.config.service || this.serviceName()
16
16
  }
17
- Object.keys(spanDefaults).forEach(
18
- key => {
19
- if (!options[key]) options[key] = spanDefaults[key]
17
+ for (const key of Object.keys(spanDefaults)) {
18
+ if (!options[key]) {
19
+ options[key] = spanDefaults[key]
20
20
  }
21
- )
21
+ }
22
+
22
23
  return super.startSpan(this.operationName(), options, enterOrCtx)
23
24
  }
24
25
  }
@@ -25,7 +25,7 @@ class TracingPlugin extends Plugin {
25
25
  const {
26
26
  type = this.constructor.type,
27
27
  id = this.constructor.id,
28
- kind = this.constructor.kind
28
+ kind = this.constructor.kind,
29
29
  } = opts
30
30
 
31
31
  return this._tracer._nomenclature.serviceName(type, kind, id, opts)
@@ -35,7 +35,7 @@ class TracingPlugin extends Plugin {
35
35
  const {
36
36
  type = this.constructor.type,
37
37
  id = this.constructor.id,
38
- kind = this.constructor.kind
38
+ kind = this.constructor.kind,
39
39
  } = opts
40
40
 
41
41
  return this._tracer._nomenclature.opName(type, kind, id, opts)
@@ -46,8 +46,8 @@ class TracingPlugin extends Plugin {
46
46
  ...config,
47
47
  hooks: {
48
48
  [this.operation]: () => {},
49
- ...config.hooks
50
- }
49
+ ...config.hooks,
50
+ },
51
51
  })
52
52
  }
53
53
 
@@ -102,6 +102,35 @@ class TracingPlugin extends Plugin {
102
102
  }
103
103
  }
104
104
 
105
+ /**
106
+ * Start a new span.
107
+ *
108
+ * Important: `childOf` can be `null` to indicate that the span is a root span.
109
+ * This is useful for plugins that need to start a span without a parent, such
110
+ * as the root span of a serverless function.
111
+ *
112
+ * @example
113
+ * const span = this.startSpan('my.span', {
114
+ * childOf: null,
115
+ * })
116
+ *
117
+ * @param {string} name - The name of the span.
118
+ * @param {object} [options] - The options for the span.
119
+ * @param {string} [options.component] - The component of the span.
120
+ * @param {import('../opentracing/span') | null} [options.childOf] - The parent span.
121
+ * @param {string} [options.integrationName] - The integration name.
122
+ * @param {string} [options.kind] - The kind of the span.
123
+ * @param {object} [options.meta] - The meta data for the span.
124
+ * @param {object} [options.metrics] - The metrics for the span.
125
+ * @param {string} [options.service] - The service name.
126
+ * @param {number} [options.startTime] - The start time of the span.
127
+ * @param {string} [options.resource] - The resource name.
128
+ * @param {string} [options.type] - The type of the span.
129
+ * @param {import('../tracer')} [options.tracer] - The tracer.
130
+ * @param {object} [options.config] - The config for the span.
131
+ *
132
+ * @param {boolean} enterOrCtx - Whether to enter the span context into the storage.
133
+ */
105
134
  startSpan (name, options = {}, enterOrCtx = true) {
106
135
  // TODO: modularize this code to a helper function
107
136
  let {
@@ -114,7 +143,7 @@ class TracingPlugin extends Plugin {
114
143
  service,
115
144
  startTime,
116
145
  resource,
117
- type
146
+ type,
118
147
  } = options
119
148
 
120
149
  const tracer = options.tracer || this.tracer
@@ -122,7 +151,7 @@ class TracingPlugin extends Plugin {
122
151
 
123
152
  const store = storage('legacy').getStore()
124
153
  if (store && childOf === undefined) {
125
- childOf = store.span
154
+ childOf = /** @type {import('../opentracing/span') | undefined} */ (store.span)
126
155
  }
127
156
 
128
157
  const span = tracer.startSpan(name, {
@@ -135,10 +164,10 @@ class TracingPlugin extends Plugin {
135
164
  'span.kind': kind,
136
165
  'span.type': type,
137
166
  ...meta,
138
- ...metrics
167
+ ...metrics,
139
168
  },
140
169
  integrationName: integrationName || component,
141
- links: childOf?._links
170
+ links: childOf?._links,
142
171
  })
143
172
 
144
173
  analyticsSampler.sample(span, config.measured)