dd-trace 5.101.0 → 5.103.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 (235) hide show
  1. package/ext/exporters.js +1 -0
  2. package/package.json +20 -17
  3. package/packages/datadog-esbuild/src/utils.js +2 -2
  4. package/packages/datadog-instrumentations/src/aerospike.js +2 -2
  5. package/packages/datadog-instrumentations/src/ai.js +9 -9
  6. package/packages/datadog-instrumentations/src/amqplib.js +6 -7
  7. package/packages/datadog-instrumentations/src/anthropic.js +10 -10
  8. package/packages/datadog-instrumentations/src/apollo-server-core.js +3 -3
  9. package/packages/datadog-instrumentations/src/apollo-server.js +5 -5
  10. package/packages/datadog-instrumentations/src/avsc.js +6 -6
  11. package/packages/datadog-instrumentations/src/aws-sdk.js +151 -67
  12. package/packages/datadog-instrumentations/src/azure-durable-functions.js +8 -8
  13. package/packages/datadog-instrumentations/src/bluebird.js +2 -2
  14. package/packages/datadog-instrumentations/src/body-parser.js +2 -2
  15. package/packages/datadog-instrumentations/src/cassandra-driver.js +7 -7
  16. package/packages/datadog-instrumentations/src/child_process.js +12 -12
  17. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +41 -24
  18. package/packages/datadog-instrumentations/src/connect.js +7 -7
  19. package/packages/datadog-instrumentations/src/cookie-parser.js +4 -4
  20. package/packages/datadog-instrumentations/src/cookie.js +2 -2
  21. package/packages/datadog-instrumentations/src/couchbase.js +73 -238
  22. package/packages/datadog-instrumentations/src/crypto.js +4 -4
  23. package/packages/datadog-instrumentations/src/cucumber.js +78 -17
  24. package/packages/datadog-instrumentations/src/dns.js +0 -3
  25. package/packages/datadog-instrumentations/src/elasticsearch.js +8 -11
  26. package/packages/datadog-instrumentations/src/electron/preload.js +42 -0
  27. package/packages/datadog-instrumentations/src/electron.js +240 -0
  28. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +6 -6
  29. package/packages/datadog-instrumentations/src/express-session.js +4 -4
  30. package/packages/datadog-instrumentations/src/express.js +10 -11
  31. package/packages/datadog-instrumentations/src/fastify.js +2 -2
  32. package/packages/datadog-instrumentations/src/fetch.js +5 -5
  33. package/packages/datadog-instrumentations/src/fs.js +14 -14
  34. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +5 -7
  35. package/packages/datadog-instrumentations/src/google-genai.js +4 -4
  36. package/packages/datadog-instrumentations/src/graphql.js +13 -12
  37. package/packages/datadog-instrumentations/src/grpc/server.js +2 -2
  38. package/packages/datadog-instrumentations/src/hapi.js +2 -2
  39. package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +9 -9
  40. package/packages/datadog-instrumentations/src/helpers/hook.js +4 -1
  41. package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
  42. package/packages/datadog-instrumentations/src/helpers/instrument.js +2 -2
  43. package/packages/datadog-instrumentations/src/helpers/kafka.js +41 -0
  44. package/packages/datadog-instrumentations/src/helpers/promise.js +2 -2
  45. package/packages/datadog-instrumentations/src/hono.js +2 -2
  46. package/packages/datadog-instrumentations/src/http/client.js +6 -6
  47. package/packages/datadog-instrumentations/src/http/server.js +9 -9
  48. package/packages/datadog-instrumentations/src/ioredis.js +16 -12
  49. package/packages/datadog-instrumentations/src/jest.js +382 -81
  50. package/packages/datadog-instrumentations/src/kafkajs.js +165 -174
  51. package/packages/datadog-instrumentations/src/knex.js +17 -17
  52. package/packages/datadog-instrumentations/src/koa.js +12 -12
  53. package/packages/datadog-instrumentations/src/ldapjs.js +5 -5
  54. package/packages/datadog-instrumentations/src/light-my-request.js +2 -2
  55. package/packages/datadog-instrumentations/src/limitd-client.js +4 -4
  56. package/packages/datadog-instrumentations/src/lodash.js +4 -4
  57. package/packages/datadog-instrumentations/src/mariadb.js +13 -13
  58. package/packages/datadog-instrumentations/src/memcached.js +2 -2
  59. package/packages/datadog-instrumentations/src/microgateway-core.js +2 -2
  60. package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
  61. package/packages/datadog-instrumentations/src/mocha/main.js +85 -11
  62. package/packages/datadog-instrumentations/src/mocha/utils.js +133 -16
  63. package/packages/datadog-instrumentations/src/mocha/worker.js +7 -5
  64. package/packages/datadog-instrumentations/src/mongodb-core.js +42 -30
  65. package/packages/datadog-instrumentations/src/mongodb.js +5 -5
  66. package/packages/datadog-instrumentations/src/mongoose.js +21 -21
  67. package/packages/datadog-instrumentations/src/mquery.js +5 -5
  68. package/packages/datadog-instrumentations/src/multer.js +4 -4
  69. package/packages/datadog-instrumentations/src/mysql.js +16 -16
  70. package/packages/datadog-instrumentations/src/mysql2.js +4 -4
  71. package/packages/datadog-instrumentations/src/net.js +14 -8
  72. package/packages/datadog-instrumentations/src/nyc.js +5 -5
  73. package/packages/datadog-instrumentations/src/openai.js +19 -19
  74. package/packages/datadog-instrumentations/src/oracledb.js +6 -6
  75. package/packages/datadog-instrumentations/src/passport-utils.js +5 -5
  76. package/packages/datadog-instrumentations/src/pg.js +39 -25
  77. package/packages/datadog-instrumentations/src/pino.js +6 -10
  78. package/packages/datadog-instrumentations/src/playwright.js +445 -68
  79. package/packages/datadog-instrumentations/src/protobufjs.js +16 -16
  80. package/packages/datadog-instrumentations/src/redis.js +20 -12
  81. package/packages/datadog-instrumentations/src/restify.js +2 -2
  82. package/packages/datadog-instrumentations/src/router.js +12 -12
  83. package/packages/datadog-instrumentations/src/stripe.js +12 -12
  84. package/packages/datadog-instrumentations/src/vitest.js +107 -26
  85. package/packages/datadog-instrumentations/src/winston.js +4 -4
  86. package/packages/datadog-instrumentations/src/ws.js +7 -7
  87. package/packages/datadog-plugin-apollo/src/gateway/request.js +1 -21
  88. package/packages/datadog-plugin-aws-sdk/src/base.js +70 -28
  89. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
  90. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +20 -13
  91. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +46 -36
  92. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +34 -23
  93. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
  94. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
  95. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +14 -15
  96. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +74 -55
  97. package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +20 -18
  98. package/packages/datadog-plugin-aws-sdk/src/util.js +22 -0
  99. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +6 -6
  100. package/packages/datadog-plugin-couchbase/src/index.js +58 -52
  101. package/packages/datadog-plugin-cucumber/src/index.js +5 -0
  102. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +215 -26
  103. package/packages/datadog-plugin-cypress/src/support.js +13 -1
  104. package/packages/datadog-plugin-electron/src/index.js +17 -0
  105. package/packages/datadog-plugin-electron/src/ipc.js +143 -0
  106. package/packages/datadog-plugin-electron/src/net.js +82 -0
  107. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +1 -5
  108. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +27 -18
  109. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +3 -1
  110. package/packages/datadog-plugin-graphql/src/execute.js +6 -28
  111. package/packages/datadog-plugin-graphql/src/resolve.js +30 -35
  112. package/packages/datadog-plugin-graphql/src/tools/signature.js +32 -7
  113. package/packages/datadog-plugin-graphql/src/tools/transforms.js +118 -100
  114. package/packages/datadog-plugin-graphql/src/utils.js +29 -0
  115. package/packages/datadog-plugin-grpc/src/client.js +6 -7
  116. package/packages/datadog-plugin-grpc/src/util.js +57 -22
  117. package/packages/datadog-plugin-http/src/client.js +3 -7
  118. package/packages/datadog-plugin-jest/src/index.js +92 -50
  119. package/packages/datadog-plugin-jest/src/util.js +1 -2
  120. package/packages/datadog-plugin-mocha/src/index.js +5 -0
  121. package/packages/datadog-plugin-mongodb-core/src/index.js +36 -69
  122. package/packages/datadog-plugin-mysql/src/index.js +1 -1
  123. package/packages/datadog-plugin-openai/src/services.js +2 -1
  124. package/packages/datadog-plugin-openai/src/tracing.js +12 -23
  125. package/packages/datadog-plugin-pg/src/index.js +3 -3
  126. package/packages/datadog-plugin-playwright/src/index.js +5 -1
  127. package/packages/datadog-plugin-redis/src/index.js +18 -23
  128. package/packages/datadog-plugin-vitest/src/index.js +8 -1
  129. package/packages/datadog-shimmer/src/shimmer.js +7 -1
  130. package/packages/dd-trace/src/aiguard/index.js +3 -1
  131. package/packages/dd-trace/src/aiguard/sdk.js +36 -30
  132. package/packages/dd-trace/src/aiguard/tags.js +20 -11
  133. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +1 -1
  134. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +81 -81
  135. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
  136. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugins/kafka.js +2 -2
  137. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +4 -4
  138. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +2 -2
  139. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -0
  140. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +1 -3
  141. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +83 -48
  142. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +1 -1
  143. package/packages/dd-trace/src/appsec/index.js +21 -24
  144. package/packages/dd-trace/src/appsec/reporter.js +3 -1
  145. package/packages/dd-trace/src/appsec/rule_manager.js +4 -2
  146. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +31 -16
  147. package/packages/dd-trace/src/azure_metadata.js +17 -6
  148. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +4 -4
  149. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +4 -2
  150. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +6 -4
  151. package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +1 -1
  152. package/packages/dd-trace/src/config/defaults.js +3 -14
  153. package/packages/dd-trace/src/config/generated-config-types.d.ts +3 -1
  154. package/packages/dd-trace/src/config/git_properties.js +2 -2
  155. package/packages/dd-trace/src/config/helper.js +4 -0
  156. package/packages/dd-trace/src/config/index.js +2 -2
  157. package/packages/dd-trace/src/config/major-overrides.js +98 -0
  158. package/packages/dd-trace/src/config/parsers.js +7 -1
  159. package/packages/dd-trace/src/config/supported-configurations.json +51 -38
  160. package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
  161. package/packages/dd-trace/src/datastreams/index.js +2 -1
  162. package/packages/dd-trace/src/datastreams/manager.js +1 -1
  163. package/packages/dd-trace/src/datastreams/processor.js +3 -4
  164. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +2 -2
  165. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -0
  166. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +1 -1
  167. package/packages/dd-trace/src/debugger/devtools_client/state.js +2 -1
  168. package/packages/dd-trace/src/debugger/index.js +7 -7
  169. package/packages/dd-trace/src/dogstatsd.js +2 -2
  170. package/packages/dd-trace/src/encode/0.4.js +748 -232
  171. package/packages/dd-trace/src/encode/0.5.js +47 -10
  172. package/packages/dd-trace/src/encode/agentless-json.js +1 -1
  173. package/packages/dd-trace/src/exporter.js +2 -0
  174. package/packages/dd-trace/src/exporters/agent/index.js +2 -1
  175. package/packages/dd-trace/src/exporters/agentless/index.js +3 -2
  176. package/packages/dd-trace/src/exporters/agentless/writer.js +2 -2
  177. package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -1
  178. package/packages/dd-trace/src/exporters/common/request.js +1 -1
  179. package/packages/dd-trace/src/exporters/electron/index.js +49 -0
  180. package/packages/dd-trace/src/external-logger/src/index.js +2 -1
  181. package/packages/dd-trace/src/git_metadata.js +10 -8
  182. package/packages/dd-trace/src/lambda/handler-paths.js +52 -0
  183. package/packages/dd-trace/src/lambda/index.js +62 -14
  184. package/packages/dd-trace/src/lambda/runtime/patch.js +21 -46
  185. package/packages/dd-trace/src/llmobs/index.js +13 -2
  186. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +1 -2
  187. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +45 -15
  188. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +6 -3
  189. package/packages/dd-trace/src/llmobs/sdk.js +24 -26
  190. package/packages/dd-trace/src/llmobs/span_processor.js +25 -5
  191. package/packages/dd-trace/src/llmobs/util.js +1 -0
  192. package/packages/dd-trace/src/llmobs/writers/base.js +2 -1
  193. package/packages/dd-trace/src/msgpack/chunk.js +6 -3
  194. package/packages/dd-trace/src/openfeature/noop.js +40 -36
  195. package/packages/dd-trace/src/openfeature/writers/base.js +2 -1
  196. package/packages/dd-trace/src/openfeature/writers/exposures.js +33 -52
  197. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +2 -1
  198. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +1 -2
  199. package/packages/dd-trace/src/opentelemetry/tracer.js +0 -22
  200. package/packages/dd-trace/src/opentracing/propagation/text_map.js +20 -9
  201. package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -11
  202. package/packages/dd-trace/src/payload-tagging/config/index.js +2 -2
  203. package/packages/dd-trace/src/plugins/ci_plugin.js +49 -4
  204. package/packages/dd-trace/src/plugins/database.js +54 -12
  205. package/packages/dd-trace/src/plugins/index.js +1 -0
  206. package/packages/dd-trace/src/plugins/plugin.js +2 -4
  207. package/packages/dd-trace/src/plugins/util/ci.js +9 -9
  208. package/packages/dd-trace/src/plugins/util/git-cache.js +23 -23
  209. package/packages/dd-trace/src/plugins/util/stacktrace.js +2 -2
  210. package/packages/dd-trace/src/plugins/util/test.js +56 -12
  211. package/packages/dd-trace/src/plugins/util/url.js +1 -3
  212. package/packages/dd-trace/src/plugins/util/user-provided-git.js +18 -16
  213. package/packages/dd-trace/src/plugins/util/web.js +5 -7
  214. package/packages/dd-trace/src/priority_sampler.js +1 -1
  215. package/packages/dd-trace/src/profiling/profiler.js +1 -1
  216. package/packages/dd-trace/src/profiling/profilers/events.js +3 -23
  217. package/packages/dd-trace/src/profiling/profilers/wall.js +5 -6
  218. package/packages/dd-trace/src/profiling/ssi-heuristics.js +1 -1
  219. package/packages/dd-trace/src/rate_limiter.js +1 -1
  220. package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
  221. package/packages/dd-trace/src/ritm.js +2 -1
  222. package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
  223. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +5 -8
  224. package/packages/dd-trace/src/scope.js +3 -10
  225. package/packages/dd-trace/src/serverless.js +6 -6
  226. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +27 -1
  227. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +4 -0
  228. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +24 -0
  229. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +4 -0
  230. package/packages/dd-trace/src/span_stats.js +1 -1
  231. package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
  232. package/packages/dd-trace/src/telemetry/endpoints.js +1 -1
  233. package/packages/dd-trace/src/telemetry/telemetry.js +2 -2
  234. package/packages/dd-trace/src/tracer.js +7 -7
  235. package/packages/dd-trace/src/lambda/runtime/ritm.js +0 -133
package/ext/exporters.js CHANGED
@@ -10,4 +10,5 @@ module.exports = {
10
10
  MOCHA_WORKER: 'mocha_worker',
11
11
  PLAYWRIGHT_WORKER: 'playwright_worker',
12
12
  VITEST_WORKER: 'vitest_worker',
13
+ ELECTRON: 'electron',
13
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dd-trace",
3
- "version": "5.101.0",
3
+ "version": "5.103.0",
4
4
  "description": "Datadog APM tracing client for JavaScript",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -8,6 +8,7 @@
8
8
  "env": "bash ./plugin-env",
9
9
  "prepare": "cd vendor && npm ci --include=dev",
10
10
  "preinstall": "node scripts/preinstall.js",
11
+ "prepack": "node scripts/release/swap-v5-types.js",
11
12
  "bench": "node benchmark/index.js",
12
13
  "bench:e2e:test-optimization": "node benchmark/e2e-test-optimization/benchmark-run.js",
13
14
  "dependencies:dedupe": "yarn-deduplicate yarn.lock",
@@ -18,8 +19,8 @@
18
19
  "type:check": "tsc --noEmit -p tsconfig.dev.json",
19
20
  "type:doc:build": "cd docs && yarn && yarn build",
20
21
  "type:doc:test": "cd docs && yarn && yarn test",
21
- "lint": "node scripts/check_licenses.js && node scripts/check-no-coverage-artifacts.js && node scripts/check-no-mcr-images.js && eslint . --concurrency=auto --max-warnings 0",
22
- "lint:fix": "node scripts/check_licenses.js && node scripts/check-no-coverage-artifacts.js && node scripts/check-no-mcr-images.js && eslint . --concurrency=auto --max-warnings 0 --fix",
22
+ "lint": "node scripts/check_licenses.js && node scripts/check-no-coverage-artifacts.js && node scripts/check-no-mcr-images.js && node scripts/check-docker-image-shas.js && eslint . --concurrency=auto --max-warnings 0",
23
+ "lint:fix": "node scripts/check_licenses.js && node scripts/check-no-coverage-artifacts.js && node scripts/check-no-mcr-images.js && node scripts/check-docker-image-shas.js && eslint . --concurrency=auto --max-warnings 0 --fix",
23
24
  "lint:inspect": "npx @eslint/config-inspector@latest",
24
25
  "lint:codeowners": "codeowners-audit",
25
26
  "lint:codeowners:ci": "codeowners-audit --glob='**/*.spec.js' --glob='benchmark/sirun/**'",
@@ -78,21 +79,22 @@
78
79
  "test:integration:cypress:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/cypress/${SPEC:-cypress-*}.spec.js\"",
79
80
  "test:integration:debugger": "mocha --timeout 60000 \"integration-tests/debugger/*.spec.js\"",
80
81
  "test:integration:debugger:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/debugger/*.spec.js\"",
82
+ "test:integration:electron": "mocha \"integration-tests/electron/*.spec.js\"",
81
83
  "test:integration:esbuild": "mocha --timeout 60000 \"integration-tests/esbuild/*.spec.js\"",
82
84
  "test:integration:esbuild:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/esbuild/*.spec.js\"",
83
85
  "test:integration:webpack": "mocha --timeout 60000 \"integration-tests/webpack/*.spec.js\"",
84
86
  "test:integration:openfeature": "mocha --timeout 60000 \"integration-tests/openfeature/*.spec.js\"",
85
87
  "test:integration:openfeature:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/openfeature/*.spec.js\"",
86
- "test:integration:jest": "mocha --timeout 60000 \"integration-tests/jest/*.spec.js\"",
87
- "test:integration:jest:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/jest/*.spec.js\"",
88
+ "test:integration:jest": "mocha --timeout 60000 \"integration-tests/jest/${SPEC:-jest*}.spec.js\"",
89
+ "test:integration:jest:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/jest/${SPEC:-jest*}.spec.js\"",
88
90
  "test:integration:mocha": "mocha --timeout 60000 \"integration-tests/mocha/*.spec.js\"",
89
91
  "test:integration:mocha:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/mocha/*.spec.js\"",
90
92
  "test:integration:playwright": "mocha --timeout 60000 \"integration-tests/playwright/${SPEC:-playwright-*}.spec.js\"",
91
93
  "test:integration:playwright:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/playwright/${SPEC:-playwright-*}.spec.js\"",
92
94
  "test:integration:selenium": "mocha --timeout 60000 \"integration-tests/selenium/*.spec.js\"",
93
95
  "test:integration:selenium:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/selenium/*.spec.js\"",
94
- "test:integration:vitest": "mocha --timeout 60000 \"integration-tests/vitest/*.spec.js\"",
95
- "test:integration:vitest:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/vitest/*.spec.js\"",
96
+ "test:integration:vitest": "mocha --timeout 60000 \"integration-tests/vitest/${SPEC:-vitest*}.spec.js\"",
97
+ "test:integration:vitest:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 60000 \"integration-tests/vitest/${SPEC:-vitest*}.spec.js\"",
96
98
  "test:integration:testopt": "mocha --timeout 120000 \"integration-tests/ci-visibility/*.spec.js\"",
97
99
  "test:integration:testopt:coverage": "node ./integration-tests/coverage/run-suite.js --timeout 120000 \"integration-tests/ci-visibility/*.spec.js\"",
98
100
  "test:integration:profiler": "mocha --timeout 180000 \"integration-tests/profiler/*.spec.js\"",
@@ -158,20 +160,20 @@
158
160
  "version.js"
159
161
  ],
160
162
  "dependencies": {
161
- "dc-polyfill": "^0.1.10",
163
+ "dc-polyfill": "^0.1.11",
162
164
  "import-in-the-middle": "^3.0.1"
163
165
  },
164
166
  "optionalDependencies": {
165
167
  "@datadog/libdatadog": "0.9.3",
166
168
  "@datadog/native-appsec": "11.0.1",
167
169
  "@datadog/native-iast-taint-tracking": "4.1.0",
168
- "@datadog/native-metrics": "3.1.1",
169
- "@datadog/openfeature-node-server": "^1.1.2",
170
+ "@datadog/native-metrics": "3.1.2",
171
+ "@datadog/openfeature-node-server": "1.1.2",
170
172
  "@datadog/pprof": "5.14.1",
171
173
  "@datadog/wasm-js-rewriter": "5.0.1",
172
174
  "@opentelemetry/api": ">=1.0.0 <1.10.0",
173
175
  "@opentelemetry/api-logs": "<1.0.0",
174
- "oxc-parser": "^0.128.0"
176
+ "oxc-parser": "^0.129.0"
175
177
  },
176
178
  "devDependencies": {
177
179
  "@actions/core": "^3.0.1",
@@ -186,18 +188,19 @@
186
188
  "@types/mocha": "^10.0.10",
187
189
  "@types/node": "^18.19.106",
188
190
  "@types/sinon": "^21.0.1",
189
- "axios": "^1.15.2",
191
+ "axios": "^1.16.0",
190
192
  "benchmark": "^2.1.4",
191
193
  "body-parser": "^2.2.2",
192
194
  "bun": "1.3.13",
193
195
  "codeowners-audit": "^2.9.0",
194
196
  "eslint": "^9.39.2",
195
- "eslint-plugin-cypress": "^6.4.0",
197
+ "eslint-plugin-cypress": "^6.4.1",
196
198
  "eslint-plugin-import": "^2.32.0",
197
199
  "eslint-plugin-jsdoc": "^62.9.0",
198
200
  "eslint-plugin-mocha": "^11.2.0",
199
- "eslint-plugin-n": "^17.23.2",
201
+ "eslint-plugin-n": "^18.0.1",
200
202
  "eslint-plugin-promise": "^7.3.0",
203
+ "eslint-plugin-sonarjs": "^4.0.3",
201
204
  "eslint-plugin-unicorn": "^64.0.0",
202
205
  "express": "^5.1.0",
203
206
  "glob": "^10.4.5",
@@ -211,7 +214,7 @@
211
214
  "mocha-junit-reporter": "^2.2.1",
212
215
  "mocha-multi-reporters": "^1.5.1",
213
216
  "multer": "^2.1.1",
214
- "nock": "^13.5.6",
217
+ "nock": "^14.0.15",
215
218
  "node-preload": "^0.2.1",
216
219
  "nyc": "^18.0.0",
217
220
  "octokit": "^5.0.3",
@@ -221,11 +224,11 @@
221
224
  "retry": "^0.13.1",
222
225
  "semifies": "^1.0.0",
223
226
  "semver": "^7.7.2",
224
- "sinon": "^21.1.2",
227
+ "sinon": "^22.0.0",
225
228
  "tiktoken": "^1.0.21",
226
229
  "typescript": "^6.0.3",
227
230
  "workerpool": "^10.0.2",
228
- "yaml": "^2.8.3",
231
+ "yaml": "^2.8.4",
229
232
  "yarn-deduplicate": "^6.0.2"
230
233
  }
231
234
  }
@@ -83,9 +83,9 @@ function getSource (url, { format }) {
83
83
  *
84
84
  * @param {object} moduleData
85
85
  * @param {string} moduleData.path
86
- * @param {boolean} [moduleData.internal = false]
86
+ * @param {boolean} [moduleData.internal]
87
87
  * @param {object} moduleData.context
88
- * @param {boolean} [moduleData.excludeDefault = false]
88
+ * @param {boolean} [moduleData.excludeDefault]
89
89
  * @returns {Promise<Map>}
90
90
  */
91
91
  async function processModule ({ path, internal = false, context, excludeDefault = false }) {
@@ -12,8 +12,8 @@ const ch = tracingChannel('apm:aerospike:command')
12
12
  function wrapCreateCommand (createCommand) {
13
13
  if (typeof createCommand !== 'function') return createCommand
14
14
 
15
- return function commandWithTrace () {
16
- const CommandClass = createCommand.apply(this, arguments)
15
+ return function commandWithTrace (...args) {
16
+ const CommandClass = createCommand.apply(this, args)
17
17
 
18
18
  if (!CommandClass) return CommandClass
19
19
 
@@ -20,7 +20,7 @@ const wrappedModels = new WeakSet()
20
20
  */
21
21
  function publishToAIGuard (messages) {
22
22
  return new Promise((resolve, reject) => {
23
- aiguardChannel.publish({ messages, resolve, reject })
23
+ aiguardChannel.publish({ messages, integration: 'ai', resolve, reject })
24
24
  })
25
25
  }
26
26
 
@@ -119,17 +119,17 @@ function wrapTracer (tracer) {
119
119
  tracers.add(tracer)
120
120
 
121
121
  shimmer.wrap(tracer, 'startActiveSpan', function (startActiveSpan) {
122
- return function () {
123
- const name = arguments[0]
124
- const options = arguments.length > 2 ? (arguments[1] ?? {}) : {} // startActiveSpan(name, fn)
125
- const cb = arguments[arguments.length - 1]
122
+ return function (...args) {
123
+ const name = args[0]
124
+ const options = args.length > 2 ? (args[1] ?? {}) : {} // startActiveSpan(name, fn)
125
+ const cb = args[args.length - 1]
126
126
 
127
127
  const ctx = {
128
128
  name,
129
129
  attributes: options.attributes ?? {},
130
130
  }
131
131
 
132
- arguments[arguments.length - 1] = shimmer.wrapFunction(cb, function (originalCb) {
132
+ args[args.length - 1] = shimmer.wrapFunction(cb, function (originalCb) {
133
133
  return function (span) {
134
134
  // the below is necessary in the case that the span is vercel ai's noopSpan.
135
135
  // while we don't want to patch the noopSpan more than once, we do want to treat each as a
@@ -138,9 +138,9 @@ function wrapTracer (tracer) {
138
138
  const freshSpan = Object.create(span) // TODO: does this cause memory leaks?
139
139
 
140
140
  shimmer.wrap(freshSpan, 'end', function (spanEnd) {
141
- return function () {
141
+ return function (...args) {
142
142
  vercelAiTracingChannel.asyncEnd.publish(ctx)
143
- return spanEnd.apply(this, arguments)
143
+ return spanEnd.apply(this, args)
144
144
  }
145
145
  })
146
146
 
@@ -164,7 +164,7 @@ function wrapTracer (tracer) {
164
164
  })
165
165
 
166
166
  return vercelAiTracingChannel.start.runStores(ctx, () => {
167
- const result = startActiveSpan.apply(this, arguments)
167
+ const result = startActiveSpan.apply(this, args)
168
168
  vercelAiTracingChannel.end.publish(ctx)
169
169
  return result
170
170
  })
@@ -35,14 +35,13 @@ addHook({ name: 'amqplib', file: 'lib/defs.js', versions: [MIN_VERSION] }, defs
35
35
  addHook({ name: 'amqplib', file: 'lib/channel_model.js', versions: [MIN_VERSION] }, x => {
36
36
  shimmer.wrap(x.Channel.prototype, 'get', getMessage => function (queue, options) {
37
37
  return getMessage.apply(this, arguments).then(message => {
38
- if (message === null) {
39
- return message
38
+ if (message !== null) {
39
+ const ctx = { method: 'basic.get', message, fields: message.fields, queue }
40
+ consumeStartCh.runStores(ctx, () => {
41
+ // finish right away
42
+ consumeFinishCh.publish(ctx)
43
+ })
40
44
  }
41
- const ctx = { method: 'basic.get', message, fields: message.fields, queue }
42
- consumeStartCh.runStores(ctx, () => {
43
- // finish right away
44
- consumeFinishCh.publish(ctx)
45
- })
46
45
  return message
47
46
  })
48
47
  })
@@ -8,10 +8,10 @@ const anthropicTracingChannel = tracingChannel('apm:anthropic:request')
8
8
  const onStreamedChunkCh = channel('apm:anthropic:request:chunk')
9
9
 
10
10
  function wrapStreamIterator (iterator, ctx) {
11
- return function () {
12
- const itr = iterator.apply(this, arguments)
13
- shimmer.wrap(itr, 'next', next => function () {
14
- return next.apply(this, arguments)
11
+ return function (...args) {
12
+ const itr = iterator.apply(this, args)
13
+ shimmer.wrap(itr, 'next', next => function (...args) {
14
+ return next.apply(this, args)
15
15
  .then(res => {
16
16
  const { done, value: chunk } = res
17
17
  onStreamedChunkCh.publish({ ctx, chunk, done })
@@ -33,12 +33,12 @@ function wrapStreamIterator (iterator, ctx) {
33
33
  }
34
34
 
35
35
  function wrapCreate (create) {
36
- return function () {
36
+ return function (...args) {
37
37
  if (!anthropicTracingChannel.start.hasSubscribers) {
38
- return create.apply(this, arguments)
38
+ return create.apply(this, args)
39
39
  }
40
40
 
41
- const options = arguments[0]
41
+ const options = args[0]
42
42
  const stream = options.stream
43
43
 
44
44
  const ctx = { options, resource: 'create', baseUrl: this._client?.baseURL }
@@ -46,14 +46,14 @@ function wrapCreate (create) {
46
46
  return anthropicTracingChannel.start.runStores(ctx, () => {
47
47
  let apiPromise
48
48
  try {
49
- apiPromise = create.apply(this, arguments)
49
+ apiPromise = create.apply(this, args)
50
50
  } catch (error) {
51
51
  finish(ctx, null, error)
52
52
  throw error
53
53
  }
54
54
 
55
- shimmer.wrap(apiPromise, 'parse', parse => function () {
56
- return parse.apply(this, arguments)
55
+ shimmer.wrap(apiPromise, 'parse', parse => function (...args) {
56
+ return parse.apply(this, args)
57
57
  .then(response => {
58
58
  if (stream) {
59
59
  shimmer.wrap(response, Symbol.asyncIterator, iterator => wrapStreamIterator(iterator, ctx))
@@ -10,9 +10,9 @@ addHook({ name: 'apollo-server-core', file: 'dist/runHttpQuery.js', versions: ['
10
10
  const HttpQueryError = runHttpQueryModule.HttpQueryError
11
11
 
12
12
  shimmer.wrap(runHttpQueryModule, 'runHttpQuery', function wrapRunHttpQuery (originalRunHttpQuery) {
13
- return function runHttpQuery () {
13
+ return function runHttpQuery (...args) {
14
14
  if (!requestChannel.start.hasSubscribers) {
15
- return originalRunHttpQuery.apply(this, arguments)
15
+ return originalRunHttpQuery.apply(this, args)
16
16
  }
17
17
 
18
18
  const abortController = new AbortController()
@@ -22,7 +22,7 @@ addHook({ name: 'apollo-server-core', file: 'dist/runHttpQuery.js', versions: ['
22
22
  originalRunHttpQuery,
23
23
  { abortController, abortData },
24
24
  this,
25
- ...arguments)
25
+ ...args)
26
26
 
27
27
  const abortPromise = new Promise((resolve, reject) => {
28
28
  abortController.signal.addEventListener('abort', (event) => {
@@ -13,9 +13,9 @@ const requestChannel = dc.tracingChannel('datadog:apollo:request')
13
13
  let HeaderMap
14
14
 
15
15
  function wrapExecuteHTTPGraphQLRequest (originalExecuteHTTPGraphQLRequest) {
16
- return function executeHTTPGraphQLRequest () {
16
+ return function executeHTTPGraphQLRequest (...args) {
17
17
  if (!HeaderMap || !requestChannel.start.hasSubscribers) {
18
- return originalExecuteHTTPGraphQLRequest.apply(this, arguments)
18
+ return originalExecuteHTTPGraphQLRequest.apply(this, args)
19
19
  }
20
20
 
21
21
  const abortController = new AbortController()
@@ -25,7 +25,7 @@ function wrapExecuteHTTPGraphQLRequest (originalExecuteHTTPGraphQLRequest) {
25
25
  originalExecuteHTTPGraphQLRequest,
26
26
  { abortController, abortData },
27
27
  this,
28
- ...arguments)
28
+ ...args)
29
29
 
30
30
  const abortPromise = new Promise((resolve, reject) => {
31
31
  abortController.signal.addEventListener('abort', (event) => {
@@ -89,10 +89,10 @@ function wrapEmit (emit) {
89
89
  }
90
90
 
91
91
  function wrapListen (originalListen) {
92
- return function wrappedListen () {
92
+ return function wrappedListen (...args) {
93
93
  shimmer.wrap(this, 'emit', wrapEmit)
94
94
 
95
- return originalListen.apply(this, arguments)
95
+ return originalListen.apply(this, args)
96
96
  }
97
97
  }
98
98
 
@@ -8,21 +8,21 @@ const serializeChannel = dc.channel('apm:avsc:serialize-start')
8
8
  const deserializeChannel = dc.channel('apm:avsc:deserialize-end')
9
9
 
10
10
  function wrapSerialization (Type) {
11
- shimmer.wrap(Type.prototype, 'toBuffer', original => function () {
11
+ shimmer.wrap(Type.prototype, 'toBuffer', original => function (...args) {
12
12
  if (!serializeChannel.hasSubscribers) {
13
- return original.apply(this, arguments)
13
+ return original.apply(this, args)
14
14
  }
15
15
  serializeChannel.publish({ messageClass: this })
16
- return original.apply(this, arguments)
16
+ return original.apply(this, args)
17
17
  })
18
18
  }
19
19
 
20
20
  function wrapDeserialization (Type) {
21
- shimmer.wrap(Type.prototype, 'fromBuffer', original => function () {
21
+ shimmer.wrap(Type.prototype, 'fromBuffer', original => function (...args) {
22
22
  if (!deserializeChannel.hasSubscribers) {
23
- return original.apply(this, arguments)
23
+ return original.apply(this, args)
24
24
  }
25
- const result = original.apply(this, arguments)
25
+ const result = original.apply(this, args)
26
26
  deserializeChannel.publish({ messageClass: result })
27
27
  return result
28
28
  })