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
- if (Object.hasOwn(message, 'MessageAttributes') === false) {
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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newrelic",
3
- "version": "13.19.0",
3
+ "version": "13.19.2",
4
4
  "author": "New Relic Node.js agent team <nodejs@newrelic.com>",
5
5
  "license": "Apache-2.0",
6
6
  "contributors": [