@newrelic/browser-agent 1.268.0 → 1.270.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.
Files changed (173) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +2 -1
  3. package/dist/cjs/common/constants/env.cdn.js +1 -1
  4. package/dist/cjs/common/constants/env.npm.js +1 -1
  5. package/dist/cjs/common/constants/runtime.js +1 -2
  6. package/dist/cjs/common/harvest/harvest-scheduler.js +3 -4
  7. package/dist/cjs/common/unload/eol.js +2 -5
  8. package/dist/cjs/common/util/submit-data.js +1 -1
  9. package/dist/cjs/features/ajax/aggregate/index.js +8 -17
  10. package/dist/cjs/features/ajax/instrument/index.js +8 -10
  11. package/dist/cjs/features/generic_events/aggregate/index.js +15 -22
  12. package/dist/cjs/features/generic_events/instrument/index.js +5 -8
  13. package/dist/cjs/features/jserrors/aggregate/index.js +38 -23
  14. package/dist/cjs/features/jserrors/aggregate/internal-errors.js +42 -0
  15. package/dist/cjs/features/jserrors/instrument/index.js +3 -3
  16. package/dist/cjs/features/logging/aggregate/index.js +21 -20
  17. package/dist/cjs/features/logging/instrument/index.js +3 -3
  18. package/dist/cjs/features/metrics/aggregate/index.js +13 -16
  19. package/dist/cjs/features/metrics/instrument/index.js +3 -3
  20. package/dist/cjs/features/page_view_event/aggregate/index.js +15 -29
  21. package/dist/cjs/features/page_view_event/instrument/index.js +3 -3
  22. package/dist/cjs/features/page_view_timing/aggregate/index.js +6 -23
  23. package/dist/cjs/features/page_view_timing/instrument/index.js +3 -3
  24. package/dist/cjs/features/session_replay/aggregate/index.js +15 -29
  25. package/dist/cjs/features/session_replay/instrument/index.js +7 -5
  26. package/dist/cjs/features/session_trace/aggregate/index.js +28 -34
  27. package/dist/cjs/features/session_trace/instrument/index.js +4 -5
  28. package/dist/cjs/features/soft_navigations/aggregate/index.js +6 -11
  29. package/dist/cjs/features/soft_navigations/instrument/index.js +3 -3
  30. package/dist/cjs/features/spa/aggregate/index.js +19 -30
  31. package/dist/cjs/features/spa/instrument/index.js +8 -4
  32. package/dist/cjs/features/utils/aggregate-base.js +11 -12
  33. package/dist/cjs/features/utils/feature-base.js +5 -3
  34. package/dist/cjs/features/utils/instrument-base.js +18 -10
  35. package/dist/cjs/loaders/agent-base.js +1 -0
  36. package/dist/cjs/loaders/agent.js +1 -5
  37. package/dist/cjs/loaders/micro-agent.js +7 -10
  38. package/dist/esm/common/constants/env.cdn.js +1 -1
  39. package/dist/esm/common/constants/env.npm.js +1 -1
  40. package/dist/esm/common/constants/runtime.js +0 -1
  41. package/dist/esm/common/harvest/harvest-scheduler.js +3 -4
  42. package/dist/esm/common/unload/eol.js +2 -5
  43. package/dist/esm/common/util/submit-data.js +2 -2
  44. package/dist/esm/features/ajax/aggregate/index.js +8 -17
  45. package/dist/esm/features/ajax/instrument/index.js +8 -10
  46. package/dist/esm/features/generic_events/aggregate/index.js +11 -18
  47. package/dist/esm/features/generic_events/instrument/index.js +5 -8
  48. package/dist/esm/features/jserrors/aggregate/index.js +36 -21
  49. package/dist/esm/features/jserrors/aggregate/internal-errors.js +36 -0
  50. package/dist/esm/features/jserrors/instrument/index.js +3 -3
  51. package/dist/esm/features/logging/aggregate/index.js +21 -20
  52. package/dist/esm/features/logging/instrument/index.js +3 -3
  53. package/dist/esm/features/metrics/aggregate/index.js +8 -11
  54. package/dist/esm/features/metrics/instrument/index.js +3 -3
  55. package/dist/esm/features/page_view_event/aggregate/index.js +16 -30
  56. package/dist/esm/features/page_view_event/instrument/index.js +3 -3
  57. package/dist/esm/features/page_view_timing/aggregate/index.js +6 -23
  58. package/dist/esm/features/page_view_timing/instrument/index.js +3 -3
  59. package/dist/esm/features/session_replay/aggregate/index.js +13 -27
  60. package/dist/esm/features/session_replay/instrument/index.js +7 -5
  61. package/dist/esm/features/session_trace/aggregate/index.js +27 -33
  62. package/dist/esm/features/session_trace/instrument/index.js +4 -5
  63. package/dist/esm/features/soft_navigations/aggregate/index.js +6 -11
  64. package/dist/esm/features/soft_navigations/instrument/index.js +3 -3
  65. package/dist/esm/features/spa/aggregate/index.js +17 -28
  66. package/dist/esm/features/spa/instrument/index.js +8 -4
  67. package/dist/esm/features/utils/aggregate-base.js +13 -14
  68. package/dist/esm/features/utils/feature-base.js +5 -3
  69. package/dist/esm/features/utils/instrument-base.js +18 -10
  70. package/dist/esm/loaders/agent-base.js +1 -0
  71. package/dist/esm/loaders/agent.js +1 -5
  72. package/dist/esm/loaders/micro-agent.js +7 -10
  73. package/dist/types/common/constants/runtime.d.ts +0 -1
  74. package/dist/types/common/constants/runtime.d.ts.map +1 -1
  75. package/dist/types/common/harvest/harvest-scheduler.d.ts.map +1 -1
  76. package/dist/types/common/unload/eol.d.ts +1 -1
  77. package/dist/types/common/unload/eol.d.ts.map +1 -1
  78. package/dist/types/features/ajax/aggregate/index.d.ts +1 -1
  79. package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
  80. package/dist/types/features/ajax/instrument/index.d.ts +1 -1
  81. package/dist/types/features/ajax/instrument/index.d.ts.map +1 -1
  82. package/dist/types/features/generic_events/aggregate/index.d.ts +1 -2
  83. package/dist/types/features/generic_events/aggregate/index.d.ts.map +1 -1
  84. package/dist/types/features/generic_events/instrument/index.d.ts +1 -1
  85. package/dist/types/features/generic_events/instrument/index.d.ts.map +1 -1
  86. package/dist/types/features/jserrors/aggregate/index.d.ts +11 -2
  87. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  88. package/dist/types/features/jserrors/aggregate/internal-errors.d.ts +7 -0
  89. package/dist/types/features/jserrors/aggregate/internal-errors.d.ts.map +1 -0
  90. package/dist/types/features/jserrors/instrument/index.d.ts +1 -1
  91. package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -1
  92. package/dist/types/features/logging/aggregate/index.d.ts +4 -2
  93. package/dist/types/features/logging/aggregate/index.d.ts.map +1 -1
  94. package/dist/types/features/logging/instrument/index.d.ts +1 -1
  95. package/dist/types/features/logging/instrument/index.d.ts.map +1 -1
  96. package/dist/types/features/metrics/aggregate/index.d.ts +1 -1
  97. package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -1
  98. package/dist/types/features/metrics/instrument/index.d.ts +1 -1
  99. package/dist/types/features/metrics/instrument/index.d.ts.map +1 -1
  100. package/dist/types/features/page_action/instrument/index.d.ts +1 -0
  101. package/dist/types/features/page_action/instrument/index.d.ts.map +1 -1
  102. package/dist/types/features/page_view_event/aggregate/index.d.ts +1 -1
  103. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  104. package/dist/types/features/page_view_event/instrument/index.d.ts +1 -1
  105. package/dist/types/features/page_view_event/instrument/index.d.ts.map +1 -1
  106. package/dist/types/features/page_view_timing/aggregate/index.d.ts +1 -5
  107. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  108. package/dist/types/features/page_view_timing/instrument/index.d.ts +1 -1
  109. package/dist/types/features/page_view_timing/instrument/index.d.ts.map +1 -1
  110. package/dist/types/features/session_replay/aggregate/index.d.ts +0 -1
  111. package/dist/types/features/session_replay/aggregate/index.d.ts.map +1 -1
  112. package/dist/types/features/session_replay/instrument/index.d.ts +1 -1
  113. package/dist/types/features/session_replay/instrument/index.d.ts.map +1 -1
  114. package/dist/types/features/session_trace/aggregate/index.d.ts +1 -3
  115. package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
  116. package/dist/types/features/session_trace/instrument/index.d.ts +1 -1
  117. package/dist/types/features/session_trace/instrument/index.d.ts.map +1 -1
  118. package/dist/types/features/soft_navigations/aggregate/index.d.ts +1 -1
  119. package/dist/types/features/soft_navigations/aggregate/index.d.ts.map +1 -1
  120. package/dist/types/features/soft_navigations/instrument/index.d.ts +1 -1
  121. package/dist/types/features/soft_navigations/instrument/index.d.ts.map +1 -1
  122. package/dist/types/features/spa/aggregate/index.d.ts +1 -1
  123. package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
  124. package/dist/types/features/spa/instrument/index.d.ts +4 -1
  125. package/dist/types/features/spa/instrument/index.d.ts.map +1 -1
  126. package/dist/types/features/utils/aggregate-base.d.ts +2 -2
  127. package/dist/types/features/utils/aggregate-base.d.ts.map +1 -1
  128. package/dist/types/features/utils/feature-base.d.ts +2 -3
  129. package/dist/types/features/utils/feature-base.d.ts.map +1 -1
  130. package/dist/types/features/utils/instrument-base.d.ts +3 -3
  131. package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
  132. package/dist/types/loaders/agent-base.d.ts +1 -0
  133. package/dist/types/loaders/agent-base.d.ts.map +1 -1
  134. package/dist/types/loaders/agent.d.ts +0 -2
  135. package/dist/types/loaders/agent.d.ts.map +1 -1
  136. package/dist/types/loaders/micro-agent.d.ts +0 -2
  137. package/dist/types/loaders/micro-agent.d.ts.map +1 -1
  138. package/package.json +1 -1
  139. package/src/common/constants/__mocks__/runtime.js +0 -1
  140. package/src/common/constants/runtime.js +0 -2
  141. package/src/common/harvest/harvest-scheduler.js +3 -4
  142. package/src/common/unload/eol.js +2 -5
  143. package/src/common/util/submit-data.js +2 -2
  144. package/src/features/ajax/aggregate/index.js +8 -18
  145. package/src/features/ajax/instrument/index.js +8 -10
  146. package/src/features/generic_events/aggregate/index.js +11 -20
  147. package/src/features/generic_events/instrument/index.js +7 -10
  148. package/src/features/jserrors/aggregate/index.js +34 -21
  149. package/src/features/jserrors/aggregate/internal-errors.js +33 -0
  150. package/src/features/jserrors/instrument/index.js +3 -4
  151. package/src/features/logging/aggregate/index.js +20 -21
  152. package/src/features/logging/instrument/index.js +3 -3
  153. package/src/features/metrics/aggregate/index.js +8 -11
  154. package/src/features/metrics/instrument/index.js +3 -3
  155. package/src/features/page_view_event/aggregate/index.js +16 -22
  156. package/src/features/page_view_event/instrument/index.js +3 -3
  157. package/src/features/page_view_timing/aggregate/index.js +6 -23
  158. package/src/features/page_view_timing/instrument/index.js +3 -3
  159. package/src/features/session_replay/aggregate/index.js +13 -21
  160. package/src/features/session_replay/instrument/index.js +7 -5
  161. package/src/features/session_trace/aggregate/index.js +28 -34
  162. package/src/features/session_trace/instrument/index.js +4 -5
  163. package/src/features/soft_navigations/aggregate/index.js +6 -8
  164. package/src/features/soft_navigations/instrument/index.js +3 -3
  165. package/src/features/spa/aggregate/index.js +17 -26
  166. package/src/features/spa/instrument/index.js +7 -4
  167. package/src/features/utils/__mocks__/feature-base.js +1 -2
  168. package/src/features/utils/aggregate-base.js +13 -14
  169. package/src/features/utils/feature-base.js +6 -3
  170. package/src/features/utils/instrument-base.js +16 -10
  171. package/src/loaders/agent-base.js +1 -0
  172. package/src/loaders/agent.js +1 -3
  173. package/src/loaders/micro-agent.js +9 -10
@@ -10,7 +10,6 @@ import { featurePriority, FEATURE_NAMES } from './features/features'
10
10
  // required features
11
11
  import { Instrument as PageViewEvent } from '../features/page_view_event/instrument'
12
12
  // common files
13
- import { Aggregator } from '../common/aggregate/aggregator'
14
13
  import { gosNREUM, setNREUMInitializedAgent } from '../common/window/nreum'
15
14
  import { warn } from '../common/util/console'
16
15
  import { globalScope } from '../common/constants/runtime'
@@ -34,7 +33,6 @@ export class Agent extends AgentBase {
34
33
  return
35
34
  }
36
35
 
37
- this.sharedAggregator = new Aggregator({ agentIdentifier: this.agentIdentifier })
38
36
  this.features = {}
39
37
  setNREUMInitializedAgent(this.agentIdentifier, this) // append this agent onto the global NREUM.initializedAgents
40
38
 
@@ -80,7 +78,7 @@ export class Agent extends AgentBase {
80
78
  })
81
79
  }
82
80
 
83
- this.features[InstrumentCtor.featureName] = new InstrumentCtor(this.agentIdentifier, this.sharedAggregator)
81
+ this.features[InstrumentCtor.featureName] = new InstrumentCtor(this)
84
82
  })
85
83
  } catch (err) {
86
84
  warn(22, err)
@@ -3,7 +3,6 @@ import { Instrument as PVE } from '../features/page_view_event/instrument'
3
3
  import { getEnabledFeatures } from './features/enabled-features'
4
4
  import { configure } from './configure/configure'
5
5
  // core files
6
- import { Aggregator } from '../common/aggregate/aggregator'
7
6
  import { setNREUMInitializedAgent } from '../common/window/nreum'
8
7
  import { getInfo } from '../common/config/info'
9
8
  import { getConfiguration, getConfigurationValue } from '../common/config/init'
@@ -11,13 +10,13 @@ import { getLoaderConfig } from '../common/config/loader-config'
11
10
  import { getRuntime } from '../common/config/runtime'
12
11
  import { FEATURE_NAMES } from './features/features'
13
12
  import { warn } from '../common/util/console'
14
- import { onWindowLoad } from '../common/window/load'
15
13
  import { AgentBase } from './agent-base'
16
14
 
17
15
  const nonAutoFeatures = [
18
16
  FEATURE_NAMES.jserrors,
19
17
  FEATURE_NAMES.genericEvents,
20
- FEATURE_NAMES.metrics
18
+ FEATURE_NAMES.metrics,
19
+ FEATURE_NAMES.logging
21
20
  ]
22
21
 
23
22
  /**
@@ -33,7 +32,6 @@ export class MicroAgent extends AgentBase {
33
32
  constructor (options, agentIdentifier) {
34
33
  super(agentIdentifier)
35
34
 
36
- this.sharedAggregator = new Aggregator({ agentIdentifier: this.agentIdentifier })
37
35
  this.features = {}
38
36
  setNREUMInitializedAgent(this.agentIdentifier, this)
39
37
 
@@ -76,21 +74,22 @@ export class MicroAgent extends AgentBase {
76
74
 
77
75
  try {
78
76
  // a biproduct of doing this is that the "session manager" is automatically handled through importing this feature
79
- this.features.page_view_event = new PVE(this.agentIdentifier, this.sharedAggregator)
77
+ this.features.page_view_event = new PVE(this)
80
78
  } catch (err) {
81
79
  warn(24, err)
82
80
  }
83
81
 
84
- onWindowLoad(() => {
85
- // these features do not import an "instrument" file, meaning they are only hooked up to the API.
82
+ this.features.page_view_event.onAggregateImported.then(() => {
83
+ /* The following features do not import an "instrument" file, meaning they are only hooked up to the API.
84
+ Since the missing instrument-base class handles drain-gating (racing behavior) and PVE handles some setup, these are chained until after PVE has finished initializing
85
+ so as to avoid the race condition of things like session and sharedAggregator not being ready by features that uses them right away. */
86
86
  nonAutoFeatures.forEach(f => {
87
87
  if (enabledFeatures[f] && features.includes(f)) {
88
88
  import(/* webpackChunkName: "lazy-feature-loader" */ '../features/utils/lazy-feature-loader').then(({ lazyFeatureLoader }) => {
89
89
  return lazyFeatureLoader(f, 'aggregate')
90
90
  }).then(({ Aggregate }) => {
91
- this.features[f] = new Aggregate(this.agentIdentifier, this.sharedAggregator)
92
- }).catch(err =>
93
- warn(25, err))
91
+ this.features[f] = new Aggregate(this)
92
+ }).catch(err => warn(25, err))
94
93
  }
95
94
  })
96
95
  })