@newrelic/browser-agent 1.262.0 → 1.264.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 (259) hide show
  1. package/CHANGELOG.md +21 -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 +3 -3
  7. package/dist/cjs/common/config/state/configurable.js +4 -4
  8. package/dist/cjs/common/config/state/init.js +11 -6
  9. package/dist/cjs/common/constants/env.cdn.js +1 -1
  10. package/dist/cjs/common/constants/env.npm.js +1 -1
  11. package/dist/cjs/common/constants/runtime.js +1 -3
  12. package/dist/cjs/common/context/shared-context.js +2 -2
  13. package/dist/cjs/common/drain/drain.js +5 -5
  14. package/dist/cjs/common/harvest/harvest.js +3 -3
  15. package/dist/cjs/common/serialize/bel-serializer.js +2 -2
  16. package/dist/cjs/common/session/session-entity.js +3 -3
  17. package/dist/cjs/common/timing/time-keeper.js +13 -2
  18. package/dist/cjs/common/url/encode.js +3 -5
  19. package/dist/cjs/common/util/console.js +3 -4
  20. package/dist/cjs/common/util/obfuscate.js +3 -3
  21. package/dist/cjs/common/util/submit-data.js +0 -1
  22. package/dist/cjs/common/vitals/vital-metric.js +1 -1
  23. package/dist/cjs/common/wrap/wrap-logger.js +1 -2
  24. package/dist/cjs/common/wrap/wrap-xhr.js +1 -1
  25. package/dist/cjs/features/ajax/aggregate/index.js +1 -1
  26. package/dist/cjs/features/ajax/instrument/index.js +1 -1
  27. package/dist/cjs/features/generic_events/aggregate/index.js +137 -0
  28. package/dist/cjs/features/generic_events/constants.js +8 -0
  29. package/dist/cjs/features/generic_events/index.js +12 -0
  30. package/dist/cjs/features/generic_events/instrument/index.js +27 -0
  31. package/dist/cjs/features/jserrors/aggregate/index.js +13 -12
  32. package/dist/cjs/features/jserrors/instrument/index.js +1 -1
  33. package/dist/cjs/features/logging/aggregate/index.js +6 -6
  34. package/dist/cjs/features/logging/constants.js +2 -5
  35. package/dist/cjs/features/logging/instrument/index.js +1 -1
  36. package/dist/cjs/features/metrics/aggregate/index.js +17 -1
  37. package/dist/cjs/features/metrics/instrument/index.js +1 -1
  38. package/dist/cjs/features/page_action/instrument/index.js +6 -6
  39. package/dist/cjs/features/page_view_event/aggregate/index.js +21 -5
  40. package/dist/cjs/features/page_view_event/aggregate/initialized-features.js +1 -1
  41. package/dist/cjs/features/page_view_event/instrument/index.js +1 -1
  42. package/dist/cjs/features/page_view_timing/aggregate/index.js +3 -3
  43. package/dist/cjs/features/page_view_timing/instrument/index.js +1 -1
  44. package/dist/cjs/features/session_replay/aggregate/index.js +3 -3
  45. package/dist/cjs/features/session_replay/instrument/index.js +1 -1
  46. package/dist/cjs/features/session_replay/shared/recorder.js +1 -1
  47. package/dist/cjs/features/session_replay/shared/stylesheet-evaluator.js +1 -1
  48. package/dist/cjs/features/session_trace/aggregate/index.js +1 -1
  49. package/dist/cjs/features/session_trace/aggregate/trace/storage.js +2 -2
  50. package/dist/cjs/features/session_trace/instrument/index.js +1 -1
  51. package/dist/cjs/features/soft_navigations/aggregate/bel-node.js +1 -1
  52. package/dist/cjs/features/soft_navigations/aggregate/index.js +1 -1
  53. package/dist/cjs/features/soft_navigations/aggregate/interaction.js +5 -5
  54. package/dist/cjs/features/soft_navigations/instrument/index.js +1 -1
  55. package/dist/cjs/features/spa/aggregate/index.js +3 -4
  56. package/dist/cjs/features/spa/aggregate/interaction.js +2 -2
  57. package/dist/cjs/features/spa/aggregate/serializer.js +1 -2
  58. package/dist/cjs/features/spa/instrument/index.js +1 -1
  59. package/dist/cjs/features/utils/aggregate-base.js +6 -3
  60. package/dist/cjs/features/utils/instrument-base.js +2 -2
  61. package/dist/cjs/features/utils/lazy-feature-loader.js +2 -2
  62. package/dist/cjs/index.js +21 -0
  63. package/dist/cjs/loaders/agent-base.js +1 -5
  64. package/dist/cjs/loaders/agent.js +3 -4
  65. package/dist/cjs/loaders/api/api.js +10 -8
  66. package/dist/cjs/loaders/api/apiAsync.js +1 -1
  67. package/dist/cjs/loaders/browser-agent.js +4 -3
  68. package/dist/cjs/loaders/configure/configure.js +4 -3
  69. package/dist/cjs/loaders/features/features.js +8 -4
  70. package/dist/cjs/loaders/micro-agent.js +6 -6
  71. package/dist/esm/cdn/experimental.js +2 -5
  72. package/dist/esm/cdn/pro.js +2 -2
  73. package/dist/esm/cdn/spa.js +2 -2
  74. package/dist/esm/common/aggregate/aggregator.js +3 -3
  75. package/dist/esm/common/config/state/configurable.js +4 -4
  76. package/dist/esm/common/config/state/init.js +11 -6
  77. package/dist/esm/common/constants/env.cdn.js +1 -1
  78. package/dist/esm/common/constants/env.npm.js +1 -1
  79. package/dist/esm/common/constants/runtime.js +0 -2
  80. package/dist/esm/common/context/shared-context.js +2 -2
  81. package/dist/esm/common/drain/drain.js +5 -5
  82. package/dist/esm/common/harvest/harvest.js +4 -4
  83. package/dist/esm/common/serialize/bel-serializer.js +2 -2
  84. package/dist/esm/common/session/session-entity.js +4 -4
  85. package/dist/esm/common/timing/time-keeper.js +12 -2
  86. package/dist/esm/common/url/encode.js +3 -5
  87. package/dist/esm/common/util/console.js +3 -4
  88. package/dist/esm/common/util/obfuscate.js +3 -3
  89. package/dist/esm/common/util/submit-data.js +0 -1
  90. package/dist/esm/common/vitals/vital-metric.js +1 -1
  91. package/dist/esm/common/wrap/wrap-logger.js +1 -2
  92. package/dist/esm/common/wrap/wrap-xhr.js +1 -1
  93. package/dist/esm/features/ajax/aggregate/index.js +1 -1
  94. package/dist/esm/features/ajax/instrument/index.js +1 -1
  95. package/dist/esm/features/generic_events/aggregate/index.js +129 -0
  96. package/dist/esm/features/generic_events/constants.js +2 -0
  97. package/dist/esm/features/generic_events/index.js +1 -0
  98. package/dist/esm/features/generic_events/instrument/index.js +20 -0
  99. package/dist/esm/features/jserrors/aggregate/index.js +13 -12
  100. package/dist/esm/features/jserrors/instrument/index.js +1 -1
  101. package/dist/esm/features/logging/aggregate/index.js +7 -7
  102. package/dist/esm/features/logging/constants.js +1 -4
  103. package/dist/esm/features/logging/instrument/index.js +1 -1
  104. package/dist/esm/features/metrics/aggregate/index.js +17 -1
  105. package/dist/esm/features/metrics/instrument/index.js +1 -1
  106. package/dist/esm/features/page_action/instrument/index.js +7 -6
  107. package/dist/esm/features/page_view_event/aggregate/index.js +22 -6
  108. package/dist/esm/features/page_view_event/aggregate/initialized-features.js +1 -1
  109. package/dist/esm/features/page_view_event/instrument/index.js +1 -1
  110. package/dist/esm/features/page_view_timing/aggregate/index.js +3 -3
  111. package/dist/esm/features/page_view_timing/instrument/index.js +1 -1
  112. package/dist/esm/features/session_replay/aggregate/index.js +3 -3
  113. package/dist/esm/features/session_replay/instrument/index.js +1 -1
  114. package/dist/esm/features/session_replay/shared/recorder.js +1 -1
  115. package/dist/esm/features/session_replay/shared/stylesheet-evaluator.js +1 -1
  116. package/dist/esm/features/session_trace/aggregate/index.js +1 -1
  117. package/dist/esm/features/session_trace/aggregate/trace/storage.js +2 -2
  118. package/dist/esm/features/session_trace/instrument/index.js +1 -1
  119. package/dist/esm/features/soft_navigations/aggregate/bel-node.js +1 -1
  120. package/dist/esm/features/soft_navigations/aggregate/index.js +1 -1
  121. package/dist/esm/features/soft_navigations/aggregate/interaction.js +5 -5
  122. package/dist/esm/features/soft_navigations/instrument/index.js +1 -1
  123. package/dist/esm/features/spa/aggregate/index.js +3 -4
  124. package/dist/esm/features/spa/aggregate/interaction.js +2 -2
  125. package/dist/esm/features/spa/aggregate/serializer.js +1 -2
  126. package/dist/esm/features/spa/instrument/index.js +1 -1
  127. package/dist/esm/features/utils/aggregate-base.js +7 -4
  128. package/dist/esm/features/utils/instrument-base.js +2 -2
  129. package/dist/esm/features/utils/lazy-feature-loader.js +2 -2
  130. package/dist/esm/index.js +3 -0
  131. package/dist/esm/loaders/agent-base.js +1 -5
  132. package/dist/esm/loaders/agent.js +3 -4
  133. package/dist/esm/loaders/api/api.js +10 -8
  134. package/dist/esm/loaders/api/apiAsync.js +1 -1
  135. package/dist/esm/loaders/browser-agent.js +3 -2
  136. package/dist/esm/loaders/configure/configure.js +4 -3
  137. package/dist/esm/loaders/features/features.js +8 -4
  138. package/dist/esm/loaders/micro-agent.js +6 -6
  139. package/dist/types/common/aggregate/aggregator.d.ts.map +1 -1
  140. package/dist/types/common/config/state/init.d.ts.map +1 -1
  141. package/dist/types/common/constants/runtime.d.ts +0 -1
  142. package/dist/types/common/constants/runtime.d.ts.map +1 -1
  143. package/dist/types/common/drain/drain.d.ts.map +1 -1
  144. package/dist/types/common/serialize/bel-serializer.d.ts.map +1 -1
  145. package/dist/types/common/timing/time-keeper.d.ts +2 -1
  146. package/dist/types/common/timing/time-keeper.d.ts.map +1 -1
  147. package/dist/types/common/url/encode.d.ts.map +1 -1
  148. package/dist/types/common/util/console.d.ts +1 -1
  149. package/dist/types/common/util/console.d.ts.map +1 -1
  150. package/dist/types/common/util/submit-data.d.ts.map +1 -1
  151. package/dist/types/common/wrap/wrap-logger.d.ts.map +1 -1
  152. package/dist/types/features/{page_action → generic_events}/aggregate/index.d.ts +7 -5
  153. package/dist/types/features/generic_events/aggregate/index.d.ts.map +1 -0
  154. package/dist/types/features/generic_events/constants.d.ts +2 -0
  155. package/dist/types/features/generic_events/constants.d.ts.map +1 -0
  156. package/dist/types/features/generic_events/index.d.ts +2 -0
  157. package/dist/types/features/generic_events/index.d.ts.map +1 -0
  158. package/dist/types/features/generic_events/instrument/index.d.ts +6 -0
  159. package/dist/types/features/generic_events/instrument/index.d.ts.map +1 -0
  160. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  161. package/dist/types/features/logging/constants.d.ts +0 -3
  162. package/dist/types/features/logging/constants.d.ts.map +1 -1
  163. package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -1
  164. package/dist/types/features/page_action/instrument/index.d.ts +5 -4
  165. package/dist/types/features/page_action/instrument/index.d.ts.map +1 -1
  166. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  167. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  168. package/dist/types/features/session_replay/shared/recorder.d.ts.map +1 -1
  169. package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
  170. package/dist/types/features/spa/aggregate/interaction.d.ts.map +1 -1
  171. package/dist/types/features/spa/aggregate/serializer.d.ts.map +1 -1
  172. package/dist/types/features/utils/aggregate-base.d.ts.map +1 -1
  173. package/dist/types/index.d.ts +3 -0
  174. package/dist/types/loaders/agent-base.d.ts +0 -1
  175. package/dist/types/loaders/agent-base.d.ts.map +1 -1
  176. package/dist/types/loaders/agent.d.ts.map +1 -1
  177. package/dist/types/loaders/api/api.d.ts.map +1 -1
  178. package/dist/types/loaders/browser-agent.d.ts.map +1 -1
  179. package/dist/types/loaders/configure/configure.d.ts.map +1 -1
  180. package/dist/types/loaders/features/features.d.ts +1 -0
  181. package/dist/types/loaders/features/features.d.ts.map +1 -1
  182. package/package.json +25 -6
  183. package/src/cdn/experimental.js +2 -4
  184. package/src/cdn/pro.js +2 -2
  185. package/src/cdn/spa.js +2 -2
  186. package/src/common/aggregate/aggregator.js +2 -3
  187. package/src/common/config/state/configurable.js +4 -4
  188. package/src/common/config/state/init.js +6 -4
  189. package/src/common/constants/runtime.js +0 -2
  190. package/src/common/context/shared-context.js +2 -2
  191. package/src/common/drain/drain.js +4 -5
  192. package/src/common/harvest/harvest.js +4 -4
  193. package/src/common/serialize/bel-serializer.js +1 -2
  194. package/src/common/session/session-entity.js +4 -4
  195. package/src/common/timing/time-keeper.js +14 -2
  196. package/src/common/url/encode.js +2 -3
  197. package/src/common/util/console.js +3 -4
  198. package/src/common/util/obfuscate.js +3 -3
  199. package/src/common/util/submit-data.js +0 -1
  200. package/src/common/wrap/wrap-logger.js +1 -2
  201. package/src/common/wrap/wrap-xhr.js +1 -1
  202. package/src/features/generic_events/aggregate/index.js +133 -0
  203. package/src/features/generic_events/constants.js +3 -0
  204. package/src/features/generic_events/index.js +1 -0
  205. package/src/features/generic_events/instrument/index.js +22 -0
  206. package/src/features/jserrors/aggregate/index.js +4 -5
  207. package/src/features/logging/aggregate/index.js +6 -6
  208. package/src/features/logging/constants.js +0 -4
  209. package/src/features/metrics/aggregate/index.js +12 -0
  210. package/src/features/page_action/instrument/index.js +6 -6
  211. package/src/features/page_view_event/aggregate/index.js +22 -5
  212. package/src/features/page_view_event/aggregate/initialized-features.js +1 -1
  213. package/src/features/page_view_timing/aggregate/index.js +1 -2
  214. package/src/features/session_replay/aggregate/index.js +1 -1
  215. package/src/features/session_replay/shared/recorder.js +1 -1
  216. package/src/features/spa/aggregate/index.js +2 -3
  217. package/src/features/spa/aggregate/interaction.js +1 -2
  218. package/src/features/spa/aggregate/serializer.js +1 -2
  219. package/src/features/utils/aggregate-base.js +7 -4
  220. package/src/features/utils/instrument-base.js +2 -2
  221. package/src/features/utils/lazy-feature-loader.js +2 -2
  222. package/src/index.js +3 -0
  223. package/src/loaders/agent-base.js +1 -5
  224. package/src/loaders/agent.js +3 -4
  225. package/src/loaders/api/api.js +10 -8
  226. package/src/loaders/api/apiAsync.js +1 -1
  227. package/src/loaders/browser-agent.js +5 -3
  228. package/src/loaders/configure/configure.js +5 -1
  229. package/src/loaders/features/features.js +8 -4
  230. package/src/loaders/micro-agent.js +6 -6
  231. package/dist/cjs/cdn/polyfills/lite.js +0 -16
  232. package/dist/cjs/cdn/polyfills/pro.js +0 -21
  233. package/dist/cjs/cdn/polyfills/spa.js +0 -22
  234. package/dist/cjs/cdn/polyfills.js +0 -24
  235. package/dist/cjs/common/util/map-own.js +0 -31
  236. package/dist/cjs/features/page_action/aggregate/index.js +0 -121
  237. package/dist/esm/cdn/polyfills/lite.js +0 -14
  238. package/dist/esm/cdn/polyfills/pro.js +0 -19
  239. package/dist/esm/cdn/polyfills/spa.js +0 -20
  240. package/dist/esm/cdn/polyfills.js +0 -27
  241. package/dist/esm/common/util/map-own.js +0 -24
  242. package/dist/esm/features/page_action/aggregate/index.js +0 -114
  243. package/dist/types/cdn/polyfills/lite.d.ts +0 -2
  244. package/dist/types/cdn/polyfills/lite.d.ts.map +0 -1
  245. package/dist/types/cdn/polyfills/pro.d.ts +0 -2
  246. package/dist/types/cdn/polyfills/pro.d.ts.map +0 -1
  247. package/dist/types/cdn/polyfills/spa.d.ts +0 -2
  248. package/dist/types/cdn/polyfills/spa.d.ts.map +0 -1
  249. package/dist/types/cdn/polyfills.d.ts +0 -2
  250. package/dist/types/cdn/polyfills.d.ts.map +0 -1
  251. package/dist/types/common/util/map-own.d.ts +0 -3
  252. package/dist/types/common/util/map-own.d.ts.map +0 -1
  253. package/dist/types/features/page_action/aggregate/index.d.ts.map +0 -1
  254. package/src/cdn/polyfills/lite.js +0 -20
  255. package/src/cdn/polyfills/pro.js +0 -30
  256. package/src/cdn/polyfills/spa.js +0 -32
  257. package/src/cdn/polyfills.js +0 -27
  258. package/src/common/util/map-own.js +0 -22
  259. package/src/features/page_action/aggregate/index.js +0 -114
@@ -1,114 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- import { mapOwn } from '../../../common/util/map-own';
7
- import { stringify } from '../../../common/util/stringify';
8
- import { registerHandler as register } from '../../../common/event-emitter/register-handler';
9
- import { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';
10
- import { cleanURL } from '../../../common/url/clean-url';
11
- import { getConfigurationValue, getInfo, getRuntime } from '../../../common/config/config';
12
- import { FEATURE_NAME } from '../constants';
13
- import { isBrowserScope } from '../../../common/constants/runtime';
14
- import { AggregateBase } from '../../utils/aggregate-base';
15
- import { deregisterDrain } from '../../../common/drain/drain';
16
- export class Aggregate extends AggregateBase {
17
- static featureName = FEATURE_NAME;
18
- constructor(agentIdentifier, aggregator) {
19
- var _this;
20
- super(agentIdentifier, aggregator, FEATURE_NAME);
21
- _this = this;
22
- this.eventsPerMinute = 240;
23
- this.harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'page_action.harvestTimeSeconds') || getConfigurationValue(this.agentIdentifier, 'ins.harvestTimeSeconds') || 30;
24
- this.eventsPerHarvest = this.eventsPerMinute * this.harvestTimeSeconds / 60;
25
- this.referrerUrl = undefined;
26
- this.currentEvents = undefined;
27
- this.events = [];
28
- this.att = getInfo(this.agentIdentifier).jsAttributes; // per-agent, aggregators-shared info context
29
-
30
- if (isBrowserScope && document.referrer) this.referrerUrl = cleanURL(document.referrer);
31
- register('api-addPageAction', function () {
32
- return _this.addPageAction(...arguments);
33
- }, this.featureName, this.ee);
34
- this.waitForFlags(['ins']).then(_ref => {
35
- let [insFlag] = _ref;
36
- if (insFlag) {
37
- const scheduler = new HarvestScheduler('ins', {
38
- onFinished: function () {
39
- return _this.onHarvestFinished(...arguments);
40
- }
41
- }, this);
42
- scheduler.harvest.on('ins', function () {
43
- return _this.onHarvestStarted(...arguments);
44
- });
45
- scheduler.startTimer(this.harvestTimeSeconds, 0);
46
- this.drain();
47
- } else {
48
- this.blocked = true; // if rum response determines that customer lacks entitlements for ins endpoint, this feature shouldn't harvest
49
- deregisterDrain(this.agentIdentifier, this.featureName);
50
- }
51
- });
52
- }
53
- onHarvestStarted(options) {
54
- const {
55
- userAttributes,
56
- atts
57
- } = getInfo(this.agentIdentifier);
58
- var payload = {
59
- qs: {
60
- ua: userAttributes,
61
- at: atts
62
- },
63
- body: {
64
- ins: this.events
65
- }
66
- };
67
- if (options.retry) {
68
- this.currentEvents = this.events;
69
- }
70
- this.events = [];
71
- return payload;
72
- }
73
- onHarvestFinished(result) {
74
- if (result && result.sent && result.retry && this.currentEvents) {
75
- this.events = this.events.concat(this.currentEvents);
76
- this.currentEvents = null;
77
- }
78
- }
79
-
80
- // WARNING: Insights times are in seconds. EXCEPT timestamp, which is in ms.
81
- addPageAction(t, name, attributes) {
82
- if (this.events.length >= this.eventsPerHarvest || this.blocked) return;
83
- var width;
84
- var height;
85
- var eventAttributes = {};
86
- if (isBrowserScope && window.document.documentElement) {
87
- // Doesn't include the nav bar when it disappears in mobile safari
88
- // https://github.com/jquery/jquery/blob/10399ddcf8a239acc27bdec9231b996b178224d3/src/dimensions.js#L23
89
- width = window.document.documentElement.clientWidth;
90
- height = window.document.documentElement.clientHeight;
91
- }
92
- const agentRuntime = getRuntime(this.agentIdentifier);
93
- var defaults = {
94
- timestamp: agentRuntime.timeKeeper.convertRelativeTimestamp(t),
95
- timeSinceLoad: t / 1000,
96
- browserWidth: width,
97
- browserHeight: height,
98
- referrerUrl: this.referrerUrl,
99
- currentUrl: cleanURL('' + location),
100
- pageUrl: cleanURL(agentRuntime.origin),
101
- eventType: 'PageAction'
102
- };
103
- mapOwn(defaults, set);
104
- mapOwn(getInfo(this.agentIdentifier).jsAttributes, set);
105
- if (attributes && typeof attributes === 'object') {
106
- mapOwn(attributes, set);
107
- }
108
- eventAttributes.actionName = name || '';
109
- this.events.push(eventAttributes);
110
- function set(key, val) {
111
- eventAttributes[key] = val && typeof val === 'object' ? stringify(val) : val;
112
- }
113
- }
114
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=lite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lite.d.ts","sourceRoot":"","sources":["../../../../src/cdn/polyfills/lite.js"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pro.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pro.d.ts","sourceRoot":"","sources":["../../../../src/cdn/polyfills/pro.js"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=spa.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../../src/cdn/polyfills/spa.js"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=polyfills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../../../src/cdn/polyfills.js"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export function mapOwn(obj: object, fn: MapOwnCallback): any[];
2
- export type MapOwnCallback = Function;
3
- //# sourceMappingURL=map-own.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map-own.d.ts","sourceRoot":"","sources":["../../../../src/common/util/map-own.js"],"names":[],"mappings":"AAoBO,4BALI,MAAM,MACN,cAAc,GAEZ,GAAG,EAAE,CAGsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/page_action/aggregate/index.js"],"names":[],"mappings":"AAgBA;IACE,2BAAiC;IACjC,mDA2BC;IAzBC,wBAA0B;IAC1B,wBAAsL;IACtL,yBAA2E;IAC3E,gCAA4B;IAC5B,wCAA8B;IAE9B,cAAgB;IAEhB,SAAqD;IAmBvD;;;;;;;;MAkBC;IAED,qCAKC;IAGD,wDAqCC;CACF;8BApG6B,4BAA4B"}
@@ -1,20 +0,0 @@
1
- /**
2
- * @file Creates a version of the "Lite" agent loader with [core-js]{@link https://github.com/zloirock/core-js}
3
- * polyfills for pre-ES6 browsers and IE 11.
4
- */
5
-
6
- import '../polyfills.js'
7
- import { Agent } from '../../loaders/agent'
8
-
9
- import { Instrument as InstrumentPageViewEvent } from '../../features/page_view_event/instrument'
10
- import { Instrument as InstrumentPageViewTiming } from '../../features/page_view_timing/instrument'
11
- import { Instrument as InstrumentMetrics } from '../../features/metrics/instrument'
12
-
13
- new Agent({
14
- features: [
15
- InstrumentPageViewEvent,
16
- InstrumentPageViewTiming,
17
- InstrumentMetrics
18
- ],
19
- loaderType: 'lite-polyfills'
20
- })
@@ -1,30 +0,0 @@
1
- /**
2
- * @file Creates a version of the "PRO" agent loader with [core-js]{@link https://github.com/zloirock/core-js}
3
- * polyfills for pre-ES6 browsers and IE 11.
4
- */
5
-
6
- import '../polyfills.js'
7
- import { Agent } from '../../loaders/agent'
8
-
9
- import { Instrument as InstrumentPageViewEvent } from '../../features/page_view_event/instrument'
10
- import { Instrument as InstrumentPageViewTiming } from '../../features/page_view_timing/instrument'
11
- import { Instrument as InstrumentMetrics } from '../../features/metrics/instrument'
12
- import { Instrument as InstrumentErrors } from '../../features/jserrors/instrument'
13
- import { Instrument as InstrumentXhr } from '../../features/ajax/instrument'
14
- import { Instrument as InstrumentSessionTrace } from '../../features/session_trace/instrument'
15
- import { Instrument as InstrumentPageAction } from '../../features/page_action/instrument'
16
- import { Instrument as InstrumentLogs } from '../../features/logging/instrument'
17
-
18
- new Agent({
19
- features: [
20
- InstrumentPageViewEvent,
21
- InstrumentPageViewTiming,
22
- InstrumentSessionTrace,
23
- InstrumentXhr,
24
- InstrumentMetrics,
25
- InstrumentPageAction,
26
- InstrumentErrors,
27
- InstrumentLogs
28
- ],
29
- loaderType: 'pro-polyfills'
30
- })
@@ -1,32 +0,0 @@
1
- /**
2
- * @file Creates a version of the "SPA" agent loader with [core-js]{@link https://github.com/zloirock/core-js}
3
- * polyfills for pre-ES6 browsers and IE 11.
4
- */
5
-
6
- import '../polyfills.js'
7
- import { Agent } from '../../loaders/agent'
8
-
9
- import { Instrument as InstrumentPageViewEvent } from '../../features/page_view_event/instrument'
10
- import { Instrument as InstrumentPageViewTiming } from '../../features/page_view_timing/instrument'
11
- import { Instrument as InstrumentMetrics } from '../../features/metrics/instrument'
12
- import { Instrument as InstrumentErrors } from '../../features/jserrors/instrument'
13
- import { Instrument as InstrumentXhr } from '../../features/ajax/instrument'
14
- import { Instrument as InstrumentSessionTrace } from '../../features/session_trace/instrument'
15
- import { Instrument as InstrumentSpa } from '../../features/spa/instrument'
16
- import { Instrument as InstrumentPageAction } from '../../features/page_action/instrument'
17
- import { Instrument as InstrumentLogs } from '../../features/logging/instrument'
18
-
19
- new Agent({
20
- features: [
21
- InstrumentXhr,
22
- InstrumentPageViewEvent,
23
- InstrumentPageViewTiming,
24
- InstrumentSessionTrace,
25
- InstrumentMetrics,
26
- InstrumentPageAction,
27
- InstrumentErrors,
28
- InstrumentLogs,
29
- InstrumentSpa
30
- ],
31
- loaderType: 'spa-polyfills'
32
- })
@@ -1,27 +0,0 @@
1
- /**
2
- * @file Selectively imports {@link https://github.com/zloirock/core-js core-js}
3
- * polyfills needed for pre-ES6 browsers and IE 11.
4
- */
5
-
6
- import 'core-js/stable/promise'
7
- import 'core-js/stable/array/includes'
8
- import 'core-js/stable/array/find'
9
- import 'core-js/stable/array/flat'
10
- import 'core-js/stable/array/flat-map'
11
- import 'core-js/stable/array/from'
12
- import 'core-js/stable/array/some'
13
- import 'core-js/stable/array/find-index'
14
- import 'core-js/stable/object/assign'
15
- import 'core-js/stable/object/entries'
16
- import 'core-js/stable/object/values'
17
- import 'core-js/stable/object/from-entries'
18
- import 'core-js/stable/map'
19
- import 'core-js/stable/reflect'
20
- import 'core-js/stable/set'
21
- import 'core-js/stable/weak-set'
22
- import 'core-js/stable/object/get-own-property-descriptors'
23
- import 'core-js/stable/url'
24
- import 'core-js/stable/url-search-params'
25
- import 'core-js/stable/string/starts-with'
26
- import 'core-js/stable/number/is-nan'
27
- import 'core-js/stable/string/includes'
@@ -1,22 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- /**
7
- * @typedef {function} MapOwnCallback
8
- * @param {string} key Object key
9
- * @param {any} value Object value
10
- * @returns {any}
11
- */
12
-
13
- /**
14
- * Iterates the own enumerable properties of an object passing the key and value pair to a given
15
- * callback function.
16
- * @param {object} obj Input object to iterate over. If null or undefined, an empty array will be returned.
17
- * @param {MapOwnCallback} fn A callback function called for each property. The callback should take the key
18
- * and value from the object iteration and return some value.
19
- * @returns {any[]} An array of values returned by the callback function.
20
- */
21
- export const mapOwn = (obj, fn) => Object.entries(obj || {})
22
- .map(([key, value]) => fn(key, value))
@@ -1,114 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- import { mapOwn } from '../../../common/util/map-own'
7
- import { stringify } from '../../../common/util/stringify'
8
- import { registerHandler as register } from '../../../common/event-emitter/register-handler'
9
- import { HarvestScheduler } from '../../../common/harvest/harvest-scheduler'
10
- import { cleanURL } from '../../../common/url/clean-url'
11
- import { getConfigurationValue, getInfo, getRuntime } from '../../../common/config/config'
12
- import { FEATURE_NAME } from '../constants'
13
- import { isBrowserScope } from '../../../common/constants/runtime'
14
- import { AggregateBase } from '../../utils/aggregate-base'
15
- import { deregisterDrain } from '../../../common/drain/drain'
16
-
17
- export class Aggregate extends AggregateBase {
18
- static featureName = FEATURE_NAME
19
- constructor (agentIdentifier, aggregator) {
20
- super(agentIdentifier, aggregator, FEATURE_NAME)
21
- this.eventsPerMinute = 240
22
- this.harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'page_action.harvestTimeSeconds') || getConfigurationValue(this.agentIdentifier, 'ins.harvestTimeSeconds') || 30
23
- this.eventsPerHarvest = this.eventsPerMinute * this.harvestTimeSeconds / 60
24
- this.referrerUrl = undefined
25
- this.currentEvents = undefined
26
-
27
- this.events = []
28
-
29
- this.att = getInfo(this.agentIdentifier).jsAttributes // per-agent, aggregators-shared info context
30
-
31
- if (isBrowserScope && document.referrer) this.referrerUrl = cleanURL(document.referrer)
32
-
33
- register('api-addPageAction', (...args) => this.addPageAction(...args), this.featureName, this.ee)
34
-
35
- this.waitForFlags(['ins']).then(([insFlag]) => {
36
- if (insFlag) {
37
- const scheduler = new HarvestScheduler('ins', { onFinished: (...args) => this.onHarvestFinished(...args) }, this)
38
- scheduler.harvest.on('ins', (...args) => this.onHarvestStarted(...args))
39
- scheduler.startTimer(this.harvestTimeSeconds, 0)
40
- this.drain()
41
- } else {
42
- this.blocked = true // if rum response determines that customer lacks entitlements for ins endpoint, this feature shouldn't harvest
43
- deregisterDrain(this.agentIdentifier, this.featureName)
44
- }
45
- })
46
- }
47
-
48
- onHarvestStarted (options) {
49
- const { userAttributes, atts } = getInfo(this.agentIdentifier)
50
- var payload = ({
51
- qs: {
52
- ua: userAttributes,
53
- at: atts
54
- },
55
- body: {
56
- ins: this.events
57
- }
58
- })
59
-
60
- if (options.retry) {
61
- this.currentEvents = this.events
62
- }
63
-
64
- this.events = []
65
- return payload
66
- }
67
-
68
- onHarvestFinished (result) {
69
- if (result && result.sent && result.retry && this.currentEvents) {
70
- this.events = this.events.concat(this.currentEvents)
71
- this.currentEvents = null
72
- }
73
- }
74
-
75
- // WARNING: Insights times are in seconds. EXCEPT timestamp, which is in ms.
76
- addPageAction (t, name, attributes) {
77
- if (this.events.length >= this.eventsPerHarvest || this.blocked) return
78
- var width
79
- var height
80
- var eventAttributes = {}
81
-
82
- if (isBrowserScope && window.document.documentElement) {
83
- // Doesn't include the nav bar when it disappears in mobile safari
84
- // https://github.com/jquery/jquery/blob/10399ddcf8a239acc27bdec9231b996b178224d3/src/dimensions.js#L23
85
- width = window.document.documentElement.clientWidth
86
- height = window.document.documentElement.clientHeight
87
- }
88
-
89
- const agentRuntime = getRuntime(this.agentIdentifier)
90
- var defaults = {
91
- timestamp: agentRuntime.timeKeeper.convertRelativeTimestamp(t),
92
- timeSinceLoad: t / 1000,
93
- browserWidth: width,
94
- browserHeight: height,
95
- referrerUrl: this.referrerUrl,
96
- currentUrl: cleanURL('' + location),
97
- pageUrl: cleanURL(agentRuntime.origin),
98
- eventType: 'PageAction'
99
- }
100
-
101
- mapOwn(defaults, set)
102
- mapOwn(getInfo(this.agentIdentifier).jsAttributes, set)
103
- if (attributes && typeof attributes === 'object') {
104
- mapOwn(attributes, set)
105
- }
106
- eventAttributes.actionName = name || ''
107
-
108
- this.events.push(eventAttributes)
109
-
110
- function set (key, val) {
111
- eventAttributes[key] = (val && typeof val === 'object' ? stringify(val) : val)
112
- }
113
- }
114
- }