@newrelic/browser-agent 1.235.0 → 1.237.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 (389) hide show
  1. package/README.md +41 -1
  2. package/dist/cjs/common/config/state/init.js +4 -0
  3. package/dist/cjs/common/config/state/runtime.js +6 -5
  4. package/dist/cjs/common/constants/env.cdn.js +2 -2
  5. package/dist/cjs/common/constants/env.npm.js +1 -1
  6. package/dist/cjs/common/constants/runtime.js +52 -0
  7. package/dist/cjs/common/deny-list/deny-list.js +14 -10
  8. package/dist/cjs/common/event-listener/event-listener-opts.js +3 -3
  9. package/dist/cjs/common/harvest/harvest-scheduler.js +22 -19
  10. package/dist/cjs/common/harvest/harvest.js +154 -148
  11. package/dist/cjs/common/harvest/types.js +54 -0
  12. package/dist/cjs/common/ids/id.js +2 -2
  13. package/dist/cjs/common/ids/unique-id.js +3 -3
  14. package/dist/cjs/common/session/session-entity.js +2 -2
  15. package/dist/cjs/common/timer/interaction-timer.js +2 -2
  16. package/dist/cjs/common/unload/eol.js +10 -11
  17. package/dist/cjs/common/url/canonicalize-url.js +2 -2
  18. package/dist/cjs/common/url/parse-url.js +3 -3
  19. package/dist/cjs/common/url/protocol.js +2 -2
  20. package/dist/cjs/common/util/submit-data.js +31 -81
  21. package/dist/cjs/common/window/nreum.js +14 -14
  22. package/dist/cjs/common/wrap/wrap-events.js +3 -3
  23. package/dist/cjs/common/wrap/wrap-fetch.js +5 -5
  24. package/dist/cjs/common/wrap/wrap-history.js +2 -2
  25. package/dist/cjs/common/wrap/wrap-jsonp.js +14 -8
  26. package/dist/cjs/common/wrap/wrap-mutation.js +2 -2
  27. package/dist/cjs/common/wrap/wrap-promise.js +2 -2
  28. package/dist/cjs/common/wrap/wrap-raf.js +2 -2
  29. package/dist/cjs/common/wrap/wrap-timer.js +4 -4
  30. package/dist/cjs/common/wrap/wrap-xhr.js +3 -3
  31. package/dist/cjs/features/ajax/aggregate/index.js +25 -28
  32. package/dist/cjs/features/ajax/instrument/distributed-tracing.js +2 -2
  33. package/dist/cjs/features/ajax/instrument/index.js +6 -7
  34. package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.js +1 -1
  35. package/dist/cjs/features/jserrors/aggregate/index.js +7 -4
  36. package/dist/cjs/features/jserrors/constants.js +2 -4
  37. package/dist/cjs/features/jserrors/instrument/index.js +80 -89
  38. package/dist/cjs/features/jserrors/instrument/uncaught-error.js +22 -0
  39. package/dist/cjs/features/metrics/aggregate/framework-detection.js +2 -2
  40. package/dist/cjs/features/metrics/aggregate/index.js +3 -3
  41. package/dist/cjs/features/page_action/aggregate/index.js +3 -3
  42. package/dist/cjs/features/page_view_event/aggregate/index.js +10 -11
  43. package/dist/cjs/features/page_view_event/aggregate/initialized-features.js +23 -19
  44. package/dist/cjs/features/page_view_event/instrument/index.js +2 -2
  45. package/dist/cjs/features/page_view_timing/aggregate/index.js +3 -5
  46. package/dist/cjs/features/page_view_timing/instrument/index.js +2 -2
  47. package/dist/cjs/features/session_replay/aggregate/index.js +65 -34
  48. package/dist/cjs/features/session_replay/replay-mode.js +2 -2
  49. package/dist/cjs/features/session_trace/aggregate/index.js +3 -4
  50. package/dist/cjs/features/session_trace/instrument/index.js +2 -2
  51. package/dist/cjs/features/spa/aggregate/index.js +1 -1
  52. package/dist/cjs/features/spa/instrument/index.js +2 -2
  53. package/dist/cjs/features/utils/instrument-base.js +12 -15
  54. package/dist/cjs/index.js +7 -0
  55. package/dist/cjs/loaders/agent-base.js +87 -0
  56. package/dist/cjs/loaders/agent.js +48 -1
  57. package/dist/cjs/loaders/api/api.js +3 -3
  58. package/dist/cjs/loaders/api/apiAsync.js +6 -4
  59. package/dist/cjs/loaders/api/interaction-types.js +87 -0
  60. package/dist/cjs/loaders/configure/configure.js +4 -3
  61. package/dist/cjs/loaders/micro-agent.js +32 -39
  62. package/dist/esm/common/config/state/init.js +4 -0
  63. package/dist/esm/common/config/state/runtime.js +3 -2
  64. package/dist/esm/common/constants/env.cdn.js +2 -2
  65. package/dist/esm/common/constants/env.npm.js +1 -1
  66. package/dist/esm/common/constants/runtime.js +38 -0
  67. package/dist/esm/common/deny-list/deny-list.js +14 -10
  68. package/dist/esm/common/event-listener/event-listener-opts.js +1 -1
  69. package/dist/esm/common/harvest/harvest-scheduler.js +21 -20
  70. package/dist/esm/common/harvest/harvest.js +150 -146
  71. package/dist/esm/common/harvest/types.js +47 -0
  72. package/dist/esm/common/ids/id.js +1 -1
  73. package/dist/esm/common/ids/unique-id.js +1 -1
  74. package/dist/esm/common/session/session-entity.js +1 -1
  75. package/dist/esm/common/timer/interaction-timer.js +1 -1
  76. package/dist/esm/common/unload/eol.js +1 -2
  77. package/dist/esm/common/url/canonicalize-url.js +1 -1
  78. package/dist/esm/common/url/parse-url.js +1 -1
  79. package/dist/esm/common/url/protocol.js +1 -1
  80. package/dist/esm/common/util/submit-data.js +29 -78
  81. package/dist/esm/common/window/nreum.js +1 -1
  82. package/dist/esm/common/wrap/wrap-events.js +1 -1
  83. package/dist/esm/common/wrap/wrap-fetch.js +1 -1
  84. package/dist/esm/common/wrap/wrap-history.js +1 -1
  85. package/dist/esm/common/wrap/wrap-jsonp.js +13 -7
  86. package/dist/esm/common/wrap/wrap-mutation.js +1 -1
  87. package/dist/esm/common/wrap/wrap-promise.js +1 -1
  88. package/dist/esm/common/wrap/wrap-raf.js +1 -1
  89. package/dist/esm/common/wrap/wrap-timer.js +1 -1
  90. package/dist/esm/common/wrap/wrap-xhr.js +1 -1
  91. package/dist/esm/features/ajax/aggregate/index.js +26 -29
  92. package/dist/esm/features/ajax/instrument/distributed-tracing.js +1 -1
  93. package/dist/esm/features/ajax/instrument/index.js +1 -2
  94. package/dist/esm/features/jserrors/aggregate/compute-stack-trace.js +1 -1
  95. package/dist/esm/features/jserrors/aggregate/index.js +6 -3
  96. package/dist/esm/features/jserrors/constants.js +1 -2
  97. package/dist/esm/features/jserrors/instrument/index.js +79 -88
  98. package/dist/esm/features/jserrors/instrument/uncaught-error.js +15 -0
  99. package/dist/esm/features/metrics/aggregate/framework-detection.js +1 -1
  100. package/dist/esm/features/metrics/aggregate/index.js +1 -1
  101. package/dist/esm/features/page_action/aggregate/index.js +1 -1
  102. package/dist/esm/features/page_view_event/aggregate/index.js +1 -2
  103. package/dist/esm/features/page_view_event/aggregate/initialized-features.js +23 -19
  104. package/dist/esm/features/page_view_event/instrument/index.js +1 -1
  105. package/dist/esm/features/page_view_timing/aggregate/index.js +2 -4
  106. package/dist/esm/features/page_view_timing/instrument/index.js +1 -1
  107. package/dist/esm/features/session_replay/aggregate/index.js +65 -34
  108. package/dist/esm/features/session_replay/replay-mode.js +2 -2
  109. package/dist/esm/features/session_trace/aggregate/index.js +3 -4
  110. package/dist/esm/features/session_trace/instrument/index.js +1 -1
  111. package/dist/esm/features/spa/aggregate/index.js +1 -1
  112. package/dist/esm/features/spa/instrument/index.js +1 -1
  113. package/dist/esm/features/utils/instrument-base.js +11 -14
  114. package/dist/esm/index.js +1 -4
  115. package/dist/esm/loaders/agent-base.js +80 -0
  116. package/dist/esm/loaders/agent.js +48 -1
  117. package/dist/esm/loaders/api/api.js +2 -2
  118. package/dist/esm/loaders/api/apiAsync.js +3 -3
  119. package/dist/esm/loaders/api/interaction-types.js +80 -0
  120. package/dist/esm/loaders/configure/configure.js +4 -3
  121. package/dist/esm/loaders/micro-agent.js +32 -39
  122. package/dist/types/common/config/state/init.d.ts.map +1 -1
  123. package/dist/types/common/config/state/runtime.d.ts.map +1 -1
  124. package/dist/types/common/constants/runtime.d.ts +29 -0
  125. package/dist/types/common/constants/runtime.d.ts.map +1 -0
  126. package/dist/types/common/event-emitter/register-handler.d.ts +1 -1
  127. package/dist/types/common/harvest/harvest-scheduler.d.ts +1 -1
  128. package/dist/types/common/harvest/harvest-scheduler.d.ts.map +1 -1
  129. package/dist/types/common/harvest/harvest.d.ts +49 -38
  130. package/dist/types/common/harvest/harvest.d.ts.map +1 -1
  131. package/dist/types/common/harvest/types.d.ts +100 -0
  132. package/dist/types/common/harvest/types.d.ts.map +1 -0
  133. package/dist/types/common/session/session-entity.d.ts +6 -6
  134. package/dist/types/common/unload/eol.d.ts.map +1 -1
  135. package/dist/types/common/util/submit-data.d.ts +44 -64
  136. package/dist/types/common/util/submit-data.d.ts.map +1 -1
  137. package/dist/types/common/window/nreum.d.ts +2 -2
  138. package/dist/types/common/wrap/wrap-jsonp.d.ts.map +1 -1
  139. package/dist/types/features/ajax/aggregate/index.d.ts +5 -5
  140. package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
  141. package/dist/types/features/ajax/instrument/index.d.ts.map +1 -1
  142. package/dist/types/features/jserrors/aggregate/index.d.ts +1 -1
  143. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  144. package/dist/types/features/jserrors/constants.d.ts +0 -1
  145. package/dist/types/features/jserrors/constants.d.ts.map +1 -1
  146. package/dist/types/features/jserrors/instrument/index.d.ts +0 -13
  147. package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -1
  148. package/dist/types/features/jserrors/instrument/uncaught-error.d.ts +15 -0
  149. package/dist/types/features/jserrors/instrument/uncaught-error.d.ts.map +1 -0
  150. package/dist/types/features/metrics/aggregate/endpoint-map.d.ts +5 -5
  151. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  152. package/dist/types/features/page_view_event/aggregate/initialized-features.d.ts.map +1 -1
  153. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  154. package/dist/types/features/session_replay/aggregate/index.d.ts +16 -30
  155. package/dist/types/features/session_replay/aggregate/index.d.ts.map +1 -1
  156. package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
  157. package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
  158. package/dist/types/index.d.ts +1 -0
  159. package/dist/types/loaders/agent-base.d.ts +59 -0
  160. package/dist/types/loaders/agent-base.d.ts.map +1 -0
  161. package/dist/types/loaders/agent.d.ts +39 -5
  162. package/dist/types/loaders/agent.d.ts.map +1 -1
  163. package/dist/types/loaders/api/interaction-types.d.ts +122 -0
  164. package/dist/types/loaders/api/interaction-types.d.ts.map +1 -0
  165. package/dist/types/loaders/configure/configure.d.ts.map +1 -1
  166. package/dist/types/loaders/features/features.d.ts +9 -9
  167. package/dist/types/loaders/micro-agent.d.ts +6 -6
  168. package/dist/types/loaders/micro-agent.d.ts.map +1 -1
  169. package/package.json +6 -1
  170. package/src/common/config/__mocks__/config.js +11 -0
  171. package/src/common/config/state/init.js +2 -1
  172. package/src/common/config/state/runtime.js +3 -2
  173. package/src/common/constants/__mocks__/env.js +3 -0
  174. package/src/common/constants/__mocks__/runtime.js +8 -0
  175. package/src/common/constants/env.cdn.test.js +7 -0
  176. package/src/common/constants/env.npm.test.js +7 -0
  177. package/src/common/constants/env.test.js +7 -0
  178. package/src/common/constants/runtime.js +71 -0
  179. package/src/common/constants/runtime.test.js +168 -0
  180. package/src/common/context/__mocks__/shared-context.js +8 -0
  181. package/src/common/deny-list/deny-list.js +11 -11
  182. package/src/common/deny-list/deny-list.test.js +31 -0
  183. package/src/common/event-listener/__mocks__/event-listener-opts.js +7 -0
  184. package/src/common/event-listener/event-listener-opts.js +1 -1
  185. package/src/common/harvest/__mocks__/harvest.js +13 -0
  186. package/src/common/harvest/harvest-scheduler.js +21 -20
  187. package/src/common/harvest/harvest-scheduler.test.js +496 -0
  188. package/src/common/harvest/harvest.js +142 -134
  189. package/src/common/harvest/harvest.test.js +798 -0
  190. package/src/common/harvest/types.js +47 -0
  191. package/src/common/ids/id.js +1 -1
  192. package/src/common/ids/unique-id.js +1 -1
  193. package/src/common/session/__mocks__/session-entity.js +25 -0
  194. package/src/common/session/session-entity.component-test.js +1 -1
  195. package/src/common/session/session-entity.js +1 -1
  196. package/src/common/timer/interaction-timer.js +1 -1
  197. package/src/common/timing/__mocks__/now.js +1 -0
  198. package/src/common/unload/__mocks__/eol.js +1 -0
  199. package/src/common/unload/eol.js +1 -2
  200. package/src/common/url/__mocks__/clean-url.js +1 -0
  201. package/src/common/url/__mocks__/encode.js +7 -0
  202. package/src/common/url/__mocks__/location.js +1 -0
  203. package/src/common/url/canonicalize-url.js +1 -1
  204. package/src/common/url/canonicalize-url.test.js +2 -2
  205. package/src/common/url/parse-url.js +1 -1
  206. package/src/common/url/parse-url.test.js +3 -3
  207. package/src/common/url/protocol.js +1 -1
  208. package/src/common/util/__mocks__/obfuscate.js +10 -0
  209. package/src/common/util/__mocks__/stringify.js +1 -0
  210. package/src/common/util/__mocks__/submit-data.js +5 -0
  211. package/src/common/util/__mocks__/traverse.js +1 -0
  212. package/src/common/util/submit-data.js +22 -58
  213. package/src/common/util/submit-data.test.js +30 -73
  214. package/src/common/window/nreum.js +1 -1
  215. package/src/common/wrap/wrap-events.js +1 -1
  216. package/src/common/wrap/wrap-fetch.js +1 -1
  217. package/src/common/wrap/wrap-history.js +1 -1
  218. package/src/common/wrap/wrap-jsonp.js +12 -7
  219. package/src/common/wrap/wrap-mutation.js +1 -1
  220. package/src/common/wrap/wrap-promise.js +1 -1
  221. package/src/common/wrap/wrap-promise.test.js +2 -2
  222. package/src/common/wrap/wrap-raf.js +1 -1
  223. package/src/common/wrap/wrap-timer.js +1 -1
  224. package/src/common/wrap/wrap-xhr.js +1 -1
  225. package/src/features/ajax/aggregate/index.js +26 -32
  226. package/src/features/ajax/instrument/distributed-tracing.js +1 -1
  227. package/src/features/ajax/instrument/index.js +1 -2
  228. package/src/features/jserrors/aggregate/compute-stack-trace.js +1 -1
  229. package/src/features/jserrors/aggregate/compute-stack-trace.test.js +1 -1
  230. package/src/features/jserrors/aggregate/index.js +7 -3
  231. package/src/features/jserrors/constants.js +0 -1
  232. package/src/features/jserrors/instrument/index.js +92 -88
  233. package/src/features/jserrors/instrument/uncaught-error.js +15 -0
  234. package/src/features/metrics/aggregate/framework-detection.js +1 -1
  235. package/src/features/metrics/aggregate/framework-detection.test.js +2 -2
  236. package/src/features/metrics/aggregate/index.js +1 -1
  237. package/src/features/page_action/aggregate/index.js +1 -1
  238. package/src/features/page_view_event/aggregate/index.js +1 -2
  239. package/src/features/page_view_event/aggregate/initialized-features.js +18 -14
  240. package/src/features/page_view_event/instrument/index.js +1 -1
  241. package/src/features/page_view_timing/aggregate/index.js +2 -4
  242. package/src/features/page_view_timing/instrument/index.js +1 -1
  243. package/src/features/session_replay/aggregate/index.component-test.js +17 -56
  244. package/src/features/session_replay/aggregate/index.js +47 -28
  245. package/src/features/session_replay/replay-mode.js +2 -2
  246. package/src/features/session_trace/aggregate/index.js +3 -4
  247. package/src/features/session_trace/instrument/index.js +1 -1
  248. package/src/features/spa/aggregate/index.js +1 -1
  249. package/src/features/spa/instrument/index.js +1 -1
  250. package/src/features/utils/agent-session.test.js +2 -2
  251. package/src/features/utils/instrument-base.js +11 -14
  252. package/src/features/utils/instrument-base.test.js +29 -3
  253. package/src/index.js +1 -3
  254. package/src/loaders/agent-base.js +81 -0
  255. package/src/loaders/agent.js +50 -1
  256. package/src/loaders/api/api.js +2 -2
  257. package/src/loaders/api/apiAsync.js +3 -3
  258. package/src/loaders/api/interaction-types.js +80 -0
  259. package/src/loaders/configure/configure.js +5 -4
  260. package/src/loaders/micro-agent.js +30 -31
  261. package/dist/cjs/common/browser-version/firefox-version.js +0 -17
  262. package/dist/cjs/common/browser-version/ios-version.js +0 -19
  263. package/dist/cjs/common/event-emitter/contextual-ee.test.js +0 -282
  264. package/dist/cjs/common/event-emitter/handle.test.js +0 -58
  265. package/dist/cjs/common/event-emitter/register-handler.test.js +0 -55
  266. package/dist/cjs/common/harvest/harvest-scheduler.component-test.js +0 -39
  267. package/dist/cjs/common/harvest/harvest.component-test.js +0 -224
  268. package/dist/cjs/common/ids/id.test.js +0 -85
  269. package/dist/cjs/common/ids/unique-id.test.js +0 -49
  270. package/dist/cjs/common/session/session-entity.component-test.js +0 -497
  271. package/dist/cjs/common/storage/local-storage.test.js +0 -14
  272. package/dist/cjs/common/timer/interaction-timer.component-test.js +0 -216
  273. package/dist/cjs/common/timer/timer.test.js +0 -105
  274. package/dist/cjs/common/timing/nav-timing.test.js +0 -192
  275. package/dist/cjs/common/url/canonicalize-url.test.js +0 -38
  276. package/dist/cjs/common/url/clean-url.test.js +0 -9
  277. package/dist/cjs/common/url/encode.component-test.js +0 -74
  278. package/dist/cjs/common/url/location.test.js +0 -13
  279. package/dist/cjs/common/url/parse-url.test.js +0 -111
  280. package/dist/cjs/common/url/protocol.component-test.js +0 -15
  281. package/dist/cjs/common/util/console.test.js +0 -30
  282. package/dist/cjs/common/util/data-size.test.js +0 -64
  283. package/dist/cjs/common/util/feature-flags.test.js +0 -84
  284. package/dist/cjs/common/util/get-or-set.test.js +0 -47
  285. package/dist/cjs/common/util/global-scope.js +0 -27
  286. package/dist/cjs/common/util/global-scope.test.js +0 -72
  287. package/dist/cjs/common/util/invoke.test.js +0 -49
  288. package/dist/cjs/common/util/map-own.test.js +0 -49
  289. package/dist/cjs/common/util/obfuscate.component-test.js +0 -129
  290. package/dist/cjs/common/util/stringify.test.js +0 -48
  291. package/dist/cjs/common/util/submit-data.test.js +0 -245
  292. package/dist/cjs/common/util/traverse.test.js +0 -44
  293. package/dist/cjs/common/wrap/wrap-promise.test.js +0 -119
  294. package/dist/cjs/features/jserrors/aggregate/canonical-function-name.test.js +0 -31
  295. package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.test.js +0 -383
  296. package/dist/cjs/features/jserrors/aggregate/format-stack-trace.test.js +0 -40
  297. package/dist/cjs/features/jserrors/aggregate/string-hash-code.test.js +0 -27
  298. package/dist/cjs/features/jserrors/instrument/debug.js +0 -40
  299. package/dist/cjs/features/metrics/aggregate/framework-detection.test.js +0 -137
  300. package/dist/cjs/features/metrics/aggregate/polyfill-detection.es5.test.js +0 -17
  301. package/dist/cjs/features/metrics/aggregate/polyfill-detection.test.js +0 -165
  302. package/dist/cjs/features/session_replay/aggregate/index.component-test.js +0 -457
  303. package/dist/cjs/features/spa/aggregate/interaction-node.test.js +0 -16
  304. package/dist/cjs/features/utils/agent-session.test.js +0 -211
  305. package/dist/cjs/features/utils/aggregate-base.test.js +0 -110
  306. package/dist/cjs/features/utils/feature-base.test.js +0 -42
  307. package/dist/cjs/features/utils/handler-cache.test.js +0 -53
  308. package/dist/cjs/features/utils/instrument-base.test.js +0 -179
  309. package/dist/cjs/features/utils/lazy-feature-loader.test.js +0 -30
  310. package/dist/esm/common/browser-version/firefox-version.js +0 -10
  311. package/dist/esm/common/browser-version/ios-version.js +0 -11
  312. package/dist/esm/common/event-emitter/contextual-ee.test.js +0 -278
  313. package/dist/esm/common/event-emitter/handle.test.js +0 -54
  314. package/dist/esm/common/event-emitter/register-handler.test.js +0 -51
  315. package/dist/esm/common/harvest/harvest-scheduler.component-test.js +0 -37
  316. package/dist/esm/common/harvest/harvest.component-test.js +0 -222
  317. package/dist/esm/common/ids/id.test.js +0 -81
  318. package/dist/esm/common/ids/unique-id.test.js +0 -44
  319. package/dist/esm/common/session/session-entity.component-test.js +0 -495
  320. package/dist/esm/common/storage/local-storage.test.js +0 -12
  321. package/dist/esm/common/timer/interaction-timer.component-test.js +0 -214
  322. package/dist/esm/common/timer/timer.test.js +0 -103
  323. package/dist/esm/common/timing/nav-timing.test.js +0 -190
  324. package/dist/esm/common/url/canonicalize-url.test.js +0 -34
  325. package/dist/esm/common/url/clean-url.test.js +0 -7
  326. package/dist/esm/common/url/encode.component-test.js +0 -70
  327. package/dist/esm/common/url/location.test.js +0 -11
  328. package/dist/esm/common/url/parse-url.test.js +0 -107
  329. package/dist/esm/common/url/protocol.component-test.js +0 -13
  330. package/dist/esm/common/util/console.test.js +0 -28
  331. package/dist/esm/common/util/data-size.test.js +0 -60
  332. package/dist/esm/common/util/feature-flags.test.js +0 -80
  333. package/dist/esm/common/util/get-or-set.test.js +0 -45
  334. package/dist/esm/common/util/global-scope.js +0 -17
  335. package/dist/esm/common/util/global-scope.test.js +0 -70
  336. package/dist/esm/common/util/invoke.test.js +0 -47
  337. package/dist/esm/common/util/map-own.test.js +0 -47
  338. package/dist/esm/common/util/obfuscate.component-test.js +0 -125
  339. package/dist/esm/common/util/stringify.test.js +0 -46
  340. package/dist/esm/common/util/submit-data.test.js +0 -241
  341. package/dist/esm/common/util/traverse.test.js +0 -42
  342. package/dist/esm/common/wrap/wrap-promise.test.js +0 -115
  343. package/dist/esm/features/jserrors/aggregate/canonical-function-name.test.js +0 -29
  344. package/dist/esm/features/jserrors/aggregate/compute-stack-trace.test.js +0 -379
  345. package/dist/esm/features/jserrors/aggregate/format-stack-trace.test.js +0 -38
  346. package/dist/esm/features/jserrors/aggregate/string-hash-code.test.js +0 -25
  347. package/dist/esm/features/jserrors/instrument/debug.js +0 -38
  348. package/dist/esm/features/metrics/aggregate/framework-detection.test.js +0 -133
  349. package/dist/esm/features/metrics/aggregate/polyfill-detection.es5.test.js +0 -15
  350. package/dist/esm/features/metrics/aggregate/polyfill-detection.test.js +0 -163
  351. package/dist/esm/features/session_replay/aggregate/index.component-test.js +0 -453
  352. package/dist/esm/features/spa/aggregate/interaction-node.test.js +0 -14
  353. package/dist/esm/features/utils/agent-session.test.js +0 -207
  354. package/dist/esm/features/utils/aggregate-base.test.js +0 -108
  355. package/dist/esm/features/utils/feature-base.test.js +0 -40
  356. package/dist/esm/features/utils/handler-cache.test.js +0 -51
  357. package/dist/esm/features/utils/instrument-base.test.js +0 -175
  358. package/dist/esm/features/utils/lazy-feature-loader.test.js +0 -29
  359. package/dist/types/common/browser-version/firefox-version.d.ts +0 -2
  360. package/dist/types/common/browser-version/firefox-version.d.ts.map +0 -1
  361. package/dist/types/common/browser-version/ios-version.d.ts +0 -3
  362. package/dist/types/common/browser-version/ios-version.d.ts.map +0 -1
  363. package/dist/types/common/harvest/harvest-scheduler.component-test.d.ts +0 -2
  364. package/dist/types/common/harvest/harvest-scheduler.component-test.d.ts.map +0 -1
  365. package/dist/types/common/harvest/harvest.component-test.d.ts +0 -2
  366. package/dist/types/common/harvest/harvest.component-test.d.ts.map +0 -1
  367. package/dist/types/common/session/session-entity.component-test.d.ts +0 -2
  368. package/dist/types/common/session/session-entity.component-test.d.ts.map +0 -1
  369. package/dist/types/common/timer/interaction-timer.component-test.d.ts +0 -2
  370. package/dist/types/common/timer/interaction-timer.component-test.d.ts.map +0 -1
  371. package/dist/types/common/url/encode.component-test.d.ts +0 -2
  372. package/dist/types/common/url/encode.component-test.d.ts.map +0 -1
  373. package/dist/types/common/url/protocol.component-test.d.ts +0 -2
  374. package/dist/types/common/url/protocol.component-test.d.ts.map +0 -1
  375. package/dist/types/common/util/global-scope.d.ts +0 -5
  376. package/dist/types/common/util/global-scope.d.ts.map +0 -1
  377. package/dist/types/common/util/obfuscate.component-test.d.ts +0 -2
  378. package/dist/types/common/util/obfuscate.component-test.d.ts.map +0 -1
  379. package/dist/types/features/jserrors/instrument/debug.d.ts +0 -2
  380. package/dist/types/features/jserrors/instrument/debug.d.ts.map +0 -1
  381. package/dist/types/features/session_replay/aggregate/index.component-test.d.ts +0 -2
  382. package/dist/types/features/session_replay/aggregate/index.component-test.d.ts.map +0 -1
  383. package/src/common/browser-version/firefox-version.js +0 -10
  384. package/src/common/browser-version/ios-version.js +0 -11
  385. package/src/common/harvest/harvest-scheduler.component-test.js +0 -25
  386. package/src/common/harvest/harvest.component-test.js +0 -169
  387. package/src/common/util/global-scope.js +0 -23
  388. package/src/common/util/global-scope.test.js +0 -87
  389. package/src/features/jserrors/instrument/debug.js +0 -36
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- var _faker = require("@faker-js/faker");
4
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
5
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
6
- jest.mock('./contextual-ee', () => ({
7
- __esModule: true,
8
- ee: {
9
- buffer: jest.fn(),
10
- emit: jest.fn(),
11
- get: jest.fn(() => ({
12
- buffer: jest.fn(),
13
- emit: jest.fn()
14
- }))
15
- }
16
- }));
17
- afterEach(() => {
18
- jest.resetModules();
19
- jest.resetAllMocks();
20
- });
21
- test('it should create and use a default event-emitter', async () => {
22
- const {
23
- ee
24
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./contextual-ee')));
25
- const {
26
- handle
27
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./handle')));
28
- const handleEE = jest.mocked(ee.get).mock.results[0].value;
29
- const eventType = _faker.faker.datatype.uuid();
30
- const eventArgs = ['a', 'b', 'c'];
31
- const eventContext = {};
32
- const eventGroup = _faker.faker.datatype.uuid();
33
- handle(eventType, eventArgs, eventContext, eventGroup);
34
- expect(handleEE.buffer).toHaveBeenCalledWith([eventType], eventGroup);
35
- expect(handleEE.emit).toHaveBeenCalledWith(eventType, eventArgs, eventContext);
36
- });
37
- test('it should use the provided scoped event-emitter', async () => {
38
- const {
39
- ee
40
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./contextual-ee')));
41
- const {
42
- handle
43
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./handle')));
44
- const scopedEE = {
45
- buffer: jest.fn(),
46
- emit: jest.fn()
47
- };
48
- const handleEE = jest.mocked(ee.get).mock.results[0].value;
49
- const eventType = _faker.faker.datatype.uuid();
50
- const eventArgs = ['a', 'b', 'c'];
51
- const eventContext = {};
52
- const eventGroup = _faker.faker.datatype.uuid();
53
- handle(eventType, eventArgs, eventContext, eventGroup, scopedEE);
54
- expect(handleEE.buffer).not.toHaveBeenCalled();
55
- expect(handleEE.emit).not.toHaveBeenCalled();
56
- expect(scopedEE.buffer).toHaveBeenCalledWith([eventType], eventGroup);
57
- expect(scopedEE.emit).toHaveBeenCalledWith(eventType, eventArgs, eventContext);
58
- });
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- var _faker = require("@faker-js/faker");
4
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
5
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
6
- jest.mock('./handle', () => ({
7
- __esModule: true,
8
- handleEE: {}
9
- }));
10
- afterEach(() => {
11
- jest.resetModules();
12
- jest.resetAllMocks();
13
- });
14
- test('should default group to "feature"', async () => {
15
- const {
16
- handleEE
17
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./handle')));
18
- const {
19
- registerHandler
20
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./register-handler')));
21
- const eventType = _faker.faker.datatype.uuid();
22
- const eventHandler = jest.fn();
23
- registerHandler(eventType, eventHandler);
24
- expect(registerHandler.handlers.feature).toEqual(expect.objectContaining({
25
- [eventType]: [expect.arrayContaining([handleEE, eventHandler])]
26
- }));
27
- });
28
- test('should use the provided group', async () => {
29
- const {
30
- handleEE
31
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./handle')));
32
- const {
33
- registerHandler
34
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./register-handler')));
35
- const eventType = _faker.faker.datatype.uuid();
36
- const eventGroup = _faker.faker.datatype.uuid();
37
- const eventHandler = jest.fn();
38
- registerHandler(eventType, eventHandler, eventGroup);
39
- expect(registerHandler.handlers[eventGroup]).toEqual(expect.objectContaining({
40
- [eventType]: [expect.arrayContaining([handleEE, eventHandler])]
41
- }));
42
- });
43
- test('should use the provided event-emitter', async () => {
44
- const {
45
- registerHandler
46
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./register-handler')));
47
- const scopedEE = {};
48
- const eventType = _faker.faker.datatype.uuid();
49
- const eventGroup = _faker.faker.datatype.uuid();
50
- const eventHandler = jest.fn();
51
- registerHandler(eventType, eventHandler, eventGroup, scopedEE);
52
- expect(registerHandler.handlers[eventGroup]).toEqual(expect.objectContaining({
53
- [eventType]: [expect.arrayContaining([scopedEE, eventHandler])]
54
- }));
55
- });
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- var _init = require("../config/state/init");
4
- var _harvestScheduler = require("./harvest-scheduler");
5
- describe('runHarvest', () => {
6
- test('should re-schedule harvest even if there is no accumulated data', () => {
7
- (0, _init.setConfiguration)('asdf', {});
8
- const scheduler = new _harvestScheduler.HarvestScheduler('events', {
9
- getPayload: jest.fn()
10
- }, {
11
- agentIdentifier: 'asdf',
12
- ee: {
13
- on: jest.fn()
14
- }
15
- });
16
- scheduler.started = true;
17
- jest.spyOn(scheduler, 'scheduleHarvest');
18
- scheduler.runHarvest();
19
- expect(scheduler.opts.getPayload()).toBeFalsy();
20
- expect(scheduler.scheduleHarvest).toHaveBeenCalledTimes(1);
21
- });
22
- test('should also re-schedule harvest if there is accumulated data', () => {
23
- (0, _init.setConfiguration)('asdf', {});
24
- const scheduler = new _harvestScheduler.HarvestScheduler('events', {
25
- getPayload: jest.fn().mockImplementation(() => 'payload')
26
- }, {
27
- agentIdentifier: 'asdf',
28
- ee: {
29
- on: jest.fn()
30
- }
31
- });
32
- scheduler.started = true;
33
- scheduler.harvest._send = () => {};
34
- jest.spyOn(scheduler, 'scheduleHarvest');
35
- scheduler.runHarvest();
36
- expect(scheduler.opts.getPayload()).toBeTruthy();
37
- expect(scheduler.scheduleHarvest).toHaveBeenCalledTimes(1);
38
- });
39
- });
@@ -1,224 +0,0 @@
1
- "use strict";
2
-
3
- var _submitData = require("../util/submit-data");
4
- var _harvest = require("./harvest");
5
- jest.mock('../context/shared-context', () => ({
6
- __esModule: true,
7
- SharedContext: function () {
8
- this.sharedContext = {
9
- agentIdentifier: 'abcd'
10
- };
11
- }
12
- }));
13
- jest.mock('../config/config', () => ({
14
- __esModule: true,
15
- getConfigurationValue: jest.fn(),
16
- getInfo: jest.fn().mockReturnValue({
17
- errorBeacon: 'example.com',
18
- licenseKey: 'abcd'
19
- }),
20
- getRuntime: jest.fn().mockReturnValue({
21
- bytesSent: {},
22
- queryBytesSent: {}
23
- })
24
- }));
25
- jest.mock('../util/submit-data', () => ({
26
- __esModule: true,
27
- submitData: {
28
- xhr: jest.fn(() => ({
29
- addEventListener: jest.fn()
30
- })),
31
- beacon: jest.fn(),
32
- img: jest.fn()
33
- }
34
- }));
35
- describe('sendX', () => {
36
- test.each([null, undefined, false])('should not send request when body is empty and sendEmptyBody is %s', sendEmptyBody => {
37
- const sendCallback = jest.fn();
38
- const harvester = new _harvest.Harvest();
39
- harvester.on('jserrors', () => ({
40
- body: {},
41
- qs: {}
42
- }));
43
- harvester.sendX({
44
- endpoint: 'jserrors',
45
- cbFinished: sendCallback
46
- });
47
- expect(sendCallback).toHaveBeenCalledWith({
48
- sent: false
49
- });
50
- expect(_submitData.submitData.xhr).not.toHaveBeenCalled();
51
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
52
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
53
- });
54
- test('should send request when body is empty and sendEmptyBody is true', () => {
55
- const harvester = new _harvest.Harvest();
56
- harvester.on('jserrors', () => ({
57
- body: {},
58
- qs: {}
59
- }));
60
- harvester.sendX({
61
- endpoint: 'jserrors',
62
- opts: {
63
- sendEmptyBody: true
64
- },
65
- cbFinished: jest.fn()
66
- });
67
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
68
- url: expect.stringContaining('https://example.com/jserrors/1/abcd?'),
69
- body: undefined
70
- }));
71
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
72
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
73
- });
74
- test.each([null, undefined, []])('should remove %s values from the body and query string when sending', emptyValue => {
75
- const harvester = new _harvest.Harvest();
76
- harvester.on('jserrors', () => ({
77
- body: {
78
- bar: 'foo',
79
- empty: emptyValue
80
- },
81
- qs: {
82
- foo: 'bar',
83
- empty: emptyValue
84
- }
85
- }));
86
- harvester.sendX({
87
- endpoint: 'jserrors',
88
- cbFinished: jest.fn()
89
- });
90
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
91
- url: expect.stringContaining('&foo=bar'),
92
- body: JSON.stringify({
93
- bar: 'foo'
94
- })
95
- }));
96
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
97
- url: expect.not.stringContaining('&empty'),
98
- body: expect.not.stringContaining('empty')
99
- }));
100
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
101
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
102
- });
103
- test.each([1, false, true])('should not remove value %s (when it doesn\'t have a length) from the body and query string when sending', nonStringValue => {
104
- const harvester = new _harvest.Harvest();
105
- harvester.on('jserrors', () => ({
106
- body: {
107
- bar: 'foo',
108
- nonString: nonStringValue
109
- },
110
- qs: {
111
- foo: 'bar',
112
- nonString: nonStringValue
113
- }
114
- }));
115
- harvester.sendX({
116
- endpoint: 'jserrors',
117
- cbFinished: jest.fn()
118
- });
119
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
120
- url: expect.stringContaining("&nonString=".concat(nonStringValue)),
121
- body: JSON.stringify({
122
- bar: 'foo',
123
- nonString: nonStringValue
124
- })
125
- }));
126
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
127
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
128
- });
129
- });
130
- describe('send', () => {
131
- test.each([null, undefined, false])('should not send request when body is empty and sendEmptyBody is %s', sendEmptyBody => {
132
- const sendCallback = jest.fn();
133
- const harvester = new _harvest.Harvest();
134
- harvester.send({
135
- endpoint: 'rum',
136
- payload: {
137
- qs: {},
138
- body: {}
139
- },
140
- opts: {
141
- sendEmptyBody
142
- },
143
- cbFinished: sendCallback
144
- });
145
- expect(sendCallback).toHaveBeenCalledWith({
146
- sent: false
147
- });
148
- expect(_submitData.submitData.xhr).not.toHaveBeenCalled();
149
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
150
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
151
- });
152
- test('should send request when body is empty and sendEmptyBody is true', () => {
153
- const harvester = new _harvest.Harvest();
154
- harvester.send({
155
- endpoint: 'rum',
156
- payload: {
157
- qs: {},
158
- body: {}
159
- },
160
- opts: {
161
- sendEmptyBody: true
162
- }
163
- });
164
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
165
- url: expect.stringContaining('https://example.com/1/abcd?'),
166
- body: undefined
167
- }));
168
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
169
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
170
- });
171
- test.each([null, undefined, []])('should remove %s values from the body and query string when sending', emptyValue => {
172
- const harvester = new _harvest.Harvest();
173
- harvester.send({
174
- endpoint: 'rum',
175
- payload: {
176
- qs: {
177
- foo: 'bar',
178
- empty: emptyValue
179
- },
180
- body: {
181
- bar: 'foo',
182
- empty: emptyValue
183
- }
184
- }
185
- });
186
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
187
- url: expect.stringContaining('&foo=bar'),
188
- body: JSON.stringify({
189
- bar: 'foo'
190
- })
191
- }));
192
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
193
- url: expect.not.stringContaining('&empty'),
194
- body: expect.not.stringContaining('empty')
195
- }));
196
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
197
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
198
- });
199
- test.each([1, false, true])('should not remove value %s (when it doesn\'t have a length) from the body and query string when sending', nonStringValue => {
200
- const harvester = new _harvest.Harvest();
201
- harvester.send({
202
- endpoint: 'rum',
203
- payload: {
204
- qs: {
205
- foo: 'bar',
206
- nonString: nonStringValue
207
- },
208
- body: {
209
- bar: 'foo',
210
- nonString: nonStringValue
211
- }
212
- }
213
- });
214
- expect(_submitData.submitData.xhr).toHaveBeenCalledWith(expect.objectContaining({
215
- url: expect.stringContaining("&nonString=".concat(nonStringValue)),
216
- body: JSON.stringify({
217
- bar: 'foo',
218
- nonString: nonStringValue
219
- })
220
- }));
221
- expect(_submitData.submitData.img).not.toHaveBeenCalled();
222
- expect(_submitData.submitData.beacon).not.toHaveBeenCalled();
223
- });
224
- });
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
4
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
5
- let idFn;
6
- beforeEach(async () => {
7
- idFn = (await Promise.resolve().then(() => _interopRequireWildcard(require('./id')))).id;
8
- });
9
- afterEach(() => {
10
- jest.resetModules();
11
- jest.clearAllMocks();
12
- });
13
- test.each([{
14
- input: undefined,
15
- expected: -1,
16
- title: 'id of undefined is -1'
17
- }, {
18
- input: null,
19
- expected: -1,
20
- title: 'id of null is -1'
21
- }, {
22
- input: 2,
23
- expected: -1,
24
- title: 'id of number is -1'
25
- }, {
26
- input: 'foo',
27
- expected: -1,
28
- title: 'id of string is -1'
29
- }])('$title', _ref => {
30
- let {
31
- input,
32
- expected
33
- } = _ref;
34
- const result = idFn(input);
35
- expect(typeof result).toEqual('number');
36
- expect(result).toEqual(expected);
37
- });
38
- test('id values increment sequentially', () => {
39
- const inputA = {};
40
- const inputB = {};
41
- const resultA = idFn(inputA);
42
- const resultB = idFn(inputB);
43
- expect(resultA - resultB).toEqual(-1);
44
- });
45
- test('id is correctly assigned to function type', () => {
46
- const input = jest.fn();
47
- const result = idFn(input);
48
- expect(result).toEqual(1);
49
- expect(input['nr@id']).toEqual(1);
50
- });
51
- test('id is correctly assigned to object type', () => {
52
- const input = {};
53
- const result = idFn(input);
54
- expect(result).toEqual(1);
55
- expect(input['nr@id']).toEqual(1);
56
- });
57
- test('id is the same when called twice on the same input', () => {
58
- const input = {};
59
- const result1 = idFn(input);
60
- const result2 = idFn(input);
61
- expect(result1).toEqual(1);
62
- expect(result2).toEqual(1);
63
- expect(input['nr@id']).toEqual(1);
64
- });
65
- test('id is zero on global scope', async () => {
66
- const result = idFn(global);
67
- expect(result).toEqual(0);
68
- });
69
- test('id on prototype is correctly inherited', () => {
70
- const fn = jest.fn();
71
- const a = {};
72
- idFn(a);
73
- fn.prototype = a;
74
- const b = new fn();
75
- expect(b['nr@id']).toEqual(a['nr@id']);
76
- });
77
- test('id on prototype is different from instance', () => {
78
- const fn = jest.fn();
79
- const a = {};
80
- idFn(a);
81
- fn.prototype = a;
82
- const b = new fn();
83
- const result = idFn(b);
84
- expect(b['nr@id']).toEqual(result);
85
- });
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- var _crypto = _interopRequireDefault(require("crypto"));
4
- var uniqueId = _interopRequireWildcard(require("./unique-id"));
5
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
6
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- const getRandomValues = jest.fn(arr => _crypto.default.randomBytes(arr.length));
9
- afterEach(() => {
10
- delete global.crypto;
11
- });
12
- describe('generateUuid', () => {
13
- const uuidv4Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
14
- test('should generate a uuidv4 that matches the expected format', () => {
15
- const id = uniqueId.generateUuid();
16
- expect(uuidv4Regex.test(id)).toEqual(true);
17
- });
18
- test('should support using native crypto library', () => {
19
- global.crypto = {
20
- getRandomValues
21
- };
22
- const id = uniqueId.generateUuid();
23
- expect(uuidv4Regex.test(id)).toEqual(true);
24
- expect(getRandomValues).toHaveBeenCalledTimes(1);
25
- });
26
- });
27
- describe('generateRandomHexString', () => {
28
- const hexRegex = /^[0-9a-f]{8}$/;
29
- test('should generate a valid hex string', () => {
30
- const id = uniqueId.generateRandomHexString(8);
31
- expect(hexRegex.test(id)).toEqual(true);
32
- });
33
- test('should support using native crypto library', () => {
34
- global.crypto = {
35
- getRandomValues
36
- };
37
- const id = uniqueId.generateRandomHexString(8);
38
- expect(hexRegex.test(id)).toEqual(true);
39
- expect(getRandomValues).toHaveBeenCalledTimes(1);
40
- });
41
- });
42
- test('generateSpanId should generate a 16 character hex string', () => {
43
- const id = uniqueId.generateSpanId();
44
- expect(/^[0-9a-f]{16}$/.test(id)).toEqual(true);
45
- });
46
- test('generateTraceId should generate a 32 character hex string', () => {
47
- const id = uniqueId.generateTraceId();
48
- expect(/^[0-9a-f]{32}$/.test(id)).toEqual(true);
49
- });