newrelic 13.19.0 → 13.19.2
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/NEWS.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
### v13.19.2 (2026-04-20)
|
|
2
|
+
|
|
3
|
+
#### Bug fixes
|
|
4
|
+
|
|
5
|
+
* Fixed `child_process` instrumentation to avoid leaking event handlers subscribed to `once` ([#3907](https://github.com/newrelic/node-newrelic/pull/3907)) ([ad0b1f6](https://github.com/newrelic/node-newrelic/commit/ad0b1f65700b5f34861062cb14e3a80fec924ca1))
|
|
6
|
+
|
|
7
|
+
#### Documentation
|
|
8
|
+
|
|
9
|
+
* Updated compatibility report ([#3897](https://github.com/newrelic/node-newrelic/pull/3897)) ([0ed2202](https://github.com/newrelic/node-newrelic/commit/0ed220224fb149e1e6b7bde3d26c1cccf415d392))
|
|
10
|
+
|
|
11
|
+
### v13.19.1 (2026-04-15)
|
|
12
|
+
|
|
13
|
+
#### Bug fixes
|
|
14
|
+
|
|
15
|
+
* Fixed detecting AWS SDK message attributes presence ([#3903](https://github.com/newrelic/node-newrelic/pull/3903)) ([e81dc61](https://github.com/newrelic/node-newrelic/commit/e81dc61924f756f8edf5b7ce0770840cdc435d76))
|
|
16
|
+
|
|
17
|
+
#### Tests
|
|
18
|
+
|
|
19
|
+
* Updated `minAgentVersion` for Anthropic versioned tests ([#3900](https://github.com/newrelic/node-newrelic/pull/3900)) ([e1f6c32](https://github.com/newrelic/node-newrelic/commit/e1f6c3295627126dad9333a58a83084312370c5b))
|
|
20
|
+
* Reorganized the test utilities in AWS versioned tests ([#3895](https://github.com/newrelic/node-newrelic/pull/3895)) ([3025571](https://github.com/newrelic/node-newrelic/commit/3025571741c71d8a41968a0c06a412f5a9689bad))
|
|
21
|
+
|
|
1
22
|
### v13.19.0 (2026-04-13)
|
|
2
23
|
|
|
3
24
|
#### Features
|
|
@@ -21,36 +21,6 @@ function initialize(agent, childProcess, moduleName, shim) {
|
|
|
21
21
|
return new RecorderSpec({ name: 'child_process.' + name, callback: shim.LAST })
|
|
22
22
|
})
|
|
23
23
|
|
|
24
|
-
if (childProcess.ChildProcess) {
|
|
25
|
-
wrapChildProcessClass(shim, childProcess.ChildProcess)
|
|
26
|
-
} else {
|
|
27
|
-
shim.logger.warn('childProcess.ChildProcess should be available in v2.2.0 or higher')
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function wrapChildProcessClass(shim, childProcessClass) {
|
|
31
|
-
shim.wrap(childProcessClass.prototype, 'on', function wrapChildProcessClassOn(shim, fn) {
|
|
32
|
-
return function wrappedChildProcessOn(...args) {
|
|
33
|
-
const cbIndex = args.length - 1
|
|
34
|
-
|
|
35
|
-
const originalListener = args[cbIndex]
|
|
36
|
-
if (!shim.isFunction(originalListener)) {
|
|
37
|
-
return fn.apply(this, arguments)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
shim.bindSegment(args, cbIndex)
|
|
41
|
-
|
|
42
|
-
// Leverage events.removeListener() mechanism that checks listener
|
|
43
|
-
// property to allow our wrapped listeners to match and remove appropriately.
|
|
44
|
-
// Avoids having to instrument removeListener() and potentially doubling
|
|
45
|
-
// lookup. Since our wrapping will only be referenced by the events
|
|
46
|
-
// collection, we should not need to unwrap.
|
|
47
|
-
args[cbIndex].listener = originalListener
|
|
48
|
-
|
|
49
|
-
return fn.apply(this, args)
|
|
50
|
-
}
|
|
51
|
-
})
|
|
52
|
-
}
|
|
53
|
-
|
|
54
24
|
makePromisifyCompatible(shim, childProcess)
|
|
55
25
|
}
|
|
56
26
|
|
|
@@ -23,7 +23,11 @@ const { DT_HEADERS } = require('./constants.js')
|
|
|
23
23
|
function attachHeaders({ message, context, subscriber }) {
|
|
24
24
|
const headers = Object.create(null)
|
|
25
25
|
subscriber.insertDTHeaders({ headers, ctx: context, useMqNames: true })
|
|
26
|
-
|
|
26
|
+
// We can't use an `Object.hasOwn` check here because some users build
|
|
27
|
+
// the message object such that `MessageAttributes: undefined` happens.
|
|
28
|
+
// This "breaks" the `hasOwn` check because technically the object has
|
|
29
|
+
// the property set. It's just set to a falsy value.
|
|
30
|
+
if (!message.MessageAttributes) {
|
|
27
31
|
message.MessageAttributes = {}
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -22,6 +22,8 @@ const SegmentTree = require('./segment-tree')
|
|
|
22
22
|
* serialization of the transaction trace.
|
|
23
23
|
*
|
|
24
24
|
* @param {Transaction} transaction The transaction bound to the trace.
|
|
25
|
+
*
|
|
26
|
+
* @class {object} TransactionTrace
|
|
25
27
|
*/
|
|
26
28
|
function Trace(transaction) {
|
|
27
29
|
if (!transaction) {
|