@newrelic/browser-agent 1.232.0 → 1.233.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 (273) hide show
  1. package/dist/cjs/cdn/polyfills.js +5 -2
  2. package/dist/cjs/common/config/state/configurable.js +15 -26
  3. package/dist/cjs/common/config/state/info.js +1 -1
  4. package/dist/cjs/common/config/state/init.js +101 -56
  5. package/dist/cjs/common/config/state/loader-config.js +1 -1
  6. package/dist/cjs/common/config/state/runtime.js +1 -5
  7. package/dist/cjs/common/constants/env.cdn.js +1 -1
  8. package/dist/cjs/common/constants/env.npm.js +1 -1
  9. package/dist/cjs/common/drain/drain.js +1 -1
  10. package/dist/cjs/common/harvest/harvest-scheduler.js +30 -10
  11. package/dist/cjs/common/harvest/harvest.js +119 -55
  12. package/dist/cjs/common/session/session-entity.js +35 -22
  13. package/dist/cjs/common/session/session-entity.test.js +73 -49
  14. package/dist/cjs/common/timer/interaction-timer.js +9 -12
  15. package/dist/cjs/common/url/canonicalize-url.js +32 -0
  16. package/dist/cjs/common/url/canonicalize-url.test.js +42 -0
  17. package/dist/cjs/common/url/clean-url.js +10 -3
  18. package/dist/cjs/common/url/protocol.test.js +0 -1
  19. package/dist/cjs/common/util/feature-flags.js +2 -1
  20. package/dist/cjs/common/util/global-scope.js +4 -2
  21. package/dist/cjs/common/util/submit-data.js +57 -18
  22. package/dist/cjs/common/wrap/wrap-fetch.js +1 -3
  23. package/dist/cjs/common/wrap/wrap-function.js +1 -3
  24. package/dist/cjs/common/wrap/wrap-promise.js +1 -1
  25. package/dist/cjs/features/ajax/aggregate/index.js +2 -2
  26. package/dist/cjs/features/ajax/instrument/index.js +1 -1
  27. package/dist/cjs/features/jserrors/aggregate/canonical-function-name.js +12 -4
  28. package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.js +93 -10
  29. package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.test.js +164 -38
  30. package/dist/cjs/features/jserrors/aggregate/index.js +29 -48
  31. package/dist/cjs/features/jserrors/instrument/index.js +0 -2
  32. package/dist/cjs/features/metrics/aggregate/framework-detection.js +67 -0
  33. package/dist/cjs/features/metrics/aggregate/framework-detection.test.js +137 -0
  34. package/dist/cjs/features/metrics/aggregate/index.js +7 -3
  35. package/dist/cjs/features/metrics/aggregate/polyfill-detection.es5.js +14 -0
  36. package/dist/cjs/features/metrics/aggregate/polyfill-detection.es5.test.js +17 -0
  37. package/dist/cjs/features/metrics/aggregate/polyfill-detection.js +53 -0
  38. package/dist/cjs/features/metrics/aggregate/polyfill-detection.test.js +165 -0
  39. package/dist/cjs/features/page_action/aggregate/index.js +2 -2
  40. package/dist/cjs/features/page_view_event/aggregate/index.js +6 -3
  41. package/dist/cjs/features/page_view_timing/aggregate/index.js +2 -2
  42. package/dist/cjs/features/session_replay/aggregate/index.js +333 -0
  43. package/dist/cjs/features/session_replay/constants.js +9 -0
  44. package/dist/cjs/features/session_replay/index.js +12 -0
  45. package/dist/cjs/features/session_replay/instrument/index.js +29 -0
  46. package/dist/cjs/features/session_trace/aggregate/index.js +163 -164
  47. package/dist/cjs/features/session_trace/constants.js +2 -9
  48. package/dist/cjs/features/session_trace/instrument/index.js +24 -66
  49. package/dist/cjs/features/spa/aggregate/index.js +2 -2
  50. package/dist/cjs/features/utils/agent-session.js +1 -2
  51. package/dist/cjs/features/utils/aggregate-base.js +64 -0
  52. package/dist/cjs/features/utils/feature-base.js +0 -31
  53. package/dist/cjs/features/utils/handler-cache.js +3 -4
  54. package/dist/cjs/features/utils/instrument-base.js +42 -10
  55. package/dist/cjs/features/utils/{lazy-loader.js → lazy-feature-loader.js} +4 -2
  56. package/dist/cjs/loaders/agent.js +1 -1
  57. package/dist/cjs/loaders/api/apiAsync.js +3 -1
  58. package/dist/cjs/loaders/configure/configure.js +3 -3
  59. package/dist/cjs/loaders/features/featureDependencies.js +0 -12
  60. package/dist/cjs/loaders/features/features.js +3 -1
  61. package/dist/cjs/loaders/micro-agent.js +6 -6
  62. package/dist/esm/cdn/polyfills.js +5 -2
  63. package/dist/esm/common/config/state/configurable.js +14 -24
  64. package/dist/esm/common/config/state/info.js +2 -2
  65. package/dist/esm/common/config/state/init.js +102 -57
  66. package/dist/esm/common/config/state/loader-config.js +2 -2
  67. package/dist/esm/common/config/state/runtime.js +2 -4
  68. package/dist/esm/common/constants/env.cdn.js +1 -1
  69. package/dist/esm/common/constants/env.npm.js +1 -1
  70. package/dist/esm/common/drain/drain.js +1 -1
  71. package/dist/esm/common/harvest/harvest-scheduler.js +30 -10
  72. package/dist/esm/common/harvest/harvest.js +121 -56
  73. package/dist/esm/common/session/session-entity.js +35 -22
  74. package/dist/esm/common/session/session-entity.test.js +73 -49
  75. package/dist/esm/common/timer/interaction-timer.js +9 -12
  76. package/dist/esm/common/url/canonicalize-url.js +27 -0
  77. package/dist/esm/common/url/canonicalize-url.test.js +38 -0
  78. package/dist/esm/common/url/clean-url.js +10 -3
  79. package/dist/esm/common/url/protocol.test.js +0 -1
  80. package/dist/esm/common/util/feature-flags.js +2 -1
  81. package/dist/esm/common/util/global-scope.js +1 -0
  82. package/dist/esm/common/util/submit-data.js +57 -18
  83. package/dist/esm/common/wrap/wrap-fetch.js +1 -2
  84. package/dist/esm/common/wrap/wrap-function.js +1 -2
  85. package/dist/esm/common/wrap/wrap-promise.js +1 -1
  86. package/dist/esm/features/ajax/aggregate/index.js +2 -2
  87. package/dist/esm/features/ajax/instrument/index.js +1 -1
  88. package/dist/esm/features/jserrors/aggregate/canonical-function-name.js +12 -4
  89. package/dist/esm/features/jserrors/aggregate/compute-stack-trace.js +93 -10
  90. package/dist/esm/features/jserrors/aggregate/compute-stack-trace.test.js +149 -25
  91. package/dist/esm/features/jserrors/aggregate/index.js +30 -48
  92. package/dist/esm/features/jserrors/instrument/index.js +0 -1
  93. package/dist/esm/features/metrics/aggregate/framework-detection.js +61 -0
  94. package/dist/esm/features/metrics/aggregate/framework-detection.test.js +133 -0
  95. package/dist/esm/features/metrics/aggregate/index.js +7 -3
  96. package/dist/esm/features/metrics/aggregate/polyfill-detection.es5.js +8 -0
  97. package/dist/esm/features/metrics/aggregate/polyfill-detection.es5.test.js +15 -0
  98. package/dist/esm/features/metrics/aggregate/polyfill-detection.js +47 -0
  99. package/dist/esm/features/metrics/aggregate/polyfill-detection.test.js +163 -0
  100. package/dist/esm/features/page_action/aggregate/index.js +2 -2
  101. package/dist/esm/features/page_view_event/aggregate/index.js +6 -3
  102. package/dist/esm/features/page_view_timing/aggregate/index.js +2 -2
  103. package/dist/esm/features/session_replay/aggregate/index.js +327 -0
  104. package/dist/esm/features/session_replay/constants.js +2 -0
  105. package/dist/esm/features/session_replay/index.js +12 -0
  106. package/dist/esm/features/session_replay/instrument/index.js +21 -0
  107. package/dist/esm/features/session_trace/aggregate/index.js +163 -163
  108. package/dist/esm/features/session_trace/constants.js +1 -5
  109. package/dist/esm/features/session_trace/instrument/index.js +24 -66
  110. package/dist/esm/features/spa/aggregate/index.js +2 -2
  111. package/dist/esm/features/utils/agent-session.js +1 -2
  112. package/dist/esm/features/utils/aggregate-base.js +57 -0
  113. package/dist/esm/features/utils/feature-base.js +1 -32
  114. package/dist/esm/features/utils/handler-cache.js +3 -4
  115. package/dist/esm/features/utils/instrument-base.js +42 -10
  116. package/dist/esm/features/utils/{lazy-loader.js → lazy-feature-loader.js} +3 -1
  117. package/dist/esm/loaders/agent.js +1 -1
  118. package/dist/esm/loaders/api/apiAsync.js +3 -1
  119. package/dist/esm/loaders/configure/configure.js +3 -3
  120. package/dist/esm/loaders/features/featureDependencies.js +0 -11
  121. package/dist/esm/loaders/features/features.js +3 -1
  122. package/dist/esm/loaders/micro-agent.js +6 -6
  123. package/dist/types/common/config/state/configurable.d.ts +1 -3
  124. package/dist/types/common/config/state/configurable.d.ts.map +1 -1
  125. package/dist/types/common/config/state/init.d.ts.map +1 -1
  126. package/dist/types/common/config/state/runtime.d.ts.map +1 -1
  127. package/dist/types/common/harvest/harvest-scheduler.d.ts.map +1 -1
  128. package/dist/types/common/harvest/harvest.d.ts +37 -34
  129. package/dist/types/common/harvest/harvest.d.ts.map +1 -1
  130. package/dist/types/common/session/session-entity.d.ts +6 -3
  131. package/dist/types/common/session/session-entity.d.ts.map +1 -1
  132. package/dist/types/common/timer/interaction-timer.d.ts +2 -1
  133. package/dist/types/common/timer/interaction-timer.d.ts.map +1 -1
  134. package/dist/types/common/url/canonicalize-url.d.ts +9 -0
  135. package/dist/types/common/url/canonicalize-url.d.ts.map +1 -0
  136. package/dist/types/common/url/clean-url.d.ts +7 -1
  137. package/dist/types/common/url/clean-url.d.ts.map +1 -1
  138. package/dist/types/common/util/feature-flags.d.ts.map +1 -1
  139. package/dist/types/common/util/global-scope.d.ts +1 -0
  140. package/dist/types/common/util/global-scope.d.ts.map +1 -1
  141. package/dist/types/common/util/submit-data.d.ts +40 -14
  142. package/dist/types/common/util/submit-data.d.ts.map +1 -1
  143. package/dist/types/common/wrap/wrap-fetch.d.ts.map +1 -1
  144. package/dist/types/common/wrap/wrap-function.d.ts.map +1 -1
  145. package/dist/types/features/ajax/aggregate/index.d.ts +2 -2
  146. package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
  147. package/dist/types/features/jserrors/aggregate/canonical-function-name.d.ts +8 -1
  148. package/dist/types/features/jserrors/aggregate/canonical-function-name.d.ts.map +1 -1
  149. package/dist/types/features/jserrors/aggregate/compute-stack-trace.d.ts +48 -19
  150. package/dist/types/features/jserrors/aggregate/compute-stack-trace.d.ts.map +1 -1
  151. package/dist/types/features/jserrors/aggregate/index.d.ts +14 -5
  152. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  153. package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -1
  154. package/dist/types/features/metrics/aggregate/framework-detection.d.ts.map +1 -0
  155. package/dist/types/features/metrics/aggregate/index.d.ts +2 -2
  156. package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -1
  157. package/dist/types/features/metrics/aggregate/polyfill-detection.d.ts +6 -0
  158. package/dist/types/features/metrics/aggregate/polyfill-detection.d.ts.map +1 -0
  159. package/dist/types/features/metrics/aggregate/polyfill-detection.es5.d.ts +7 -0
  160. package/dist/types/features/metrics/aggregate/polyfill-detection.es5.d.ts.map +1 -0
  161. package/dist/types/features/page_action/aggregate/index.d.ts +3 -3
  162. package/dist/types/features/page_action/aggregate/index.d.ts.map +1 -1
  163. package/dist/types/features/page_view_event/aggregate/index.d.ts +2 -2
  164. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  165. package/dist/types/features/page_view_timing/aggregate/index.d.ts +2 -2
  166. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  167. package/dist/types/features/session_replay/aggregate/index.d.ts +96 -0
  168. package/dist/types/features/session_replay/aggregate/index.d.ts.map +1 -0
  169. package/dist/types/features/session_replay/constants.d.ts +2 -0
  170. package/dist/types/features/session_replay/constants.d.ts.map +1 -0
  171. package/dist/types/features/session_replay/index.d.ts +2 -0
  172. package/dist/types/features/session_replay/index.d.ts.map +1 -0
  173. package/dist/types/features/session_replay/instrument/index.d.ts +6 -0
  174. package/dist/types/features/session_replay/instrument/index.d.ts.map +1 -0
  175. package/dist/types/features/session_trace/aggregate/index.d.ts +8 -57
  176. package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
  177. package/dist/types/features/session_trace/constants.d.ts +0 -3
  178. package/dist/types/features/session_trace/constants.d.ts.map +1 -1
  179. package/dist/types/features/session_trace/instrument/index.d.ts +1 -3
  180. package/dist/types/features/session_trace/instrument/index.d.ts.map +1 -1
  181. package/dist/types/features/spa/aggregate/index.d.ts +2 -2
  182. package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
  183. package/dist/types/features/utils/agent-session.d.ts.map +1 -1
  184. package/dist/types/features/utils/aggregate-base.d.ts +11 -0
  185. package/dist/types/features/utils/aggregate-base.d.ts.map +1 -0
  186. package/dist/types/features/utils/feature-base.d.ts +0 -5
  187. package/dist/types/features/utils/feature-base.d.ts.map +1 -1
  188. package/dist/types/features/utils/handler-cache.d.ts.map +1 -1
  189. package/dist/types/features/utils/instrument-base.d.ts +3 -1
  190. package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
  191. package/dist/types/features/utils/{lazy-loader.d.ts → lazy-feature-loader.d.ts} +2 -2
  192. package/dist/types/features/utils/lazy-feature-loader.d.ts.map +1 -0
  193. package/dist/types/loaders/configure/configure.d.ts.map +1 -1
  194. package/dist/types/loaders/features/featureDependencies.d.ts +0 -1
  195. package/dist/types/loaders/features/featureDependencies.d.ts.map +1 -1
  196. package/dist/types/loaders/features/features.d.ts +1 -0
  197. package/dist/types/loaders/features/features.d.ts.map +1 -1
  198. package/package.json +31 -22
  199. package/src/cdn/polyfills.js +4 -1
  200. package/src/common/config/state/configurable.js +18 -24
  201. package/src/common/config/state/info.js +2 -2
  202. package/src/common/config/state/init.js +62 -28
  203. package/src/common/config/state/loader-config.js +2 -2
  204. package/src/common/config/state/runtime.js +2 -4
  205. package/src/common/drain/drain.js +1 -1
  206. package/src/common/harvest/harvest-scheduler.js +35 -10
  207. package/src/common/harvest/harvest.js +73 -50
  208. package/src/common/session/session-entity.js +34 -23
  209. package/src/common/session/session-entity.test.js +57 -51
  210. package/src/common/timer/interaction-timer.js +9 -12
  211. package/src/common/url/canonicalize-url.js +28 -0
  212. package/src/common/url/canonicalize-url.test.js +34 -0
  213. package/src/common/url/clean-url.js +10 -3
  214. package/src/common/url/protocol.test.js +0 -1
  215. package/src/common/util/feature-flags.js +2 -2
  216. package/src/common/util/global-scope.js +2 -0
  217. package/src/common/util/submit-data.js +28 -17
  218. package/src/common/wrap/wrap-fetch.js +1 -2
  219. package/src/common/wrap/wrap-function.js +1 -2
  220. package/src/common/wrap/wrap-promise.js +1 -1
  221. package/src/features/ajax/aggregate/index.js +2 -2
  222. package/src/features/ajax/instrument/index.js +1 -1
  223. package/src/features/jserrors/aggregate/canonical-function-name.js +12 -4
  224. package/src/features/jserrors/aggregate/compute-stack-trace.js +85 -11
  225. package/src/features/jserrors/aggregate/compute-stack-trace.test.js +141 -24
  226. package/src/features/jserrors/aggregate/index.js +28 -52
  227. package/src/features/jserrors/instrument/index.js +0 -1
  228. package/src/features/metrics/aggregate/framework-detection.js +73 -0
  229. package/src/features/metrics/aggregate/framework-detection.test.js +201 -0
  230. package/src/features/metrics/aggregate/index.js +8 -3
  231. package/src/features/metrics/aggregate/polyfill-detection.es5.js +9 -0
  232. package/src/features/metrics/aggregate/polyfill-detection.es5.test.js +16 -0
  233. package/src/features/metrics/aggregate/polyfill-detection.js +48 -0
  234. package/src/features/metrics/aggregate/polyfill-detection.test.js +163 -0
  235. package/src/features/page_action/aggregate/index.js +2 -2
  236. package/src/features/page_view_event/aggregate/index.js +5 -5
  237. package/src/features/page_view_timing/aggregate/index.js +2 -2
  238. package/src/features/session_replay/aggregate/index.js +314 -0
  239. package/src/features/session_replay/constants.js +3 -0
  240. package/src/features/session_replay/index.js +12 -0
  241. package/src/features/session_replay/instrument/index.js +22 -0
  242. package/src/features/session_trace/aggregate/index.js +148 -188
  243. package/src/features/session_trace/constants.js +0 -4
  244. package/src/features/session_trace/instrument/index.js +17 -69
  245. package/src/features/spa/aggregate/index.js +2 -2
  246. package/src/features/utils/agent-session.js +1 -2
  247. package/src/features/utils/aggregate-base.js +51 -0
  248. package/src/features/utils/feature-base.js +1 -31
  249. package/src/features/utils/handler-cache.js +3 -4
  250. package/src/features/utils/instrument-base.js +40 -8
  251. package/src/features/utils/{lazy-loader.js → lazy-feature-loader.js} +3 -1
  252. package/src/loaders/agent.js +1 -1
  253. package/src/loaders/api/apiAsync.js +1 -1
  254. package/src/loaders/configure/configure.js +4 -3
  255. package/src/loaders/features/featureDependencies.js +0 -12
  256. package/src/loaders/features/features.js +3 -1
  257. package/src/loaders/micro-agent.js +4 -4
  258. package/dist/cjs/common/metrics/framework-detection.js +0 -72
  259. package/dist/cjs/common/util/user-agent.js +0 -57
  260. package/dist/cjs/common/window/supports-performance-observer.js +0 -15
  261. package/dist/esm/common/metrics/framework-detection.js +0 -66
  262. package/dist/esm/common/util/user-agent.js +0 -48
  263. package/dist/esm/common/window/supports-performance-observer.js +0 -9
  264. package/dist/types/common/metrics/framework-detection.d.ts.map +0 -1
  265. package/dist/types/common/util/user-agent.d.ts +0 -5
  266. package/dist/types/common/util/user-agent.d.ts.map +0 -1
  267. package/dist/types/common/window/supports-performance-observer.d.ts +0 -2
  268. package/dist/types/common/window/supports-performance-observer.d.ts.map +0 -1
  269. package/dist/types/features/utils/lazy-loader.d.ts.map +0 -1
  270. package/src/common/metrics/framework-detection.js +0 -71
  271. package/src/common/util/user-agent.js +0 -56
  272. package/src/common/window/supports-performance-observer.js +0 -10
  273. /package/dist/types/{common/metrics → features/metrics/aggregate}/framework-detection.d.ts +0 -0
@@ -1,66 +0,0 @@
1
- import { isBrowserScope } from '../util/global-scope';
2
- var FRAMEWORKS = {
3
- REACT: 'React',
4
- ANGULAR: 'Angular',
5
- ANGULARJS: 'AngularJS',
6
- BACKBONE: 'Backbone',
7
- EMBER: 'Ember',
8
- VUE: 'Vue',
9
- METEOR: 'Meteor',
10
- ZEPTO: 'Zepto',
11
- JQUERY: 'Jquery'
12
- };
13
- export function getFrameworks() {
14
- if (!isBrowserScope) return []; // don't bother detecting frameworks if not in the main window context
15
-
16
- var frameworks = [];
17
- try {
18
- if (detectReact()) frameworks.push(FRAMEWORKS.REACT);
19
- if (detectAngularJs()) frameworks.push(FRAMEWORKS.ANGULARJS);
20
- if (detectAngular()) frameworks.push(FRAMEWORKS.ANGULAR);
21
- if (window.Backbone) frameworks.push(FRAMEWORKS.BACKBONE);
22
- if (window.Ember) frameworks.push(FRAMEWORKS.EMBER);
23
- if (window.Vue) frameworks.push(FRAMEWORKS.VUE);
24
- if (window.Meteor) frameworks.push(FRAMEWORKS.METEOR);
25
- if (window.Zepto) frameworks.push(FRAMEWORKS.ZEPTO);
26
- if (window.jQuery) frameworks.push(FRAMEWORKS.JQUERY);
27
- } catch (err) {
28
- // not supported?
29
- }
30
- return frameworks;
31
- }
32
- function detectReact() {
33
- try {
34
- if (!!window.React || !!window.ReactDOM || !!window.ReactRedux) return true;
35
- if (document.querySelector('[data-reactroot], [data-reactid]')) return true;
36
- var divs = document.querySelectorAll('body > div');
37
- for (var i = 0; i < divs.length; i++) {
38
- if (Object.keys(divs[i]).indexOf('_reactRootContainer') >= 0) return true;
39
- }
40
- return false;
41
- } catch (err) {
42
- // not supported?
43
- return false;
44
- }
45
- }
46
- function detectAngularJs() {
47
- try {
48
- if (window.angular) return true;
49
- if (document.querySelector('.ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]')) return true;
50
- if (document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]')) return true;
51
- return false;
52
- } catch (err) {
53
- // not supported?
54
- return false;
55
- }
56
- }
57
- function detectAngular() {
58
- try {
59
- // eslint-disable-next-line
60
- if (window.hasOwnProperty('ng') && window.ng.hasOwnProperty('coreTokens') && window.ng.coreTokens.hasOwnProperty('NgZone')) return true;
61
- return !!document.querySelectorAll('[ng-version]').length;
62
- } catch (err) {
63
- // not supported?
64
- return false;
65
- }
66
- }
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- // Feature-detection is much preferred over using User Agent to detect browser.
7
- // However, there are cases where feature detection is not possible, for example
8
- // when a specific version of a browser has a bug that requires a workaround in just
9
- // that version.
10
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#Browser_Name
11
- var agentName = null;
12
- var agentVersion = null;
13
- const safari = /Version\/(\S+)\s+Safari/;
14
- if (navigator.userAgent) {
15
- var userAgent = navigator.userAgent;
16
- var parts = userAgent.match(safari);
17
- if (parts && userAgent.indexOf('Chrome') === -1 && userAgent.indexOf('Chromium') === -1) {
18
- agentName = 'Safari';
19
- agentVersion = parts[1];
20
- }
21
- }
22
- export { agentName as agent, agentVersion as version };
23
- export function match(name, version) {
24
- if (!agentName) {
25
- return false;
26
- }
27
- if (name !== agentName) {
28
- return false;
29
- }
30
-
31
- // version not provided, only match by name
32
- if (!version) {
33
- return true;
34
- }
35
-
36
- // version provided, but not detected - not reliable match
37
- if (!agentVersion) {
38
- return false;
39
- }
40
- var detectedParts = agentVersion.split('.');
41
- var requestedParts = version.split('.');
42
- for (var i = 0; i < requestedParts.length; i++) {
43
- if (requestedParts[i] !== detectedParts[i]) {
44
- return false;
45
- }
46
- }
47
- return true;
48
- }
@@ -1,9 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- import { globalScope } from '../util/global-scope';
7
- export function supportsPerformanceObserver() {
8
- return typeof globalScope?.PerformanceObserver === 'function';
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"framework-detection.d.ts","sourceRoot":"","sources":["../../../../src/common/metrics/framework-detection.js"],"names":[],"mappings":"AAcA,0CAkBC"}
@@ -1,5 +0,0 @@
1
- export function match(name: any, version: any): boolean;
2
- declare var agentName: any;
3
- declare var agentVersion: any;
4
- export { agentName as agent, agentVersion as version };
5
- //# sourceMappingURL=user-agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-agent.d.ts","sourceRoot":"","sources":["../../../../src/common/util/user-agent.js"],"names":[],"mappings":"AA2BA,wDA4BC;AA7CD,2BAAoB;AACpB,8BAAuB"}
@@ -1,2 +0,0 @@
1
- export function supportsPerformanceObserver(): boolean;
2
- //# sourceMappingURL=supports-performance-observer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supports-performance-observer.d.ts","sourceRoot":"","sources":["../../../../src/common/window/supports-performance-observer.js"],"names":[],"mappings":"AAOA,uDAEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy-loader.d.ts","sourceRoot":"","sources":["../../../../src/features/utils/lazy-loader.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,gEAFa,QAAQ,+BAA2B,IAAI,CAAC,CAyBpD"}
@@ -1,71 +0,0 @@
1
- import { isBrowserScope } from '../util/global-scope'
2
-
3
- var FRAMEWORKS = {
4
- REACT: 'React',
5
- ANGULAR: 'Angular',
6
- ANGULARJS: 'AngularJS',
7
- BACKBONE: 'Backbone',
8
- EMBER: 'Ember',
9
- VUE: 'Vue',
10
- METEOR: 'Meteor',
11
- ZEPTO: 'Zepto',
12
- JQUERY: 'Jquery'
13
- }
14
-
15
- export function getFrameworks () {
16
- if (!isBrowserScope) return [] // don't bother detecting frameworks if not in the main window context
17
-
18
- var frameworks = []
19
- try {
20
- if (detectReact()) frameworks.push(FRAMEWORKS.REACT)
21
- if (detectAngularJs()) frameworks.push(FRAMEWORKS.ANGULARJS)
22
- if (detectAngular()) frameworks.push(FRAMEWORKS.ANGULAR)
23
- if (window.Backbone) frameworks.push(FRAMEWORKS.BACKBONE)
24
- if (window.Ember) frameworks.push(FRAMEWORKS.EMBER)
25
- if (window.Vue) frameworks.push(FRAMEWORKS.VUE)
26
- if (window.Meteor) frameworks.push(FRAMEWORKS.METEOR)
27
- if (window.Zepto) frameworks.push(FRAMEWORKS.ZEPTO)
28
- if (window.jQuery) frameworks.push(FRAMEWORKS.JQUERY)
29
- } catch (err) {
30
- // not supported?
31
- }
32
- return frameworks
33
- }
34
-
35
- function detectReact () {
36
- try {
37
- if (!!window.React || !!window.ReactDOM || !!window.ReactRedux) return true
38
- if (document.querySelector('[data-reactroot], [data-reactid]')) return true
39
- var divs = document.querySelectorAll('body > div')
40
- for (var i = 0; i < divs.length; i++) {
41
- if (Object.keys(divs[i]).indexOf('_reactRootContainer') >= 0) return true
42
- }
43
- return false
44
- } catch (err) {
45
- // not supported?
46
- return false
47
- }
48
- }
49
-
50
- function detectAngularJs () {
51
- try {
52
- if (window.angular) return true
53
- if (document.querySelector('.ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]')) return true
54
- if (document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]')) return true
55
- return false
56
- } catch (err) {
57
- // not supported?
58
- return false
59
- }
60
- }
61
-
62
- function detectAngular () {
63
- try {
64
- // eslint-disable-next-line
65
- if (window.hasOwnProperty('ng') && window.ng.hasOwnProperty('coreTokens') && window.ng.coreTokens.hasOwnProperty('NgZone')) return true
66
- return !!document.querySelectorAll('[ng-version]').length
67
- } catch (err) {
68
- // not supported?
69
- return false
70
- }
71
- }
@@ -1,56 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- // Feature-detection is much preferred over using User Agent to detect browser.
7
- // However, there are cases where feature detection is not possible, for example
8
- // when a specific version of a browser has a bug that requires a workaround in just
9
- // that version.
10
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#Browser_Name
11
- var agentName = null
12
- var agentVersion = null
13
- const safari = /Version\/(\S+)\s+Safari/
14
-
15
- if (navigator.userAgent) {
16
- var userAgent = navigator.userAgent
17
- var parts = userAgent.match(safari)
18
-
19
- if (parts && userAgent.indexOf('Chrome') === -1 &&
20
- userAgent.indexOf('Chromium') === -1) {
21
- agentName = 'Safari'
22
- agentVersion = parts[1]
23
- }
24
- }
25
-
26
- export { agentName as agent, agentVersion as version }
27
-
28
- export function match (name, version) {
29
- if (!agentName) {
30
- return false
31
- }
32
-
33
- if (name !== agentName) {
34
- return false
35
- }
36
-
37
- // version not provided, only match by name
38
- if (!version) {
39
- return true
40
- }
41
-
42
- // version provided, but not detected - not reliable match
43
- if (!agentVersion) {
44
- return false
45
- }
46
-
47
- var detectedParts = agentVersion.split('.')
48
- var requestedParts = version.split('.')
49
- for (var i = 0; i < requestedParts.length; i++) {
50
- if (requestedParts[i] !== detectedParts[i]) {
51
- return false
52
- }
53
- }
54
-
55
- return true
56
- }
@@ -1,10 +0,0 @@
1
- /*
2
- * Copyright 2020 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- import { globalScope } from '../util/global-scope'
7
-
8
- export function supportsPerformanceObserver () {
9
- return (typeof globalScope?.PerformanceObserver === 'function')
10
- }