dd-trace 6.15.0 → 6.17.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.
- package/README.md +15 -0
- package/ci/diagnose.js +0 -23
- package/ci/test-optimization-validation/approval-artifacts.js +0 -3
- package/ci/test-optimization-validation/approval.js +0 -6
- package/ci/test-optimization-validation/artifact-id.js +0 -1
- package/ci/test-optimization-validation/bounded-json.js +0 -1
- package/ci/test-optimization-validation/cli.js +0 -12
- package/ci/test-optimization-validation/command-output-policy.js +0 -1
- package/ci/test-optimization-validation/command-runner.js +0 -3
- package/ci/test-optimization-validation/environment.js +0 -4
- package/ci/test-optimization-validation/executable-approval.js +0 -1
- package/ci/test-optimization-validation/executable.js +0 -5
- package/ci/test-optimization-validation/framework-adapters/cucumber.js +4 -8
- package/ci/test-optimization-validation/framework-adapters/cypress.js +0 -3
- package/ci/test-optimization-validation/framework-adapters/playwright.js +0 -6
- package/ci/test-optimization-validation/framework-adapters/vitest.js +0 -4
- package/ci/test-optimization-validation/generated-test-contract.js +0 -5
- package/ci/test-optimization-validation/generated-verifier.js +0 -1
- package/ci/test-optimization-validation/literal-environment.js +0 -1
- package/ci/test-optimization-validation/manifest-scaffold.js +0 -17
- package/ci/test-optimization-validation/manifest-schema.js +0 -21
- package/ci/test-optimization-validation/offline-fixtures.js +0 -4
- package/ci/test-optimization-validation/package-check.js +4 -1
- package/ci/test-optimization-validation/plan-writer.js +0 -11
- package/ci/test-optimization-validation/preflight-runner.js +0 -1
- package/ci/test-optimization-validation/redaction.js +0 -4
- package/ci/test-optimization-validation/report-writer.js +0 -16
- package/ci/test-optimization-validation/runner-command.js +0 -3
- package/ci/test-optimization-validation/runner-contract.js +0 -4
- package/ci/test-optimization-validation/safe-files.js +0 -1
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +0 -1
- package/ci/test-optimization-validation/scenarios/ci-wiring.js +1 -2
- package/ci/test-optimization-validation/source-text.js +0 -3
- package/ci/vitest-no-worker-init-setup.mjs +41 -16
- package/index.d.ts +169 -0
- package/next.d.ts +27 -0
- package/next.js +3 -0
- package/package.json +28 -23
- package/packages/datadog-esbuild/index.js +14 -1
- package/packages/datadog-esbuild/src/resolver.js +284 -0
- package/packages/datadog-esbuild/src/utils.js +162 -120
- package/packages/datadog-instrumentations/src/aerospike.js +28 -6
- package/packages/datadog-instrumentations/src/ai.js +39 -97
- package/packages/datadog-instrumentations/src/anthropic.js +76 -134
- package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +1 -3
- package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
- package/packages/datadog-instrumentations/src/azure-cosmos.js +1 -1
- package/packages/datadog-instrumentations/src/azure-durable-functions.js +23 -9
- package/packages/datadog-instrumentations/src/azure-functions.js +48 -0
- package/packages/datadog-instrumentations/src/bullmq.js +1 -1
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +1 -3
- package/packages/datadog-instrumentations/src/console.js +97 -0
- package/packages/datadog-instrumentations/src/cucumber.js +72 -12
- package/packages/datadog-instrumentations/src/cypress-config.js +0 -23
- package/packages/datadog-instrumentations/src/dd-trace-api.js +2 -2
- package/packages/datadog-instrumentations/src/graphql.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +39 -14
- package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
- package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
- package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -0
- package/packages/datadog-instrumentations/src/helpers/instrument.js +25 -8
- package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +69 -0
- package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
- package/packages/datadog-instrumentations/src/helpers/register.js +13 -64
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +109 -29
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +39 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/azure-durable-functions.js +17 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -16
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +12 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +36 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/supabase.js +128 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +6 -7
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +17 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +99 -75
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
- package/packages/datadog-instrumentations/src/jest.js +141 -51
- package/packages/datadog-instrumentations/src/knex.js +0 -1
- package/packages/datadog-instrumentations/src/langchain.js +1 -1
- package/packages/datadog-instrumentations/src/langgraph.js +1 -1
- package/packages/datadog-instrumentations/src/mariadb-bundle.js +0 -24
- package/packages/datadog-instrumentations/src/mariadb.js +0 -2
- package/packages/datadog-instrumentations/src/mercurius.js +1 -1
- package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
- package/packages/datadog-instrumentations/src/mocha/main.js +22 -25
- package/packages/datadog-instrumentations/src/mocha/utils.js +119 -49
- package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +0 -6
- package/packages/datadog-instrumentations/src/mocha/worker.js +14 -17
- package/packages/datadog-instrumentations/src/modelcontextprotocol-sdk.js +1 -1
- package/packages/datadog-instrumentations/src/mysql2.js +0 -2
- package/packages/datadog-instrumentations/src/openai-agents.js +1 -1
- package/packages/datadog-instrumentations/src/openai-realtime/audio-accumulator.js +241 -0
- package/packages/datadog-instrumentations/src/openai-realtime/events.js +76 -0
- package/packages/datadog-instrumentations/src/openai-realtime/index.js +301 -0
- package/packages/datadog-instrumentations/src/openai-realtime/session.js +998 -0
- package/packages/datadog-instrumentations/src/openai-realtime/turns.js +211 -0
- package/packages/datadog-instrumentations/src/openai.js +97 -80
- package/packages/datadog-instrumentations/src/oracledb.js +9 -3
- package/packages/datadog-instrumentations/src/playwright-reporter.js +3 -16
- package/packages/datadog-instrumentations/src/playwright.js +238 -55
- package/packages/datadog-instrumentations/src/postgres.js +7 -0
- package/packages/datadog-instrumentations/src/router.js +0 -2
- package/packages/datadog-instrumentations/src/rum-browser-scripts.js +0 -2
- package/packages/datadog-instrumentations/src/sequelize.js +0 -1
- package/packages/datadog-instrumentations/src/supabase.js +15 -0
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +18 -18
- package/packages/datadog-instrumentations/src/vitest-main.js +37 -17
- package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
- package/packages/datadog-instrumentations/src/vitest-worker.js +56 -23
- package/packages/datadog-instrumentations/src/webdriverio.js +23 -42
- package/packages/datadog-instrumentations/src/ws.js +0 -1
- package/packages/datadog-plugin-ai/src/utils.js +0 -2
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +0 -1
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +0 -2
- package/packages/datadog-plugin-aws-sdk/src/base.js +0 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +7 -2
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +0 -1
- package/packages/datadog-plugin-aws-sdk/src/util.js +0 -1
- package/packages/datadog-plugin-azure-cosmos/src/index.js +1 -1
- package/packages/datadog-plugin-azure-durable-functions/src/index.js +95 -1
- package/packages/datadog-plugin-cucumber/src/index.js +10 -0
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +171 -75
- package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
- package/packages/datadog-plugin-cypress/src/source-map-utils.js +0 -4
- package/packages/datadog-plugin-cypress/src/support.js +52 -7
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +2 -24
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +2 -36
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-request-context.js +31 -0
- package/packages/datadog-plugin-graphql/src/resolve-error.js +32 -11
- package/packages/datadog-plugin-graphql/src/utils.js +0 -5
- package/packages/datadog-plugin-jest/src/index.js +13 -0
- package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
- package/packages/datadog-plugin-mocha/src/index.js +39 -11
- package/packages/datadog-plugin-mongodb-core/src/query.js +0 -1
- package/packages/datadog-plugin-openai/src/index.js +16 -1
- package/packages/datadog-plugin-openai/src/realtime.js +144 -0
- package/packages/datadog-plugin-openai-agents/src/integration.js +0 -4
- package/packages/datadog-plugin-openai-agents/src/util.js +0 -1
- package/packages/datadog-plugin-playwright/src/index.js +76 -9
- package/packages/datadog-plugin-postgres/src/index.js +167 -0
- package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +0 -1
- package/packages/datadog-plugin-redis/src/index.js +15 -1
- package/packages/datadog-plugin-supabase/src/error.js +18 -0
- package/packages/datadog-plugin-supabase/src/index.js +21 -0
- package/packages/datadog-plugin-supabase/src/supabase-auth-js-gotrueclient-getuser.js +69 -0
- package/packages/datadog-plugin-supabase/src/supabase-functions-js-functionsclient-invoke.js +70 -0
- package/packages/datadog-plugin-supabase/src/supabase-postgrest-js-postgrestbuilder-then.js +122 -0
- package/packages/datadog-plugin-supabase/src/supabase-realtime-js-realtimechannel-send.js +66 -0
- package/packages/datadog-plugin-supabase/src/supabase-storage-js-handle-request.js +93 -0
- package/packages/datadog-plugin-supabase/src/url.js +17 -0
- package/packages/datadog-plugin-vitest/src/index.js +10 -0
- package/packages/datadog-plugin-ws/src/util.js +0 -4
- package/packages/datadog-turbopack/index.js +206 -0
- package/packages/datadog-turbopack/src/constants.js +5 -0
- package/packages/datadog-turbopack/src/loader.js +484 -0
- package/packages/datadog-webpack/src/loader.js +0 -1
- package/packages/dd-trace/src/aiguard/client.js +2 -3
- package/packages/dd-trace/src/aiguard/evaluation.js +6 -12
- package/packages/dd-trace/src/aiguard/index.js +3 -2
- package/packages/dd-trace/src/aiguard/integrations/anthropic.js +53 -25
- package/packages/dd-trace/src/aiguard/integrations/evaluate.js +49 -25
- package/packages/dd-trace/src/aiguard/integrations/index.js +4 -3
- package/packages/dd-trace/src/aiguard/integrations/openai.js +132 -29
- package/packages/dd-trace/src/aiguard/integrations/vercel-ai.js +116 -42
- package/packages/dd-trace/src/aiguard/messages/anthropic.js +0 -2
- package/packages/dd-trace/src/aiguard/messages/openai.js +64 -1
- package/packages/dd-trace/src/aiguard/messages/utils.js +29 -2
- package/packages/dd-trace/src/aiguard/messages/vercel-ai.js +25 -0
- package/packages/dd-trace/src/aiguard/redaction.js +0 -1
- package/packages/dd-trace/src/aiguard/sdk.js +1 -1
- package/packages/dd-trace/src/appsec/activation.js +1 -1
- package/packages/dd-trace/src/appsec/api_security/normalized-route.js +0 -5
- package/packages/dd-trace/src/appsec/api_security/sampler.js +0 -4
- package/packages/dd-trace/src/appsec/blocking/index.js +3 -3
- package/packages/dd-trace/src/appsec/downstream_requests.js +1 -4
- package/packages/dd-trace/src/appsec/iast/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/overhead-controller.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +3 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +8 -10
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/url-sensitive-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -2
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +4 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +7 -7
- package/packages/dd-trace/src/appsec/index.js +2 -2
- package/packages/dd-trace/src/appsec/lambda.js +71 -2
- package/packages/dd-trace/src/appsec/rasp/utils.js +5 -1
- package/packages/dd-trace/src/appsec/remote_config.js +8 -6
- package/packages/dd-trace/src/appsec/reporter.js +10 -6
- package/packages/dd-trace/src/appsec/rule_manager.js +3 -3
- package/packages/dd-trace/src/appsec/sdk/track_event.js +0 -2
- package/packages/dd-trace/src/appsec/telemetry/api_security.js +1 -3
- package/packages/dd-trace/src/appsec/telemetry/common.js +4 -0
- package/packages/dd-trace/src/appsec/telemetry/index.js +23 -5
- package/packages/dd-trace/src/appsec/telemetry/rasp.js +1 -20
- package/packages/dd-trace/src/appsec/telemetry/user.js +1 -3
- package/packages/dd-trace/src/appsec/telemetry/waf.js +1 -20
- package/packages/dd-trace/src/appsec/waf/index.js +2 -2
- package/packages/dd-trace/src/appsec/waf/waf_manager.js +8 -5
- package/packages/dd-trace/src/carrier.js +0 -5
- package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +104 -0
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +0 -2
- package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +34 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/index.js +0 -4
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +0 -2
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -15
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +0 -3
- package/packages/dd-trace/src/ci-visibility/exporters/request.js +0 -11
- package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +0 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +0 -1
- package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +0 -6
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +2 -2
- package/packages/dd-trace/src/ci-visibility/requests/rate-limit.js +0 -1
- package/packages/dd-trace/src/ci-visibility/requests/upload-test-screenshot.js +0 -5
- package/packages/dd-trace/src/ci-visibility/requests/video-request.js +0 -1
- package/packages/dd-trace/src/ci-visibility/telemetry.js +13 -0
- package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +0 -1
- package/packages/dd-trace/src/ci-visibility/test-screenshot.js +0 -2
- package/packages/dd-trace/src/ci-visibility/test-video.js +0 -1
- package/packages/dd-trace/src/config/defaults.js +3 -2
- package/packages/dd-trace/src/config/generated-config-types.d.ts +74 -66
- package/packages/dd-trace/src/config/helper.js +9 -2
- package/packages/dd-trace/src/config/index.js +44 -29
- package/packages/dd-trace/src/config/parsers.js +34 -6
- package/packages/dd-trace/src/config/remote_config.js +25 -109
- package/packages/dd-trace/src/config/supported-configurations.json +146 -9
- package/packages/dd-trace/src/datastreams/encoding.js +0 -1
- package/packages/dd-trace/src/datastreams/pathway.js +0 -1
- package/packages/dd-trace/src/debugger/constants.js +10 -0
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +76 -17
- package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
- package/packages/dd-trace/src/debugger/devtools_client/guardrail-metrics.js +15 -0
- package/packages/dd-trace/src/debugger/devtools_client/index.js +103 -27
- package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +50 -7
- package/packages/dd-trace/src/debugger/devtools_client/log.js +3 -1
- package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +34 -8
- package/packages/dd-trace/src/debugger/devtools_client/send.js +40 -14
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +53 -13
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +118 -71
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +0 -3
- package/packages/dd-trace/src/debugger/devtools_client/status.js +20 -6
- package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
- package/packages/dd-trace/src/debugger/index.js +50 -2
- package/packages/dd-trace/src/debugger/inspect-segment.js +0 -3
- package/packages/dd-trace/src/debugger/probe_sampler.js +133 -9
- package/packages/dd-trace/src/debugger/probe_sampler_constants.js +31 -1
- package/packages/dd-trace/src/dogstatsd.js +0 -23
- package/packages/dd-trace/src/encode/0.4-cross-payload.js +0 -3
- package/packages/dd-trace/src/encode/0.4.js +0 -7
- package/packages/dd-trace/src/encode/0.5.js +0 -2
- package/packages/dd-trace/src/encode/tags-processors.js +0 -1
- package/packages/dd-trace/src/evp_proxy/discovery.js +3 -5
- package/packages/dd-trace/src/evp_proxy/path.js +11 -4
- package/packages/dd-trace/src/exporters/agent/writer.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/index.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/intake.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/writer.js +0 -3
- package/packages/dd-trace/src/exporters/common/docker.js +4 -1
- package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
- package/packages/dd-trace/src/exporters/common/proxy.js +3 -0
- package/packages/dd-trace/src/exporters/common/request.js +1 -0
- package/packages/dd-trace/src/exporters/common/url.js +0 -2
- package/packages/dd-trace/src/exporters/common/writer.js +0 -2
- package/packages/dd-trace/src/id.js +0 -11
- package/packages/dd-trace/src/llmobs/audio-codec.js +192 -0
- package/packages/dd-trace/src/llmobs/audio-utils.js +121 -0
- package/packages/dd-trace/src/llmobs/constants/audio.js +35 -0
- package/packages/dd-trace/src/llmobs/constants/prompts.js +14 -0
- package/packages/dd-trace/src/llmobs/constants/tags.js +17 -0
- package/packages/dd-trace/src/llmobs/eval-metric.js +0 -6
- package/packages/dd-trace/src/llmobs/experiments/dataset.js +0 -4
- package/packages/dd-trace/src/llmobs/experiments/experiment.js +0 -3
- package/packages/dd-trace/src/llmobs/experiments/index.js +7 -6
- package/packages/dd-trace/src/llmobs/experiments/util.js +1 -11
- package/packages/dd-trace/src/llmobs/index.js +1 -3
- package/packages/dd-trace/src/llmobs/noop.js +10 -0
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +0 -4
- package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +0 -1
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +0 -4
- package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +0 -2
- package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +0 -2
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +4 -6
- package/packages/dd-trace/src/llmobs/plugins/openai/realtime.js +285 -0
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +16 -3
- package/packages/dd-trace/src/llmobs/prompts/cache.js +272 -0
- package/packages/dd-trace/src/llmobs/prompts/manager.js +639 -0
- package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
- package/packages/dd-trace/src/llmobs/prompts/prompt.js +92 -0
- package/packages/dd-trace/src/llmobs/sdk.js +21 -6
- package/packages/dd-trace/src/llmobs/span_processor.js +81 -2
- package/packages/dd-trace/src/llmobs/tagger.js +30 -7
- package/packages/dd-trace/src/llmobs/telemetry.js +36 -4
- package/packages/dd-trace/src/llmobs/util.js +0 -34
- package/packages/dd-trace/src/llmobs/writers/base.js +0 -1
- package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
- package/packages/dd-trace/src/log/channels.js +3 -0
- package/packages/dd-trace/src/log/index.js +23 -5
- package/packages/dd-trace/src/log-submission/log-submission-plugin.js +74 -6
- package/packages/dd-trace/src/msgpack/chunk.js +0 -1
- package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +0 -12
- package/packages/dd-trace/src/openfeature/encoding.js +0 -2
- package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
- package/packages/dd-trace/src/openfeature/index.js +0 -4
- package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +0 -1
- package/packages/dd-trace/src/openfeature/span-enrichment.js +0 -4
- package/packages/dd-trace/src/openfeature/writers/base.js +0 -6
- package/packages/dd-trace/src/openfeature/writers/exposures.js +0 -5
- package/packages/dd-trace/src/openfeature/writers/util.js +0 -4
- package/packages/dd-trace/src/opentelemetry/logs/logger.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +0 -2
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +4 -4
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +0 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +0 -1
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +103 -35
- package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +36 -13
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +0 -1
- package/packages/dd-trace/src/opentelemetry/span-helpers.js +0 -1
- package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +0 -1
- package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +0 -3
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +0 -6
- package/packages/dd-trace/src/opentracing/span_context.js +0 -1
- package/packages/dd-trace/src/otel-thread-ctx.js +38 -11
- package/packages/dd-trace/src/payload-tagging/tagging.js +15 -3
- package/packages/dd-trace/src/plugin_manager.js +9 -3
- package/packages/dd-trace/src/plugins/ci_plugin.js +0 -1
- package/packages/dd-trace/src/plugins/database.js +2 -6
- package/packages/dd-trace/src/plugins/index.js +8 -0
- package/packages/dd-trace/src/plugins/plugin.js +0 -4
- package/packages/dd-trace/src/plugins/tracing.js +1 -1
- package/packages/dd-trace/src/plugins/util/git.js +1 -3
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +0 -1
- package/packages/dd-trace/src/plugins/util/llm.js +0 -2
- package/packages/dd-trace/src/plugins/util/status-validator.js +0 -1
- package/packages/dd-trace/src/plugins/util/test.js +25 -21
- package/packages/dd-trace/src/plugins/util/url.js +0 -5
- package/packages/dd-trace/src/priority_sampler.js +0 -6
- package/packages/dd-trace/src/process-tags/index.js +0 -1
- package/packages/dd-trace/src/profiler.js +132 -35
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +0 -1
- package/packages/dd-trace/src/profiling/profiler.js +101 -41
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +29 -15
- package/packages/dd-trace/src/propagation-hash/index.js +0 -1
- package/packages/dd-trace/src/proxy.js +21 -45
- package/packages/dd-trace/src/random_sampler.js +0 -4
- package/packages/dd-trace/src/rate_limiter.js +0 -4
- package/packages/dd-trace/src/remote_config/capabilities.js +1 -9
- package/packages/dd-trace/src/remote_config/index.js +0 -1
- package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +0 -3
- package/packages/dd-trace/src/sampler.js +0 -4
- package/packages/dd-trace/src/sampling_rule.js +0 -7
- package/packages/dd-trace/src/serverless/vercel.js +0 -1
- package/packages/dd-trace/src/serverless.js +0 -1
- package/packages/dd-trace/src/service-naming/index.js +0 -1
- package/packages/dd-trace/src/service-naming/schemas/util.js +0 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +7 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +5 -0
- package/packages/dd-trace/src/span_processor.js +2 -2
- package/packages/dd-trace/src/span_sampler.js +0 -1
- package/packages/dd-trace/src/standalone/product.js +2 -2
- package/packages/dd-trace/src/standalone/tracesource.js +0 -1
- package/packages/dd-trace/src/startup-log.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +0 -8
- package/packages/dd-trace/src/telemetry/logs/index.js +16 -5
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +16 -6
- package/packages/dd-trace/src/telemetry/metrics.js +0 -2
- package/packages/dd-trace/src/telemetry/telemetry.js +4 -1
- package/packages/dd-trace/src/util.js +13 -1
- package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/claude-agent-sdk/utils.js +0 -10
|
@@ -149,7 +149,6 @@ function createPoolAcquisition (pool, options, queryCtx, mode) {
|
|
|
149
149
|
* Queues a delayed acquisition for pool events that no longer carry its async-local context.
|
|
150
150
|
*
|
|
151
151
|
* @param {PoolAcquisition} acquisition
|
|
152
|
-
* @returns {void}
|
|
153
152
|
*/
|
|
154
153
|
function queuePoolAcquisition (acquisition) {
|
|
155
154
|
let pending = pendingPoolAcquisitions.get(acquisition.pool)
|
|
@@ -164,7 +163,6 @@ function queuePoolAcquisition (acquisition) {
|
|
|
164
163
|
* Reports whether an acquisition still needs a matching pool event.
|
|
165
164
|
*
|
|
166
165
|
* @param {PoolAcquisition} acquisition
|
|
167
|
-
* @returns {boolean}
|
|
168
166
|
*/
|
|
169
167
|
function isPoolAcquisitionPending (acquisition) {
|
|
170
168
|
return !acquisition.acquired && !acquisition.finished && !acquisition.errorReported
|
|
@@ -174,7 +172,6 @@ function isPoolAcquisitionPending (acquisition) {
|
|
|
174
172
|
* Releases a consumed acquisition and periodically compacts its queue.
|
|
175
173
|
*
|
|
176
174
|
* @param {PendingPoolAcquisitions} pending
|
|
177
|
-
* @returns {void}
|
|
178
175
|
*/
|
|
179
176
|
function discardPoolAcquisition (pending) {
|
|
180
177
|
pending.acquisitions[pending.index++] = undefined
|
|
@@ -195,7 +192,6 @@ function discardPoolAcquisition (pending) {
|
|
|
195
192
|
* Removes completed entries from the front of a pool's acquisition queue.
|
|
196
193
|
*
|
|
197
194
|
* @param {object} pool
|
|
198
|
-
* @returns {void}
|
|
199
195
|
*/
|
|
200
196
|
function prunePoolAcquisitions (pool) {
|
|
201
197
|
const pending = pendingPoolAcquisitions.get(pool)
|
|
@@ -235,7 +231,6 @@ function takePoolAcquisition (pool) {
|
|
|
235
231
|
* Records the pool wait when MariaDB announces that the calling operation acquired a connection.
|
|
236
232
|
*
|
|
237
233
|
* @param {object} pool
|
|
238
|
-
* @returns {void}
|
|
239
234
|
*/
|
|
240
235
|
function recordPoolAcquisition (pool) {
|
|
241
236
|
let acquisition = poolAcquisitionStorage?.getStore()
|
|
@@ -263,7 +258,6 @@ function recordPoolAcquisition (pool) {
|
|
|
263
258
|
* Starts a pooled command after MariaDB has acquired the connection that will execute it.
|
|
264
259
|
*
|
|
265
260
|
* @param {PoolAcquisition} acquisition
|
|
266
|
-
* @returns {void}
|
|
267
261
|
*/
|
|
268
262
|
function startPoolCommand (acquisition) {
|
|
269
263
|
const queryCtx = acquisition.queryCtx
|
|
@@ -277,7 +271,6 @@ function startPoolCommand (acquisition) {
|
|
|
277
271
|
* Starts a command lifecycle without running connector work inside its span store.
|
|
278
272
|
*
|
|
279
273
|
* @param {object} ctx
|
|
280
|
-
* @returns {void}
|
|
281
274
|
*/
|
|
282
275
|
function runCommandStart (ctx) {
|
|
283
276
|
startCh.runStores(ctx, noop)
|
|
@@ -288,7 +281,6 @@ function runCommandStart (ctx) {
|
|
|
288
281
|
*
|
|
289
282
|
* @param {PoolAcquisition | undefined} acquisition
|
|
290
283
|
* @param {unknown} error
|
|
291
|
-
* @returns {void}
|
|
292
284
|
*/
|
|
293
285
|
function reportPoolQueryAcquireError (acquisition, error) {
|
|
294
286
|
if (acquisition === undefined || acquisition.acquired || acquisition.errorReported) return
|
|
@@ -346,7 +338,6 @@ function runPoolAcquisition (acquisition, method, receiver, args) {
|
|
|
346
338
|
*
|
|
347
339
|
* @param {PoolAcquisition | undefined} acquisition
|
|
348
340
|
* @param {unknown} [error]
|
|
349
|
-
* @returns {void}
|
|
350
341
|
*/
|
|
351
342
|
function finishPoolCommandAcquisition (acquisition, error) {
|
|
352
343
|
if (acquisition === undefined) return
|
|
@@ -375,7 +366,6 @@ function runSkippedPoolMethod (method, receiver, args) {
|
|
|
375
366
|
*
|
|
376
367
|
* @param {PoolAcquisition} acquisition
|
|
377
368
|
* @param {unknown} [error]
|
|
378
|
-
* @returns {void}
|
|
379
369
|
*/
|
|
380
370
|
function finishExplicitPoolAcquisition (acquisition, error) {
|
|
381
371
|
if (acquisition.finished) return
|
|
@@ -395,7 +385,6 @@ function finishExplicitPoolAcquisition (acquisition, error) {
|
|
|
395
385
|
*
|
|
396
386
|
* @param {object} pool
|
|
397
387
|
* @param {Function} observer
|
|
398
|
-
* @returns {void}
|
|
399
388
|
*/
|
|
400
389
|
function restorePoolAcquisitionObserver (pool, observer) {
|
|
401
390
|
const listeners = pool.listeners('acquire')
|
|
@@ -409,7 +398,6 @@ function restorePoolAcquisitionObserver (pool, observer) {
|
|
|
409
398
|
* Observes public acquire events forwarded by a bundled pool.
|
|
410
399
|
*
|
|
411
400
|
* @param {object} pool
|
|
412
|
-
* @returns {void}
|
|
413
401
|
*/
|
|
414
402
|
function observePoolAcquisitions (pool) {
|
|
415
403
|
const observer = () => {
|
|
@@ -428,7 +416,6 @@ function observePoolAcquisitions (pool) {
|
|
|
428
416
|
* Marks a command as active on its owning public connection.
|
|
429
417
|
*
|
|
430
418
|
* @param {object | undefined} owner
|
|
431
|
-
* @returns {void}
|
|
432
419
|
*/
|
|
433
420
|
function startCommand (owner) {
|
|
434
421
|
if (owner === undefined) return
|
|
@@ -439,7 +426,6 @@ function startCommand (owner) {
|
|
|
439
426
|
* Releases one active command without clearing concurrent commands.
|
|
440
427
|
*
|
|
441
428
|
* @param {object | undefined} owner
|
|
442
|
-
* @returns {void}
|
|
443
429
|
*/
|
|
444
430
|
function endCommand (owner) {
|
|
445
431
|
if (owner === undefined) return
|
|
@@ -458,7 +444,6 @@ function endCommand (owner) {
|
|
|
458
444
|
* @param {object | undefined} owner
|
|
459
445
|
* @param {Error} [error]
|
|
460
446
|
* @param {unknown} [result]
|
|
461
|
-
* @returns {void}
|
|
462
447
|
*/
|
|
463
448
|
function finishCommandState (ctx, owner, error, result) {
|
|
464
449
|
endCommand(owner)
|
|
@@ -476,7 +461,6 @@ function finishCommandState (ctx, owner, error, result) {
|
|
|
476
461
|
* @param {object | undefined} owner
|
|
477
462
|
* @param {Error} [error]
|
|
478
463
|
* @param {unknown} [result]
|
|
479
|
-
* @returns {void}
|
|
480
464
|
*/
|
|
481
465
|
function finishCommand (ctx, owner, error, result) {
|
|
482
466
|
finishCommandState(ctx, owner, error, result)
|
|
@@ -490,7 +474,6 @@ function finishCommand (ctx, owner, error, result) {
|
|
|
490
474
|
* @param {number} callbackIndex
|
|
491
475
|
* @param {unknown} callback
|
|
492
476
|
* @param {(callback?: Function) => Function} createCallback
|
|
493
|
-
* @returns {void}
|
|
494
477
|
*/
|
|
495
478
|
function setCommandCallback (args, callbackIndex, callback, createCallback) {
|
|
496
479
|
if (typeof callback === 'function') {
|
|
@@ -750,7 +733,6 @@ function createWrapStream (options, preparedSql, commandOwner) {
|
|
|
750
733
|
*
|
|
751
734
|
* @param {object} client
|
|
752
735
|
* @param {(command: Function) => Function} wrapper
|
|
753
|
-
* @returns {void}
|
|
754
736
|
*/
|
|
755
737
|
function wrapClientCommands (client, wrapper) {
|
|
756
738
|
if (wrappedClients.has(client)) return
|
|
@@ -769,7 +751,6 @@ function wrapClientCommands (client, wrapper) {
|
|
|
769
751
|
* @param {(options: object, sql?: unknown, owner?: object, commandArity?: number,
|
|
770
752
|
* trackActiveCommands?: boolean, poolAcquisition?: 'measure' | 'observe') =>
|
|
771
753
|
* (command: Function) => Function} createWrapper
|
|
772
|
-
* @returns {void}
|
|
773
754
|
*/
|
|
774
755
|
function wrapPoolCommands (pool, options, createWrapper) {
|
|
775
756
|
if (wrappedClients.has(pool)) return
|
|
@@ -789,7 +770,6 @@ function wrapPoolCommands (pool, options, createWrapper) {
|
|
|
789
770
|
* @param {object} options
|
|
790
771
|
* @param {(options: object, sql: string, owner?: object, commandArity?: number) =>
|
|
791
772
|
* (command: Function) => Function} createWrapper
|
|
792
|
-
* @returns {void}
|
|
793
773
|
*/
|
|
794
774
|
function wrapTransactionMethods (client, options, createWrapper) {
|
|
795
775
|
for (const [method, sql] of transactionMethods) {
|
|
@@ -1115,7 +1095,6 @@ function createWrapCallbackGetConnection (options) {
|
|
|
1115
1095
|
* @param {object} pool
|
|
1116
1096
|
* @param {object} options
|
|
1117
1097
|
* @param {(connection: object, options: object) => object} wrapConnection
|
|
1118
|
-
* @returns {void}
|
|
1119
1098
|
*/
|
|
1120
1099
|
function wrapPoolConnectionEvent (pool, options, wrapConnection) {
|
|
1121
1100
|
shimmer.wrap(pool, 'emit', emit => function (event, connection) {
|
|
@@ -1131,7 +1110,6 @@ function wrapPoolConnectionEvent (pool, options, wrapConnection) {
|
|
|
1131
1110
|
* @param {object} cluster
|
|
1132
1111
|
* @param {Function} defaultOptions
|
|
1133
1112
|
* @param {ClusterSelectionStorage} selectionStorage
|
|
1134
|
-
* @returns {void}
|
|
1135
1113
|
*/
|
|
1136
1114
|
function captureClusterOptions (cluster, defaultOptions, selectionStorage) {
|
|
1137
1115
|
/** @type {Map<string, ClusterNodeOptions>} */
|
|
@@ -1198,7 +1176,6 @@ function captureClusterOptions (cluster, defaultOptions, selectionStorage) {
|
|
|
1198
1176
|
*
|
|
1199
1177
|
* @param {Map<string, ClusterNodeOptions>} optionsByIdentifier
|
|
1200
1178
|
* @param {string} pattern
|
|
1201
|
-
* @returns {void}
|
|
1202
1179
|
*/
|
|
1203
1180
|
function removeClusterOptions (optionsByIdentifier, pattern) {
|
|
1204
1181
|
const regularExpression = new RegExp(pattern)
|
|
@@ -1227,7 +1204,6 @@ function runClusterGetConnection (getConnection, receiver, args) {
|
|
|
1227
1204
|
* @param {ClusterSelection} selection
|
|
1228
1205
|
* @param {number | undefined} start
|
|
1229
1206
|
* @param {unknown} error
|
|
1230
|
-
* @returns {void}
|
|
1231
1207
|
*/
|
|
1232
1208
|
function reportBundledClusterAcquireError (selection, start, error) {
|
|
1233
1209
|
if (!acquireStartCh.hasSubscribers) return
|
|
@@ -208,7 +208,6 @@ function wrapPoolQuery (method) {
|
|
|
208
208
|
|
|
209
209
|
/**
|
|
210
210
|
* @param {Function} Pool
|
|
211
|
-
* @returns {boolean}
|
|
212
211
|
*/
|
|
213
212
|
function claimPoolWrap (Pool) {
|
|
214
213
|
if (wrappedPools.has(Pool)) return false
|
|
@@ -267,7 +266,6 @@ function startPoolAcquireTiming (timing) {
|
|
|
267
266
|
|
|
268
267
|
/**
|
|
269
268
|
* @param {PoolAcquireTiming} timing
|
|
270
|
-
* @returns {number}
|
|
271
269
|
*/
|
|
272
270
|
function finishPoolAcquireTiming (timing) {
|
|
273
271
|
const poolWaitTime = (timing.poolWaitTime ?? 0) + acquireWait(timing.poolAcquireStart)
|
|
@@ -16,7 +16,6 @@ const patched = new WeakSet()
|
|
|
16
16
|
*
|
|
17
17
|
* @param {string[]} versions
|
|
18
18
|
* @param {(Mocha: Function, frameworkVersion: string) => Function} wrapMochaRun
|
|
19
|
-
* @returns {void}
|
|
20
19
|
*/
|
|
21
20
|
function addMochaRunHooks (versions, wrapMochaRun) {
|
|
22
21
|
const patchedMochaConstructors = new WeakSet()
|
|
@@ -224,7 +224,6 @@ function getCoverageRootDir () {
|
|
|
224
224
|
* from the suite path.
|
|
225
225
|
*
|
|
226
226
|
* @param {string} testSuiteAbsolutePath
|
|
227
|
-
* @returns {boolean}
|
|
228
227
|
*/
|
|
229
228
|
function isModifiedTestSuite (testSuiteAbsolutePath) {
|
|
230
229
|
const testPath = getTestSuitePath(testSuiteAbsolutePath, getCoverageRootDir())
|
|
@@ -318,7 +317,7 @@ function getOnEndHandler (isParallel, onDone) {
|
|
|
318
317
|
let error = frameworkError
|
|
319
318
|
if (this.stats) {
|
|
320
319
|
status = this.stats.failures === 0 ? 'pass' : 'fail'
|
|
321
|
-
if (this.stats.tests === 0) {
|
|
320
|
+
if (this.stats.tests === 0 && this.stats.failures === 0) {
|
|
322
321
|
status = 'skip'
|
|
323
322
|
}
|
|
324
323
|
} else if (this.failures !== 0) {
|
|
@@ -330,6 +329,7 @@ function getOnEndHandler (isParallel, onDone) {
|
|
|
330
329
|
} else if (status === 'fail') {
|
|
331
330
|
error = new Error(`Failed tests: ${this.failures}.`)
|
|
332
331
|
}
|
|
332
|
+
const isExpectedEmptySession = arguments.length === 0 && status === 'skip'
|
|
333
333
|
|
|
334
334
|
testFileToSuiteCtx.clear()
|
|
335
335
|
|
|
@@ -373,6 +373,7 @@ function getOnEndHandler (isParallel, onDone) {
|
|
|
373
373
|
isTestManagementEnabled: config.isTestManagementTestsEnabled,
|
|
374
374
|
isParallel,
|
|
375
375
|
isFrameworkError: arguments.length > 0,
|
|
376
|
+
isExpectedEmptySession,
|
|
376
377
|
}, () => {
|
|
377
378
|
try {
|
|
378
379
|
onDone()
|
|
@@ -394,7 +395,6 @@ function getOnEndHandler (isParallel, onDone) {
|
|
|
394
395
|
* Applies Test Optimization failure suppression once per runner execution.
|
|
395
396
|
*
|
|
396
397
|
* @param {object} runner
|
|
397
|
-
* @returns {void}
|
|
398
398
|
*/
|
|
399
399
|
function adjustRunnerFailuresOnce (runner) {
|
|
400
400
|
if (runnerFailuresAdjusted.has(runner)) return
|
|
@@ -427,7 +427,6 @@ function getRunnerRecoveryState (runner) {
|
|
|
427
427
|
*
|
|
428
428
|
* @param {object} runner
|
|
429
429
|
* @param {object} test
|
|
430
|
-
* @returns {void}
|
|
431
430
|
*/
|
|
432
431
|
function markTestPending (runner, test) {
|
|
433
432
|
const state = getRunnerRecoveryState(runner)
|
|
@@ -447,7 +446,6 @@ function markTestPending (runner, test) {
|
|
|
447
446
|
*
|
|
448
447
|
* @param {object} runner
|
|
449
448
|
* @param {object} test
|
|
450
|
-
* @returns {void}
|
|
451
449
|
*/
|
|
452
450
|
function markTestTerminal (runner, test) {
|
|
453
451
|
getRunnerRecoveryState(runner).tests.add(test)
|
|
@@ -458,7 +456,6 @@ function markTestTerminal (runner, test) {
|
|
|
458
456
|
* Restores test and hook state changed only to abort the current run.
|
|
459
457
|
*
|
|
460
458
|
* @param {object} runner
|
|
461
|
-
* @returns {void}
|
|
462
459
|
*/
|
|
463
460
|
function restoreReporterMutations (runner) {
|
|
464
461
|
const state = runnerRecoveryStates.get(runner)
|
|
@@ -490,7 +487,6 @@ function restoreReporterMutations (runner) {
|
|
|
490
487
|
*
|
|
491
488
|
* @param {object} runner
|
|
492
489
|
* @param {object} test
|
|
493
|
-
* @returns {void}
|
|
494
490
|
*/
|
|
495
491
|
function stopCurrentTest (runner, test) {
|
|
496
492
|
const hookDown = runner.hookDown
|
|
@@ -512,7 +508,6 @@ function stopCurrentTest (runner, test) {
|
|
|
512
508
|
*
|
|
513
509
|
* @param {object} runner
|
|
514
510
|
* @param {object} hook
|
|
515
|
-
* @returns {void}
|
|
516
511
|
*/
|
|
517
512
|
function stopCurrentHook (runner, hook) {
|
|
518
513
|
const hookMethod = runner.hook
|
|
@@ -556,7 +551,6 @@ function stopCurrentHook (runner, hook) {
|
|
|
556
551
|
*
|
|
557
552
|
* @param {object} runner
|
|
558
553
|
* @param {object} test
|
|
559
|
-
* @returns {void}
|
|
560
554
|
*/
|
|
561
555
|
function stopAfterEachHooks (runner, test) {
|
|
562
556
|
const hookUp = runner.hookUp
|
|
@@ -572,7 +566,6 @@ function stopAfterEachHooks (runner, test) {
|
|
|
572
566
|
* Prevents Mocha from entering any subsequent user hooks after a reporter error.
|
|
573
567
|
*
|
|
574
568
|
* @param {object} runner
|
|
575
|
-
* @returns {void}
|
|
576
569
|
*/
|
|
577
570
|
function stopFutureHooks (runner) {
|
|
578
571
|
if (runnerHookMethods.has(runner)) return
|
|
@@ -587,7 +580,6 @@ function stopFutureHooks (runner) {
|
|
|
587
580
|
* Restores the runner hook method after reporter-error finalization.
|
|
588
581
|
*
|
|
589
582
|
* @param {object} runner
|
|
590
|
-
* @returns {void}
|
|
591
583
|
*/
|
|
592
584
|
function restoreFutureHooks (runner) {
|
|
593
585
|
const hook = runnerHookMethods.get(runner)
|
|
@@ -602,7 +594,6 @@ function restoreFutureHooks (runner) {
|
|
|
602
594
|
*
|
|
603
595
|
* @param {object} runner
|
|
604
596
|
* @param {object} hook
|
|
605
|
-
* @returns {boolean} whether the completed hook was a before-each hook
|
|
606
597
|
*/
|
|
607
598
|
function stopRemainingCurrentHooks (runner, hook) {
|
|
608
599
|
const hookLists = [hook.parent?._beforeAll, hook.parent?._beforeEach, hook.parent?._afterEach, hook.parent?._afterAll]
|
|
@@ -631,7 +622,6 @@ function stopRemainingCurrentHooks (runner, hook) {
|
|
|
631
622
|
*
|
|
632
623
|
* @param {object} runner
|
|
633
624
|
* @param {object} hook
|
|
634
|
-
* @returns {void}
|
|
635
625
|
*/
|
|
636
626
|
function stopAfterHookEnd (runner, hook) {
|
|
637
627
|
if (!stopRemainingCurrentHooks(runner, hook) || !runner.test) return
|
|
@@ -643,7 +633,6 @@ function stopAfterHookEnd (runner, hook) {
|
|
|
643
633
|
* Prevents Mocha from entering the root suite after a run-start reporter error.
|
|
644
634
|
*
|
|
645
635
|
* @param {object} runner
|
|
646
|
-
* @returns {void}
|
|
647
636
|
*/
|
|
648
637
|
function stopRootSuite (runner) {
|
|
649
638
|
const runSuite = runner.runSuite
|
|
@@ -664,7 +653,6 @@ function createSkippedParallelFileRunner () {
|
|
|
664
653
|
* Prevents a parallel run-start reporter error from scheduling test workers.
|
|
665
654
|
*
|
|
666
655
|
* @param {object} runner
|
|
667
|
-
* @returns {void}
|
|
668
656
|
*/
|
|
669
657
|
function stopParallelWorkers (runner) {
|
|
670
658
|
const state = getRunnerRecoveryState(runner)
|
|
@@ -680,7 +668,6 @@ function stopParallelWorkers (runner) {
|
|
|
680
668
|
* Resets suite coverage after every reporter has observed the completed suite.
|
|
681
669
|
*
|
|
682
670
|
* @param {object} runner
|
|
683
|
-
* @returns {void}
|
|
684
671
|
*/
|
|
685
672
|
function resetPendingSuiteCoverage (runner) {
|
|
686
673
|
if (!runnersWithPendingCoverageReset.delete(runner) || !global.__coverage__) return
|
|
@@ -734,7 +721,6 @@ function getFrameworkFinalizationError (frameworkError) {
|
|
|
734
721
|
* runs Datadog's end handler and propagates the original error after finalization.
|
|
735
722
|
*
|
|
736
723
|
* @param {Function} Runner
|
|
737
|
-
* @returns {void}
|
|
738
724
|
*/
|
|
739
725
|
function wrapRunnerEmit (Runner) {
|
|
740
726
|
if (wrappedRunnerEmitPrototypes.has(Runner.prototype)) return
|
|
@@ -875,7 +861,6 @@ function isFailedTestReplayEnabled () {
|
|
|
875
861
|
* Mirrors Mocha 5's private exclusivity check.
|
|
876
862
|
*
|
|
877
863
|
* @param {MochaSuite} suite
|
|
878
|
-
* @returns {boolean}
|
|
879
864
|
*/
|
|
880
865
|
function hasOnly (suite) {
|
|
881
866
|
if (suite._onlyTests.length || suite._onlySuites.length) return true
|
|
@@ -890,7 +875,6 @@ function hasOnly (suite) {
|
|
|
890
875
|
* Mirrors Mocha 5's private exclusivity filter.
|
|
891
876
|
*
|
|
892
877
|
* @param {MochaSuite} suite
|
|
893
|
-
* @returns {boolean}
|
|
894
878
|
*/
|
|
895
879
|
function filterOnly (suite) {
|
|
896
880
|
if (suite._onlyTests.length) {
|
|
@@ -1038,6 +1022,8 @@ function getExecutionConfiguration (runner, isParallel, frameworkVersion, onFini
|
|
|
1038
1022
|
config.isSuitesSkippingEnabled = config.isItrEnabled && libraryConfig.isSuitesSkippingEnabled
|
|
1039
1023
|
config.isFlakyTestRetriesEnabled = libraryConfig.isFlakyTestRetriesEnabled
|
|
1040
1024
|
config.flakyTestRetriesCount = libraryConfig.flakyTestRetriesCount
|
|
1025
|
+
config.isDynamicAtrEnabled = libraryConfig.isDynamicAtrEnabled
|
|
1026
|
+
config.dynamicAtrBuckets = libraryConfig.dynamicAtrBuckets
|
|
1041
1027
|
config.isDiEnabled = libraryConfig.isDiEnabled
|
|
1042
1028
|
config.isTestDynamicInstrumentationEnabled = isTestDynamicInstrumentationEnabled
|
|
1043
1029
|
|
|
@@ -1072,7 +1058,6 @@ function getExecutionConfiguration (runner, isParallel, frameworkVersion, onFini
|
|
|
1072
1058
|
|
|
1073
1059
|
/**
|
|
1074
1060
|
* @param {import('mocha').Runner} runner
|
|
1075
|
-
* @returns {void}
|
|
1076
1061
|
*/
|
|
1077
1062
|
function startMochaRunner (runner) {
|
|
1078
1063
|
if (readyRunners.has(runner)) {
|
|
@@ -1122,9 +1107,16 @@ function wrapMochaRun (Mocha, frameworkVersion) {
|
|
|
1122
1107
|
|
|
1123
1108
|
// `options.delay` does not work in parallel mode, so we can't delay the execution this way
|
|
1124
1109
|
// This needs to be both here and in `runMocha` hook. Read the comment in `runMocha` hook for more info.
|
|
1110
|
+
const originalDelay = this.options.delay
|
|
1125
1111
|
this.options.delay = true
|
|
1126
1112
|
|
|
1127
|
-
|
|
1113
|
+
let runner
|
|
1114
|
+
try {
|
|
1115
|
+
runner = run.apply(this, args)
|
|
1116
|
+
} finally {
|
|
1117
|
+
// Only this runner needs the configuration delay, including when the next run disables the plugin.
|
|
1118
|
+
this.options.delay = originalDelay
|
|
1119
|
+
}
|
|
1128
1120
|
|
|
1129
1121
|
this.files.forEach((path) => {
|
|
1130
1122
|
const isUnskippable = isMarkedAsUnskippable({ path })
|
|
@@ -1134,7 +1126,7 @@ function wrapMochaRun (Mocha, frameworkVersion) {
|
|
|
1134
1126
|
})
|
|
1135
1127
|
|
|
1136
1128
|
getExecutionConfiguration(runner, false, frameworkVersion, () => {
|
|
1137
|
-
if (isFailedTestReplayEnabled()) {
|
|
1129
|
+
if (isFailedTestReplayEnabled() || config.isFlakyTestRetriesEnabled) {
|
|
1138
1130
|
patchFailedTestReplayHookUp(runner.constructor)
|
|
1139
1131
|
}
|
|
1140
1132
|
if (config.isKnownTestsEnabled) {
|
|
@@ -1204,8 +1196,10 @@ addHook({
|
|
|
1204
1196
|
name: 'mocha',
|
|
1205
1197
|
versions: [MINIMUM_MOCHA_VERSION],
|
|
1206
1198
|
filePattern: String.raw`lib/runner\.(?:c?js)$`,
|
|
1207
|
-
}, function (
|
|
1208
|
-
|
|
1199
|
+
}, function (runnerPackage, frameworkVersion) {
|
|
1200
|
+
const Runner = runnerPackage.Runner ?? runnerPackage.default ?? runnerPackage
|
|
1201
|
+
if (typeof Runner !== 'function') return
|
|
1202
|
+
if (patched.has(Runner)) return
|
|
1209
1203
|
|
|
1210
1204
|
patched.add(Runner)
|
|
1211
1205
|
wrapRunnerEmit(Runner)
|
|
@@ -1214,6 +1208,7 @@ addHook({
|
|
|
1214
1208
|
|
|
1215
1209
|
shimmer.wrap(Runner.prototype, 'run', run => function (...args) {
|
|
1216
1210
|
if (!testFinishCh.hasSubscribers) {
|
|
1211
|
+
resetRunState(this.suite)
|
|
1217
1212
|
return runMochaRunner(run, this, args)
|
|
1218
1213
|
}
|
|
1219
1214
|
|
|
@@ -1550,7 +1545,7 @@ addHook({
|
|
|
1550
1545
|
return runMochaRunner(run, this, args)
|
|
1551
1546
|
})
|
|
1552
1547
|
|
|
1553
|
-
return
|
|
1548
|
+
return runnerPackage
|
|
1554
1549
|
})
|
|
1555
1550
|
|
|
1556
1551
|
// Used both in serial and parallel mode, and by both the main process and the workers
|
|
@@ -1796,6 +1791,8 @@ addHook({
|
|
|
1796
1791
|
if (config.isFlakyTestRetriesEnabled) {
|
|
1797
1792
|
newWorkerArgs._ddIsFlakyTestRetriesEnabled = true
|
|
1798
1793
|
newWorkerArgs._ddFlakyTestRetriesCount = config.flakyTestRetriesCount
|
|
1794
|
+
newWorkerArgs._ddIsDynamicAtrEnabled = config.isDynamicAtrEnabled
|
|
1795
|
+
newWorkerArgs._ddDynamicAtrBuckets = config.dynamicAtrBuckets
|
|
1799
1796
|
}
|
|
1800
1797
|
|
|
1801
1798
|
if (isFailedTestReplayEnabled()) {
|