dd-trace 5.109.0 → 5.111.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 +13 -8
- package/ci/init.js +25 -5
- package/ci/vitest-no-worker-init-setup.mjs +430 -0
- package/ext/tags.js +2 -0
- package/index.d.ts +79 -24
- package/initialize.mjs +5 -6
- package/loader-hook.mjs +154 -47
- package/package.json +20 -16
- package/packages/datadog-esbuild/index.js +26 -0
- package/packages/datadog-esbuild/src/utils.js +46 -3
- package/packages/datadog-instrumentations/src/connect.js +4 -3
- package/packages/datadog-instrumentations/src/fastify.js +4 -12
- package/packages/datadog-instrumentations/src/fs.js +8 -6
- package/packages/datadog-instrumentations/src/graphql.js +26 -484
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +81 -8
- package/packages/datadog-instrumentations/src/helpers/instrument.js +27 -2
- package/packages/datadog-instrumentations/src/helpers/optional-peer-bundler.js +65 -0
- package/packages/datadog-instrumentations/src/helpers/register.js +6 -4
- package/packages/datadog-instrumentations/src/helpers/require-optional-peer.js +17 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/graphql.js +201 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +18 -2
- package/packages/datadog-instrumentations/src/koa.js +3 -2
- package/packages/datadog-instrumentations/src/mariadb.js +4 -2
- package/packages/datadog-instrumentations/src/mocha/main.js +3 -3
- package/packages/datadog-instrumentations/src/mongoose.js +14 -2
- package/packages/datadog-instrumentations/src/next.js +10 -10
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +7 -6
- package/packages/datadog-instrumentations/src/playwright.js +1 -1
- package/packages/datadog-instrumentations/src/restify.js +4 -3
- package/packages/datadog-instrumentations/src/router.js +18 -5
- package/packages/datadog-instrumentations/src/selenium.js +1 -2
- package/packages/datadog-instrumentations/src/tedious.js +28 -0
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +1293 -0
- package/packages/datadog-instrumentations/src/vitest-main.js +1567 -0
- package/packages/datadog-instrumentations/src/vitest-util.js +249 -0
- package/packages/datadog-instrumentations/src/vitest-worker.js +753 -0
- package/packages/datadog-instrumentations/src/vitest.js +11 -1598
- package/packages/datadog-plugin-avsc/src/schema_iterator.js +2 -2
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/client.js +2 -2
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/context.js +18 -10
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +47 -11
- package/packages/datadog-plugin-aws-sdk/src/base.js +13 -9
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +43 -6
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +83 -91
- package/packages/datadog-plugin-cucumber/src/index.js +1 -1
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +19 -5
- package/packages/datadog-plugin-cypress/src/support.js +45 -1
- package/packages/datadog-plugin-express/src/code_origin.js +1 -1
- package/packages/datadog-plugin-fastify/src/code_origin.js +1 -1
- package/packages/datadog-plugin-graphql/src/execute.js +627 -11
- package/packages/datadog-plugin-graphql/src/index.js +20 -8
- package/packages/datadog-plugin-graphql/src/parse.js +24 -4
- package/packages/datadog-plugin-graphql/src/validate.js +16 -5
- package/packages/datadog-plugin-http/src/client.js +8 -3
- package/packages/datadog-plugin-http/src/index.js +6 -8
- package/packages/datadog-plugin-http2/src/client.js +5 -2
- package/packages/datadog-plugin-jest/src/index.js +1 -1
- package/packages/datadog-plugin-mocha/src/index.js +1 -1
- package/packages/datadog-plugin-mysql/src/index.js +7 -2
- package/packages/datadog-plugin-openai/src/services.js +2 -2
- package/packages/datadog-plugin-playwright/src/index.js +1 -1
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +2 -2
- package/packages/datadog-plugin-undici/src/index.js +5 -2
- package/packages/datadog-plugin-vitest/src/index.js +76 -64
- package/packages/datadog-shimmer/src/shimmer.js +37 -16
- package/packages/datadog-webpack/index.js +17 -1
- package/packages/datadog-webpack/src/optional-peer-loader.js +17 -0
- package/packages/dd-trace/src/aiguard/sdk.js +15 -3
- package/packages/dd-trace/src/appsec/api_security/index.js +55 -0
- package/packages/dd-trace/src/appsec/api_security/sampler.js +147 -0
- package/packages/dd-trace/src/appsec/channels.js +3 -1
- package/packages/dd-trace/src/appsec/downstream_requests.js +4 -4
- package/packages/dd-trace/src/appsec/graphql.js +5 -5
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +26 -19
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/telemetry/index.js +2 -1
- package/packages/dd-trace/src/appsec/index.js +20 -7
- package/packages/dd-trace/src/appsec/lambda.js +135 -0
- package/packages/dd-trace/src/appsec/reporter.js +50 -10
- package/packages/dd-trace/src/appsec/telemetry/api_security.js +34 -0
- package/packages/dd-trace/src/appsec/telemetry/index.js +27 -1
- package/packages/dd-trace/src/appsec/waf/index.js +16 -4
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +4 -4
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +21 -6
- package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +55 -13
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +17 -0
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +47 -26
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +2 -2
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +64 -53
- package/packages/dd-trace/src/ci-visibility/requests/request.js +1 -17
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +3 -3
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +23 -5
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +128 -0
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +287 -0
- package/packages/dd-trace/src/config/defaults.js +25 -5
- package/packages/dd-trace/src/config/generated-config-types.d.ts +596 -58
- package/packages/dd-trace/src/config/helper.js +134 -33
- package/packages/dd-trace/src/config/index.js +39 -23
- package/packages/dd-trace/src/config/major-overrides.js +4 -2
- package/packages/dd-trace/src/config/parsers.js +19 -1
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/supported-configurations.json +109 -57
- package/packages/dd-trace/src/constants.js +7 -0
- package/packages/dd-trace/src/datastreams/processor.js +11 -3
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +47 -35
- package/packages/dd-trace/src/debugger/devtools_client/index.js +31 -66
- package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +83 -0
- package/packages/dd-trace/src/debugger/devtools_client/state.js +1 -0
- package/packages/dd-trace/src/debugger/index.js +5 -0
- package/packages/dd-trace/src/debugger/probe_sampler.js +112 -0
- package/packages/dd-trace/src/debugger/probe_sampler_constants.js +19 -0
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +77 -26
- package/packages/dd-trace/src/exporters/agent/index.js +1 -1
- package/packages/dd-trace/src/exporters/agentless/writer.js +4 -4
- package/packages/dd-trace/src/exporters/common/request.js +1 -20
- package/packages/dd-trace/src/exporters/common/url.js +34 -0
- package/packages/dd-trace/src/exporters/span-stats/writer.js +1 -3
- package/packages/dd-trace/src/guardrails/index.js +8 -5
- package/packages/dd-trace/src/index.js +6 -4
- package/packages/dd-trace/src/llmobs/constants/tags.js +6 -0
- package/packages/dd-trace/src/llmobs/index.js +17 -6
- package/packages/dd-trace/src/llmobs/plugins/base.js +4 -4
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +5 -1
- package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +8 -6
- package/packages/dd-trace/src/llmobs/span_processor.js +5 -1
- package/packages/dd-trace/src/llmobs/tagger.js +58 -3
- package/packages/dd-trace/src/llmobs/telemetry.js +1 -0
- package/packages/dd-trace/src/llmobs/writers/base.js +1 -1
- package/packages/dd-trace/src/log/index.js +18 -20
- package/packages/dd-trace/src/openfeature/flagging_provider.js +2 -7
- package/packages/dd-trace/src/opentelemetry/bridge-span-base.js +5 -4
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +54 -5
- package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +2 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_exporter.js +40 -0
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +169 -0
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +4 -3
- package/packages/dd-trace/src/opentelemetry/metrics/time.js +19 -0
- package/packages/dd-trace/src/opentelemetry/otlp/common.proto +2 -2
- package/packages/dd-trace/src/opentelemetry/otlp/logs.proto +1 -1
- package/packages/dd-trace/src/opentelemetry/otlp/logs_service.proto +1 -1
- package/packages/dd-trace/src/opentelemetry/otlp/metrics.proto +1 -1
- package/packages/dd-trace/src/opentelemetry/otlp/metrics_service.proto +1 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +44 -38
- package/packages/dd-trace/src/opentelemetry/span-helpers.js +29 -13
- package/packages/dd-trace/src/opentelemetry/span.js +14 -3
- package/packages/dd-trace/src/opentelemetry/span_context.js +1 -0
- package/packages/dd-trace/src/opentelemetry/trace/index.js +6 -1
- package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +3 -2
- package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +26 -13
- package/packages/dd-trace/src/opentelemetry/tracer_provider.js +1 -1
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +3 -3
- package/packages/dd-trace/src/opentracing/span_context.js +17 -0
- package/packages/dd-trace/src/opentracing/tracer.js +6 -1
- package/packages/dd-trace/src/plugin_manager.js +14 -8
- package/packages/dd-trace/src/plugins/ci_plugin.js +21 -4
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +276 -0
- package/packages/dd-trace/src/plugins/util/llm.js +6 -1
- package/packages/dd-trace/src/plugins/util/test.js +91 -9
- package/packages/dd-trace/src/plugins/util/url.js +68 -1
- package/packages/dd-trace/src/plugins/util/web.js +19 -36
- package/packages/dd-trace/src/priority_sampler.js +1 -13
- package/packages/dd-trace/src/profiling/config.js +129 -198
- package/packages/dd-trace/src/profiling/constants.js +4 -7
- package/packages/dd-trace/src/profiling/exporter_cli.js +10 -10
- package/packages/dd-trace/src/profiling/exporters/agent.js +23 -16
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +45 -14
- package/packages/dd-trace/src/profiling/exporters/file.js +16 -5
- package/packages/dd-trace/src/profiling/oom.js +71 -0
- package/packages/dd-trace/src/profiling/profiler.js +35 -23
- package/packages/dd-trace/src/profiling/profilers/events.js +14 -7
- package/packages/dd-trace/src/profiling/profilers/space.js +27 -18
- package/packages/dd-trace/src/profiling/profilers/wall.js +35 -25
- package/packages/dd-trace/src/proxy.js +8 -8
- package/packages/dd-trace/src/ritm.js +4 -2
- package/packages/dd-trace/src/serverless.js +1 -2
- package/packages/dd-trace/src/service-naming/schemas/util.js +36 -5
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +5 -3
- package/packages/dd-trace/src/span_format.js +2 -1
- package/packages/dd-trace/src/span_processor.js +11 -6
- package/packages/dd-trace/src/span_stats.js +96 -78
- package/packages/dd-trace/src/startup-log.js +2 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +6 -4
- package/packages/dd-trace/src/telemetry/index.js +2 -2
- package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
- package/packages/dd-trace/src/telemetry/send-data.js +20 -18
- package/packages/dd-trace/src/telemetry/session-propagation.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +9 -9
- package/packages/dd-trace/src/tracer.js +15 -1
- package/packages/dd-trace/src/util.js +14 -0
- package/register.js +58 -1
- package/vendor/dist/@apm-js-collab/code-transformer/index.js +1 -1
- package/vendor/dist/@datadog/sketches-js/index.js +1 -1
- package/vendor/dist/pprof-format/index.js +1 -1
- package/vendor/dist/protobufjs/index.js +1 -1
- package/vendor/dist/protobufjs/minimal/index.js +1 -1
- package/vendor/dist/shell-quote/index.js +1 -1
- package/packages/datadog-plugin-graphql/src/resolve.js +0 -170
- package/packages/dd-trace/src/appsec/api_security_sampler.js +0 -117
|
@@ -6,6 +6,9 @@ const fs = require('node:fs')
|
|
|
6
6
|
const path = require('node:path')
|
|
7
7
|
const { NODE_MAJOR, NODE_MINOR } = require('../../../version.js')
|
|
8
8
|
|
|
9
|
+
const LOAD_OPERATION = 0
|
|
10
|
+
const RESOLVE_OPERATION = 1
|
|
11
|
+
|
|
9
12
|
const getExportsImporting = (url) => import(url).then(Object.keys)
|
|
10
13
|
let getExportsModulePromise
|
|
11
14
|
|
|
@@ -19,7 +22,11 @@ const loadGetExportsModule = () => {
|
|
|
19
22
|
const getExports = NODE_MAJOR >= 20 || (NODE_MAJOR === 18 && NODE_MINOR >= 19)
|
|
20
23
|
? async (srcUrl, context, getSource) => {
|
|
21
24
|
const mod = await loadGetExportsModule()
|
|
22
|
-
|
|
25
|
+
const exportNames = mod.getExports(srcUrl, context, getSource)
|
|
26
|
+
if (exportNames?.next) {
|
|
27
|
+
return driveGetExportsGenerator(exportNames, getSource)
|
|
28
|
+
}
|
|
29
|
+
return exportNames
|
|
23
30
|
}
|
|
24
31
|
: getExportsImporting
|
|
25
32
|
|
|
@@ -78,14 +85,50 @@ function getSource (url, { format }) {
|
|
|
78
85
|
}
|
|
79
86
|
}
|
|
80
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Drives the generator returned by import-in-the-middle >=3.1.0 export discovery.
|
|
90
|
+
*
|
|
91
|
+
* @param {Generator<Array, Set<string>>} exportsGenerator Generator returned by getExports
|
|
92
|
+
* @param {(url: URL, context: object) => { source: string, format: string }} getSource
|
|
93
|
+
* Function that loads module source
|
|
94
|
+
* @returns {Set<string>}
|
|
95
|
+
*/
|
|
96
|
+
function driveGetExportsGenerator (exportsGenerator, getSource) {
|
|
97
|
+
let next = exportsGenerator.next()
|
|
98
|
+
while (next.done === false) {
|
|
99
|
+
let result
|
|
100
|
+
let error
|
|
101
|
+
let threw = false
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
const operation = next.value
|
|
105
|
+
const operationType = operation[0]
|
|
106
|
+
|
|
107
|
+
if (operationType === LOAD_OPERATION) {
|
|
108
|
+
result = getSource(operation[1], operation[2])
|
|
109
|
+
} else if (operationType === RESOLVE_OPERATION) {
|
|
110
|
+
result = resolve(operation[1], operation[2])
|
|
111
|
+
} else {
|
|
112
|
+
throw new Error(`Unsupported import-in-the-middle getExports operation: ${operationType}`)
|
|
113
|
+
}
|
|
114
|
+
} catch (err) {
|
|
115
|
+
threw = true
|
|
116
|
+
error = err
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
next = threw ? exportsGenerator.throw(error) : exportsGenerator.next(result)
|
|
120
|
+
}
|
|
121
|
+
return next.value
|
|
122
|
+
}
|
|
123
|
+
|
|
81
124
|
/**
|
|
82
125
|
* Generates the pieces of code for the proxy module before the path
|
|
83
126
|
*
|
|
84
127
|
* @param {object} moduleData
|
|
85
128
|
* @param {string} moduleData.path
|
|
86
|
-
* @param {boolean} [moduleData.internal]
|
|
129
|
+
* @param {boolean} [moduleData.internal]
|
|
87
130
|
* @param {object} moduleData.context
|
|
88
|
-
* @param {boolean} [moduleData.excludeDefault]
|
|
131
|
+
* @param {boolean} [moduleData.excludeDefault]
|
|
89
132
|
* @returns {Promise<Map>}
|
|
90
133
|
*/
|
|
91
134
|
async function processModule ({ path, internal = false, context, excludeDefault = false }) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
-
const { addHook, channel } = require('./helpers/instrument')
|
|
4
|
+
const { addHook, channel, createErrorPublisher } = require('./helpers/instrument')
|
|
5
5
|
|
|
6
6
|
const enterChannel = channel('apm:connect:middleware:enter')
|
|
7
7
|
const exitChannel = channel('apm:connect:middleware:exit')
|
|
@@ -9,6 +9,7 @@ const errorChannel = channel('apm:connect:middleware:error')
|
|
|
9
9
|
const nextChannel = channel('apm:connect:middleware:next')
|
|
10
10
|
const finishChannel = channel('apm:connect:middleware:finish')
|
|
11
11
|
const handleChannel = channel('apm:connect:request:handle')
|
|
12
|
+
const publishError = createErrorPublisher(errorChannel)
|
|
12
13
|
|
|
13
14
|
function wrapConnect (connect) {
|
|
14
15
|
if (typeof connect !== 'function') return connect
|
|
@@ -78,7 +79,7 @@ function wrapLayerHandle (layer) {
|
|
|
78
79
|
try {
|
|
79
80
|
return original.apply(this, args)
|
|
80
81
|
} catch (error) {
|
|
81
|
-
|
|
82
|
+
publishError({ req, error })
|
|
82
83
|
nextChannel.publish({ req })
|
|
83
84
|
finishChannel.publish({ req })
|
|
84
85
|
|
|
@@ -93,7 +94,7 @@ function wrapNext (req, next) {
|
|
|
93
94
|
// Mirror next's name/arity so wrapCallback skips its per-call identity rewrite.
|
|
94
95
|
return shimmer.wrapCallback(next, original => function next (error) {
|
|
95
96
|
if (error) {
|
|
96
|
-
|
|
97
|
+
publishError({ req, error })
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
nextChannel.publish({ req })
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
-
const { addHook, channel } = require('./helpers/instrument')
|
|
4
|
+
const { addHook, channel, createErrorPublisher } = require('./helpers/instrument')
|
|
5
5
|
|
|
6
6
|
const errorChannel = channel('apm:fastify:middleware:error')
|
|
7
|
+
const publishErrorChannel = createErrorPublisher(errorChannel)
|
|
7
8
|
const handleChannel = channel('apm:fastify:request:handle')
|
|
8
9
|
const routeAddedChannel = channel('apm:fastify:route:added')
|
|
9
10
|
const bodyParserReadCh = channel('datadog:fastify:body-parser:finish')
|
|
@@ -303,18 +304,9 @@ function getRouteConfig (request) {
|
|
|
303
304
|
return request?.routeOptions?.config
|
|
304
305
|
}
|
|
305
306
|
|
|
306
|
-
let publishingError = false
|
|
307
|
-
|
|
308
307
|
function publishError (ctx) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (ctx.error && !publishingError) {
|
|
312
|
-
publishingError = true
|
|
313
|
-
try {
|
|
314
|
-
errorChannel.publish(ctx)
|
|
315
|
-
} finally {
|
|
316
|
-
publishingError = false
|
|
317
|
-
}
|
|
308
|
+
if (ctx.error) {
|
|
309
|
+
publishErrorChannel(ctx)
|
|
318
310
|
}
|
|
319
311
|
|
|
320
312
|
return ctx.error
|
|
@@ -88,8 +88,10 @@ addHook({ name: 'fs' }, fs => {
|
|
|
88
88
|
const asyncMethods = Object.keys(paramsByMethod)
|
|
89
89
|
const syncMethods = asyncMethods.map(name => `${name}Sync`)
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
// Node 20 defines `fs.opendir` / `fs.opendirSync` as lazy accessor properties;
|
|
92
|
+
// `replaceGetter` resolves the method so the call is wrapped, not the accessor.
|
|
93
|
+
massWrap(fs, asyncMethods, createWrapFunction(), { replaceGetter: true })
|
|
94
|
+
massWrap(fs, syncMethods, createWrapFunction(), { replaceGetter: true })
|
|
93
95
|
massWrap(fs.promises, asyncMethods, createWrapFunction('promises.'))
|
|
94
96
|
|
|
95
97
|
wrap(fs.realpath, 'native', createWrapFunction('', 'realpath.native'))
|
|
@@ -355,15 +357,15 @@ function getMessage (operation, params, args, self) {
|
|
|
355
357
|
return { operation, ...metadata }
|
|
356
358
|
}
|
|
357
359
|
|
|
358
|
-
function massWrap (target, methods, wrapper) {
|
|
360
|
+
function massWrap (target, methods, wrapper, options) {
|
|
359
361
|
for (const method of methods) {
|
|
360
|
-
wrap(target, method, wrapper)
|
|
362
|
+
wrap(target, method, wrapper, options)
|
|
361
363
|
}
|
|
362
364
|
}
|
|
363
365
|
|
|
364
|
-
function wrap (target, method, wrapper) {
|
|
366
|
+
function wrap (target, method, wrapper, options) {
|
|
365
367
|
try {
|
|
366
|
-
shimmer.wrap(target, method, wrapper)
|
|
368
|
+
shimmer.wrap(target, method, wrapper, options)
|
|
367
369
|
} catch {
|
|
368
370
|
// skip unavailable method
|
|
369
371
|
}
|