@cloudcare/browser-rum-slim 3.3.3

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 (309) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/bundle/dataflux-rum-slim.js +1 -0
  4. package/cjs/boot/buildEnv.js +11 -0
  5. package/cjs/boot/buildEnv.js.map +1 -0
  6. package/cjs/boot/perStartRum.js +227 -0
  7. package/cjs/boot/perStartRum.js.map +1 -0
  8. package/cjs/boot/rum.js +180 -0
  9. package/cjs/boot/rum.js.map +1 -0
  10. package/cjs/boot/rum.slim.entry.js +13 -0
  11. package/cjs/boot/rum.slim.entry.js.map +1 -0
  12. package/cjs/boot/rumEntryFactory.js +15 -0
  13. package/cjs/boot/rumEntryFactory.js.map +1 -0
  14. package/cjs/boot/rumPublicApi.js +285 -0
  15. package/cjs/boot/rumPublicApi.js.map +1 -0
  16. package/cjs/boot/rumRecorderApiStub.js +19 -0
  17. package/cjs/boot/rumRecorderApiStub.js.map +1 -0
  18. package/cjs/boot/rumSlimConfiguration.js +16 -0
  19. package/cjs/boot/rumSlimConfiguration.js.map +1 -0
  20. package/cjs/constants.js +41 -0
  21. package/cjs/constants.js.map +1 -0
  22. package/cjs/domain/assembly.js +172 -0
  23. package/cjs/domain/assembly.js.map +1 -0
  24. package/cjs/domain/configuration.js +272 -0
  25. package/cjs/domain/configuration.js.map +1 -0
  26. package/cjs/domain/contexts/commonContext.js +14 -0
  27. package/cjs/domain/contexts/commonContext.js.map +1 -0
  28. package/cjs/domain/contexts/displayContext.js +22 -0
  29. package/cjs/domain/contexts/displayContext.js.map +1 -0
  30. package/cjs/domain/contexts/foregroundContexts.js +111 -0
  31. package/cjs/domain/contexts/foregroundContexts.js.map +1 -0
  32. package/cjs/domain/contexts/internalContext.js +47 -0
  33. package/cjs/domain/contexts/internalContext.js.map +1 -0
  34. package/cjs/domain/contexts/pageStateHistory.js +111 -0
  35. package/cjs/domain/contexts/pageStateHistory.js.map +1 -0
  36. package/cjs/domain/contexts/urlContexts.js +73 -0
  37. package/cjs/domain/contexts/urlContexts.js.map +1 -0
  38. package/cjs/domain/contexts/viewContexts.js +51 -0
  39. package/cjs/domain/contexts/viewContexts.js.map +1 -0
  40. package/cjs/domain/domMutationObservable.js +69 -0
  41. package/cjs/domain/domMutationObservable.js.map +1 -0
  42. package/cjs/domain/encoderStreamId.js +11 -0
  43. package/cjs/domain/encoderStreamId.js.map +1 -0
  44. package/cjs/domain/firstInputPolyfill.js +83 -0
  45. package/cjs/domain/firstInputPolyfill.js.map +1 -0
  46. package/cjs/domain/initViewportObservable.js +44 -0
  47. package/cjs/domain/initViewportObservable.js.map +1 -0
  48. package/cjs/domain/locationChangeObservable.js +57 -0
  49. package/cjs/domain/locationChangeObservable.js.map +1 -0
  50. package/cjs/domain/performanceObservable.js +124 -0
  51. package/cjs/domain/performanceObservable.js.map +1 -0
  52. package/cjs/domain/performanceUtils.js +47 -0
  53. package/cjs/domain/performanceUtils.js.map +1 -0
  54. package/cjs/domain/requestCollection.js +127 -0
  55. package/cjs/domain/requestCollection.js.map +1 -0
  56. package/cjs/domain/rumEventsCollection/actions/actionCollection.js +89 -0
  57. package/cjs/domain/rumEventsCollection/actions/actionCollection.js.map +1 -0
  58. package/cjs/domain/rumEventsCollection/actions/clickChain.js +69 -0
  59. package/cjs/domain/rumEventsCollection/actions/clickChain.js.map +1 -0
  60. package/cjs/domain/rumEventsCollection/actions/computeFrustration.js +75 -0
  61. package/cjs/domain/rumEventsCollection/actions/computeFrustration.js.map +1 -0
  62. package/cjs/domain/rumEventsCollection/actions/getActionNameFromElement.js +232 -0
  63. package/cjs/domain/rumEventsCollection/actions/getActionNameFromElement.js.map +1 -0
  64. package/cjs/domain/rumEventsCollection/actions/getSelectorsFromElement.js +220 -0
  65. package/cjs/domain/rumEventsCollection/actions/getSelectorsFromElement.js.map +1 -0
  66. package/cjs/domain/rumEventsCollection/actions/interactionSelectorCache.js +28 -0
  67. package/cjs/domain/rumEventsCollection/actions/interactionSelectorCache.js.map +1 -0
  68. package/cjs/domain/rumEventsCollection/actions/listenActionEvents.js +73 -0
  69. package/cjs/domain/rumEventsCollection/actions/listenActionEvents.js.map +1 -0
  70. package/cjs/domain/rumEventsCollection/actions/trackClickActions.js +253 -0
  71. package/cjs/domain/rumEventsCollection/actions/trackClickActions.js.map +1 -0
  72. package/cjs/domain/rumEventsCollection/error/errorCollection.js +90 -0
  73. package/cjs/domain/rumEventsCollection/error/errorCollection.js.map +1 -0
  74. package/cjs/domain/rumEventsCollection/error/trackConsoleError.js +18 -0
  75. package/cjs/domain/rumEventsCollection/error/trackConsoleError.js.map +1 -0
  76. package/cjs/domain/rumEventsCollection/error/trackReportError.js +25 -0
  77. package/cjs/domain/rumEventsCollection/error/trackReportError.js.map +1 -0
  78. package/cjs/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js +61 -0
  79. package/cjs/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js.map +1 -0
  80. package/cjs/domain/rumEventsCollection/longTask/longTaskCollection.js +44 -0
  81. package/cjs/domain/rumEventsCollection/longTask/longTaskCollection.js.map +1 -0
  82. package/cjs/domain/rumEventsCollection/resource/matchRequestResourceEntry.js +74 -0
  83. package/cjs/domain/rumEventsCollection/resource/matchRequestResourceEntry.js.map +1 -0
  84. package/cjs/domain/rumEventsCollection/resource/resourceCollection.js +239 -0
  85. package/cjs/domain/rumEventsCollection/resource/resourceCollection.js.map +1 -0
  86. package/cjs/domain/rumEventsCollection/resource/resourceTrackerManager.js +237 -0
  87. package/cjs/domain/rumEventsCollection/resource/resourceTrackerManager.js.map +1 -0
  88. package/cjs/domain/rumEventsCollection/resource/resourceUtils.js +240 -0
  89. package/cjs/domain/rumEventsCollection/resource/resourceUtils.js.map +1 -0
  90. package/cjs/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js +25 -0
  91. package/cjs/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
  92. package/cjs/domain/rumEventsCollection/view/interactionCountPolyfill.js +54 -0
  93. package/cjs/domain/rumEventsCollection/view/interactionCountPolyfill.js.map +1 -0
  94. package/cjs/domain/rumEventsCollection/view/trackCommonViewMetrics.js +48 -0
  95. package/cjs/domain/rumEventsCollection/view/trackCommonViewMetrics.js.map +1 -0
  96. package/cjs/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js +125 -0
  97. package/cjs/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js.map +1 -0
  98. package/cjs/domain/rumEventsCollection/view/trackFirstContentfulPaint.js +27 -0
  99. package/cjs/domain/rumEventsCollection/view/trackFirstContentfulPaint.js.map +1 -0
  100. package/cjs/domain/rumEventsCollection/view/trackFirstHidden.js +55 -0
  101. package/cjs/domain/rumEventsCollection/view/trackFirstHidden.js.map +1 -0
  102. package/cjs/domain/rumEventsCollection/view/trackFirstInput.js +47 -0
  103. package/cjs/domain/rumEventsCollection/view/trackFirstInput.js.map +1 -0
  104. package/cjs/domain/rumEventsCollection/view/trackInitialViewTimings.js +51 -0
  105. package/cjs/domain/rumEventsCollection/view/trackInitialViewTimings.js.map +1 -0
  106. package/cjs/domain/rumEventsCollection/view/trackInteractionToNextPaint.js +162 -0
  107. package/cjs/domain/rumEventsCollection/view/trackInteractionToNextPaint.js.map +1 -0
  108. package/cjs/domain/rumEventsCollection/view/trackLargestContentfulPaint.js +61 -0
  109. package/cjs/domain/rumEventsCollection/view/trackLargestContentfulPaint.js.map +1 -0
  110. package/cjs/domain/rumEventsCollection/view/trackLoadingTime.js +51 -0
  111. package/cjs/domain/rumEventsCollection/view/trackLoadingTime.js.map +1 -0
  112. package/cjs/domain/rumEventsCollection/view/trackNavigationTimings.js +57 -0
  113. package/cjs/domain/rumEventsCollection/view/trackNavigationTimings.js.map +1 -0
  114. package/cjs/domain/rumEventsCollection/view/trackScrollMetrics.js +92 -0
  115. package/cjs/domain/rumEventsCollection/view/trackScrollMetrics.js.map +1 -0
  116. package/cjs/domain/rumEventsCollection/view/trackViewEventCounts.js +21 -0
  117. package/cjs/domain/rumEventsCollection/view/trackViewEventCounts.js.map +1 -0
  118. package/cjs/domain/rumEventsCollection/view/trackViews.js +269 -0
  119. package/cjs/domain/rumEventsCollection/view/trackViews.js.map +1 -0
  120. package/cjs/domain/rumEventsCollection/view/viewCollection.js +131 -0
  121. package/cjs/domain/rumEventsCollection/view/viewCollection.js.map +1 -0
  122. package/cjs/domain/rumSessionManager.js +187 -0
  123. package/cjs/domain/rumSessionManager.js.map +1 -0
  124. package/cjs/domain/tracing/ddtraceTracer.js +46 -0
  125. package/cjs/domain/tracing/ddtraceTracer.js.map +1 -0
  126. package/cjs/domain/tracing/getDocumentTraceId.js +80 -0
  127. package/cjs/domain/tracing/getDocumentTraceId.js.map +1 -0
  128. package/cjs/domain/tracing/jaegerTracer.js +48 -0
  129. package/cjs/domain/tracing/jaegerTracer.js.map +1 -0
  130. package/cjs/domain/tracing/sampler.js +69 -0
  131. package/cjs/domain/tracing/sampler.js.map +1 -0
  132. package/cjs/domain/tracing/skywalkingTracer.js +96 -0
  133. package/cjs/domain/tracing/skywalkingTracer.js.map +1 -0
  134. package/cjs/domain/tracing/traceIdentifier.js +66 -0
  135. package/cjs/domain/tracing/traceIdentifier.js.map +1 -0
  136. package/cjs/domain/tracing/tracer.js +133 -0
  137. package/cjs/domain/tracing/tracer.js.map +1 -0
  138. package/cjs/domain/tracing/w3cTraceParentTracer.js +74 -0
  139. package/cjs/domain/tracing/w3cTraceParentTracer.js.map +1 -0
  140. package/cjs/domain/tracing/zipkinMultiTracer.js +48 -0
  141. package/cjs/domain/tracing/zipkinMultiTracer.js.map +1 -0
  142. package/cjs/domain/tracing/zipkinSingleTracer.js +47 -0
  143. package/cjs/domain/tracing/zipkinSingleTracer.js.map +1 -0
  144. package/cjs/domain/trackEventCounts.js +55 -0
  145. package/cjs/domain/trackEventCounts.js.map +1 -0
  146. package/cjs/domain/usr/index.js +44 -0
  147. package/cjs/domain/usr/index.js.map +1 -0
  148. package/cjs/domain/waitPageActivityEnd.js +151 -0
  149. package/cjs/domain/waitPageActivityEnd.js.map +1 -0
  150. package/cjs/index.js +13 -0
  151. package/cjs/index.js.map +1 -0
  152. package/cjs/transport/startRumBatch.js +26 -0
  153. package/cjs/transport/startRumBatch.js.map +1 -0
  154. package/cjs/transport/startRumEventBridge.js +15 -0
  155. package/cjs/transport/startRumEventBridge.js.map +1 -0
  156. package/esm/boot/buildEnv.js +5 -0
  157. package/esm/boot/buildEnv.js.map +1 -0
  158. package/esm/boot/perStartRum.js +221 -0
  159. package/esm/boot/perStartRum.js.map +1 -0
  160. package/esm/boot/rum.js +173 -0
  161. package/esm/boot/rum.js.map +1 -0
  162. package/esm/boot/rum.slim.entry.js +7 -0
  163. package/esm/boot/rum.slim.entry.js.map +1 -0
  164. package/esm/boot/rumEntryFactory.js +9 -0
  165. package/esm/boot/rumEntryFactory.js.map +1 -0
  166. package/esm/boot/rumPublicApi.js +279 -0
  167. package/esm/boot/rumPublicApi.js.map +1 -0
  168. package/esm/boot/rumRecorderApiStub.js +13 -0
  169. package/esm/boot/rumRecorderApiStub.js.map +1 -0
  170. package/esm/boot/rumSlimConfiguration.js +10 -0
  171. package/esm/boot/rumSlimConfiguration.js.map +1 -0
  172. package/esm/constants.js +35 -0
  173. package/esm/constants.js.map +1 -0
  174. package/esm/domain/assembly.js +166 -0
  175. package/esm/domain/assembly.js.map +1 -0
  176. package/esm/domain/configuration.js +266 -0
  177. package/esm/domain/configuration.js.map +1 -0
  178. package/esm/domain/contexts/commonContext.js +8 -0
  179. package/esm/domain/contexts/commonContext.js.map +1 -0
  180. package/esm/domain/contexts/displayContext.js +16 -0
  181. package/esm/domain/contexts/displayContext.js.map +1 -0
  182. package/esm/domain/contexts/foregroundContexts.js +103 -0
  183. package/esm/domain/contexts/foregroundContexts.js.map +1 -0
  184. package/esm/domain/contexts/internalContext.js +41 -0
  185. package/esm/domain/contexts/internalContext.js.map +1 -0
  186. package/esm/domain/contexts/pageStateHistory.js +104 -0
  187. package/esm/domain/contexts/pageStateHistory.js.map +1 -0
  188. package/esm/domain/contexts/urlContexts.js +67 -0
  189. package/esm/domain/contexts/urlContexts.js.map +1 -0
  190. package/esm/domain/contexts/viewContexts.js +44 -0
  191. package/esm/domain/contexts/viewContexts.js.map +1 -0
  192. package/esm/domain/domMutationObservable.js +62 -0
  193. package/esm/domain/domMutationObservable.js.map +1 -0
  194. package/esm/domain/encoderStreamId.js +5 -0
  195. package/esm/domain/encoderStreamId.js.map +1 -0
  196. package/esm/domain/firstInputPolyfill.js +77 -0
  197. package/esm/domain/firstInputPolyfill.js.map +1 -0
  198. package/esm/domain/initViewportObservable.js +36 -0
  199. package/esm/domain/initViewportObservable.js.map +1 -0
  200. package/esm/domain/locationChangeObservable.js +51 -0
  201. package/esm/domain/locationChangeObservable.js.map +1 -0
  202. package/esm/domain/performanceObservable.js +116 -0
  203. package/esm/domain/performanceObservable.js.map +1 -0
  204. package/esm/domain/performanceUtils.js +40 -0
  205. package/esm/domain/performanceUtils.js.map +1 -0
  206. package/esm/domain/requestCollection.js +119 -0
  207. package/esm/domain/requestCollection.js.map +1 -0
  208. package/esm/domain/rumEventsCollection/actions/actionCollection.js +83 -0
  209. package/esm/domain/rumEventsCollection/actions/actionCollection.js.map +1 -0
  210. package/esm/domain/rumEventsCollection/actions/clickChain.js +62 -0
  211. package/esm/domain/rumEventsCollection/actions/clickChain.js.map +1 -0
  212. package/esm/domain/rumEventsCollection/actions/computeFrustration.js +67 -0
  213. package/esm/domain/rumEventsCollection/actions/computeFrustration.js.map +1 -0
  214. package/esm/domain/rumEventsCollection/actions/getActionNameFromElement.js +225 -0
  215. package/esm/domain/rumEventsCollection/actions/getActionNameFromElement.js.map +1 -0
  216. package/esm/domain/rumEventsCollection/actions/getSelectorsFromElement.js +212 -0
  217. package/esm/domain/rumEventsCollection/actions/getSelectorsFromElement.js.map +1 -0
  218. package/esm/domain/rumEventsCollection/actions/interactionSelectorCache.js +20 -0
  219. package/esm/domain/rumEventsCollection/actions/interactionSelectorCache.js.map +1 -0
  220. package/esm/domain/rumEventsCollection/actions/listenActionEvents.js +67 -0
  221. package/esm/domain/rumEventsCollection/actions/listenActionEvents.js.map +1 -0
  222. package/esm/domain/rumEventsCollection/actions/trackClickActions.js +244 -0
  223. package/esm/domain/rumEventsCollection/actions/trackClickActions.js.map +1 -0
  224. package/esm/domain/rumEventsCollection/error/errorCollection.js +83 -0
  225. package/esm/domain/rumEventsCollection/error/errorCollection.js.map +1 -0
  226. package/esm/domain/rumEventsCollection/error/trackConsoleError.js +12 -0
  227. package/esm/domain/rumEventsCollection/error/trackConsoleError.js.map +1 -0
  228. package/esm/domain/rumEventsCollection/error/trackReportError.js +19 -0
  229. package/esm/domain/rumEventsCollection/error/trackReportError.js.map +1 -0
  230. package/esm/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js +55 -0
  231. package/esm/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js.map +1 -0
  232. package/esm/domain/rumEventsCollection/longTask/longTaskCollection.js +38 -0
  233. package/esm/domain/rumEventsCollection/longTask/longTaskCollection.js.map +1 -0
  234. package/esm/domain/rumEventsCollection/resource/matchRequestResourceEntry.js +69 -0
  235. package/esm/domain/rumEventsCollection/resource/matchRequestResourceEntry.js.map +1 -0
  236. package/esm/domain/rumEventsCollection/resource/resourceCollection.js +233 -0
  237. package/esm/domain/rumEventsCollection/resource/resourceCollection.js.map +1 -0
  238. package/esm/domain/rumEventsCollection/resource/resourceTrackerManager.js +231 -0
  239. package/esm/domain/rumEventsCollection/resource/resourceTrackerManager.js.map +1 -0
  240. package/esm/domain/rumEventsCollection/resource/resourceUtils.js +218 -0
  241. package/esm/domain/rumEventsCollection/resource/resourceUtils.js.map +1 -0
  242. package/esm/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js +19 -0
  243. package/esm/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
  244. package/esm/domain/rumEventsCollection/view/interactionCountPolyfill.js +47 -0
  245. package/esm/domain/rumEventsCollection/view/interactionCountPolyfill.js.map +1 -0
  246. package/esm/domain/rumEventsCollection/view/trackCommonViewMetrics.js +42 -0
  247. package/esm/domain/rumEventsCollection/view/trackCommonViewMetrics.js.map +1 -0
  248. package/esm/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js +117 -0
  249. package/esm/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js.map +1 -0
  250. package/esm/domain/rumEventsCollection/view/trackFirstContentfulPaint.js +20 -0
  251. package/esm/domain/rumEventsCollection/view/trackFirstContentfulPaint.js.map +1 -0
  252. package/esm/domain/rumEventsCollection/view/trackFirstHidden.js +49 -0
  253. package/esm/domain/rumEventsCollection/view/trackFirstHidden.js.map +1 -0
  254. package/esm/domain/rumEventsCollection/view/trackFirstInput.js +41 -0
  255. package/esm/domain/rumEventsCollection/view/trackFirstInput.js.map +1 -0
  256. package/esm/domain/rumEventsCollection/view/trackInitialViewTimings.js +44 -0
  257. package/esm/domain/rumEventsCollection/view/trackInitialViewTimings.js.map +1 -0
  258. package/esm/domain/rumEventsCollection/view/trackInteractionToNextPaint.js +153 -0
  259. package/esm/domain/rumEventsCollection/view/trackInteractionToNextPaint.js.map +1 -0
  260. package/esm/domain/rumEventsCollection/view/trackLargestContentfulPaint.js +54 -0
  261. package/esm/domain/rumEventsCollection/view/trackLargestContentfulPaint.js.map +1 -0
  262. package/esm/domain/rumEventsCollection/view/trackLoadingTime.js +45 -0
  263. package/esm/domain/rumEventsCollection/view/trackLoadingTime.js.map +1 -0
  264. package/esm/domain/rumEventsCollection/view/trackNavigationTimings.js +51 -0
  265. package/esm/domain/rumEventsCollection/view/trackNavigationTimings.js.map +1 -0
  266. package/esm/domain/rumEventsCollection/view/trackScrollMetrics.js +84 -0
  267. package/esm/domain/rumEventsCollection/view/trackScrollMetrics.js.map +1 -0
  268. package/esm/domain/rumEventsCollection/view/trackViewEventCounts.js +15 -0
  269. package/esm/domain/rumEventsCollection/view/trackViewEventCounts.js.map +1 -0
  270. package/esm/domain/rumEventsCollection/view/trackViews.js +262 -0
  271. package/esm/domain/rumEventsCollection/view/trackViews.js.map +1 -0
  272. package/esm/domain/rumEventsCollection/view/viewCollection.js +125 -0
  273. package/esm/domain/rumEventsCollection/view/viewCollection.js.map +1 -0
  274. package/esm/domain/rumSessionManager.js +179 -0
  275. package/esm/domain/rumSessionManager.js.map +1 -0
  276. package/esm/domain/tracing/ddtraceTracer.js +40 -0
  277. package/esm/domain/tracing/ddtraceTracer.js.map +1 -0
  278. package/esm/domain/tracing/getDocumentTraceId.js +69 -0
  279. package/esm/domain/tracing/getDocumentTraceId.js.map +1 -0
  280. package/esm/domain/tracing/jaegerTracer.js +42 -0
  281. package/esm/domain/tracing/jaegerTracer.js.map +1 -0
  282. package/esm/domain/tracing/sampler.js +61 -0
  283. package/esm/domain/tracing/sampler.js.map +1 -0
  284. package/esm/domain/tracing/skywalkingTracer.js +90 -0
  285. package/esm/domain/tracing/skywalkingTracer.js.map +1 -0
  286. package/esm/domain/tracing/traceIdentifier.js +57 -0
  287. package/esm/domain/tracing/traceIdentifier.js.map +1 -0
  288. package/esm/domain/tracing/tracer.js +124 -0
  289. package/esm/domain/tracing/tracer.js.map +1 -0
  290. package/esm/domain/tracing/w3cTraceParentTracer.js +69 -0
  291. package/esm/domain/tracing/w3cTraceParentTracer.js.map +1 -0
  292. package/esm/domain/tracing/zipkinMultiTracer.js +42 -0
  293. package/esm/domain/tracing/zipkinMultiTracer.js.map +1 -0
  294. package/esm/domain/tracing/zipkinSingleTracer.js +41 -0
  295. package/esm/domain/tracing/zipkinSingleTracer.js.map +1 -0
  296. package/esm/domain/trackEventCounts.js +49 -0
  297. package/esm/domain/trackEventCounts.js.map +1 -0
  298. package/esm/domain/usr/index.js +38 -0
  299. package/esm/domain/usr/index.js.map +1 -0
  300. package/esm/domain/waitPageActivityEnd.js +142 -0
  301. package/esm/domain/waitPageActivityEnd.js.map +1 -0
  302. package/esm/index.js +3 -0
  303. package/esm/index.js.map +1 -0
  304. package/esm/transport/startRumBatch.js +20 -0
  305. package/esm/transport/startRumBatch.js.map +1 -0
  306. package/esm/transport/startRumEventBridge.js +9 -0
  307. package/esm/transport/startRumEventBridge.js.map +1 -0
  308. package/package.json +39 -0
  309. package/types/index.d.ts +134 -0
@@ -0,0 +1,67 @@
1
+ import { addEventListener, DOM_EVENT, each } from '@cloudcare/browser-core';
2
+ export function listenActionEvents(events) {
3
+ var selectionEmptyAtPointerDown;
4
+ var userActivity = {
5
+ selection: false,
6
+ input: false,
7
+ scroll: false
8
+ };
9
+ var clickContext;
10
+ var listeners = [addEventListener(window, DOM_EVENT.POINTER_DOWN, function (event) {
11
+ if (isValidPointerEvent(event)) {
12
+ selectionEmptyAtPointerDown = isSelectionEmpty();
13
+ userActivity = {
14
+ selection: false,
15
+ input: false,
16
+ scroll: false
17
+ };
18
+ clickContext = events.onPointerDown(event);
19
+ }
20
+ }, {
21
+ capture: true
22
+ }), addEventListener(window, DOM_EVENT.SELECTION_CHANGE, function () {
23
+ if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {
24
+ userActivity.selection = true;
25
+ }
26
+ }, {
27
+ capture: true
28
+ }), addEventListener(window, DOM_EVENT.POINTER_UP, function (event) {
29
+ if (isValidPointerEvent(event) && clickContext) {
30
+ // Use a scoped variable to make sure the value is not changed by other clicks
31
+ var localUserActivity = userActivity;
32
+ events.onPointerUp(clickContext, event, function () {
33
+ return localUserActivity;
34
+ });
35
+ clickContext = undefined;
36
+ }
37
+ }, {
38
+ capture: true
39
+ }), addEventListener(window, DOM_EVENT.SCROLL, function () {
40
+ userActivity.scroll = true;
41
+ }, {
42
+ capture: true,
43
+ passive: true
44
+ }), addEventListener(window, DOM_EVENT.INPUT, function () {
45
+ userActivity.input = true;
46
+ }, {
47
+ capture: true
48
+ })];
49
+ return {
50
+ stop: function stop() {
51
+ each(listeners, function (listener) {
52
+ return listener.stop();
53
+ });
54
+ }
55
+ };
56
+ }
57
+ function isSelectionEmpty() {
58
+ var selection = window.getSelection();
59
+ return !selection || selection.isCollapsed;
60
+ }
61
+ function isValidPointerEvent(event) {
62
+ return event.target instanceof Element &&
63
+ // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in
64
+ // the future.
65
+ event.isPrimary !== false;
66
+ }
67
+ //# sourceMappingURL=listenActionEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listenActionEvents.js","names":["addEventListener","DOM_EVENT","each","listenActionEvents","events","selectionEmptyAtPointerDown","userActivity","selection","input","scroll","clickContext","listeners","window","POINTER_DOWN","event","isValidPointerEvent","isSelectionEmpty","onPointerDown","capture","SELECTION_CHANGE","POINTER_UP","localUserActivity","onPointerUp","undefined","SCROLL","passive","INPUT","stop","listener","getSelection","isCollapsed","target","Element","isPrimary"],"sources":["../../../../../rum/src/domain/rumEventsCollection/actions/listenActionEvents.js"],"sourcesContent":["import { addEventListener, DOM_EVENT, each } from '@cloudcare/browser-core'\n\nexport function listenActionEvents(events) {\n var selectionEmptyAtPointerDown\n var userActivity = {\n selection: false,\n input: false,\n scroll: false\n }\n var clickContext\n var listeners = [\n addEventListener(\n window,\n DOM_EVENT.POINTER_DOWN,\n function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty()\n userActivity = {\n selection: false,\n input: false,\n scroll: false\n }\n clickContext = events.onPointerDown(event)\n }\n },\n { capture: true }\n ),\n\n addEventListener(\n window,\n DOM_EVENT.SELECTION_CHANGE,\n function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true\n }\n },\n { capture: true }\n ),\n\n addEventListener(\n window,\n DOM_EVENT.POINTER_UP,\n function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity = userActivity\n events.onPointerUp(clickContext, event, function () {\n return localUserActivity\n })\n clickContext = undefined\n }\n },\n { capture: true }\n ),\n addEventListener(\n window,\n DOM_EVENT.SCROLL,\n function () {\n userActivity.scroll = true\n },\n { capture: true, passive: true }\n ),\n addEventListener(\n window,\n DOM_EVENT.INPUT,\n function () {\n userActivity.input = true\n },\n { capture: true }\n )\n ]\n\n return {\n stop: function () {\n each(listeners, function (listener) {\n return listener.stop()\n })\n }\n }\n}\n\nfunction isSelectionEmpty() {\n var selection = window.getSelection()\n return !selection || selection.isCollapsed\n}\nfunction isValidPointerEvent(event) {\n return (\n event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false\n )\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,EAAEC,SAAS,EAAEC,IAAI,QAAQ,yBAAyB;AAE3E,OAAO,SAASC,kBAAkBA,CAACC,MAAM,EAAE;EACzC,IAAIC,2BAA2B;EAC/B,IAAIC,YAAY,GAAG;IACjBC,SAAS,EAAE,KAAK;IAChBC,KAAK,EAAE,KAAK;IACZC,MAAM,EAAE;EACV,CAAC;EACD,IAAIC,YAAY;EAChB,IAAIC,SAAS,GAAG,CACdX,gBAAgB,CACdY,MAAM,EACNX,SAAS,CAACY,YAAY,EACtB,UAAUC,KAAK,EAAE;IACf,IAAIC,mBAAmB,CAACD,KAAK,CAAC,EAAE;MAC9BT,2BAA2B,GAAGW,gBAAgB,CAAC,CAAC;MAChDV,YAAY,GAAG;QACbC,SAAS,EAAE,KAAK;QAChBC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;MACDC,YAAY,GAAGN,MAAM,CAACa,aAAa,CAACH,KAAK,CAAC;IAC5C;EACF,CAAC,EACD;IAAEI,OAAO,EAAE;EAAK,CAClB,CAAC,EAEDlB,gBAAgB,CACdY,MAAM,EACNX,SAAS,CAACkB,gBAAgB,EAC1B,YAAY;IACV,IAAI,CAACd,2BAA2B,IAAI,CAACW,gBAAgB,CAAC,CAAC,EAAE;MACvDV,YAAY,CAACC,SAAS,GAAG,IAAI;IAC/B;EACF,CAAC,EACD;IAAEW,OAAO,EAAE;EAAK,CAClB,CAAC,EAEDlB,gBAAgB,CACdY,MAAM,EACNX,SAAS,CAACmB,UAAU,EACpB,UAAUN,KAAK,EAAE;IACf,IAAIC,mBAAmB,CAACD,KAAK,CAAC,IAAIJ,YAAY,EAAE;MAC9C;MACA,IAAIW,iBAAiB,GAAGf,YAAY;MACpCF,MAAM,CAACkB,WAAW,CAACZ,YAAY,EAAEI,KAAK,EAAE,YAAY;QAClD,OAAOO,iBAAiB;MAC1B,CAAC,CAAC;MACFX,YAAY,GAAGa,SAAS;IAC1B;EACF,CAAC,EACD;IAAEL,OAAO,EAAE;EAAK,CAClB,CAAC,EACDlB,gBAAgB,CACdY,MAAM,EACNX,SAAS,CAACuB,MAAM,EAChB,YAAY;IACVlB,YAAY,CAACG,MAAM,GAAG,IAAI;EAC5B,CAAC,EACD;IAAES,OAAO,EAAE,IAAI;IAAEO,OAAO,EAAE;EAAK,CACjC,CAAC,EACDzB,gBAAgB,CACdY,MAAM,EACNX,SAAS,CAACyB,KAAK,EACf,YAAY;IACVpB,YAAY,CAACE,KAAK,GAAG,IAAI;EAC3B,CAAC,EACD;IAAEU,OAAO,EAAE;EAAK,CAClB,CAAC,CACF;EAED,OAAO;IACLS,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBzB,IAAI,CAACS,SAAS,EAAE,UAAUiB,QAAQ,EAAE;QAClC,OAAOA,QAAQ,CAACD,IAAI,CAAC,CAAC;MACxB,CAAC,CAAC;IACJ;EACF,CAAC;AACH;AAEA,SAASX,gBAAgBA,CAAA,EAAG;EAC1B,IAAIT,SAAS,GAAGK,MAAM,CAACiB,YAAY,CAAC,CAAC;EACrC,OAAO,CAACtB,SAAS,IAAIA,SAAS,CAACuB,WAAW;AAC5C;AACA,SAASf,mBAAmBA,CAACD,KAAK,EAAE;EAClC,OACEA,KAAK,CAACiB,MAAM,YAAYC,OAAO;EAC/B;EACA;EACAlB,KAAK,CAACmB,SAAS,KAAK,KAAK;AAE7B","ignoreList":[]}
@@ -0,0 +1,244 @@
1
+ import { timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, createValueHistory, UUID, clocksNow, ONE_SECOND, elapsed, each, map, LifeCycleEventType, ActionType, isNullUndefinedDefaultValue, isArray, includes } from '@cloudcare/browser-core';
2
+ import { trackEventCounts } from '../../trackEventCounts';
3
+ import { waitPageActivityEnd, PAGE_ACTIVITY_VALIDATION_DELAY } from '../../waitPageActivityEnd';
4
+ import { createClickChain } from './clickChain';
5
+ import { getActionNameFromElement } from './getActionNameFromElement';
6
+ import { getSelectorFromElement } from './getSelectorsFromElement';
7
+ // import { getSelectorsFromElement } from './getSelectorsFromElement'
8
+ import { listenActionEvents } from './listenActionEvents';
9
+ import { computeFrustration } from './computeFrustration';
10
+ import { CLICK_ACTION_MAX_DURATION, updateInteractionSelector } from './interactionSelectorCache';
11
+ // Maximum duration for click actions
12
+ export var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary
13
+
14
+ export function trackClickActions(lifeCycle, domMutationObservable, configuration) {
15
+ var history = new createValueHistory({
16
+ expireDelay: ACTION_CONTEXT_TIME_OUT_DELAY
17
+ });
18
+ var stopObservable = new Observable();
19
+ var currentClickChain;
20
+ lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, function () {
21
+ history.reset();
22
+ });
23
+ lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, stopClickChain);
24
+ var _listenActionEvents = listenActionEvents({
25
+ onPointerDown: function onPointerDown(pointerDownEvent) {
26
+ return processPointerDown(configuration, lifeCycle, domMutationObservable, pointerDownEvent);
27
+ },
28
+ onPointerUp: function onPointerUp(data, startEvent, getUserActivity) {
29
+ startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, data.clickActionBase, startEvent, getUserActivity, data.hadActivityOnPointerDown);
30
+ }
31
+ });
32
+ var stopActionEventsListener = _listenActionEvents.stop;
33
+ var actionContexts = {
34
+ findActionId: function findActionId(startTime) {
35
+ var allIds = history.findAll(startTime);
36
+ if (allIds && allIds.length) {
37
+ return allIds[allIds.length - 1];
38
+ }
39
+ return undefined;
40
+ },
41
+ findAllActionId: function findAllActionId(startTime) {
42
+ return history.findAll(startTime);
43
+ }
44
+ };
45
+ return {
46
+ stop: function stop() {
47
+ stopClickChain();
48
+ stopObservable.notify();
49
+ stopActionEventsListener();
50
+ },
51
+ actionContexts: actionContexts
52
+ };
53
+ function stopClickChain() {
54
+ if (currentClickChain) {
55
+ currentClickChain.stop();
56
+ }
57
+ }
58
+ function appendClickToClickChain(click) {
59
+ if (!currentClickChain || !currentClickChain.tryAppend(click)) {
60
+ var rageClick = click.clone();
61
+ currentClickChain = createClickChain(click, function (clicks) {
62
+ finalizeClicks(clicks, rageClick);
63
+ });
64
+ }
65
+ }
66
+ }
67
+ function processPointerDown(configuration, lifeCycle, domMutationObservable, pointerDownEvent) {
68
+ var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);
69
+ var _hadActivityOnPointerDown = false;
70
+ waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {
71
+ _hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;
72
+ }, PAGE_ACTIVITY_VALIDATION_DELAY);
73
+ return {
74
+ clickActionBase: clickActionBase,
75
+ hadActivityOnPointerDown: function hadActivityOnPointerDown() {
76
+ return _hadActivityOnPointerDown;
77
+ }
78
+ };
79
+ }
80
+ function startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {
81
+ var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);
82
+ appendClickToClickChain(click);
83
+ var selector = clickActionBase && clickActionBase.target && clickActionBase.target.selector;
84
+ if (selector) {
85
+ updateInteractionSelector(startEvent.timeStamp, selector);
86
+ }
87
+ var _waitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {
88
+ if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {
89
+ // If the clock is looking weird, just discard the click
90
+ click.discard();
91
+ } else {
92
+ if (pageActivityEndEvent.hadActivity) {
93
+ click.stop(pageActivityEndEvent.end);
94
+ } else if (hadActivityOnPointerDown()) {
95
+ click.stop(
96
+ // using the click start as activity end, so the click will have some activity but its
97
+ // duration will be 0 (as the activity started before the click start)
98
+ click.startClocks.timeStamp);
99
+ } else {
100
+ click.stop();
101
+ }
102
+ }
103
+ }, CLICK_ACTION_MAX_DURATION);
104
+ var stopWaitPageActivityEnd = _waitPageActivityEnd.stop;
105
+ var viewEndedSubscription = lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, function (data) {
106
+ click.stop(data.endClocks.timeStamp);
107
+ });
108
+ var stopSubscription = stopObservable.subscribe(function () {
109
+ click.stop();
110
+ });
111
+ click.stopObservable.subscribe(function () {
112
+ viewEndedSubscription.unsubscribe();
113
+ stopWaitPageActivityEnd();
114
+ stopSubscription.unsubscribe();
115
+ });
116
+ }
117
+ function computeClickActionBase(event, actionNameAttribute) {
118
+ var rect = event.target.getBoundingClientRect();
119
+ var selector = getSelectorFromElement(event.target, actionNameAttribute);
120
+ if (selector) {
121
+ updateInteractionSelector(event.timeStamp, selector);
122
+ }
123
+ return {
124
+ type: ActionType.CLICK,
125
+ target: {
126
+ width: Math.round(rect.width),
127
+ height: Math.round(rect.height),
128
+ selector: selector
129
+ },
130
+ position: {
131
+ x: Math.round(event.clientX - rect.left),
132
+ y: Math.round(event.clientY - rect.top)
133
+ },
134
+ name: getActionNameFromElement(event.target, actionNameAttribute)
135
+ };
136
+ }
137
+ var ClickStatus = {
138
+ // Initial state, the click is still ongoing.
139
+ ONGOING: 0,
140
+ // The click is no more ongoing but still needs to be validated or discarded.
141
+ STOPPED: 1,
142
+ // Final state, the click has been stopped and validated or discarded.
143
+ FINALIZED: 2
144
+ };
145
+ function newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {
146
+ var id = UUID();
147
+ var startClocks = clocksNow();
148
+ var historyEntry = history.add(id, startClocks.relative);
149
+ var eventCountsSubscription = trackEventCounts({
150
+ lifeCycle: lifeCycle,
151
+ isChildEvent: function isChildEvent(event) {
152
+ return event.action !== undefined && (isArray(event.action.ids) ? includes(event.action.ids, id) : event.action.ids === id);
153
+ }
154
+ });
155
+ var status = ClickStatus.ONGOING;
156
+ var activityEndTime;
157
+ var frustrationTypes = [];
158
+ var stopObservable = new Observable();
159
+ function stop(newActivityEndTime) {
160
+ if (status !== ClickStatus.ONGOING) {
161
+ return;
162
+ }
163
+ activityEndTime = newActivityEndTime;
164
+ status = ClickStatus.STOPPED;
165
+ if (activityEndTime) {
166
+ historyEntry.close(getRelativeTime(activityEndTime));
167
+ } else {
168
+ historyEntry.remove();
169
+ }
170
+ eventCountsSubscription.stop();
171
+ stopObservable.notify();
172
+ }
173
+ return {
174
+ event: startEvent,
175
+ stop: stop,
176
+ stopObservable: stopObservable,
177
+ hasError: function hasError() {
178
+ return eventCountsSubscription.eventCounts.errorCount > 0;
179
+ },
180
+ hasPageActivity: function hasPageActivity() {
181
+ return activityEndTime !== undefined;
182
+ },
183
+ getUserActivity: getUserActivity,
184
+ addFrustration: function addFrustration(frustrationType) {
185
+ frustrationTypes.push(frustrationType);
186
+ },
187
+ startClocks: startClocks,
188
+ isStopped: function isStopped() {
189
+ return status === ClickStatus.STOPPED || status === ClickStatus.FINALIZED;
190
+ },
191
+ clone: function clone() {
192
+ return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);
193
+ },
194
+ validate: function validate(domEvents) {
195
+ stop();
196
+ if (status !== ClickStatus.STOPPED) {
197
+ return;
198
+ }
199
+ var _eventCountsSubscription = eventCountsSubscription.eventCounts;
200
+ var resourceCount = _eventCountsSubscription.resourceCount;
201
+ var errorCount = _eventCountsSubscription.errorCount;
202
+ var longTaskCount = _eventCountsSubscription.longTaskCount;
203
+ var clickAction = assign({
204
+ type: ActionType.CLICK,
205
+ duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),
206
+ startClocks: startClocks,
207
+ id: id,
208
+ frustrationTypes: frustrationTypes,
209
+ counts: {
210
+ resourceCount: resourceCount,
211
+ errorCount: errorCount,
212
+ longTaskCount: longTaskCount
213
+ },
214
+ events: isNullUndefinedDefaultValue(domEvents, [startEvent]),
215
+ event: startEvent
216
+ }, clickActionBase);
217
+ lifeCycle.notify(LifeCycleEventType.AUTO_ACTION_COMPLETED, clickAction);
218
+ status = ClickStatus.FINALIZED;
219
+ },
220
+ discard: function discard() {
221
+ stop();
222
+ status = ClickStatus.FINALIZED;
223
+ }
224
+ };
225
+ }
226
+ export function finalizeClicks(clicks, rageClick) {
227
+ var _computeFrustration = computeFrustration(clicks, rageClick);
228
+ var isRage = _computeFrustration.isRage;
229
+ if (isRage) {
230
+ each(clicks, function (click) {
231
+ click.discard();
232
+ });
233
+ rageClick.stop(timeStampNow());
234
+ rageClick.validate(map(clicks, function (click) {
235
+ return click.event;
236
+ }));
237
+ } else {
238
+ rageClick.discard();
239
+ each(clicks, function (click) {
240
+ click.validate();
241
+ });
242
+ }
243
+ }
244
+ //# sourceMappingURL=trackClickActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackClickActions.js","names":["timeStampNow","Observable","assign","getRelativeTime","ONE_MINUTE","createValueHistory","UUID","clocksNow","ONE_SECOND","elapsed","each","map","LifeCycleEventType","ActionType","isNullUndefinedDefaultValue","isArray","includes","trackEventCounts","waitPageActivityEnd","PAGE_ACTIVITY_VALIDATION_DELAY","createClickChain","getActionNameFromElement","getSelectorFromElement","listenActionEvents","computeFrustration","CLICK_ACTION_MAX_DURATION","updateInteractionSelector","ACTION_CONTEXT_TIME_OUT_DELAY","trackClickActions","lifeCycle","domMutationObservable","configuration","history","expireDelay","stopObservable","currentClickChain","subscribe","SESSION_RENEWED","reset","VIEW_ENDED","stopClickChain","_listenActionEvents","onPointerDown","pointerDownEvent","processPointerDown","onPointerUp","data","startEvent","getUserActivity","startClickAction","appendClickToClickChain","clickActionBase","hadActivityOnPointerDown","stopActionEventsListener","stop","actionContexts","findActionId","startTime","allIds","findAll","length","undefined","findAllActionId","notify","click","tryAppend","rageClick","clone","clicks","finalizeClicks","computeClickActionBase","actionNameAttribute","pageActivityEndEvent","hadActivity","newClick","selector","target","timeStamp","_waitPageActivityEnd","end","startClocks","discard","stopWaitPageActivityEnd","viewEndedSubscription","endClocks","stopSubscription","unsubscribe","event","rect","getBoundingClientRect","type","CLICK","width","Math","round","height","position","x","clientX","left","y","clientY","top","name","ClickStatus","ONGOING","STOPPED","FINALIZED","id","historyEntry","add","relative","eventCountsSubscription","isChildEvent","action","ids","status","activityEndTime","frustrationTypes","newActivityEndTime","close","remove","hasError","eventCounts","errorCount","hasPageActivity","addFrustration","frustrationType","push","isStopped","validate","domEvents","_eventCountsSubscription","resourceCount","longTaskCount","clickAction","duration","counts","events","AUTO_ACTION_COMPLETED","_computeFrustration","isRage"],"sources":["../../../../../rum/src/domain/rumEventsCollection/actions/trackClickActions.js"],"sourcesContent":["import {\n timeStampNow,\n Observable,\n assign,\n getRelativeTime,\n ONE_MINUTE,\n createValueHistory,\n UUID,\n clocksNow,\n ONE_SECOND,\n elapsed,\n each,\n map,\n LifeCycleEventType,\n ActionType,\n isNullUndefinedDefaultValue,\n isArray,\n includes\n} from '@cloudcare/browser-core'\nimport { trackEventCounts } from '../../trackEventCounts'\nimport {\n waitPageActivityEnd,\n PAGE_ACTIVITY_VALIDATION_DELAY\n} from '../../waitPageActivityEnd'\nimport { createClickChain } from './clickChain'\nimport { getActionNameFromElement } from './getActionNameFromElement'\nimport { getSelectorFromElement } from './getSelectorsFromElement'\n// import { getSelectorsFromElement } from './getSelectorsFromElement'\nimport { listenActionEvents } from './listenActionEvents'\nimport { computeFrustration } from './computeFrustration'\nimport {\n CLICK_ACTION_MAX_DURATION,\n updateInteractionSelector\n} from './interactionSelectorCache'\n// Maximum duration for click actions\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE // arbitrary\n\nexport function trackClickActions(\n lifeCycle,\n domMutationObservable,\n configuration\n) {\n var history = new createValueHistory({\n expireDelay: ACTION_CONTEXT_TIME_OUT_DELAY\n })\n var stopObservable = new Observable()\n var currentClickChain\n\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, function () {\n history.reset()\n })\n lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, stopClickChain)\n var _listenActionEvents = listenActionEvents({\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(\n configuration,\n lifeCycle,\n domMutationObservable,\n pointerDownEvent\n )\n },\n onPointerUp: function (data, startEvent, getUserActivity) {\n startClickAction(\n configuration,\n lifeCycle,\n domMutationObservable,\n history,\n stopObservable,\n appendClickToClickChain,\n data.clickActionBase,\n startEvent,\n getUserActivity,\n data.hadActivityOnPointerDown\n )\n }\n })\n var stopActionEventsListener = _listenActionEvents.stop\n var actionContexts = {\n findActionId: function (startTime) {\n const allIds = history.findAll(startTime)\n if (allIds && allIds.length) {\n return allIds[allIds.length - 1]\n }\n return undefined\n },\n findAllActionId: function (startTime) {\n return history.findAll(startTime)\n }\n }\n\n return {\n stop: function () {\n stopClickChain()\n stopObservable.notify()\n stopActionEventsListener()\n },\n actionContexts: actionContexts\n }\n\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop()\n }\n }\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick = click.clone()\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick)\n })\n }\n }\n}\nfunction processPointerDown(\n configuration,\n lifeCycle,\n domMutationObservable,\n pointerDownEvent\n) {\n var clickActionBase = computeClickActionBase(\n pointerDownEvent,\n configuration.actionNameAttribute\n )\n\n var hadActivityOnPointerDown = false\n\n waitPageActivityEnd(\n lifeCycle,\n domMutationObservable,\n configuration,\n function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity\n },\n PAGE_ACTIVITY_VALIDATION_DELAY\n )\n\n return {\n clickActionBase: clickActionBase,\n hadActivityOnPointerDown: function () {\n return hadActivityOnPointerDown\n }\n }\n}\nfunction startClickAction(\n configuration,\n lifeCycle,\n domMutationObservable,\n history,\n stopObservable,\n appendClickToClickChain,\n clickActionBase,\n startEvent,\n getUserActivity,\n hadActivityOnPointerDown\n) {\n var click = newClick(\n lifeCycle,\n history,\n getUserActivity,\n clickActionBase,\n startEvent\n )\n appendClickToClickChain(click)\n var selector =\n clickActionBase && clickActionBase.target && clickActionBase.target.selector\n if (selector) {\n updateInteractionSelector(startEvent.timeStamp, selector)\n }\n var _waitPageActivityEnd = waitPageActivityEnd(\n lifeCycle,\n domMutationObservable,\n configuration,\n function (pageActivityEndEvent) {\n if (\n pageActivityEndEvent.hadActivity &&\n pageActivityEndEvent.end < click.startClocks.timeStamp\n ) {\n // If the clock is looking weird, just discard the click\n click.discard()\n } else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end)\n } else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp\n )\n } else {\n click.stop()\n }\n }\n },\n CLICK_ACTION_MAX_DURATION\n )\n var stopWaitPageActivityEnd = _waitPageActivityEnd.stop\n var viewEndedSubscription = lifeCycle.subscribe(\n LifeCycleEventType.VIEW_ENDED,\n function (data) {\n click.stop(data.endClocks.timeStamp)\n }\n )\n\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop()\n })\n\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe()\n stopWaitPageActivityEnd()\n stopSubscription.unsubscribe()\n })\n}\n\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect()\n var selector = getSelectorFromElement(event.target, actionNameAttribute)\n if (selector) {\n updateInteractionSelector(event.timeStamp, selector)\n }\n return {\n type: ActionType.CLICK,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: selector\n },\n position: {\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top)\n },\n name: getActionNameFromElement(event.target, actionNameAttribute)\n }\n}\n\nvar ClickStatus = {\n // Initial state, the click is still ongoing.\n ONGOING: 0,\n // The click is no more ongoing but still needs to be validated or discarded.\n STOPPED: 1,\n // Final state, the click has been stopped and validated or discarded.\n FINALIZED: 2\n}\n\nfunction newClick(\n lifeCycle,\n history,\n getUserActivity,\n clickActionBase,\n startEvent\n) {\n var id = UUID()\n var startClocks = clocksNow()\n var historyEntry = history.add(id, startClocks.relative)\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return (\n event.action !== undefined &&\n (isArray(event.action.ids)\n ? includes(event.action.ids, id)\n : event.action.ids === id)\n )\n }\n })\n var status = ClickStatus.ONGOING\n var activityEndTime\n var frustrationTypes = []\n var stopObservable = new Observable()\n\n function stop(newActivityEndTime) {\n if (status !== ClickStatus.ONGOING) {\n return\n }\n activityEndTime = newActivityEndTime\n status = ClickStatus.STOPPED\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime))\n } else {\n historyEntry.remove()\n }\n eventCountsSubscription.stop()\n stopObservable.notify()\n }\n\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n hasError: function () {\n return eventCountsSubscription.eventCounts.errorCount > 0\n },\n hasPageActivity: function () {\n return activityEndTime !== undefined\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType)\n },\n startClocks: startClocks,\n isStopped: function () {\n return status === ClickStatus.STOPPED || status === ClickStatus.FINALIZED\n },\n\n clone: function () {\n return newClick(\n lifeCycle,\n history,\n getUserActivity,\n clickActionBase,\n startEvent\n )\n },\n\n validate: function (domEvents) {\n stop()\n if (status !== ClickStatus.STOPPED) {\n return\n }\n var _eventCountsSubscription = eventCountsSubscription.eventCounts\n var resourceCount = _eventCountsSubscription.resourceCount\n var errorCount = _eventCountsSubscription.errorCount\n var longTaskCount = _eventCountsSubscription.longTaskCount\n var clickAction = assign(\n {\n type: ActionType.CLICK,\n duration:\n activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount\n },\n events: isNullUndefinedDefaultValue(domEvents, [startEvent]),\n event: startEvent\n },\n clickActionBase\n )\n lifeCycle.notify(LifeCycleEventType.AUTO_ACTION_COMPLETED, clickAction)\n status = ClickStatus.FINALIZED\n },\n\n discard: function () {\n stop()\n status = ClickStatus.FINALIZED\n }\n }\n}\n\nexport function finalizeClicks(clicks, rageClick) {\n var _computeFrustration = computeFrustration(clicks, rageClick)\n var isRage = _computeFrustration.isRage\n if (isRage) {\n each(clicks, function (click) {\n click.discard()\n })\n rageClick.stop(timeStampNow())\n rageClick.validate(\n map(clicks, function (click) {\n return click.event\n })\n )\n } else {\n rageClick.discard()\n each(clicks, function (click) {\n click.validate()\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ import { assign, computeStackTrace, computeRawError, ErrorSource, UUID, ErrorHandling, Observable, trackRuntimeError, RumEventType, LifeCycleEventType, NonErrorPrefix } from '@cloudcare/browser-core';
2
+ import { trackConsoleError } from './trackConsoleError';
3
+ import { trackReportError } from './trackReportError';
4
+ import { PageState } from '../../contexts/pageStateHistory';
5
+ export function startErrorCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {
6
+ var errorObservable = new Observable();
7
+ trackConsoleError(errorObservable);
8
+ trackRuntimeError(errorObservable);
9
+ trackReportError(configuration, errorObservable);
10
+ var session = sessionManager.findTrackedSession();
11
+ var hasError = session && session.isErrorSession && session.sessionHasError;
12
+ if (session && session.isErrorSession) {
13
+ lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, function () {
14
+ hasError = false;
15
+ });
16
+ }
17
+ errorObservable.subscribe(function (error) {
18
+ if (session && session.isErrorSession && !hasError) {
19
+ sessionManager.setErrorForSession();
20
+ hasError = true;
21
+ }
22
+ lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, {
23
+ error: error
24
+ });
25
+ });
26
+ return doStartErrorCollection(lifeCycle, pageStateHistory);
27
+ }
28
+ export function doStartErrorCollection(lifeCycle, pageStateHistory) {
29
+ lifeCycle.subscribe(LifeCycleEventType.RAW_ERROR_COLLECTED, function (error) {
30
+ lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, assign({
31
+ customerContext: error.customerContext,
32
+ savedCommonContext: error.savedCommonContext
33
+ }, processError(error.error, pageStateHistory)));
34
+ });
35
+ return {
36
+ addError: function addError(providedError, savedCommonContext) {
37
+ var error = providedError.error;
38
+ var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;
39
+ var rawError = computeRawError({
40
+ stackTrace: stackTrace,
41
+ originalError: error,
42
+ handlingStack: providedError.handlingStack,
43
+ startClocks: providedError.startClocks,
44
+ nonErrorPrefix: NonErrorPrefix.PROVIDED,
45
+ source: ErrorSource.CUSTOM,
46
+ handling: ErrorHandling.HANDLED
47
+ });
48
+ lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, {
49
+ customerContext: providedError.context,
50
+ savedCommonContext: savedCommonContext,
51
+ error: rawError
52
+ });
53
+ }
54
+ };
55
+ }
56
+ function processError(error, pageStateHistory) {
57
+ var rawRumEvent = {
58
+ date: error.startClocks.timeStamp,
59
+ error: {
60
+ id: UUID(),
61
+ message: error.message,
62
+ source: error.source,
63
+ stack: error.stack,
64
+ handling_stack: error.handlingStack,
65
+ type: error.type,
66
+ handling: error.handling,
67
+ causes: error.causes,
68
+ source_type: 'browser'
69
+ },
70
+ type: RumEventType.ERROR,
71
+ view: {
72
+ in_foreground: pageStateHistory.wasInPageStateAt(PageState.ACTIVE, error.startClocks.relative)
73
+ }
74
+ };
75
+ return {
76
+ rawRumEvent: rawRumEvent,
77
+ startTime: error.startClocks.relative,
78
+ domainContext: {
79
+ error: error.originalError
80
+ }
81
+ };
82
+ }
83
+ //# sourceMappingURL=errorCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorCollection.js","names":["assign","computeStackTrace","computeRawError","ErrorSource","UUID","ErrorHandling","Observable","trackRuntimeError","RumEventType","LifeCycleEventType","NonErrorPrefix","trackConsoleError","trackReportError","PageState","startErrorCollection","lifeCycle","configuration","sessionManager","pageStateHistory","errorObservable","session","findTrackedSession","hasError","isErrorSession","sessionHasError","subscribe","SESSION_RENEWED","error","setErrorForSession","notify","RAW_ERROR_COLLECTED","doStartErrorCollection","RAW_RUM_EVENT_COLLECTED","customerContext","savedCommonContext","processError","addError","providedError","stackTrace","Error","undefined","rawError","originalError","handlingStack","startClocks","nonErrorPrefix","PROVIDED","source","CUSTOM","handling","HANDLED","context","rawRumEvent","date","timeStamp","id","message","stack","handling_stack","type","causes","source_type","ERROR","view","in_foreground","wasInPageStateAt","ACTIVE","relative","startTime","domainContext"],"sources":["../../../../../rum/src/domain/rumEventsCollection/error/errorCollection.js"],"sourcesContent":["import {\n assign,\n computeStackTrace,\n computeRawError,\n ErrorSource,\n UUID,\n ErrorHandling,\n Observable,\n trackRuntimeError,\n RumEventType,\n LifeCycleEventType,\n NonErrorPrefix\n} from '@cloudcare/browser-core'\nimport { trackConsoleError } from './trackConsoleError'\nimport { trackReportError } from './trackReportError'\nimport { PageState } from '../../contexts/pageStateHistory'\n\nexport function startErrorCollection(\n lifeCycle,\n configuration,\n sessionManager,\n pageStateHistory\n) {\n var errorObservable = new Observable()\n\n trackConsoleError(errorObservable)\n trackRuntimeError(errorObservable)\n trackReportError(configuration, errorObservable)\n var session = sessionManager.findTrackedSession()\n let hasError = session && session.isErrorSession && session.sessionHasError\n if (session && session.isErrorSession) {\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, function () {\n hasError = false\n })\n }\n\n errorObservable.subscribe(function (error) {\n if (session && session.isErrorSession && !hasError) {\n sessionManager.setErrorForSession()\n hasError = true\n }\n lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, { error: error })\n })\n\n return doStartErrorCollection(lifeCycle, pageStateHistory)\n}\n\nexport function doStartErrorCollection(lifeCycle, pageStateHistory) {\n lifeCycle.subscribe(LifeCycleEventType.RAW_ERROR_COLLECTED, function (error) {\n lifeCycle.notify(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n assign(\n {\n customerContext: error.customerContext,\n savedCommonContext: error.savedCommonContext\n },\n processError(error.error, pageStateHistory)\n )\n )\n })\n\n return {\n addError: function (providedError, savedCommonContext) {\n var error = providedError.error\n var stackTrace =\n error instanceof Error ? computeStackTrace(error) : undefined\n var rawError = computeRawError({\n stackTrace,\n originalError: error,\n handlingStack: providedError.handlingStack,\n startClocks: providedError.startClocks,\n nonErrorPrefix: NonErrorPrefix.PROVIDED,\n source: ErrorSource.CUSTOM,\n handling: ErrorHandling.HANDLED\n })\n lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, {\n customerContext: providedError.context,\n savedCommonContext: savedCommonContext,\n error: rawError\n })\n }\n }\n}\n\nfunction processError(error, pageStateHistory) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: UUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser'\n },\n type: RumEventType.ERROR,\n view: {\n in_foreground: pageStateHistory.wasInPageStateAt(\n PageState.ACTIVE,\n error.startClocks.relative\n )\n }\n }\n\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { initConsoleObservable, ConsoleApiName } from '@cloudcare/browser-core';
2
+ export function trackConsoleError(errorObservable) {
3
+ var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleLog) {
4
+ errorObservable.notify(consoleLog.error);
5
+ });
6
+ return {
7
+ stop: function stop() {
8
+ subscription.unsubscribe();
9
+ }
10
+ };
11
+ }
12
+ //# sourceMappingURL=trackConsoleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackConsoleError.js","names":["initConsoleObservable","ConsoleApiName","trackConsoleError","errorObservable","subscription","error","subscribe","consoleLog","notify","stop","unsubscribe"],"sources":["../../../../../rum/src/domain/rumEventsCollection/error/trackConsoleError.js"],"sourcesContent":["import { initConsoleObservable, ConsoleApiName } from '@cloudcare/browser-core'\n\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(\n function (consoleLog) {\n errorObservable.notify(consoleLog.error)\n }\n )\n\n return {\n stop: function () {\n subscription.unsubscribe()\n }\n }\n}\n"],"mappings":"AAAA,SAASA,qBAAqB,EAAEC,cAAc,QAAQ,yBAAyB;AAE/E,OAAO,SAASC,iBAAiBA,CAACC,eAAe,EAAE;EACjD,IAAIC,YAAY,GAAGJ,qBAAqB,CAAC,CAACC,cAAc,CAACI,KAAK,CAAC,CAAC,CAACC,SAAS,CACxE,UAAUC,UAAU,EAAE;IACpBJ,eAAe,CAACK,MAAM,CAACD,UAAU,CAACF,KAAK,CAAC;EAC1C,CACF,CAAC;EAED,OAAO;IACLI,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBL,YAAY,CAACM,WAAW,CAAC,CAAC;IAC5B;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { clocksNow, ErrorHandling, ErrorSource, initReportObservable, RawReportType } from '@cloudcare/browser-core';
2
+ export function trackReportError(configuration, errorObservable) {
3
+ var subscription = initReportObservable(configuration, [RawReportType.cspViolation, RawReportType.intervention]).subscribe(function (reportError) {
4
+ errorObservable.notify({
5
+ startClocks: clocksNow(),
6
+ message: reportError.message,
7
+ stack: reportError.stack,
8
+ type: reportError.type,
9
+ source: ErrorSource.REPORT,
10
+ handling: ErrorHandling.UNHANDLED
11
+ });
12
+ });
13
+ return {
14
+ stop: function stop() {
15
+ subscription.unsubscribe();
16
+ }
17
+ };
18
+ }
19
+ //# sourceMappingURL=trackReportError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackReportError.js","names":["clocksNow","ErrorHandling","ErrorSource","initReportObservable","RawReportType","trackReportError","configuration","errorObservable","subscription","cspViolation","intervention","subscribe","reportError","notify","startClocks","message","stack","type","source","REPORT","handling","UNHANDLED","stop","unsubscribe"],"sources":["../../../../../rum/src/domain/rumEventsCollection/error/trackReportError.js"],"sourcesContent":["import {\n clocksNow,\n ErrorHandling,\n ErrorSource,\n initReportObservable,\n RawReportType\n} from '@cloudcare/browser-core'\n\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention\n ]).subscribe(function (reportError) {\n errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.type,\n source: ErrorSource.REPORT,\n handling: ErrorHandling.UNHANDLED\n })\n })\n\n return {\n stop: function () {\n subscription.unsubscribe()\n }\n }\n}\n"],"mappings":"AAAA,SACEA,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,oBAAoB,EACpBC,aAAa,QACR,yBAAyB;AAEhC,OAAO,SAASC,gBAAgBA,CAACC,aAAa,EAAEC,eAAe,EAAE;EAC/D,IAAIC,YAAY,GAAGL,oBAAoB,CAACG,aAAa,EAAE,CACrDF,aAAa,CAACK,YAAY,EAC1BL,aAAa,CAACM,YAAY,CAC3B,CAAC,CAACC,SAAS,CAAC,UAAUC,WAAW,EAAE;IAClCL,eAAe,CAACM,MAAM,CAAC;MACrBC,WAAW,EAAEd,SAAS,CAAC,CAAC;MACxBe,OAAO,EAAEH,WAAW,CAACG,OAAO;MAC5BC,KAAK,EAAEJ,WAAW,CAACI,KAAK;MACxBC,IAAI,EAAEL,WAAW,CAACK,IAAI;MACtBC,MAAM,EAAEhB,WAAW,CAACiB,MAAM;MAC1BC,QAAQ,EAAEnB,aAAa,CAACoB;IAC1B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAO;IACLC,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBd,YAAY,CAACe,WAAW,CAAC,CAAC;IAC5B;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ import { toServerDuration, relativeToClocks, UUID, LifeCycleEventType, RumLongTaskEntryType, RumEventType } from '@cloudcare/browser-core';
2
+ import { createPerformanceObservable, RumPerformanceEntryType } from '../../performanceObservable';
3
+ export function startLongAnimationFrameCollection(lifeCycle, configuration) {
4
+ var performanceResourceSubscription = createPerformanceObservable(configuration, {
5
+ type: RumPerformanceEntryType.LONG_ANIMATION_FRAME,
6
+ buffered: true
7
+ }).subscribe(function (entries) {
8
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
9
+ var entry = entries_1[_i];
10
+ var startClocks = relativeToClocks(entry.startTime);
11
+ var rawRumEvent = {
12
+ date: startClocks.timeStamp,
13
+ longTask: {
14
+ id: UUID(),
15
+ entryType: RumLongTaskEntryType.LONG_ANIMATION_FRAME,
16
+ duration: toServerDuration(entry.duration),
17
+ blockingDuration: toServerDuration(entry.blockingDuration),
18
+ firstUiEventTimestamp: toServerDuration(entry.firstUIEventTimestamp),
19
+ renderStart: toServerDuration(entry.renderStart),
20
+ styleAndLayoutStart: toServerDuration(entry.styleAndLayoutStart),
21
+ startTime: toServerDuration(entry.startTime),
22
+ scripts: entry.scripts.map(function (script) {
23
+ return {
24
+ duration: toServerDuration(script.duration),
25
+ pause_duration: toServerDuration(script.pauseDuration),
26
+ forced_style_and_layout_duration: toServerDuration(script.forcedStyleAndLayoutDuration),
27
+ start_time: toServerDuration(script.startTime),
28
+ execution_start: toServerDuration(script.executionStart),
29
+ source_url: script.sourceURL,
30
+ source_function_name: script.sourceFunctionName,
31
+ source_char_position: script.sourceCharPosition,
32
+ invoker: script.invoker,
33
+ invoker_type: script.invokerType,
34
+ window_attribution: script.windowAttribution
35
+ };
36
+ })
37
+ },
38
+ type: RumEventType.LONG_TASK
39
+ };
40
+ lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, {
41
+ rawRumEvent: rawRumEvent,
42
+ startTime: startClocks.relative,
43
+ domainContext: {
44
+ performanceEntry: entry
45
+ }
46
+ });
47
+ }
48
+ });
49
+ return {
50
+ stop: function stop() {
51
+ performanceResourceSubscription.unsubscribe();
52
+ }
53
+ };
54
+ }
55
+ //# sourceMappingURL=longAnimationFrameCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longAnimationFrameCollection.js","names":["toServerDuration","relativeToClocks","UUID","LifeCycleEventType","RumLongTaskEntryType","RumEventType","createPerformanceObservable","RumPerformanceEntryType","startLongAnimationFrameCollection","lifeCycle","configuration","performanceResourceSubscription","type","LONG_ANIMATION_FRAME","buffered","subscribe","entries","_i","entries_1","length","entry","startClocks","startTime","rawRumEvent","date","timeStamp","longTask","id","entryType","duration","blockingDuration","firstUiEventTimestamp","firstUIEventTimestamp","renderStart","styleAndLayoutStart","scripts","map","script","pause_duration","pauseDuration","forced_style_and_layout_duration","forcedStyleAndLayoutDuration","start_time","execution_start","executionStart","source_url","sourceURL","source_function_name","sourceFunctionName","source_char_position","sourceCharPosition","invoker","invoker_type","invokerType","window_attribution","windowAttribution","LONG_TASK","notify","RAW_RUM_EVENT_COLLECTED","relative","domainContext","performanceEntry","stop","unsubscribe"],"sources":["../../../../../rum/src/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js"],"sourcesContent":["import {\n toServerDuration,\n relativeToClocks,\n UUID,\n LifeCycleEventType,\n RumLongTaskEntryType,\n RumEventType\n} from '@cloudcare/browser-core'\nimport {\n createPerformanceObservable,\n RumPerformanceEntryType\n} from '../../performanceObservable'\n\nexport function startLongAnimationFrameCollection(lifeCycle, configuration) {\n const performanceResourceSubscription = createPerformanceObservable(\n configuration,\n {\n type: RumPerformanceEntryType.LONG_ANIMATION_FRAME,\n buffered: true\n }\n ).subscribe((entries) => {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i]\n const startClocks = relativeToClocks(entry.startTime)\n const rawRumEvent = {\n date: startClocks.timeStamp,\n longTask: {\n id: UUID(),\n entryType: RumLongTaskEntryType.LONG_ANIMATION_FRAME,\n duration: toServerDuration(entry.duration),\n blockingDuration: toServerDuration(entry.blockingDuration),\n firstUiEventTimestamp: toServerDuration(entry.firstUIEventTimestamp),\n renderStart: toServerDuration(entry.renderStart),\n styleAndLayoutStart: toServerDuration(entry.styleAndLayoutStart),\n startTime: toServerDuration(entry.startTime),\n scripts: entry.scripts.map(function (script) {\n return {\n duration: toServerDuration(script.duration),\n pause_duration: toServerDuration(script.pauseDuration),\n forced_style_and_layout_duration: toServerDuration(\n script.forcedStyleAndLayoutDuration\n ),\n start_time: toServerDuration(script.startTime),\n execution_start: toServerDuration(script.executionStart),\n source_url: script.sourceURL,\n source_function_name: script.sourceFunctionName,\n source_char_position: script.sourceCharPosition,\n invoker: script.invoker,\n invoker_type: script.invokerType,\n window_attribution: script.windowAttribution\n }\n })\n },\n type: RumEventType.LONG_TASK\n }\n\n lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, {\n rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry }\n })\n }\n })\n\n return {\n stop: function () {\n performanceResourceSubscription.unsubscribe()\n }\n }\n}\n"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,gBAAgB,EAChBC,IAAI,EACJC,kBAAkB,EAClBC,oBAAoB,EACpBC,YAAY,QACP,yBAAyB;AAChC,SACEC,2BAA2B,EAC3BC,uBAAuB,QAClB,6BAA6B;AAEpC,OAAO,SAASC,iCAAiCA,CAACC,SAAS,EAAEC,aAAa,EAAE;EAC1E,IAAMC,+BAA+B,GAAGL,2BAA2B,CACjEI,aAAa,EACb;IACEE,IAAI,EAAEL,uBAAuB,CAACM,oBAAoB;IAClDC,QAAQ,EAAE;EACZ,CACF,CAAC,CAACC,SAAS,CAAC,UAACC,OAAO,EAAK;IACvB,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEC,SAAS,GAAGF,OAAO,EAAEC,EAAE,GAAGC,SAAS,CAACC,MAAM,EAAEF,EAAE,EAAE,EAAE;MACjE,IAAIG,KAAK,GAAGF,SAAS,CAACD,EAAE,CAAC;MACzB,IAAMI,WAAW,GAAGpB,gBAAgB,CAACmB,KAAK,CAACE,SAAS,CAAC;MACrD,IAAMC,WAAW,GAAG;QAClBC,IAAI,EAAEH,WAAW,CAACI,SAAS;QAC3BC,QAAQ,EAAE;UACRC,EAAE,EAAEzB,IAAI,CAAC,CAAC;UACV0B,SAAS,EAAExB,oBAAoB,CAACS,oBAAoB;UACpDgB,QAAQ,EAAE7B,gBAAgB,CAACoB,KAAK,CAACS,QAAQ,CAAC;UAC1CC,gBAAgB,EAAE9B,gBAAgB,CAACoB,KAAK,CAACU,gBAAgB,CAAC;UAC1DC,qBAAqB,EAAE/B,gBAAgB,CAACoB,KAAK,CAACY,qBAAqB,CAAC;UACpEC,WAAW,EAAEjC,gBAAgB,CAACoB,KAAK,CAACa,WAAW,CAAC;UAChDC,mBAAmB,EAAElC,gBAAgB,CAACoB,KAAK,CAACc,mBAAmB,CAAC;UAChEZ,SAAS,EAAEtB,gBAAgB,CAACoB,KAAK,CAACE,SAAS,CAAC;UAC5Ca,OAAO,EAAEf,KAAK,CAACe,OAAO,CAACC,GAAG,CAAC,UAAUC,MAAM,EAAE;YAC3C,OAAO;cACLR,QAAQ,EAAE7B,gBAAgB,CAACqC,MAAM,CAACR,QAAQ,CAAC;cAC3CS,cAAc,EAAEtC,gBAAgB,CAACqC,MAAM,CAACE,aAAa,CAAC;cACtDC,gCAAgC,EAAExC,gBAAgB,CAChDqC,MAAM,CAACI,4BACT,CAAC;cACDC,UAAU,EAAE1C,gBAAgB,CAACqC,MAAM,CAACf,SAAS,CAAC;cAC9CqB,eAAe,EAAE3C,gBAAgB,CAACqC,MAAM,CAACO,cAAc,CAAC;cACxDC,UAAU,EAAER,MAAM,CAACS,SAAS;cAC5BC,oBAAoB,EAAEV,MAAM,CAACW,kBAAkB;cAC/CC,oBAAoB,EAAEZ,MAAM,CAACa,kBAAkB;cAC/CC,OAAO,EAAEd,MAAM,CAACc,OAAO;cACvBC,YAAY,EAAEf,MAAM,CAACgB,WAAW;cAChCC,kBAAkB,EAAEjB,MAAM,CAACkB;YAC7B,CAAC;UACH,CAAC;QACH,CAAC;QACD3C,IAAI,EAAEP,YAAY,CAACmD;MACrB,CAAC;MAED/C,SAAS,CAACgD,MAAM,CAACtD,kBAAkB,CAACuD,uBAAuB,EAAE;QAC3DnC,WAAW,EAAXA,WAAW;QACXD,SAAS,EAAED,WAAW,CAACsC,QAAQ;QAC/BC,aAAa,EAAE;UAAEC,gBAAgB,EAAEzC;QAAM;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,OAAO;IACL0C,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBnD,+BAA+B,CAACoD,WAAW,CAAC,CAAC;IAC/C;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { toServerDuration, relativeToClocks, RumEventType, LifeCycleEventType, UUID, RumLongTaskEntryType } from '@cloudcare/browser-core';
2
+ import { RumPerformanceEntryType, createPerformanceObservable } from '../../performanceObservable';
3
+ export function startLongTaskCollection(lifeCycle, configuration) {
4
+ var performanceLongTaskSubscription = createPerformanceObservable(configuration, {
5
+ type: RumPerformanceEntryType.LONG_TASK,
6
+ buffered: true
7
+ }).subscribe(function (entries) {
8
+ for (var i = 0; i < entries.length; i++) {
9
+ var entry = entries[i];
10
+ if (entry.entryType !== RumPerformanceEntryType.LONG_TASK) {
11
+ break;
12
+ }
13
+ var startClocks = relativeToClocks(entry.startTime);
14
+ var rawRumEvent = {
15
+ date: startClocks.timeStamp,
16
+ longTask: {
17
+ id: UUID(),
18
+ entryType: RumLongTaskEntryType.LONG_TASK,
19
+ duration: toServerDuration(entry.duration)
20
+ },
21
+ type: RumEventType.LONG_TASK
22
+ };
23
+ lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, {
24
+ rawRumEvent: rawRumEvent,
25
+ startTime: startClocks.relative,
26
+ domainContext: {
27
+ performanceEntry: entry
28
+ }
29
+ });
30
+ }
31
+ });
32
+ return {
33
+ stop: function stop() {
34
+ performanceLongTaskSubscription.unsubscribe();
35
+ }
36
+ };
37
+ }
38
+ //# sourceMappingURL=longTaskCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longTaskCollection.js","names":["toServerDuration","relativeToClocks","RumEventType","LifeCycleEventType","UUID","RumLongTaskEntryType","RumPerformanceEntryType","createPerformanceObservable","startLongTaskCollection","lifeCycle","configuration","performanceLongTaskSubscription","type","LONG_TASK","buffered","subscribe","entries","i","length","entry","entryType","startClocks","startTime","rawRumEvent","date","timeStamp","longTask","id","duration","notify","RAW_RUM_EVENT_COLLECTED","relative","domainContext","performanceEntry","stop","unsubscribe"],"sources":["../../../../../rum/src/domain/rumEventsCollection/longTask/longTaskCollection.js"],"sourcesContent":["import {\n toServerDuration,\n relativeToClocks,\n RumEventType,\n LifeCycleEventType,\n UUID,\n RumLongTaskEntryType\n} from '@cloudcare/browser-core'\nimport {\n RumPerformanceEntryType,\n createPerformanceObservable\n} from '../../performanceObservable'\nexport function startLongTaskCollection(lifeCycle, configuration) {\n var performanceLongTaskSubscription = createPerformanceObservable(\n configuration,\n {\n type: RumPerformanceEntryType.LONG_TASK,\n buffered: true\n }\n ).subscribe(function (entries) {\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i]\n if (entry.entryType !== RumPerformanceEntryType.LONG_TASK) {\n break\n }\n\n var startClocks = relativeToClocks(entry.startTime)\n var rawRumEvent = {\n date: startClocks.timeStamp,\n longTask: {\n id: UUID(),\n entryType: RumLongTaskEntryType.LONG_TASK,\n duration: toServerDuration(entry.duration)\n },\n type: RumEventType.LONG_TASK\n }\n lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, {\n rawRumEvent: rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry }\n })\n }\n })\n return {\n stop: function () {\n performanceLongTaskSubscription.unsubscribe()\n }\n }\n}\n"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,kBAAkB,EAClBC,IAAI,EACJC,oBAAoB,QACf,yBAAyB;AAChC,SACEC,uBAAuB,EACvBC,2BAA2B,QACtB,6BAA6B;AACpC,OAAO,SAASC,uBAAuBA,CAACC,SAAS,EAAEC,aAAa,EAAE;EAChE,IAAIC,+BAA+B,GAAGJ,2BAA2B,CAC/DG,aAAa,EACb;IACEE,IAAI,EAAEN,uBAAuB,CAACO,SAAS;IACvCC,QAAQ,EAAE;EACZ,CACF,CAAC,CAACC,SAAS,CAAC,UAAUC,OAAO,EAAE;IAC7B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;MACvC,IAAIE,KAAK,GAAGH,OAAO,CAACC,CAAC,CAAC;MACtB,IAAIE,KAAK,CAACC,SAAS,KAAKd,uBAAuB,CAACO,SAAS,EAAE;QACzD;MACF;MAEA,IAAIQ,WAAW,GAAGpB,gBAAgB,CAACkB,KAAK,CAACG,SAAS,CAAC;MACnD,IAAIC,WAAW,GAAG;QAChBC,IAAI,EAAEH,WAAW,CAACI,SAAS;QAC3BC,QAAQ,EAAE;UACRC,EAAE,EAAEvB,IAAI,CAAC,CAAC;UACVgB,SAAS,EAAEf,oBAAoB,CAACQ,SAAS;UACzCe,QAAQ,EAAE5B,gBAAgB,CAACmB,KAAK,CAACS,QAAQ;QAC3C,CAAC;QACDhB,IAAI,EAAEV,YAAY,CAACW;MACrB,CAAC;MACDJ,SAAS,CAACoB,MAAM,CAAC1B,kBAAkB,CAAC2B,uBAAuB,EAAE;QAC3DP,WAAW,EAAEA,WAAW;QACxBD,SAAS,EAAED,WAAW,CAACU,QAAQ;QAC/BC,aAAa,EAAE;UAAEC,gBAAgB,EAAEd;QAAM;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EACF,OAAO;IACLe,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBvB,+BAA+B,CAACwB,WAAW,CAAC,CAAC;IAC/C;EACF,CAAC;AACH","ignoreList":[]}