dd-trace 4.47.0 → 4.48.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/LICENSE-3rdparty.csv +0 -1
- package/ext/types.d.ts +1 -0
- package/ext/types.js +1 -0
- package/index.d.ts +26 -0
- package/package.json +6 -7
- package/packages/datadog-code-origin/index.js +38 -0
- package/packages/datadog-core/index.js +2 -2
- package/packages/datadog-instrumentations/src/avsc.js +37 -0
- package/packages/datadog-instrumentations/src/azure-functions.js +48 -0
- package/packages/datadog-instrumentations/src/child_process.js +17 -8
- package/packages/datadog-instrumentations/src/express.js +37 -4
- package/packages/datadog-instrumentations/src/fastify.js +12 -1
- package/packages/datadog-instrumentations/src/fs.js +27 -7
- package/packages/datadog-instrumentations/src/helpers/hooks.js +3 -0
- package/packages/datadog-instrumentations/src/jest.js +2 -1
- package/packages/datadog-instrumentations/src/mocha/common.js +1 -1
- package/packages/datadog-instrumentations/src/mysql2.js +220 -1
- package/packages/datadog-instrumentations/src/protobufjs.js +127 -0
- package/packages/datadog-instrumentations/src/winston.js +22 -0
- package/packages/datadog-plugin-avsc/src/index.js +9 -0
- package/packages/datadog-plugin-avsc/src/schema_iterator.js +169 -0
- package/packages/datadog-plugin-azure-functions/src/index.js +77 -0
- package/packages/datadog-plugin-fastify/src/code_origin.js +31 -0
- package/packages/datadog-plugin-fastify/src/index.js +10 -12
- package/packages/datadog-plugin-fastify/src/tracing.js +19 -0
- package/packages/datadog-plugin-protobufjs/src/index.js +14 -0
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +180 -0
- package/packages/dd-trace/src/appsec/addresses.js +6 -1
- package/packages/dd-trace/src/appsec/channels.js +5 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +13 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +8 -1
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +1 -1
- package/packages/dd-trace/src/appsec/iast/index.js +3 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +1 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +15 -0
- package/packages/dd-trace/src/appsec/index.js +58 -43
- package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +99 -0
- package/packages/dd-trace/src/appsec/rasp/index.js +24 -10
- package/packages/dd-trace/src/appsec/rasp/lfi.js +112 -0
- package/packages/dd-trace/src/appsec/rasp/sql_injection.js +24 -4
- package/packages/dd-trace/src/appsec/rasp/utils.js +2 -1
- package/packages/dd-trace/src/appsec/recommended.json +2 -4
- package/packages/dd-trace/src/appsec/remote_config/capabilities.js +5 -1
- package/packages/dd-trace/src/appsec/remote_config/index.js +8 -0
- package/packages/dd-trace/src/appsec/reporter.js +12 -5
- package/packages/dd-trace/src/appsec/sdk/track_event.js +5 -0
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +1 -1
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +2 -14
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +53 -0
- package/packages/dd-trace/src/config.js +12 -1
- package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +25 -17
- package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
- package/packages/dd-trace/src/debugger/devtools_client/index.js +56 -5
- package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +4 -4
- package/packages/dd-trace/src/debugger/devtools_client/send.js +14 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +153 -0
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +30 -0
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +241 -0
- package/packages/dd-trace/src/debugger/devtools_client/state.js +10 -4
- package/packages/dd-trace/src/exporters/common/request.js +8 -34
- package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +31 -0
- package/packages/dd-trace/src/payload-tagging/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/jsonpath-plus.js +2094 -0
- package/packages/dd-trace/src/plugin_manager.js +4 -2
- package/packages/dd-trace/src/plugins/ci_plugin.js +2 -0
- package/packages/dd-trace/src/plugins/index.js +3 -0
- package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
- package/packages/dd-trace/src/plugins/schema.js +35 -0
- package/packages/dd-trace/src/plugins/util/ci.js +23 -1
- package/packages/dd-trace/src/plugins/util/serverless.js +7 -0
- package/packages/dd-trace/src/plugins/util/stacktrace.js +94 -0
- package/packages/dd-trace/src/plugins/util/tags.js +7 -0
- package/packages/dd-trace/src/plugins/util/test.js +20 -22
- package/packages/dd-trace/src/plugins/util/web.js +6 -4
- package/packages/dd-trace/src/profiling/profiler.js +24 -14
- package/packages/dd-trace/src/profiling/profilers/events.js +3 -3
- package/packages/dd-trace/src/profiling/profilers/wall.js +94 -66
- package/packages/dd-trace/src/proxy.js +12 -0
- package/packages/dd-trace/src/service-naming/schemas/v0/index.js +2 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +12 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/index.js +2 -1
- package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +12 -0
- package/packages/datadog-core/src/storage/async_resource.js +0 -108
- package/packages/datadog-core/src/storage/index.js +0 -5
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
const { Readable } = require('stream')
|
|
7
7
|
const http = require('http')
|
|
8
8
|
const https = require('https')
|
|
9
|
-
// eslint-disable-next-line n/no-deprecated-api
|
|
10
|
-
const { parse: urlParse } = require('url')
|
|
11
9
|
const zlib = require('zlib')
|
|
12
10
|
|
|
11
|
+
const { urlToHttpOptions } = require('./url-to-http-options-polyfill')
|
|
13
12
|
const docker = require('./docker')
|
|
14
13
|
const { httpAgent, httpsAgent } = require('./agents')
|
|
15
14
|
const { storage } = require('../../../../datadog-core')
|
|
@@ -20,39 +19,14 @@ const containerId = docker.id()
|
|
|
20
19
|
|
|
21
20
|
let activeRequests = 0
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const agent = url.agent || http.globalAgent
|
|
26
|
-
const options = {
|
|
27
|
-
protocol: url.protocol || agent.protocol,
|
|
28
|
-
hostname: typeof url.hostname === 'string' && url.hostname.startsWith('[')
|
|
29
|
-
? url.hostname.slice(1, -1)
|
|
30
|
-
: url.hostname ||
|
|
31
|
-
url.host ||
|
|
32
|
-
'localhost',
|
|
33
|
-
hash: url.hash,
|
|
34
|
-
search: url.search,
|
|
35
|
-
pathname: url.pathname,
|
|
36
|
-
path: `${url.pathname || ''}${url.search || ''}`,
|
|
37
|
-
href: url.href
|
|
38
|
-
}
|
|
39
|
-
if (url.port !== '') {
|
|
40
|
-
options.port = Number(url.port)
|
|
41
|
-
}
|
|
42
|
-
if (url.username || url.password) {
|
|
43
|
-
options.auth = `${url.username}:${url.password}`
|
|
44
|
-
}
|
|
45
|
-
return options
|
|
46
|
-
}
|
|
22
|
+
function parseUrl (urlObjOrString) {
|
|
23
|
+
if (typeof urlObjOrString === 'object') return urlToHttpOptions(urlObjOrString)
|
|
47
24
|
|
|
48
|
-
|
|
49
|
-
const url = typeof urlToHttpOptions === 'function'
|
|
50
|
-
? urlToOptions(new URL(urlString))
|
|
51
|
-
: urlParse(urlString)
|
|
25
|
+
const url = urlToHttpOptions(new URL(urlObjOrString))
|
|
52
26
|
|
|
53
|
-
//
|
|
54
|
-
if (url.protocol === 'unix:' && url.
|
|
55
|
-
const udsPath =
|
|
27
|
+
// Special handling if we're using named pipes on Windows
|
|
28
|
+
if (url.protocol === 'unix:' && url.hostname === '.') {
|
|
29
|
+
const udsPath = urlObjOrString.slice(5)
|
|
56
30
|
url.path = udsPath
|
|
57
31
|
url.pathname = udsPath
|
|
58
32
|
}
|
|
@@ -66,7 +40,7 @@ function request (data, options, callback) {
|
|
|
66
40
|
}
|
|
67
41
|
|
|
68
42
|
if (options.url) {
|
|
69
|
-
const url =
|
|
43
|
+
const url = parseUrl(options.url)
|
|
70
44
|
if (url.protocol === 'unix:') {
|
|
71
45
|
options.socketPath = url.pathname
|
|
72
46
|
} else {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { urlToHttpOptions } = require('url')
|
|
4
|
+
|
|
5
|
+
// TODO: Remove `urlToHttpOptions` polyfill once we drop support for the older Cypress versions that uses a built-in
|
|
6
|
+
// version of Node.js doesn't include that function.
|
|
7
|
+
module.exports = {
|
|
8
|
+
urlToHttpOptions: urlToHttpOptions ?? function (url) {
|
|
9
|
+
const { hostname, pathname, port, username, password, search } = url
|
|
10
|
+
const options = {
|
|
11
|
+
__proto__: null,
|
|
12
|
+
...url, // In case the url object was extended by the user.
|
|
13
|
+
protocol: url.protocol,
|
|
14
|
+
hostname: typeof hostname === 'string' && hostname.startsWith('[')
|
|
15
|
+
? hostname.slice(1, -1)
|
|
16
|
+
: hostname,
|
|
17
|
+
hash: url.hash,
|
|
18
|
+
search,
|
|
19
|
+
pathname,
|
|
20
|
+
path: `${pathname || ''}${search || ''}`,
|
|
21
|
+
href: url.href
|
|
22
|
+
}
|
|
23
|
+
if (port !== '') {
|
|
24
|
+
options.port = Number(port)
|
|
25
|
+
}
|
|
26
|
+
if (username || password) {
|
|
27
|
+
options.auth = `${decodeURIComponent(username)}:${decodeURIComponent(password)}`
|
|
28
|
+
}
|
|
29
|
+
return options
|
|
30
|
+
}
|
|
31
|
+
}
|