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
@@ -11,7 +11,6 @@
11
11
  "@isaacs/ttlcache","https://github.com/isaacs/ttlcache","['BlueOak-1.0.0']","['Isaac Z. Schlueter']"
12
12
  "@jsep-plugin/assignment","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
13
13
  "@jsep-plugin/regex","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
14
- "@openfeature/server-sdk","https://github.com/open-feature/js-sdk","['Apache-2.0']","['open-feature']"
15
14
  "@opentelemetry/api","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
16
15
  "@opentelemetry/api-logs","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
17
16
  "@opentelemetry/core","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
@@ -20,6 +20,6 @@ if (!Array.prototype.at) {
20
20
  return (index < 0 || index >= len) ? undefined : this[index]
21
21
  },
22
22
  writable: true,
23
- configurable: true
23
+ configurable: true,
24
24
  })
25
25
  }
package/ci/init.js CHANGED
@@ -14,7 +14,7 @@ const EXPORTER_MAP = {
14
14
  cucumber: 'cucumber_worker',
15
15
  mocha: 'mocha_worker',
16
16
  playwright: 'playwright_worker',
17
- vitest: 'vitest_worker'
17
+ vitest: 'vitest_worker',
18
18
  }
19
19
 
20
20
  function isPackageManager () {
@@ -40,7 +40,7 @@ const isJestWorker = testWorkerType === 'jest'
40
40
  const baseOptions = {
41
41
  startupLogs: false,
42
42
  isCiVisibility: true,
43
- flushInterval: isJestWorker ? JEST_FLUSH_INTERVAL : DEFAULT_FLUSH_INTERVAL
43
+ flushInterval: isJestWorker ? JEST_FLUSH_INTERVAL : DEFAULT_FLUSH_INTERVAL,
44
44
  }
45
45
 
46
46
  let shouldInit = !isFalse(getValueFromEnvSources('DD_CIVISIBILITY_ENABLED'))
@@ -54,13 +54,13 @@ if (!isTestWorker && isPackageManager()) {
54
54
  if (isTestWorker) {
55
55
  baseOptions.telemetry = { enabled: false }
56
56
  baseOptions.experimental = {
57
- exporter: EXPORTER_MAP[testWorkerType]
57
+ exporter: EXPORTER_MAP[testWorkerType],
58
58
  }
59
59
  } else {
60
60
  if (isAgentlessEnabled) {
61
61
  if (getValueFromEnvSources('DD_API_KEY')) {
62
62
  baseOptions.experimental = {
63
- exporter: 'datadog'
63
+ exporter: 'datadog',
64
64
  }
65
65
  } else {
66
66
  console.error(
@@ -72,7 +72,7 @@ if (isTestWorker) {
72
72
  }
73
73
  } else {
74
74
  baseOptions.experimental = {
75
- exporter: 'agent_proxy'
75
+ exporter: 'agent_proxy',
76
76
  }
77
77
  }
78
78
  }
package/ext/exporters.js CHANGED
@@ -8,5 +8,5 @@ module.exports = {
8
8
  CUCUMBER_WORKER: 'cucumber_worker',
9
9
  MOCHA_WORKER: 'mocha_worker',
10
10
  PLAYWRIGHT_WORKER: 'playwright_worker',
11
- VITEST_WORKER: 'vitest_worker'
11
+ VITEST_WORKER: 'vitest_worker',
12
12
  }
package/ext/formats.js CHANGED
@@ -5,5 +5,5 @@ module.exports = {
5
5
  HTTP_HEADERS: 'http_headers',
6
6
  BINARY: 'binary',
7
7
  LOG: 'log',
8
- TEXT_MAP_DSM: 'text_map_dsm'
8
+ TEXT_MAP_DSM: 'text_map_dsm',
9
9
  }
package/ext/index.js CHANGED
@@ -13,5 +13,5 @@ module.exports = {
13
13
  priority,
14
14
  tags,
15
15
  types,
16
- exporters
16
+ exporters,
17
17
  }
package/ext/kinds.js CHANGED
@@ -5,5 +5,5 @@ module.exports = {
5
5
  CLIENT: 'client',
6
6
  PRODUCER: 'producer',
7
7
  CONSUMER: 'consumer',
8
- INTERNAL: 'internal'
8
+ INTERNAL: 'internal',
9
9
  }
package/ext/priority.js CHANGED
@@ -4,5 +4,5 @@ module.exports = {
4
4
  USER_REJECT: -1,
5
5
  AUTO_REJECT: 0,
6
6
  AUTO_KEEP: 1,
7
- USER_KEEP: 2
7
+ USER_KEEP: 2,
8
8
  }
package/ext/scopes.js CHANGED
@@ -5,5 +5,5 @@ module.exports = {
5
5
  ASYNC_LOCAL_STORAGE: 'async_local_storage',
6
6
  ASYNC_HOOKS: 'async_hooks',
7
7
  SYNC: 'sync',
8
- NOOP: 'noop'
8
+ NOOP: 'noop',
9
9
  }
package/ext/tags.js CHANGED
@@ -29,7 +29,7 @@ const tags = {
29
29
  // Messaging
30
30
 
31
31
  // DSM Specific
32
- PATHWAY_HASH: 'pathway.hash'
32
+ PATHWAY_HASH: 'pathway.hash',
33
33
  }
34
34
 
35
35
  // Deprecated
package/ext/types.js CHANGED
@@ -3,5 +3,5 @@
3
3
  module.exports = {
4
4
  HTTP: 'http',
5
5
  SERVERLESS: 'serverless',
6
- WEB: 'web'
6
+ WEB: 'web',
7
7
  }
package/index.d.ts CHANGED
@@ -148,7 +148,7 @@ interface Tracer extends opentracing.Tracer {
148
148
  * OpenFeature Provider with Remote Config integration.
149
149
  *
150
150
  * Extends DatadogNodeServerProvider with Remote Config integration for dynamic flag configuration.
151
- * Enable with DD_FLAGGING_PROVIDER_ENABLED=true.
151
+ * Enable with DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true.
152
152
  *
153
153
  * @beta This feature is in preview and not ready for production use
154
154
  */
@@ -241,6 +241,8 @@ interface Plugins {
241
241
  "express": tracer.plugins.express;
242
242
  "fastify": tracer.plugins.fastify;
243
243
  "fetch": tracer.plugins.fetch;
244
+ "find-my-way": tracer.plugins.find_my_way;
245
+ "fs": tracer.plugins.fs;
244
246
  "generic-pool": tracer.plugins.generic_pool;
245
247
  "google-cloud-pubsub": tracer.plugins.google_cloud_pubsub;
246
248
  "google-cloud-vertexai": tracer.plugins.google_cloud_vertexai;
@@ -269,6 +271,7 @@ interface Plugins {
269
271
  "mysql2": tracer.plugins.mysql2;
270
272
  "net": tracer.plugins.net;
271
273
  "next": tracer.plugins.next;
274
+ "nyc": tracer.plugins.nyc;
272
275
  "openai": tracer.plugins.openai;
273
276
  "opensearch": tracer.plugins.opensearch;
274
277
  "oracledb": tracer.plugins.oracledb;
@@ -286,7 +289,9 @@ interface Plugins {
286
289
  "tedious": tracer.plugins.tedious;
287
290
  "undici": tracer.plugins.undici;
288
291
  "vitest": tracer.plugins.vitest;
292
+ "web": tracer.plugins.web;
289
293
  "winston": tracer.plugins.winston;
294
+ "ws": tracer.plugins.ws;
290
295
  }
291
296
 
292
297
  declare namespace tracer {
@@ -687,6 +692,7 @@ declare namespace tracer {
687
692
  /**
688
693
  * Whether to enable the feature flagging provider.
689
694
  * Requires Remote Config to be properly configured.
695
+ * Can be configured via DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED environment variable.
690
696
  *
691
697
  * @default false
692
698
  */
@@ -694,6 +700,7 @@ declare namespace tracer {
694
700
  /**
695
701
  * Timeout in milliseconds for OpenFeature provider initialization.
696
702
  * If configuration is not received within this time, initialization fails.
703
+ * Can be configured via DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS environment variable.
697
704
  *
698
705
  * @default 30000
699
706
  */
@@ -1567,6 +1574,16 @@ declare namespace tracer {
1567
1574
  */
1568
1575
  blacklist?: string | RegExp | ((urlOrPath: string) => boolean) | (string | RegExp | ((urlOrPath: string) => boolean))[];
1569
1576
 
1577
+ /**
1578
+ * Custom filter function used to decide whether a URL/path is allowed.
1579
+ * When provided, this takes precedence over allowlist/blocklist configuration.
1580
+ * If not provided, allowlist/blocklist logic will be used instead.
1581
+ *
1582
+ * @param urlOrPath - The URL or path to filter
1583
+ * @returns true to instrument the request, false to skip it
1584
+ */
1585
+ filter?: (urlOrPath: string) => boolean;
1586
+
1570
1587
  /**
1571
1588
  * An array of headers to include in the span metadata.
1572
1589
  *
@@ -1619,6 +1636,21 @@ declare namespace tracer {
1619
1636
  * @default true
1620
1637
  */
1621
1638
  middleware?: boolean;
1639
+
1640
+ /**
1641
+ * Whether (or how) to obfuscate querystring values in `http.url`.
1642
+ *
1643
+ * - `true`: obfuscate all values
1644
+ * - `false`: disable obfuscation
1645
+ * - `string`: regex string used to obfuscate matching values (empty string disables)
1646
+ * - `RegExp`: regex used to obfuscate matching values
1647
+ */
1648
+ queryStringObfuscation?: boolean | string | RegExp;
1649
+
1650
+ /**
1651
+ * Whether to enable resource renaming when the framework route is unavailable.
1652
+ */
1653
+ resourceRenamingEnabled?: boolean;
1622
1654
  }
1623
1655
 
1624
1656
  /** @hidden */
@@ -1684,6 +1716,20 @@ declare namespace tracer {
1684
1716
  * @default code => code < 500
1685
1717
  */
1686
1718
  validateStatus?: (code: number) => boolean;
1719
+ /**
1720
+ * Whether (or how) to obfuscate querystring values in `http.url`.
1721
+ *
1722
+ * - `true`: obfuscate all values
1723
+ * - `false`: disable obfuscation
1724
+ * - `string`: regex string used to obfuscate matching values (empty string disables)
1725
+ * - `RegExp`: regex used to obfuscate matching values
1726
+ */
1727
+ queryStringObfuscation?: boolean | string | RegExp;
1728
+
1729
+ /**
1730
+ * Whether to enable resource renaming when the framework route is unavailable.
1731
+ */
1732
+ resourceRenamingEnabled?: boolean;
1687
1733
  }
1688
1734
 
1689
1735
  /** @hidden */
@@ -1820,7 +1866,12 @@ declare namespace tracer {
1820
1866
  * This plugin automatically instruments the
1821
1867
  * @azure/functions module.
1822
1868
  */
1823
- interface azure_functions extends Instrumentation {}
1869
+ interface azure_functions extends Instrumentation {
1870
+ /**
1871
+ * Whether to enable resource renaming when the framework route is unavailable.
1872
+ */
1873
+ resourceRenamingEnabled?: boolean;
1874
+ }
1824
1875
 
1825
1876
  /**
1826
1877
  * This plugin automatically instruments the
@@ -1924,6 +1975,16 @@ declare namespace tracer {
1924
1975
  */
1925
1976
  interface fetch extends HttpClient {}
1926
1977
 
1978
+ /**
1979
+ * This plugin patches the [find-my-way](https://github.com/delvedor/find-my-way) router.
1980
+ */
1981
+ interface find_my_way extends Integration {}
1982
+
1983
+ /**
1984
+ * This plugin automatically instruments Node.js core fs operations.
1985
+ */
1986
+ interface fs extends Instrumentation {}
1987
+
1927
1988
  /**
1928
1989
  * This plugin patches the [generic-pool](https://github.com/coopernurse/node-pool)
1929
1990
  * module to bind the callbacks the the caller context.
@@ -2161,6 +2222,16 @@ declare namespace tracer {
2161
2222
  */
2162
2223
  blacklist?: string | RegExp | ((command: string) => boolean) | (string | RegExp | ((command: string) => boolean))[];
2163
2224
 
2225
+ /**
2226
+ * Custom filter function used to decide whether a Redis command should be instrumented.
2227
+ * When provided, this takes precedence over allowlist/blocklist configuration.
2228
+ * If not provided, allowlist/blocklist logic will be used instead.
2229
+ *
2230
+ * @param command - The Redis command name to filter
2231
+ * @returns true to instrument the command, false to skip it
2232
+ */
2233
+ filter?: (command: string) => boolean;
2234
+
2164
2235
  /**
2165
2236
  * Whether to use a different service name for each Redis instance based
2166
2237
  * on the configured connection name of the client.
@@ -2208,6 +2279,16 @@ declare namespace tracer {
2208
2279
  */
2209
2280
  blacklist?: string | RegExp | ((command: string) => boolean) | (string | RegExp | ((command: string) => boolean))[];
2210
2281
 
2282
+ /**
2283
+ * Custom filter function used to decide whether a Valkey command should be instrumented.
2284
+ * When provided, this takes precedence over allowlist/blocklist configuration.
2285
+ * If not provided, allowlist/blocklist logic will be used instead.
2286
+ *
2287
+ * @param command - The Valkey command name to filter
2288
+ * @returns true to instrument the command, false to skip it
2289
+ */
2290
+ filter?: (command: string) => boolean;
2291
+
2211
2292
  /**
2212
2293
  * Whether to use a different service name for each Redis instance based
2213
2294
  * on the configured connection name of the client.
@@ -2355,6 +2436,11 @@ declare namespace tracer {
2355
2436
  };
2356
2437
  }
2357
2438
 
2439
+ /**
2440
+ * This plugin integrates with [nyc](https://github.com/istanbuljs/nyc) for CI visibility.
2441
+ */
2442
+ interface nyc extends Integration {}
2443
+
2358
2444
  /**
2359
2445
  * This plugin automatically instruments the
2360
2446
  * [openai](https://platform.openai.com/docs/api-reference?lang=node.js) module.
@@ -2476,6 +2562,16 @@ declare namespace tracer {
2476
2562
  * @hidden
2477
2563
  */
2478
2564
  blacklist?: string | RegExp | ((command: string) => boolean) | (string | RegExp | ((command: string) => boolean))[];
2565
+
2566
+ /**
2567
+ * Custom filter function used to decide whether a Redis command should be instrumented.
2568
+ * When provided, this takes precedence over allowlist/blocklist configuration.
2569
+ * If not provided, allowlist/blocklist logic will be used instead.
2570
+ *
2571
+ * @param command - The Redis command name to filter
2572
+ * @returns true to instrument the command, false to skip it
2573
+ */
2574
+ filter?: (command: string) => boolean;
2479
2575
  }
2480
2576
 
2481
2577
  /**
@@ -2541,6 +2637,11 @@ declare namespace tracer {
2541
2637
  */
2542
2638
  interface vitest extends Integration {}
2543
2639
 
2640
+ /**
2641
+ * This plugin implements shared web request instrumentation helpers.
2642
+ */
2643
+ interface web extends HttpServer {}
2644
+
2544
2645
  /**
2545
2646
  * This plugin patches the [winston](https://github.com/winstonjs/winston)
2546
2647
  * to automatically inject trace identifiers in log records when the
@@ -2548,6 +2649,18 @@ declare namespace tracer {
2548
2649
  * on the tracer.
2549
2650
  */
2550
2651
  interface winston extends Integration {}
2652
+
2653
+ /**
2654
+ * This plugin automatically instruments the
2655
+ * [ws](https://github.com/websockets/ws) module.
2656
+ */
2657
+ interface ws extends Instrumentation {
2658
+ /**
2659
+ * Controls whether websocket messages should be traced.
2660
+ * This is also configurable via `DD_TRACE_WEBSOCKET_MESSAGES_ENABLED`.
2661
+ */
2662
+ traceWebsocketMessagesEnabled?: boolean;
2663
+ }
2551
2664
  }
2552
2665
 
2553
2666
  export namespace opentelemetry {
package/initialize.mjs CHANGED
@@ -2,8 +2,7 @@
2
2
  * This file serves one of two purposes, depending on how it's used.
3
3
  *
4
4
  * If used with --import, it will import init.js and register the loader hook.
5
- * If used with --loader, it will act as the loader hook, except that it will
6
- * also import init.js inside the source code of the entrypoint file.
5
+ * If used with --loader, it will act as the loader hook.
7
6
  *
8
7
  * The result is that no matter how this file is used, so long as it's with
9
8
  * one of the two flags, the tracer will always be initialized, and the loader
@@ -12,58 +11,75 @@
12
11
 
13
12
  /* eslint n/no-unsupported-features/node-builtins: ['error', { ignores: ['module.register'] }] */
14
13
 
14
+ import { Buffer } from 'buffer'
15
+ import * as Module from 'module'
16
+ import { types } from 'util'
15
17
  import { isMainThread } from 'worker_threads'
16
18
 
17
- import * as Module from 'node:module'
18
- import { fileURLToPath } from 'node:url'
19
+ // This file must support Node.js 12.0.0 syntax
20
+
19
21
  import {
20
- load as origLoad,
21
- resolve as origResolve,
22
- getSource as origGetSource,
23
- } from 'import-in-the-middle/hook.mjs'
22
+ iitmExclusions,
23
+ load as hookLoad,
24
+ resolve as hookResolve,
25
+ } from './loader-hook.mjs'
24
26
 
25
27
  let hasInsertedInit = false
26
- function insertInit (result) {
27
- if (!hasInsertedInit) {
28
- hasInsertedInit = true
29
- result.source = `
30
- import '${fileURLToPath(new URL('init.js', import.meta.url))}';
31
- ${result.source}`
28
+ const initJsUrl = new URL('init.js', import.meta.url).href
29
+ // `--loader` only reliably influences ESM entrypoints; for CJS apps use `--import`/`--require`.
30
+
31
+ /**
32
+ * @param {{ source?: string|Buffer|Uint8Array, format?: string }} result
33
+ * @param {unknown} _url_
34
+ * @param {{ format?: string, isMain?: boolean }} context
35
+ * @returns {{ source?: string|Buffer|Uint8Array, format?: string }}
36
+ */
37
+ function insertInit (result, _url_, context) {
38
+ if (hasInsertedInit) return result
39
+ // If Node provides `isMain`, only inject into the entrypoint module.
40
+ if (context && context.isMain === false) return result
41
+
42
+ let { source } = result
43
+ if (typeof source !== 'string') {
44
+ // Fast decode: handle bytes sources without extra copies when possible.
45
+ if (Buffer.isBuffer(source)) {
46
+ source = source.toString('utf8')
47
+ } else if (types.isUint8Array(source)) {
48
+ // Create a Buffer view over the same ArrayBuffer segment (no copy).
49
+ source = Buffer.from(source.buffer, source.byteOffset, source.byteLength).toString('utf8')
50
+ } else {
51
+ return result
52
+ }
32
53
  }
54
+
55
+ const format = result.format || (context && context.format)
56
+ if (format !== 'module') return result
57
+
58
+ hasInsertedInit = true
59
+
60
+ result.source = `import ${JSON.stringify(initJsUrl)};\n${source}`
61
+
33
62
  return result
34
63
  }
35
64
 
36
65
  const [NODE_MAJOR, NODE_MINOR] = process.versions.node.split('.').map(Number)
37
66
 
38
67
  const brokenLoaders = NODE_MAJOR === 18 && NODE_MINOR === 0
39
- const iitmExclusions = [
40
- /langsmith/,
41
- /openai\/_shims/,
42
- /openai\/resources\/chat\/completions\/messages/,
43
- /openai\/agents-core\/dist\/shims/,
44
- /@anthropic-ai\/sdk\/_shims/
45
- ]
46
68
 
47
69
  export async function load (url, context, nextLoad) {
48
70
  const iitmExclusionsMatch = iitmExclusions.some((exclusion) => exclusion.test(url))
49
- const loadHook = (brokenLoaders || iitmExclusionsMatch) ? nextLoad : origLoad
50
- return insertInit(await loadHook(url, context, nextLoad))
71
+ const loadHook = (brokenLoaders || iitmExclusionsMatch) ? nextLoad : hookLoad
72
+ return insertInit(await loadHook(url, context, nextLoad), url, context)
51
73
  }
52
74
 
53
- export const resolve = brokenLoaders ? undefined : origResolve
54
-
55
- export async function getSource (...args) {
56
- return insertInit(await origGetSource(...args))
57
- }
75
+ export const resolve = brokenLoaders ? undefined : hookResolve
58
76
 
59
77
  if (isMainThread) {
60
78
  const require = Module.createRequire(import.meta.url)
61
79
  require('./init.js')
62
80
  if (Module.register) {
63
81
  Module.register('./loader-hook.mjs', import.meta.url, {
64
- data: { exclude: iitmExclusions }
82
+ data: { exclude: iitmExclusions },
65
83
  })
66
84
  }
67
85
  }
68
-
69
- export { getFormat } from 'import-in-the-middle/hook.mjs'
package/loader-hook.mjs CHANGED
@@ -1,28 +1,30 @@
1
- import * as iitm from 'import-in-the-middle/hook.mjs'
1
+ import { initialize as origInitialize, load as origLoad, resolve } from 'import-in-the-middle/hook.mjs'
2
2
  import regexpEscapeModule from './vendor/dist/escape-string-regexp/index.js'
3
3
  import hooks from './packages/datadog-instrumentations/src/helpers/hooks.js'
4
4
  import configHelper from './packages/dd-trace/src/config/helper.js'
5
5
  import * as rewriterLoader from './packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs'
6
6
  import { isRelativeRequire } from './packages/datadog-instrumentations/src/helpers/shared-utils.js'
7
7
 
8
+ // This file must support Node.js 12.0.0 syntax
9
+
8
10
  const regexpEscape = regexpEscapeModule.default
9
11
 
10
12
  // For some reason `getEnvironmentVariable` is not otherwise available to ESM.
11
13
  const env = configHelper.getEnvironmentVariable
12
14
 
13
15
  function initialize (data = {}) {
14
- data.include ??= []
15
- data.exclude ??= []
16
+ if (data.include == null) data.include = []
17
+ if (data.exclude == null) data.exclude = []
16
18
 
17
19
  addInstrumentations(data)
18
20
  addSecurityControls(data)
19
21
  addExclusions(data)
20
22
 
21
- return iitm.initialize(data)
23
+ return origInitialize(data)
22
24
  }
23
25
 
24
26
  function load (url, context, nextLoad) {
25
- return rewriterLoader.load(url, context, (url, context) => iitm.load(url, context, nextLoad))
27
+ return rewriterLoader.load(url, context, (url, context) => origLoad(url, context, nextLoad))
26
28
  }
27
29
 
28
30
  function addInstrumentations (data) {
@@ -38,27 +40,38 @@ function addInstrumentations (data) {
38
40
  }
39
41
 
40
42
  function addSecurityControls (data) {
41
- const securityControls = (env('DD_IAST_SECURITY_CONTROLS_CONFIGURATION') || '')
42
- .split(';')
43
- .map(sc => sc.trim().split(':')[2])
44
- .filter(Boolean)
45
- .map(sc => sc.trim())
43
+ const raw = env('DD_IAST_SECURITY_CONTROLS_CONFIGURATION')
44
+ if (!raw) return
45
+ // Parse `;`-separated entries and take the 3rd `:`-separated segment.
46
+ // Expected form (per entry): `<...>:<...>:<subpath>:<...>`
47
+ const entries = raw.split(';')
48
+ for (const entry of entries) {
49
+ if (entry) {
50
+ const first = entry.indexOf(':')
51
+ if (first === -1) continue
52
+ const second = entry.indexOf(':', first + 1)
53
+ if (second === -1) continue
54
+ const third = entry.indexOf(':', second + 1)
46
55
 
47
- for (const subpath of securityControls) {
48
- data.include.push(new RegExp(regexpEscape(subpath)))
56
+ const subpath = entry.slice(second + 1, third === -1 ? undefined : third).trim()
57
+ if (subpath) {
58
+ data.include.push(new RegExp(regexpEscape(subpath)))
59
+ }
60
+ }
49
61
  }
50
62
  }
51
63
 
52
64
  function addExclusions (data) {
53
- data.exclude.push(
54
- /middle/,
55
- /langsmith/,
56
- /openai\/_shims/,
57
- /openai\/resources\/chat\/completions\/messages/,
58
- /openai\/agents-core\/dist\/shims/,
59
- /@anthropic-ai\/sdk\/_shims/
60
- )
65
+ data.exclude.push(...iitmExclusions)
61
66
  }
62
67
 
63
- export { initialize, load }
64
- export { getFormat, resolve, getSource } from 'import-in-the-middle/hook.mjs'
68
+ export const iitmExclusions = [
69
+ /middle/,
70
+ /langsmith/,
71
+ /openai\/_shims/,
72
+ /openai\/resources\/chat\/completions\/messages/,
73
+ /openai\/agents-core\/dist\/shims/,
74
+ /@anthropic-ai\/sdk\/_shims/,
75
+ ]
76
+
77
+ export { initialize, load, resolve }