@newrelic/browser-agent 1.263.0 → 1.265.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 (478) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +2 -2
  3. package/dist/cjs/cdn/experimental.js +3 -7
  4. package/dist/cjs/cdn/pro.js +2 -2
  5. package/dist/cjs/cdn/spa.js +2 -2
  6. package/dist/cjs/common/aggregate/aggregator.js +2 -3
  7. package/dist/cjs/common/config/{state/configurable.js → configurable.js} +1 -1
  8. package/dist/cjs/common/config/{state/info.js → info.js} +1 -1
  9. package/dist/cjs/common/config/{state/init.js → init.js} +11 -8
  10. package/dist/cjs/common/config/{state/loader-config.js → loader-config.js} +1 -1
  11. package/dist/cjs/common/config/{state/runtime.js → runtime.js} +16 -5
  12. package/dist/cjs/common/constants/agent-constants.js +8 -0
  13. package/dist/cjs/common/constants/env.cdn.js +1 -1
  14. package/dist/cjs/common/constants/env.npm.js +1 -1
  15. package/dist/cjs/common/constants/runtime.js +1 -3
  16. package/dist/cjs/common/context/shared-context.js +1 -2
  17. package/dist/cjs/common/dispatch/global-event.js +1 -2
  18. package/dist/cjs/common/drain/drain.js +12 -18
  19. package/dist/cjs/common/event-emitter/contextual-ee.js +3 -4
  20. package/dist/cjs/common/event-listener/event-listener-opts.js +2 -6
  21. package/dist/cjs/common/harvest/harvest-scheduler.js +1 -2
  22. package/dist/cjs/common/harvest/harvest.js +30 -57
  23. package/dist/cjs/common/serialize/bel-serializer.js +6 -11
  24. package/dist/cjs/common/session/session-entity.js +10 -13
  25. package/dist/cjs/common/timing/nav-timing.js +1 -3
  26. package/dist/cjs/common/timing/time-keeper.js +16 -6
  27. package/dist/cjs/common/url/encode.js +3 -7
  28. package/dist/cjs/common/util/console.js +2 -0
  29. package/dist/cjs/common/util/invoke.js +6 -16
  30. package/dist/cjs/common/util/obfuscate.js +97 -53
  31. package/dist/cjs/common/util/submit-data.js +17 -21
  32. package/dist/cjs/common/util/text.js +9 -0
  33. package/dist/cjs/common/util/traverse.js +1 -3
  34. package/dist/cjs/common/vitals/cumulative-layout-shift.js +5 -6
  35. package/dist/cjs/common/vitals/first-contentful-paint.js +4 -5
  36. package/dist/cjs/common/vitals/first-input-delay.js +4 -5
  37. package/dist/cjs/common/vitals/interaction-to-next-paint.js +5 -6
  38. package/dist/cjs/common/vitals/largest-contentful-paint.js +4 -5
  39. package/dist/cjs/common/vitals/time-to-first-byte.js +4 -5
  40. package/dist/cjs/common/vitals/vital-metric.js +5 -7
  41. package/dist/cjs/common/window/nreum.js +2 -1
  42. package/dist/cjs/common/window/page-visibility.js +1 -4
  43. package/dist/cjs/common/wrap/wrap-events.js +1 -4
  44. package/dist/cjs/common/wrap/wrap-promise.js +1 -4
  45. package/dist/cjs/common/wrap/wrap-websocket.js +74 -0
  46. package/dist/cjs/features/ajax/aggregate/chunk.js +4 -3
  47. package/dist/cjs/features/ajax/aggregate/gql.js +4 -5
  48. package/dist/cjs/features/ajax/aggregate/index.js +19 -22
  49. package/dist/cjs/features/ajax/constants.js +2 -3
  50. package/dist/cjs/features/ajax/instrument/distributed-tracing.js +9 -8
  51. package/dist/cjs/features/ajax/instrument/index.js +14 -12
  52. package/dist/cjs/features/generic_events/aggregate/index.js +128 -0
  53. package/dist/cjs/features/generic_events/constants.js +10 -0
  54. package/dist/cjs/features/generic_events/index.js +12 -0
  55. package/dist/cjs/features/generic_events/instrument/index.js +27 -0
  56. package/dist/cjs/features/jserrors/aggregate/index.js +25 -44
  57. package/dist/cjs/features/jserrors/instrument/index.js +4 -4
  58. package/dist/cjs/features/logging/aggregate/index.js +33 -36
  59. package/dist/cjs/features/logging/constants.js +2 -3
  60. package/dist/cjs/features/logging/instrument/index.js +5 -6
  61. package/dist/cjs/features/logging/shared/log.js +1 -3
  62. package/dist/cjs/features/logging/shared/utils.js +2 -4
  63. package/dist/cjs/features/metrics/aggregate/index.js +34 -17
  64. package/dist/cjs/features/metrics/aggregate/websocket-detection.js +34 -0
  65. package/dist/cjs/features/metrics/constants.js +4 -2
  66. package/dist/cjs/features/metrics/instrument/index.js +12 -4
  67. package/dist/cjs/features/page_action/instrument/index.js +14 -10
  68. package/dist/cjs/features/page_view_event/aggregate/index.js +19 -39
  69. package/dist/cjs/features/page_view_event/aggregate/initialized-features.js +1 -1
  70. package/dist/cjs/features/page_view_event/instrument/index.js +4 -4
  71. package/dist/cjs/features/page_view_timing/aggregate/index.js +23 -39
  72. package/dist/cjs/features/page_view_timing/instrument/index.js +4 -4
  73. package/dist/cjs/features/session_replay/aggregate/index.js +35 -42
  74. package/dist/cjs/features/session_replay/constants.js +1 -5
  75. package/dist/cjs/features/session_replay/instrument/index.js +5 -9
  76. package/dist/cjs/features/session_replay/shared/recorder-events.js +25 -20
  77. package/dist/cjs/features/session_replay/shared/recorder.js +17 -13
  78. package/dist/cjs/features/session_replay/shared/stylesheet-evaluator.js +2 -2
  79. package/dist/cjs/features/session_replay/shared/utils.js +5 -4
  80. package/dist/cjs/features/session_trace/aggregate/index.js +25 -42
  81. package/dist/cjs/features/session_trace/aggregate/trace/storage.js +5 -3
  82. package/dist/cjs/features/session_trace/instrument/index.js +8 -7
  83. package/dist/cjs/features/soft_navigations/aggregate/ajax-node.js +1 -1
  84. package/dist/cjs/features/soft_navigations/aggregate/index.js +22 -30
  85. package/dist/cjs/features/soft_navigations/aggregate/initial-page-load-interaction.js +2 -2
  86. package/dist/cjs/features/soft_navigations/aggregate/interaction.js +4 -5
  87. package/dist/cjs/features/soft_navigations/instrument/index.js +14 -13
  88. package/dist/cjs/features/spa/aggregate/index.js +17 -28
  89. package/dist/cjs/features/spa/aggregate/interaction.js +7 -6
  90. package/dist/cjs/features/spa/aggregate/serializer.js +4 -5
  91. package/dist/cjs/features/spa/constants.js +2 -2
  92. package/dist/cjs/features/spa/instrument/index.js +20 -19
  93. package/dist/cjs/features/utils/agent-session.js +6 -4
  94. package/dist/cjs/features/utils/aggregate-base.js +17 -10
  95. package/dist/cjs/features/utils/event-buffer.js +132 -0
  96. package/dist/cjs/features/utils/feature-gates.js +2 -2
  97. package/dist/cjs/features/utils/instrument-base.js +7 -8
  98. package/dist/cjs/features/utils/lazy-feature-loader.js +12 -12
  99. package/dist/cjs/features/utils/nr1-debugger.js +1 -3
  100. package/dist/cjs/index.js +21 -0
  101. package/dist/cjs/loaders/agent-base.js +4 -12
  102. package/dist/cjs/loaders/agent.js +7 -2
  103. package/dist/cjs/loaders/api/api.js +23 -35
  104. package/dist/cjs/loaders/api/apiAsync.js +10 -13
  105. package/dist/cjs/loaders/browser-agent.js +4 -3
  106. package/dist/cjs/loaders/configure/configure.js +16 -15
  107. package/dist/cjs/loaders/features/enabled-features.js +2 -2
  108. package/dist/cjs/loaders/features/features.js +8 -4
  109. package/dist/cjs/loaders/micro-agent.js +16 -15
  110. package/dist/esm/cdn/experimental.js +2 -5
  111. package/dist/esm/cdn/pro.js +2 -2
  112. package/dist/esm/cdn/spa.js +2 -2
  113. package/dist/esm/common/aggregate/aggregator.js +2 -3
  114. package/dist/esm/common/config/{state/configurable.js → configurable.js} +1 -1
  115. package/dist/esm/common/config/{state/info.js → info.js} +1 -1
  116. package/dist/esm/common/config/{state/init.js → init.js} +11 -8
  117. package/dist/esm/common/config/{state/loader-config.js → loader-config.js} +1 -1
  118. package/dist/esm/common/config/{state/runtime.js → runtime.js} +17 -5
  119. package/dist/esm/common/constants/agent-constants.js +2 -0
  120. package/dist/esm/common/constants/env.cdn.js +1 -1
  121. package/dist/esm/common/constants/env.npm.js +1 -1
  122. package/dist/esm/common/constants/runtime.js +0 -2
  123. package/dist/esm/common/context/shared-context.js +1 -2
  124. package/dist/esm/common/dispatch/global-event.js +1 -2
  125. package/dist/esm/common/drain/drain.js +12 -18
  126. package/dist/esm/common/event-emitter/contextual-ee.js +2 -3
  127. package/dist/esm/common/event-listener/event-listener-opts.js +2 -6
  128. package/dist/esm/common/harvest/harvest-scheduler.js +1 -2
  129. package/dist/esm/common/harvest/harvest.js +24 -51
  130. package/dist/esm/common/serialize/bel-serializer.js +6 -11
  131. package/dist/esm/common/session/session-entity.js +10 -13
  132. package/dist/esm/common/timing/nav-timing.js +1 -3
  133. package/dist/esm/common/timing/time-keeper.js +15 -5
  134. package/dist/esm/common/url/encode.js +3 -7
  135. package/dist/esm/common/util/console.js +2 -0
  136. package/dist/esm/common/util/invoke.js +6 -16
  137. package/dist/esm/common/util/obfuscate.js +96 -49
  138. package/dist/esm/common/util/submit-data.js +17 -21
  139. package/dist/esm/common/util/text.js +3 -0
  140. package/dist/esm/common/util/traverse.js +1 -3
  141. package/dist/esm/common/vitals/cumulative-layout-shift.js +5 -6
  142. package/dist/esm/common/vitals/first-contentful-paint.js +4 -5
  143. package/dist/esm/common/vitals/first-input-delay.js +4 -5
  144. package/dist/esm/common/vitals/interaction-to-next-paint.js +5 -6
  145. package/dist/esm/common/vitals/largest-contentful-paint.js +4 -5
  146. package/dist/esm/common/vitals/time-to-first-byte.js +4 -5
  147. package/dist/esm/common/vitals/vital-metric.js +5 -7
  148. package/dist/esm/common/window/nreum.js +2 -1
  149. package/dist/esm/common/window/page-visibility.js +1 -4
  150. package/dist/esm/common/wrap/wrap-events.js +1 -4
  151. package/dist/esm/common/wrap/wrap-promise.js +1 -4
  152. package/dist/esm/common/wrap/wrap-websocket.js +67 -0
  153. package/dist/esm/features/ajax/aggregate/chunk.js +3 -2
  154. package/dist/esm/features/ajax/aggregate/gql.js +4 -5
  155. package/dist/esm/features/ajax/aggregate/index.js +16 -19
  156. package/dist/esm/features/ajax/constants.js +1 -2
  157. package/dist/esm/features/ajax/instrument/distributed-tracing.js +2 -1
  158. package/dist/esm/features/ajax/instrument/index.js +10 -8
  159. package/dist/esm/features/generic_events/aggregate/index.js +120 -0
  160. package/dist/esm/features/generic_events/constants.js +4 -0
  161. package/dist/esm/features/generic_events/index.js +1 -0
  162. package/dist/esm/features/generic_events/instrument/index.js +20 -0
  163. package/dist/esm/features/jserrors/aggregate/index.js +20 -39
  164. package/dist/esm/features/jserrors/instrument/index.js +3 -3
  165. package/dist/esm/features/logging/aggregate/index.js +31 -34
  166. package/dist/esm/features/logging/constants.js +1 -2
  167. package/dist/esm/features/logging/instrument/index.js +4 -5
  168. package/dist/esm/features/logging/shared/log.js +1 -3
  169. package/dist/esm/features/logging/shared/utils.js +2 -4
  170. package/dist/esm/features/metrics/aggregate/index.js +28 -11
  171. package/dist/esm/features/metrics/aggregate/websocket-detection.js +29 -0
  172. package/dist/esm/features/metrics/constants.js +3 -1
  173. package/dist/esm/features/metrics/instrument/index.js +12 -4
  174. package/dist/esm/features/page_action/instrument/index.js +14 -9
  175. package/dist/esm/features/page_view_event/aggregate/index.js +17 -37
  176. package/dist/esm/features/page_view_event/aggregate/initialized-features.js +1 -1
  177. package/dist/esm/features/page_view_event/instrument/index.js +3 -3
  178. package/dist/esm/features/page_view_timing/aggregate/index.js +20 -36
  179. package/dist/esm/features/page_view_timing/instrument/index.js +3 -3
  180. package/dist/esm/features/session_replay/aggregate/index.js +25 -32
  181. package/dist/esm/features/session_replay/constants.js +0 -4
  182. package/dist/esm/features/session_replay/index.js +1 -7
  183. package/dist/esm/features/session_replay/instrument/index.js +5 -8
  184. package/dist/esm/features/session_replay/shared/recorder-events.js +25 -20
  185. package/dist/esm/features/session_replay/shared/recorder.js +14 -10
  186. package/dist/esm/features/session_replay/shared/stylesheet-evaluator.js +2 -2
  187. package/dist/esm/features/session_replay/shared/utils.js +3 -2
  188. package/dist/esm/features/session_trace/aggregate/index.js +20 -37
  189. package/dist/esm/features/session_trace/aggregate/trace/storage.js +5 -3
  190. package/dist/esm/features/session_trace/instrument/index.js +5 -4
  191. package/dist/esm/features/soft_navigations/aggregate/ajax-node.js +1 -1
  192. package/dist/esm/features/soft_navigations/aggregate/index.js +21 -29
  193. package/dist/esm/features/soft_navigations/aggregate/initial-page-load-interaction.js +1 -1
  194. package/dist/esm/features/soft_navigations/aggregate/interaction.js +2 -3
  195. package/dist/esm/features/soft_navigations/instrument/index.js +11 -10
  196. package/dist/esm/features/spa/aggregate/index.js +11 -22
  197. package/dist/esm/features/spa/aggregate/interaction.js +6 -5
  198. package/dist/esm/features/spa/aggregate/serializer.js +2 -3
  199. package/dist/esm/features/spa/constants.js +2 -2
  200. package/dist/esm/features/spa/instrument/index.js +12 -11
  201. package/dist/esm/features/utils/agent-session.js +3 -1
  202. package/dist/esm/features/utils/aggregate-base.js +16 -9
  203. package/dist/esm/features/utils/event-buffer.js +126 -0
  204. package/dist/esm/features/utils/feature-gates.js +1 -1
  205. package/dist/esm/features/utils/instrument-base.js +6 -7
  206. package/dist/esm/features/utils/lazy-feature-loader.js +12 -12
  207. package/dist/esm/features/utils/nr1-debugger.js +1 -3
  208. package/dist/esm/index.js +3 -0
  209. package/dist/esm/loaders/agent-base.js +4 -12
  210. package/dist/esm/loaders/agent.js +7 -2
  211. package/dist/esm/loaders/api/api.js +18 -30
  212. package/dist/esm/loaders/api/apiAsync.js +3 -6
  213. package/dist/esm/loaders/browser-agent.js +3 -2
  214. package/dist/esm/loaders/configure/configure.js +9 -8
  215. package/dist/esm/loaders/features/enabled-features.js +1 -1
  216. package/dist/esm/loaders/features/features.js +8 -4
  217. package/dist/esm/loaders/micro-agent.js +11 -10
  218. package/dist/types/common/aggregate/aggregator.d.ts.map +1 -1
  219. package/dist/types/common/config/configurable.d.ts.map +1 -0
  220. package/dist/types/common/config/info.d.ts.map +1 -0
  221. package/dist/types/common/config/init.d.ts.map +1 -0
  222. package/dist/types/common/config/loader-config.d.ts.map +1 -0
  223. package/dist/types/common/config/runtime.d.ts.map +1 -0
  224. package/dist/types/common/constants/agent-constants.d.ts +3 -0
  225. package/dist/types/common/constants/agent-constants.d.ts.map +1 -0
  226. package/dist/types/common/constants/runtime.d.ts +0 -1
  227. package/dist/types/common/constants/runtime.d.ts.map +1 -1
  228. package/dist/types/common/harvest/harvest.d.ts +1 -7
  229. package/dist/types/common/harvest/harvest.d.ts.map +1 -1
  230. package/dist/types/common/serialize/bel-serializer.d.ts.map +1 -1
  231. package/dist/types/common/timing/time-keeper.d.ts +9 -2
  232. package/dist/types/common/timing/time-keeper.d.ts.map +1 -1
  233. package/dist/types/common/url/encode.d.ts.map +1 -1
  234. package/dist/types/common/util/console.d.ts.map +1 -1
  235. package/dist/types/common/util/obfuscate.d.ts +78 -6
  236. package/dist/types/common/util/obfuscate.d.ts.map +1 -1
  237. package/dist/types/common/util/submit-data.d.ts.map +1 -1
  238. package/dist/types/common/util/text.d.ts +2 -0
  239. package/dist/types/common/util/text.d.ts.map +1 -0
  240. package/dist/types/common/window/nreum.d.ts.map +1 -1
  241. package/dist/types/common/wrap/wrap-websocket.d.ts +4 -0
  242. package/dist/types/common/wrap/wrap-websocket.d.ts.map +1 -0
  243. package/dist/types/features/ajax/aggregate/chunk.d.ts.map +1 -1
  244. package/dist/types/features/ajax/aggregate/index.d.ts +2 -3
  245. package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
  246. package/dist/types/features/ajax/constants.d.ts +0 -1
  247. package/dist/types/features/ajax/constants.d.ts.map +1 -1
  248. package/dist/types/features/ajax/instrument/distributed-tracing.d.ts.map +1 -1
  249. package/dist/types/features/ajax/instrument/index.d.ts +1 -0
  250. package/dist/types/features/ajax/instrument/index.d.ts.map +1 -1
  251. package/dist/types/features/{page_action → generic_events}/aggregate/index.d.ts +10 -10
  252. package/dist/types/features/generic_events/aggregate/index.d.ts.map +1 -0
  253. package/dist/types/features/generic_events/constants.d.ts +4 -0
  254. package/dist/types/features/generic_events/constants.d.ts.map +1 -0
  255. package/dist/types/features/generic_events/index.d.ts +2 -0
  256. package/dist/types/features/generic_events/index.d.ts.map +1 -0
  257. package/dist/types/features/generic_events/instrument/index.d.ts +7 -0
  258. package/dist/types/features/generic_events/instrument/index.d.ts.map +1 -0
  259. package/dist/types/features/jserrors/aggregate/index.d.ts +2 -2
  260. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  261. package/dist/types/features/jserrors/instrument/index.d.ts +1 -0
  262. package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -1
  263. package/dist/types/features/logging/aggregate/index.d.ts +4 -7
  264. package/dist/types/features/logging/aggregate/index.d.ts.map +1 -1
  265. package/dist/types/features/logging/constants.d.ts +0 -1
  266. package/dist/types/features/logging/constants.d.ts.map +1 -1
  267. package/dist/types/features/logging/instrument/index.d.ts +1 -0
  268. package/dist/types/features/logging/instrument/index.d.ts.map +1 -1
  269. package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -1
  270. package/dist/types/features/metrics/aggregate/websocket-detection.d.ts +12 -0
  271. package/dist/types/features/metrics/aggregate/websocket-detection.d.ts.map +1 -0
  272. package/dist/types/features/metrics/constants.d.ts +1 -0
  273. package/dist/types/features/metrics/constants.d.ts.map +1 -1
  274. package/dist/types/features/metrics/instrument/index.d.ts +1 -0
  275. package/dist/types/features/metrics/instrument/index.d.ts.map +1 -1
  276. package/dist/types/features/page_action/instrument/index.d.ts +9 -4
  277. package/dist/types/features/page_action/instrument/index.d.ts.map +1 -1
  278. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  279. package/dist/types/features/page_view_event/instrument/index.d.ts +1 -0
  280. package/dist/types/features/page_view_event/instrument/index.d.ts.map +1 -1
  281. package/dist/types/features/page_view_timing/aggregate/index.d.ts +2 -2
  282. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  283. package/dist/types/features/page_view_timing/instrument/index.d.ts +1 -0
  284. package/dist/types/features/page_view_timing/instrument/index.d.ts.map +1 -1
  285. package/dist/types/features/session_replay/aggregate/index.d.ts.map +1 -1
  286. package/dist/types/features/session_replay/constants.d.ts +0 -4
  287. package/dist/types/features/session_replay/constants.d.ts.map +1 -1
  288. package/dist/types/features/session_replay/instrument/index.d.ts +1 -0
  289. package/dist/types/features/session_replay/instrument/index.d.ts.map +1 -1
  290. package/dist/types/features/session_replay/shared/recorder-events.d.ts +6 -6
  291. package/dist/types/features/session_replay/shared/recorder-events.d.ts.map +1 -1
  292. package/dist/types/features/session_replay/shared/recorder.d.ts +2 -2
  293. package/dist/types/features/session_replay/shared/recorder.d.ts.map +1 -1
  294. package/dist/types/features/session_replay/shared/utils.d.ts.map +1 -1
  295. package/dist/types/features/session_trace/aggregate/index.d.ts +2 -2
  296. package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
  297. package/dist/types/features/session_trace/aggregate/trace/storage.d.ts +1 -1
  298. package/dist/types/features/session_trace/aggregate/trace/storage.d.ts.map +1 -1
  299. package/dist/types/features/session_trace/instrument/index.d.ts +1 -0
  300. package/dist/types/features/session_trace/instrument/index.d.ts.map +1 -1
  301. package/dist/types/features/soft_navigations/aggregate/index.d.ts +3 -3
  302. package/dist/types/features/soft_navigations/aggregate/index.d.ts.map +1 -1
  303. package/dist/types/features/soft_navigations/instrument/index.d.ts +1 -0
  304. package/dist/types/features/soft_navigations/instrument/index.d.ts.map +1 -1
  305. package/dist/types/features/spa/aggregate/index.d.ts +2 -2
  306. package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
  307. package/dist/types/features/spa/aggregate/interaction.d.ts.map +1 -1
  308. package/dist/types/features/spa/aggregate/serializer.d.ts.map +1 -1
  309. package/dist/types/features/spa/constants.d.ts.map +1 -1
  310. package/dist/types/features/spa/instrument/index.d.ts +1 -0
  311. package/dist/types/features/spa/instrument/index.d.ts.map +1 -1
  312. package/dist/types/features/utils/agent-session.d.ts.map +1 -1
  313. package/dist/types/features/utils/aggregate-base.d.ts +1 -0
  314. package/dist/types/features/utils/aggregate-base.d.ts.map +1 -1
  315. package/dist/types/features/utils/event-buffer.d.ts +72 -0
  316. package/dist/types/features/utils/event-buffer.d.ts.map +1 -0
  317. package/dist/types/features/utils/instrument-base.d.ts +1 -0
  318. package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
  319. package/dist/types/index.d.ts +3 -0
  320. package/dist/types/loaders/agent-base.d.ts +1 -2
  321. package/dist/types/loaders/agent-base.d.ts.map +1 -1
  322. package/dist/types/loaders/agent.d.ts.map +1 -1
  323. package/dist/types/loaders/api/api.d.ts.map +1 -1
  324. package/dist/types/loaders/browser-agent.d.ts.map +1 -1
  325. package/dist/types/loaders/configure/configure.d.ts.map +1 -1
  326. package/dist/types/loaders/features/features.d.ts +1 -0
  327. package/dist/types/loaders/features/features.d.ts.map +1 -1
  328. package/dist/types/loaders/micro-agent.d.ts.map +1 -1
  329. package/package.json +67 -52
  330. package/src/cdn/experimental.js +2 -4
  331. package/src/cdn/pro.js +2 -2
  332. package/src/cdn/spa.js +2 -2
  333. package/src/common/aggregate/aggregator.js +2 -3
  334. package/src/common/config/__mocks__/info.js +3 -0
  335. package/src/common/config/__mocks__/init.js +3 -0
  336. package/src/common/config/__mocks__/loader-config.js +2 -0
  337. package/src/common/config/__mocks__/runtime.js +2 -0
  338. package/src/common/config/{state/configurable.js → configurable.js} +1 -1
  339. package/src/common/config/{state/info.js → info.js} +1 -1
  340. package/src/common/config/{state/init.js → init.js} +7 -6
  341. package/src/common/config/{state/loader-config.js → loader-config.js} +1 -1
  342. package/src/common/config/{state/runtime.js → runtime.js} +19 -5
  343. package/src/common/constants/agent-constants.js +2 -0
  344. package/src/common/constants/runtime.js +0 -2
  345. package/src/common/drain/drain.js +8 -6
  346. package/src/common/event-emitter/contextual-ee.js +1 -1
  347. package/src/common/harvest/harvest.js +10 -24
  348. package/src/common/serialize/bel-serializer.js +6 -9
  349. package/src/common/session/session-entity.js +4 -4
  350. package/src/common/timing/__mocks__/time-keeper.js +6 -2
  351. package/src/common/timing/time-keeper.js +15 -5
  352. package/src/common/url/encode.js +2 -3
  353. package/src/common/util/__mocks__/console.js +1 -0
  354. package/src/common/util/__mocks__/obfuscate.js +5 -8
  355. package/src/common/util/console.js +2 -0
  356. package/src/common/util/obfuscate.js +94 -50
  357. package/src/common/util/submit-data.js +0 -1
  358. package/src/common/util/text.js +6 -0
  359. package/src/common/window/__mocks__/nreum.js +1 -1
  360. package/src/common/window/nreum.js +2 -1
  361. package/src/common/wrap/wrap-websocket.js +73 -0
  362. package/src/features/ajax/aggregate/chunk.js +3 -2
  363. package/src/features/ajax/aggregate/index.js +20 -19
  364. package/src/features/ajax/constants.js +0 -2
  365. package/src/features/ajax/instrument/distributed-tracing.js +2 -1
  366. package/src/features/ajax/instrument/index.js +9 -5
  367. package/src/features/generic_events/aggregate/index.js +139 -0
  368. package/src/features/generic_events/constants.js +5 -0
  369. package/src/features/generic_events/index.js +1 -0
  370. package/src/features/generic_events/instrument/index.js +24 -0
  371. package/src/features/jserrors/aggregate/index.js +18 -9
  372. package/src/features/jserrors/instrument/index.js +2 -0
  373. package/src/features/logging/aggregate/index.js +39 -31
  374. package/src/features/logging/constants.js +0 -2
  375. package/src/features/logging/instrument/index.js +2 -0
  376. package/src/features/logging/shared/utils.js +1 -1
  377. package/src/features/metrics/aggregate/index.js +24 -9
  378. package/src/features/metrics/aggregate/websocket-detection.js +31 -0
  379. package/src/features/metrics/constants.js +3 -0
  380. package/src/features/metrics/instrument/index.js +13 -1
  381. package/src/features/page_action/instrument/index.js +11 -6
  382. package/src/features/page_view_event/aggregate/index.js +8 -23
  383. package/src/features/page_view_event/aggregate/initialized-features.js +1 -1
  384. package/src/features/page_view_event/instrument/index.js +2 -0
  385. package/src/features/page_view_timing/aggregate/index.js +15 -18
  386. package/src/features/page_view_timing/instrument/index.js +2 -0
  387. package/src/features/session_replay/aggregate/index.js +13 -9
  388. package/src/features/session_replay/constants.js +0 -4
  389. package/src/features/session_replay/index.js +1 -7
  390. package/src/features/session_replay/instrument/index.js +3 -4
  391. package/src/features/session_replay/shared/recorder-events.js +27 -20
  392. package/src/features/session_replay/shared/recorder.js +13 -6
  393. package/src/features/session_replay/shared/stylesheet-evaluator.js +2 -2
  394. package/src/features/session_replay/shared/utils.js +3 -2
  395. package/src/features/session_trace/aggregate/index.js +16 -7
  396. package/src/features/session_trace/aggregate/trace/storage.js +6 -1
  397. package/src/features/session_trace/instrument/index.js +4 -1
  398. package/src/features/soft_navigations/aggregate/ajax-node.js +1 -1
  399. package/src/features/soft_navigations/aggregate/index.js +13 -15
  400. package/src/features/soft_navigations/aggregate/initial-page-load-interaction.js +1 -1
  401. package/src/features/soft_navigations/aggregate/interaction.js +1 -1
  402. package/src/features/soft_navigations/instrument/index.js +9 -5
  403. package/src/features/spa/aggregate/index.js +12 -20
  404. package/src/features/spa/aggregate/interaction.js +6 -5
  405. package/src/features/spa/aggregate/serializer.js +2 -3
  406. package/src/features/spa/constants.js +2 -2
  407. package/src/features/spa/instrument/index.js +9 -3
  408. package/src/features/utils/agent-session.js +3 -1
  409. package/src/features/utils/aggregate-base.js +13 -3
  410. package/src/features/utils/event-buffer.js +126 -0
  411. package/src/features/utils/feature-gates.js +1 -1
  412. package/src/features/utils/instrument-base.js +2 -1
  413. package/src/features/utils/lazy-feature-loader.js +2 -2
  414. package/src/index.js +3 -0
  415. package/src/loaders/agent-base.js +2 -6
  416. package/src/loaders/agent.js +7 -2
  417. package/src/loaders/api/api.js +3 -2
  418. package/src/loaders/api/apiAsync.js +2 -2
  419. package/src/loaders/browser-agent.js +5 -3
  420. package/src/loaders/configure/configure.js +9 -2
  421. package/src/loaders/features/enabled-features.js +1 -1
  422. package/src/loaders/features/features.js +8 -4
  423. package/src/loaders/micro-agent.js +5 -2
  424. package/dist/cjs/cdn/polyfills/lite.js +0 -16
  425. package/dist/cjs/cdn/polyfills/pro.js +0 -21
  426. package/dist/cjs/cdn/polyfills/spa.js +0 -22
  427. package/dist/cjs/cdn/polyfills.js +0 -24
  428. package/dist/cjs/common/config/config.js +0 -76
  429. package/dist/cjs/common/config/state/originals.js +0 -8
  430. package/dist/cjs/common/util/map-own.js +0 -31
  431. package/dist/cjs/common/wrap/index.js +0 -61
  432. package/dist/cjs/features/page_action/aggregate/index.js +0 -121
  433. package/dist/esm/cdn/polyfills/lite.js +0 -14
  434. package/dist/esm/cdn/polyfills/pro.js +0 -19
  435. package/dist/esm/cdn/polyfills/spa.js +0 -20
  436. package/dist/esm/cdn/polyfills.js +0 -27
  437. package/dist/esm/common/config/config.js +0 -11
  438. package/dist/esm/common/config/state/originals.js +0 -2
  439. package/dist/esm/common/util/map-own.js +0 -24
  440. package/dist/esm/common/wrap/index.js +0 -13
  441. package/dist/esm/features/page_action/aggregate/index.js +0 -114
  442. package/dist/types/cdn/polyfills/lite.d.ts +0 -2
  443. package/dist/types/cdn/polyfills/lite.d.ts.map +0 -1
  444. package/dist/types/cdn/polyfills/pro.d.ts +0 -2
  445. package/dist/types/cdn/polyfills/pro.d.ts.map +0 -1
  446. package/dist/types/cdn/polyfills/spa.d.ts +0 -2
  447. package/dist/types/cdn/polyfills/spa.d.ts.map +0 -1
  448. package/dist/types/cdn/polyfills.d.ts +0 -2
  449. package/dist/types/cdn/polyfills.d.ts.map +0 -1
  450. package/dist/types/common/config/config.d.ts +0 -13
  451. package/dist/types/common/config/config.d.ts.map +0 -1
  452. package/dist/types/common/config/state/configurable.d.ts.map +0 -1
  453. package/dist/types/common/config/state/info.d.ts.map +0 -1
  454. package/dist/types/common/config/state/init.d.ts.map +0 -1
  455. package/dist/types/common/config/state/loader-config.d.ts.map +0 -1
  456. package/dist/types/common/config/state/originals.d.ts +0 -2
  457. package/dist/types/common/config/state/originals.d.ts.map +0 -1
  458. package/dist/types/common/config/state/runtime.d.ts.map +0 -1
  459. package/dist/types/common/util/map-own.d.ts +0 -3
  460. package/dist/types/common/util/map-own.d.ts.map +0 -1
  461. package/dist/types/common/wrap/index.d.ts +0 -10
  462. package/dist/types/common/wrap/index.d.ts.map +0 -1
  463. package/dist/types/features/page_action/aggregate/index.d.ts.map +0 -1
  464. package/src/cdn/polyfills/lite.js +0 -20
  465. package/src/cdn/polyfills/pro.js +0 -30
  466. package/src/cdn/polyfills/spa.js +0 -32
  467. package/src/cdn/polyfills.js +0 -27
  468. package/src/common/config/__mocks__/config.js +0 -11
  469. package/src/common/config/config.js +0 -12
  470. package/src/common/config/state/originals.js +0 -3
  471. package/src/common/util/map-own.js +0 -22
  472. package/src/common/wrap/index.js +0 -16
  473. package/src/features/page_action/aggregate/index.js +0 -114
  474. /package/dist/types/common/config/{state/configurable.d.ts → configurable.d.ts} +0 -0
  475. /package/dist/types/common/config/{state/info.d.ts → info.d.ts} +0 -0
  476. /package/dist/types/common/config/{state/init.d.ts → init.d.ts} +0 -0
  477. /package/dist/types/common/config/{state/loader-config.d.ts → loader-config.d.ts} +0 -0
  478. /package/dist/types/common/config/{state/runtime.d.ts → runtime.d.ts} +0 -0
@@ -10,7 +10,7 @@ var _load = require("../../common/window/load");
10
10
  var _runtime = require("../../common/constants/runtime");
11
11
  var _console = require("../../common/util/console");
12
12
  var _features = require("../../loaders/features/features");
13
- var _config = require("../../common/config/config");
13
+ var _init = require("../../common/config/init");
14
14
  var _utils = require("../session_replay/shared/utils");
15
15
  var _featureGates = require("./feature-gates");
16
16
  var _invoke = require("../../common/util/invoke");
@@ -34,8 +34,7 @@ class InstrumentBase extends _featureBase.FeatureBase {
34
34
  * of its pooled instrumentation data handled by the agent's centralized drain functionality, rather than draining
35
35
  * immediately. Primarily useful for fine-grained control in tests.
36
36
  */
37
- constructor(agentIdentifier, aggregator, featureName) {
38
- let auto = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
37
+ constructor(agentIdentifier, aggregator, featureName, auto = true) {
39
38
  super(agentIdentifier, aggregator, featureName);
40
39
  this.auto = auto;
41
40
 
@@ -51,11 +50,12 @@ class InstrumentBase extends _featureBase.FeatureBase {
51
50
  /**
52
51
  * @type {Promise} Assigned immediately after @see importAggregator runs. Serves as a signal for when the inner async fn finishes execution. Useful for features to await
53
52
  * one another if there are inter-features dependencies.
53
+ * TODO: This is only used for the SPA feature component tests and should be refactored out.
54
54
  */
55
55
  this.onAggregateImported = undefined;
56
56
 
57
57
  /** used in conjunction with newrelic.start() to defer harvesting in features */
58
- if ((0, _config.getConfigurationValue)(this.agentIdentifier, "".concat(this.featureName, ".autoStart")) === false) this.auto = false;
58
+ if ((0, _init.getConfigurationValue)(this.agentIdentifier, "".concat(this.featureName, ".autoStart")) === false) this.auto = false;
59
59
  /** if the feature requires opt-in (!auto-start), it will get registered once the api has been called */
60
60
  if (this.auto) (0, _drain.registerDrain)(agentIdentifier, featureName);else {
61
61
  this.ee.on('manual-start-all', (0, _invoke.single)(() => {
@@ -74,8 +74,7 @@ class InstrumentBase extends _featureBase.FeatureBase {
74
74
  * @param {Object} [argsObjFromInstrument] - any values or references to pass down to aggregate
75
75
  * @returns void
76
76
  */
77
- importAggregator() {
78
- let argsObjFromInstrument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77
+ importAggregator(argsObjFromInstrument = {}) {
79
78
  if (this.featAggregate || !this.auto) return;
80
79
  let loadedSuccessfully;
81
80
  this.onAggregateImported = new Promise(resolve => {
@@ -88,7 +87,7 @@ class InstrumentBase extends _featureBase.FeatureBase {
88
87
  // would require some setup before certain features start
89
88
  const {
90
89
  setupAgentSession
91
- } = await Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "session-manager" */'./agent-session')));
90
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "session-manager" */'./agent-session')));
92
91
  session = setupAgentSession(this.agentIdentifier);
93
92
  }
94
93
  } catch (e) {
@@ -109,7 +108,7 @@ class InstrumentBase extends _featureBase.FeatureBase {
109
108
  }
110
109
  const {
111
110
  lazyFeatureLoader
112
- } = await Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-feature-loader" */'./lazy-feature-loader')));
111
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "lazy-feature-loader" */'./lazy-feature-loader')));
113
112
  const {
114
113
  Aggregate
115
114
  } = await lazyFeatureLoader(this.featureName, 'aggregate');
@@ -22,27 +22,27 @@ function lazyFeatureLoader(featureName, featurePart) {
22
22
  if (featurePart === 'aggregate') {
23
23
  switch (featureName) {
24
24
  case _features.FEATURE_NAMES.ajax:
25
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "ajax-aggregate" */'../ajax/aggregate')));
25
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "ajax-aggregate" */'../ajax/aggregate')));
26
26
  case _features.FEATURE_NAMES.jserrors:
27
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "jserrors-aggregate" */'../jserrors/aggregate')));
27
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "jserrors-aggregate" */'../jserrors/aggregate')));
28
+ case _features.FEATURE_NAMES.genericEvents:
29
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "generic_events-aggregate" */'../generic_events/aggregate')));
28
30
  case _features.FEATURE_NAMES.logging:
29
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "logging-aggregate" */'../logging/aggregate')));
31
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "logging-aggregate" */'../logging/aggregate')));
30
32
  case _features.FEATURE_NAMES.metrics:
31
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "metrics-aggregate" */'../metrics/aggregate')));
32
- case _features.FEATURE_NAMES.pageAction:
33
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "page_action-aggregate" */'../page_action/aggregate')));
33
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "metrics-aggregate" */'../metrics/aggregate')));
34
34
  case _features.FEATURE_NAMES.pageViewEvent:
35
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "page_view_event-aggregate" */'../page_view_event/aggregate')));
35
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "page_view_event-aggregate" */'../page_view_event/aggregate')));
36
36
  case _features.FEATURE_NAMES.pageViewTiming:
37
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "page_view_timing-aggregate" */'../page_view_timing/aggregate')));
37
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "page_view_timing-aggregate" */'../page_view_timing/aggregate')));
38
38
  case _features.FEATURE_NAMES.sessionReplay:
39
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "session_replay-aggregate" */'../session_replay/aggregate')));
39
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "session_replay-aggregate" */'../session_replay/aggregate')));
40
40
  case _features.FEATURE_NAMES.sessionTrace:
41
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "session_trace-aggregate" */'../session_trace/aggregate')));
41
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "session_trace-aggregate" */'../session_trace/aggregate')));
42
42
  case _features.FEATURE_NAMES.spa:
43
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "spa-aggregate" */'../spa/aggregate')));
43
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "spa-aggregate" */'../spa/aggregate')));
44
44
  case _features.FEATURE_NAMES.softNav:
45
- return Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "basic-spa-aggregate" */'../soft_navigations/aggregate')));
45
+ return Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "basic-spa-aggregate" */'../soft_navigations/aggregate')));
46
46
  default:
47
47
  throw new Error("Attempted to load unsupported agent feature: ".concat(featureName, " ").concat(featurePart));
48
48
  }
@@ -7,9 +7,7 @@ exports.debugNR1 = debugNR1;
7
7
  var _nreum = require("../../common/window/nreum");
8
8
  const debugId = 1;
9
9
  const newrelic = (0, _nreum.gosCDN)();
10
- function debugNR1(agentIdentifier, location, event) {
11
- let otherprops = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
12
- let debugName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'SR';
10
+ function debugNR1(agentIdentifier, location, event, otherprops = {}, debugName = 'SR') {
13
11
  const api = agentIdentifier ? newrelic.initializedAgents[agentIdentifier].api.addPageAction : newrelic.addPageAction;
14
12
  let url;
15
13
  try {
package/dist/cjs/index.js CHANGED
@@ -21,12 +21,24 @@ Object.defineProperty(exports, "BrowserAgent", {
21
21
  return _browserAgent.BrowserAgent;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "GenericEvents", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _generic_events.GenericEvents;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "JSErrors", {
25
31
  enumerable: true,
26
32
  get: function () {
27
33
  return _jserrors.JSErrors;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "Logging", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _logging.Logging;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "Metrics", {
31
43
  enumerable: true,
32
44
  get: function () {
@@ -57,6 +69,12 @@ Object.defineProperty(exports, "PageViewTiming", {
57
69
  return _page_view_timing.PageViewTiming;
58
70
  }
59
71
  });
72
+ Object.defineProperty(exports, "SessionReplay", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _session_replay.SessionReplay;
76
+ }
77
+ });
60
78
  Object.defineProperty(exports, "SessionTrace", {
61
79
  enumerable: true,
62
80
  get: function () {
@@ -74,9 +92,12 @@ var _browserAgent = require("./loaders/browser-agent");
74
92
  var _microAgent = require("./loaders/micro-agent");
75
93
  var _ajax = require("./features/ajax");
76
94
  var _jserrors = require("./features/jserrors");
95
+ var _generic_events = require("./features/generic_events");
96
+ var _logging = require("./features/logging");
77
97
  var _metrics = require("./features/metrics");
78
98
  var _page_action = require("./features/page_action");
79
99
  var _page_view_event = require("./features/page_view_event");
80
100
  var _page_view_timing = require("./features/page_view_timing");
81
101
  var _session_trace = require("./features/session_trace");
102
+ var _session_replay = require("./features/session_replay");
82
103
  var _spa = require("./features/spa");
@@ -7,7 +7,6 @@ exports.AgentBase = void 0;
7
7
  var _console = require("../common/util/console");
8
8
  var _constants = require("../features/session_replay/constants");
9
9
  var _uniqueId = require("../common/ids/unique-id");
10
- var _contextualEe = require("../common/event-emitter/contextual-ee");
11
10
  /* eslint-disable n/handle-callback-err */
12
11
 
13
12
  /**
@@ -16,12 +15,8 @@ var _contextualEe = require("../common/event-emitter/contextual-ee");
16
15
 
17
16
  class AgentBase {
18
17
  agentIdentifier;
19
- constructor() {
20
- let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _uniqueId.generateRandomHexString)(16);
18
+ constructor(agentIdentifier = (0, _uniqueId.generateRandomHexString)(16)) {
21
19
  this.agentIdentifier = agentIdentifier;
22
-
23
- // Assign the observation context to the event emitter, so it knows how to create observation contexts
24
- this.ee = _contextualEe.ee.get(agentIdentifier);
25
20
  }
26
21
 
27
22
  /**
@@ -29,10 +24,7 @@ class AgentBase {
29
24
  * @param {string} methodName
30
25
  * @param {...any} args
31
26
  */
32
- #callMethod(methodName) {
33
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
34
- args[_key - 1] = arguments[_key];
35
- }
27
+ #callMethod(methodName, ...args) {
36
28
  if (typeof this.api?.[methodName] !== 'function') (0, _console.warn)(35, methodName);else return this.api[methodName](...args);
37
29
  }
38
30
 
@@ -191,12 +183,12 @@ class AgentBase {
191
183
 
192
184
  /**
193
185
  * Capture a single log.
194
- * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/loginfo/}
186
+ * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/log/}
195
187
  * @param {string} message String to be captured as log message
196
188
  * @param {{customAttributes?: object, level?: 'ERROR'|'TRACE'|'DEBUG'|'INFO'|'WARN'}} [options] customAttributes defaults to `{}` if not assigned, level defaults to `info` if not assigned.
197
189
  */
198
190
  log(message, options) {
199
- return this.#callMethod('logInfo', message, options);
191
+ return this.#callMethod('log', message, options);
200
192
  }
201
193
 
202
194
  /**
@@ -76,8 +76,13 @@ class Agent extends _agentBase.AgentBase {
76
76
  if (this.runSoftNavOverSpa && InstrumentCtor.featureName === _features.FEATURE_NAMES.spa) return;
77
77
  if (!this.runSoftNavOverSpa && InstrumentCtor.featureName === _features.FEATURE_NAMES.softNav) return;
78
78
  const dependencies = (0, _featureDependencies.getFeatureDependencyNames)(InstrumentCtor.featureName);
79
- const hasAllDeps = dependencies.every(featName => featName in this.features); // any other feature(s) this depends on should've been initialized on prior iterations by priority order
80
- if (!hasAllDeps) (0, _console.warn)(36, InstrumentCtor.featureName);
79
+ const missingDependencies = dependencies.filter(featName => !(featName in this.features)); // any other feature(s) this depends on should've been initialized on prior iterations by priority order
80
+ if (missingDependencies.length > 0) {
81
+ (0, _console.warn)(36, {
82
+ targetFeature: InstrumentCtor.featureName,
83
+ missingDependencies
84
+ });
85
+ }
81
86
  this.features[InstrumentCtor.featureName] = new InstrumentCtor(this.agentIdentifier, this.sharedAggregator);
82
87
  });
83
88
  } catch (err) {
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.setAPI = setAPI;
7
7
  exports.setTopLevelCallers = setTopLevelCallers;
8
8
  var _features = require("../features/features");
9
- var _config = require("../../common/config/config");
9
+ var _info = require("../../common/config/info");
10
+ var _runtime = require("../../common/config/runtime");
10
11
  var _handle = require("../../common/event-emitter/handle");
11
12
  var _contextualEe = require("../../common/event-emitter/contextual-ee");
12
13
  var _drain = require("../../common/drain/drain");
13
14
  var _load = require("../../common/window/load");
14
- var _runtime = require("../../common/constants/runtime");
15
+ var _runtime2 = require("../../common/constants/runtime");
15
16
  var _console = require("../../common/util/console");
16
17
  var _constants = require("../../features/metrics/constants");
17
18
  var _nreum = require("../../common/window/nreum");
@@ -30,17 +31,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
30
31
  function setTopLevelCallers() {
31
32
  const nr = (0, _nreum.gosCDN)();
32
33
  _apiMethods.apiMethods.forEach(f => {
33
- nr[f] = function () {
34
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
- args[_key] = arguments[_key];
36
- }
37
- return caller(f, ...args);
38
- };
34
+ nr[f] = (...args) => caller(f, ...args);
39
35
  });
40
- function caller(fnName) {
41
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
42
- args[_key2 - 1] = arguments[_key2];
43
- }
36
+ function caller(fnName, ...args) {
44
37
  let returnVals = [];
45
38
  Object.values(nr.initializedAgents).forEach(val => {
46
39
  if (!val || !val.api) {
@@ -53,8 +46,7 @@ function setTopLevelCallers() {
53
46
  }
54
47
  }
55
48
  const replayRunning = {};
56
- function setAPI(agentIdentifier, forceDrain) {
57
- let runSoftNavOverSpa = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
49
+ function setAPI(agentIdentifier, forceDrain, runSoftNavOverSpa = false) {
58
50
  if (!forceDrain) (0, _drain.registerDrain)(agentIdentifier, 'api');
59
51
  const apiInterface = {};
60
52
  var instanceEE = _contextualEe.ee.get(agentIdentifier);
@@ -65,19 +57,17 @@ function setAPI(agentIdentifier, forceDrain) {
65
57
  });
66
58
  var prefix = 'api-';
67
59
  var spaPrefix = prefix + 'ixn-';
68
- apiInterface.log = function (message) {
69
- let {
70
- customAttributes = {},
71
- level = _constants4.LOG_LEVELS.INFO
72
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
60
+ apiInterface.log = function (message, {
61
+ customAttributes = {},
62
+ level = _constants4.LOG_LEVELS.INFO
63
+ } = {}) {
73
64
  (0, _handle.handle)(_constants.SUPPORTABILITY_METRIC_CHANNEL, ['API/log/called'], undefined, _features.FEATURE_NAMES.metrics, instanceEE);
74
65
  (0, _utils.bufferLog)(instanceEE, message, customAttributes, level);
75
66
  };
76
- apiInterface.wrapLogger = function (parent, functionName) {
77
- let {
78
- customAttributes = {},
79
- level = _constants4.LOG_LEVELS.INFO
80
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
67
+ apiInterface.wrapLogger = (parent, functionName, {
68
+ customAttributes = {},
69
+ level = _constants4.LOG_LEVELS.INFO
70
+ } = {}) => {
81
71
  (0, _handle.handle)(_constants.SUPPORTABILITY_METRIC_CHANNEL, ['API/wrapLogger/called'], undefined, _features.FEATURE_NAMES.metrics, instanceEE);
82
72
  (0, _wrapLogger.wrapLogger)(instanceEE, parent, functionName, {
83
73
  customAttributes,
@@ -89,11 +79,11 @@ function setAPI(agentIdentifier, forceDrain) {
89
79
  _apiMethods.asyncApiMethods.forEach(fnName => {
90
80
  apiInterface[fnName] = apiCall(prefix, fnName, true, 'api');
91
81
  });
92
- apiInterface.addPageAction = apiCall(prefix, 'addPageAction', true, _features.FEATURE_NAMES.pageAction);
82
+ apiInterface.addPageAction = apiCall(prefix, 'addPageAction', true, _features.FEATURE_NAMES.genericEvents);
93
83
  apiInterface.setPageViewName = function (name, host) {
94
84
  if (typeof name !== 'string') return;
95
85
  if (name.charAt(0) !== '/') name = '/' + name;
96
- (0, _config.getRuntime)(agentIdentifier).customTransaction = (host || 'http://custom.transaction') + name;
86
+ (0, _runtime.getRuntime)(agentIdentifier).customTransaction = (host || 'http://custom.transaction') + name;
97
87
  return apiCall(prefix, 'setPageViewName', true)();
98
88
  };
99
89
 
@@ -106,11 +96,11 @@ function setAPI(agentIdentifier, forceDrain) {
106
96
  * @returns @see apiCall
107
97
  */
108
98
  function appendJsAttribute(key, value, apiName, addToBrowserStorage) {
109
- const currentInfo = (0, _config.getInfo)(agentIdentifier);
99
+ const currentInfo = (0, _info.getInfo)(agentIdentifier);
110
100
  if (value === null) {
111
101
  delete currentInfo.jsAttributes[key];
112
102
  } else {
113
- (0, _config.setInfo)(agentIdentifier, {
103
+ (0, _info.setInfo)(agentIdentifier, {
114
104
  ...currentInfo,
115
105
  jsAttributes: {
116
106
  ...currentInfo.jsAttributes,
@@ -120,8 +110,7 @@ function setAPI(agentIdentifier, forceDrain) {
120
110
  }
121
111
  return apiCall(prefix, apiName, true, !!addToBrowserStorage || value === null ? 'session' : undefined)(key, value);
122
112
  }
123
- apiInterface.setCustomAttribute = function (name, value) {
124
- let persistAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
113
+ apiInterface.setCustomAttribute = function (name, value, persistAttribute = false) {
125
114
  if (typeof name !== 'string') {
126
115
  (0, _console.warn)(39, typeof name);
127
116
  return;
@@ -220,14 +209,13 @@ function setAPI(agentIdentifier, forceDrain) {
220
209
  };
221
210
 
222
211
  // theres no window.load event on non-browser scopes, lazy load immediately
223
- if (!_runtime.isBrowserScope) lazyLoad();
212
+ if (!_runtime2.isBrowserScope) lazyLoad();
224
213
  // try to stay out of the way of the window.load event, lazy load once that has finished.
225
214
  else (0, _load.onWindowLoad)(() => lazyLoad(), true);
226
215
  function lazyLoad() {
227
- Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "async-api" */'./apiAsync'))).then(_ref => {
228
- let {
229
- setAPI
230
- } = _ref;
216
+ Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "async-api" */'./apiAsync'))).then(({
217
+ setAPI
218
+ }) => {
231
219
  setAPI(agentIdentifier);
232
220
  (0, _drain.drain)(agentIdentifier, 'api');
233
221
  }).catch(err => {
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.setAPI = setAPI;
7
7
  var _features = require("../features/features");
8
- var _config = require("../../common/config/config");
8
+ var _runtime = require("../../common/config/runtime");
9
9
  var _contextualEe = require("../../common/event-emitter/contextual-ee");
10
10
  var _handle = require("../../common/event-emitter/handle");
11
11
  var _registerHandler = require("../../common/event-emitter/register-handler");
12
12
  var _invoke = require("../../common/util/invoke");
13
13
  var _constants = require("../../features/metrics/constants");
14
- var _runtime = require("../../common/constants/runtime");
14
+ var _runtime2 = require("../../common/constants/runtime");
15
15
  function setAPI(agentIdentifier) {
16
16
  var instanceEE = _contextualEe.ee.get(agentIdentifier);
17
17
  var api = {
@@ -22,43 +22,40 @@ function setAPI(agentIdentifier) {
22
22
  };
23
23
 
24
24
  // Hook all of the api functions up to the queues/stubs created in loader/api.js
25
- Object.entries(api).forEach(_ref => {
26
- let [fnName, fnCall] = _ref;
27
- return (0, _registerHandler.registerHandler)('api-' + fnName, fnCall, 'api', instanceEE);
28
- });
25
+ Object.entries(api).forEach(([fnName, fnCall]) => (0, _registerHandler.registerHandler)('api-' + fnName, fnCall, 'api', instanceEE));
29
26
 
30
27
  // All API functions get passed the time they were called as their
31
28
  // first parameter. These functions can be called asynchronously.
32
29
 
33
30
  function finished(t, providedTime) {
34
- var time = providedTime ? providedTime - _runtime.originTime : t;
31
+ var time = providedTime ? providedTime - _runtime2.originTime : t;
35
32
  (0, _handle.handle)(_constants.CUSTOM_METRIC_CHANNEL, ['finished', {
36
33
  time
37
34
  }], undefined, _features.FEATURE_NAMES.metrics, instanceEE);
38
35
  addToTrace(t, {
39
36
  name: 'finished',
40
- start: time + _runtime.originTime,
37
+ start: time + _runtime2.originTime,
41
38
  origin: 'nr'
42
39
  });
43
- (0, _handle.handle)('api-addPageAction', [time, 'finished'], undefined, _features.FEATURE_NAMES.pageAction, instanceEE);
40
+ (0, _handle.handle)('api-addPageAction', [time, 'finished'], undefined, _features.FEATURE_NAMES.genericEvents, instanceEE);
44
41
  }
45
42
  function addToTrace(t, evt) {
46
43
  if (!(evt && typeof evt === 'object' && evt.name && evt.start)) return;
47
44
  var report = {
48
45
  n: evt.name,
49
- s: evt.start - _runtime.originTime,
50
- e: (evt.end || evt.start) - _runtime.originTime,
46
+ s: evt.start - _runtime2.originTime,
47
+ e: (evt.end || evt.start) - _runtime2.originTime,
51
48
  o: evt.origin || '',
52
49
  t: 'api'
53
50
  };
54
51
  (0, _handle.handle)('bstApi', [report], undefined, _features.FEATURE_NAMES.sessionTrace, instanceEE);
55
52
  }
56
53
  function setErrorHandler(t, handler) {
57
- (0, _config.getRuntime)(agentIdentifier).onerror = handler;
54
+ (0, _runtime.getRuntime)(agentIdentifier).onerror = handler;
58
55
  }
59
56
  var releaseCount = 0;
60
57
  function addRelease(t, name, id) {
61
58
  if (++releaseCount > 10) return;
62
- (0, _config.getRuntime)(agentIdentifier).releaseIds[name.slice(-200)] = ('' + id).slice(-200);
59
+ (0, _runtime.getRuntime)(agentIdentifier).releaseIds[name.slice(-200)] = ('' + id).slice(-200);
63
60
  }
64
61
  }
@@ -12,8 +12,9 @@ var _instrument4 = require("../features/jserrors/instrument");
12
12
  var _instrument5 = require("../features/ajax/instrument");
13
13
  var _instrument6 = require("../features/session_trace/instrument");
14
14
  var _instrument7 = require("../features/spa/instrument");
15
- var _instrument8 = require("../features/page_action/instrument");
16
- var _instrument9 = require("../features/session_replay/instrument");
15
+ var _instrument8 = require("../features/session_replay/instrument");
16
+ var _instrument9 = require("../features/generic_events/instrument");
17
+ var _instrument10 = require("../features/logging/instrument");
17
18
  /**
18
19
  * An agent class with all feature modules available. Features may be disabled and enabled via runtime configuration.
19
20
  * The BrowserAgent class is the most convenient and reliable option for most use cases.
@@ -22,7 +23,7 @@ class BrowserAgent extends _agent.Agent {
22
23
  constructor(args) {
23
24
  super({
24
25
  ...args,
25
- features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument3.Instrument, _instrument8.Instrument, _instrument4.Instrument, _instrument7.Instrument, _instrument9.Instrument],
26
+ features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument7.Instrument, _instrument8.Instrument, _instrument9.Instrument, _instrument10.Instrument],
26
27
  loaderType: 'browser-agent'
27
28
  });
28
29
  }
@@ -6,29 +6,29 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.configure = configure;
7
7
  var _api = require("../api/api");
8
8
  var _nreum = require("../../common/window/nreum");
9
- var _config = require("../../common/config/config");
9
+ var _info = require("../../common/config/info");
10
+ var _init = require("../../common/config/init");
11
+ var _loaderConfig = require("../../common/config/loader-config");
12
+ var _runtime = require("../../common/config/runtime");
10
13
  var _featureFlags = require("../../common/util/feature-flags");
11
- var _runtime = require("../../common/constants/runtime");
14
+ var _runtime2 = require("../../common/constants/runtime");
12
15
  var _publicPath = require("./public-path");
16
+ var _contextualEe = require("../../common/event-emitter/contextual-ee");
13
17
  let alreadySetOnce = false; // the configure() function can run multiple times in agent lifecycle
14
18
 
15
19
  /**
16
20
  * Sets or re-sets the agent's configuration values from global settings. This also attach those as properties to the agent instance.
17
21
  */
18
- function configure(agent) {
19
- let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
20
- let loaderType = arguments.length > 2 ? arguments[2] : undefined;
21
- let forceDrain = arguments.length > 3 ? arguments[3] : undefined;
22
+ function configure(agent, opts = {}, loaderType, forceDrain) {
22
23
  // eslint-disable-next-line camelcase
23
24
  let {
24
25
  init,
25
26
  info,
26
27
  loader_config,
27
- runtime = {
28
- loaderType
29
- },
28
+ runtime = {},
30
29
  exposed = true
31
30
  } = opts;
31
+ runtime.loaderType = loaderType;
32
32
  const nr = (0, _nreum.gosCDN)();
33
33
  if (!info) {
34
34
  init = nr.init;
@@ -36,16 +36,16 @@ function configure(agent) {
36
36
  // eslint-disable-next-line camelcase
37
37
  loader_config = nr.loader_config;
38
38
  }
39
- (0, _config.setConfiguration)(agent.agentIdentifier, init || {});
39
+ (0, _init.setConfiguration)(agent.agentIdentifier, init || {});
40
40
  // eslint-disable-next-line camelcase
41
- (0, _config.setLoaderConfig)(agent.agentIdentifier, loader_config || {});
41
+ (0, _loaderConfig.setLoaderConfig)(agent.agentIdentifier, loader_config || {});
42
42
  info.jsAttributes ??= {};
43
- if (_runtime.isWorkerScope) {
43
+ if (_runtime2.isWorkerScope) {
44
44
  // add a default attr to all worker payloads
45
45
  info.jsAttributes.isWorker = true;
46
46
  }
47
- (0, _config.setInfo)(agent.agentIdentifier, info);
48
- const updatedInit = (0, _config.getConfiguration)(agent.agentIdentifier);
47
+ (0, _info.setInfo)(agent.agentIdentifier, info);
48
+ const updatedInit = (0, _init.getConfiguration)(agent.agentIdentifier);
49
49
  const internalTrafficList = [info.beacon, info.errorBeacon];
50
50
  if (!alreadySetOnce) {
51
51
  if (updatedInit.proxy.assets) {
@@ -61,7 +61,8 @@ function configure(agent) {
61
61
  }
62
62
  runtime.denyList = [...(updatedInit.ajax.deny_list || []), ...(updatedInit.ajax.block_internal ? internalTrafficList : [])];
63
63
  runtime.ptid = agent.agentIdentifier;
64
- (0, _config.setRuntime)(agent.agentIdentifier, runtime);
64
+ (0, _runtime.setRuntime)(agent.agentIdentifier, runtime);
65
+ agent.ee = _contextualEe.ee.get(agent.agentIdentifier);
65
66
  if (agent.api === undefined) agent.api = (0, _api.setAPI)(agent.agentIdentifier, forceDrain, agent.runSoftNavOverSpa);
66
67
  if (agent.exposed === undefined) agent.exposed = exposed;
67
68
  alreadySetOnce = true;
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getEnabledFeatures = getEnabledFeatures;
7
7
  var _features = require("./features");
8
- var _config = require("../../common/config/config");
8
+ var _init = require("../../common/config/init");
9
9
  const featureNames = Object.values(_features.FEATURE_NAMES);
10
10
  function isEnabled(name, agentIdentifier) {
11
- return (0, _config.getConfigurationValue)(agentIdentifier, "".concat(name, ".enabled")) === true;
11
+ return (0, _init.getConfigurationValue)(agentIdentifier, "".concat(name, ".enabled")) === true;
12
12
  }
13
13
  function getEnabledFeatures(agentIdentifier) {
14
14
  const enabledFeatures = {};
@@ -6,9 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.featurePriority = exports.FEATURE_NAMES = void 0;
7
7
  const FEATURE_NAMES = exports.FEATURE_NAMES = {
8
8
  ajax: 'ajax',
9
+ genericEvents: 'generic_events',
9
10
  jserrors: 'jserrors',
10
11
  logging: 'logging',
11
12
  metrics: 'metrics',
13
+ /**
14
+ * @deprecated This feature has been replaced by Generic Events. Use/Import `GenericEvents` instead. This wrapper will be removed in a future release
15
+ */
12
16
  pageAction: 'page_action',
13
17
  pageViewEvent: 'page_view_event',
14
18
  pageViewTiming: 'page_view_timing',
@@ -30,8 +34,8 @@ const featurePriority = exports.featurePriority = {
30
34
  [FEATURE_NAMES.spa]: 5,
31
35
  [FEATURE_NAMES.ajax]: 6,
32
36
  [FEATURE_NAMES.sessionTrace]: 7,
33
- [FEATURE_NAMES.pageAction]: 8,
34
- [FEATURE_NAMES.softNav]: 9,
35
- [FEATURE_NAMES.sessionReplay]: 10,
36
- [FEATURE_NAMES.logging]: 11
37
+ [FEATURE_NAMES.softNav]: 8,
38
+ [FEATURE_NAMES.sessionReplay]: 9,
39
+ [FEATURE_NAMES.logging]: 10,
40
+ [FEATURE_NAMES.genericEvents]: 11
37
41
  };
@@ -9,7 +9,10 @@ var _enabledFeatures = require("./features/enabled-features");
9
9
  var _configure = require("./configure/configure");
10
10
  var _aggregator = require("../common/aggregate/aggregator");
11
11
  var _nreum = require("../common/window/nreum");
12
- var _config = require("../common/config/config");
12
+ var _info = require("../common/config/info");
13
+ var _init = require("../common/config/init");
14
+ var _loaderConfig = require("../common/config/loader-config");
15
+ var _runtime = require("../common/config/runtime");
13
16
  var _features = require("./features/features");
14
17
  var _console = require("../common/util/console");
15
18
  var _load = require("../common/window/load");
@@ -17,7 +20,7 @@ var _agentBase = require("./agent-base");
17
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } // loader files
19
22
  // core files
20
- const nonAutoFeatures = [_features.FEATURE_NAMES.jserrors, _features.FEATURE_NAMES.pageAction, _features.FEATURE_NAMES.metrics];
23
+ const nonAutoFeatures = [_features.FEATURE_NAMES.jserrors, _features.FEATURE_NAMES.genericEvents, _features.FEATURE_NAMES.metrics];
21
24
 
22
25
  /**
23
26
  * A minimal agent class designed to only respond to manual user input. As such, this class does not
@@ -50,14 +53,14 @@ class MicroAgent extends _agentBase.AgentBase {
50
53
  * @param {string|string[]|undefined} name The feature name(s) to start. If no name(s) are passed, all features will be started
51
54
  */
52
55
  this.start = features => this.run(features);
53
- this.run(nonAutoFeatures.filter(featureName => (0, _config.getConfigurationValue)(this.agentIdentifier, "".concat(featureName, ".autoStart"))));
56
+ this.run(nonAutoFeatures.filter(featureName => (0, _init.getConfigurationValue)(this.agentIdentifier, "".concat(featureName, ".autoStart"))));
54
57
  }
55
58
  get config() {
56
59
  return {
57
- info: (0, _config.getInfo)(this.agentIdentifier),
58
- init: (0, _config.getConfiguration)(this.agentIdentifier),
59
- loader_config: (0, _config.getLoaderConfig)(this.agentIdentifier),
60
- runtime: (0, _config.getRuntime)(this.agentIdentifier)
60
+ info: (0, _info.getInfo)(this.agentIdentifier),
61
+ init: (0, _init.getConfiguration)(this.agentIdentifier),
62
+ loader_config: (0, _loaderConfig.getLoaderConfig)(this.agentIdentifier),
63
+ runtime: (0, _runtime.getRuntime)(this.agentIdentifier)
61
64
  };
62
65
  }
63
66
  run(features) {
@@ -83,15 +86,13 @@ class MicroAgent extends _agentBase.AgentBase {
83
86
  // these features do not import an "instrument" file, meaning they are only hooked up to the API.
84
87
  nonAutoFeatures.forEach(f => {
85
88
  if (enabledFeatures[f] && features.includes(f)) {
86
- Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-feature-loader" */'../features/utils/lazy-feature-loader'))).then(_ref => {
87
- let {
88
- lazyFeatureLoader
89
- } = _ref;
89
+ Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "lazy-feature-loader" */'../features/utils/lazy-feature-loader'))).then(({
90
+ lazyFeatureLoader
91
+ }) => {
90
92
  return lazyFeatureLoader(f, 'aggregate');
91
- }).then(_ref2 => {
92
- let {
93
- Aggregate
94
- } = _ref2;
93
+ }).then(({
94
+ Aggregate
95
+ }) => {
95
96
  this.features[f] = new Aggregate(this.agentIdentifier, this.sharedAggregator);
96
97
  }).catch(err => (0, _console.warn)(25, err));
97
98
  }