@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,240 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = exports.FAKE_INITIAL_DOCUMENT = void 0;
7
+ exports.computePerformanceResourceDetails = computePerformanceResourceDetails;
8
+ exports.computeResourceEntryDeliveryType = computeResourceEntryDeliveryType;
9
+ exports.computeResourceEntryDuration = computeResourceEntryDuration;
10
+ exports.computeResourceEntryProtocol = computeResourceEntryProtocol;
11
+ exports.computeResourceEntrySize = computeResourceEntrySize;
12
+ exports.computeResourceEntryType = computeResourceEntryType;
13
+ exports.getStrSize = getStrSize;
14
+ exports.hasValidResourceEntryDuration = hasValidResourceEntryDuration;
15
+ exports.hasValidResourceEntryTimings = hasValidResourceEntryTimings;
16
+ exports.is304 = is304;
17
+ exports.isAllowedRequestUrl = isAllowedRequestUrl;
18
+ exports.isCacheHit = isCacheHit;
19
+ exports.isLongDataUrl = isLongDataUrl;
20
+ exports.isResourceEntryRequestType = isResourceEntryRequestType;
21
+ exports.isResourceUrlLimit = isResourceUrlLimit;
22
+ exports.sanitizeDataUrl = sanitizeDataUrl;
23
+ var _browserCore = require("@cloudcare/browser-core");
24
+ var FAKE_INITIAL_DOCUMENT = exports.FAKE_INITIAL_DOCUMENT = 'initial_document';
25
+ var RESOURCE_TYPES = [[_browserCore.ResourceType.DOCUMENT, function (initiatorType) {
26
+ return FAKE_INITIAL_DOCUMENT === initiatorType;
27
+ }], [_browserCore.ResourceType.XHR, function (initiatorType) {
28
+ return 'xmlhttprequest' === initiatorType;
29
+ }], [_browserCore.ResourceType.FETCH, function (initiatorType) {
30
+ return 'fetch' === initiatorType;
31
+ }], [_browserCore.ResourceType.BEACON, function (initiatorType) {
32
+ return 'beacon' === initiatorType;
33
+ }], [_browserCore.ResourceType.CSS, function (_, path) {
34
+ return path.match(/\.css$/i) !== null;
35
+ }], [_browserCore.ResourceType.JS, function (_, path) {
36
+ return path.match(/\.js$/i) !== null;
37
+ }], [_browserCore.ResourceType.IMAGE, function (initiatorType, path) {
38
+ return (0, _browserCore.includes)(['image', 'img', 'icon'], initiatorType) || path.match(/\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i) !== null;
39
+ }], [_browserCore.ResourceType.FONT, function (_, path) {
40
+ return path.match(/\.(woff|eot|woff2|ttf)$/i) !== null;
41
+ }], [_browserCore.ResourceType.MEDIA, function (initiatorType, path) {
42
+ return (0, _browserCore.includes)(['audio', 'video'], initiatorType) || path.match(/\.(mp3|mp4)$/i) !== null;
43
+ }]];
44
+ function computeResourceEntryType(entry) {
45
+ var url = entry.name;
46
+ if (!(0, _browserCore.isValidUrl)(url)) {
47
+ return _browserCore.ResourceType.OTHER;
48
+ }
49
+ var path = (0, _browserCore.getPathName)(url);
50
+ var type = _browserCore.ResourceType.OTHER;
51
+ (0, _browserCore.each)(RESOURCE_TYPES, function (res) {
52
+ var _type = res[0],
53
+ isType = res[1];
54
+ if (isType(entry.initiatorType, path)) {
55
+ type = _type;
56
+ return false;
57
+ }
58
+ });
59
+ return type;
60
+ }
61
+ function areInOrder() {
62
+ var numbers = (0, _browserCore.toArray)(arguments);
63
+ for (var i = 1; i < numbers.length; i += 1) {
64
+ if (numbers[i - 1] > numbers[i]) {
65
+ return false;
66
+ }
67
+ }
68
+ return true;
69
+ }
70
+ /**
71
+ * Handles the 'deliveryType' property to distinguish between supported values ('cache', 'navigational-prefetch'),
72
+ * undefined (unsupported in some browsers), and other cases ('other' for unknown or unrecognized values).
73
+ * see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType
74
+ */
75
+ function computeResourceEntryDeliveryType(entry) {
76
+ return entry.deliveryType === '' ? 'other' : entry.deliveryType;
77
+ }
78
+ /**
79
+ * The 'nextHopProtocol' is an empty string for cross-origin resources without CORS headers,
80
+ * meaning the protocol is unknown, and we shouldn't report it.
81
+ * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol#cross-origin_resources
82
+ */
83
+ function computeResourceEntryProtocol(entry) {
84
+ return entry.nextHopProtocol === '' ? undefined : entry.nextHopProtocol;
85
+ }
86
+ function isResourceEntryRequestType(entry) {
87
+ return entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch';
88
+ }
89
+ var HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/;
90
+ function getStrSize(candidate) {
91
+ if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {
92
+ return candidate.length;
93
+ }
94
+ if (window.TextEncoder !== undefined) {
95
+ return new TextEncoder().encode(candidate).length;
96
+ }
97
+ return new Blob([candidate]).size;
98
+ }
99
+ function isResourceUrlLimit(name, limitSize) {
100
+ return getStrSize(name) > limitSize;
101
+ }
102
+ function computeResourceEntryDuration(entry) {
103
+ // Safari duration is always 0 on timings blocked by cross origin policies.
104
+ if (entry.duration === 0 && entry.startTime < entry.responseEnd) {
105
+ return (0, _browserCore.msToNs)(entry.responseEnd - entry.startTime);
106
+ }
107
+ return (0, _browserCore.msToNs)(entry.duration);
108
+ }
109
+ function is304(entry) {
110
+ if (entry.encodedBodySize > 0 && entry.transferSize > 0 && entry.transferSize < entry.encodedBodySize) {
111
+ return true;
112
+ }
113
+
114
+ // unknown
115
+ return null;
116
+ }
117
+ function isCacheHit(entry) {
118
+ // if we transferred bytes, it must not be a cache hit
119
+ // (will return false for 304 Not Modified)
120
+ if (entry.transferSize > 0) return false;
121
+
122
+ // if the body size is non-zero, it must mean this is a
123
+ // ResourceTiming2 browser, this was same-origin or TAO,
124
+ // and transferSize was 0, so it was in the cache
125
+ if (entry.decodedBodySize > 0) return true;
126
+
127
+ // fall back to duration checking (non-RT2 or cross-origin)
128
+ return entry.duration < 30;
129
+ }
130
+ function computePerformanceResourceDetails(entry) {
131
+ if (!hasValidResourceEntryTimings(entry)) {
132
+ return undefined;
133
+ }
134
+ var startTime = entry.startTime,
135
+ fetchStart = entry.fetchStart,
136
+ redirectStart = entry.redirectStart,
137
+ redirectEnd = entry.redirectEnd,
138
+ domainLookupStart = entry.domainLookupStart,
139
+ domainLookupEnd = entry.domainLookupEnd,
140
+ connectStart = entry.connectStart,
141
+ secureConnectionStart = entry.secureConnectionStart,
142
+ connectEnd = entry.connectEnd,
143
+ requestStart = entry.requestStart,
144
+ responseStart = entry.responseStart,
145
+ responseEnd = entry.responseEnd;
146
+ var details = {
147
+ firstbyte: (0, _browserCore.msToNs)(responseStart - requestStart),
148
+ trans: (0, _browserCore.msToNs)(responseEnd - responseStart),
149
+ downloadTime: formatTiming(startTime, responseStart, responseEnd),
150
+ firstByteTime: formatTiming(startTime, requestStart, responseStart)
151
+ };
152
+ if (responseStart > 0 && responseStart <= (0, _browserCore.preferredNow)()) {
153
+ details.ttfb = (0, _browserCore.msToNs)(responseStart - requestStart);
154
+ }
155
+ // Make sure a connection occurred
156
+ if (connectEnd !== fetchStart) {
157
+ details.tcp = (0, _browserCore.msToNs)(connectEnd - connectStart);
158
+ details.connectTime = formatTiming(startTime, connectStart, connectEnd);
159
+ // Make sure a secure connection occurred
160
+ if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {
161
+ details.ssl = (0, _browserCore.msToNs)(connectEnd - secureConnectionStart);
162
+ details.sslTime = formatTiming(startTime, secureConnectionStart, connectEnd);
163
+ }
164
+ }
165
+
166
+ // Make sure a domain lookup occurred
167
+ if (domainLookupEnd !== fetchStart) {
168
+ details.dns = (0, _browserCore.msToNs)(domainLookupEnd - domainLookupStart);
169
+ details.dnsTime = formatTiming(startTime, domainLookupStart, domainLookupEnd);
170
+ }
171
+ if (hasRedirection(entry)) {
172
+ details.redirect = (0, _browserCore.msToNs)(redirectEnd - redirectStart);
173
+ details.redirectTime = formatTiming(startTime, redirectStart, redirectEnd);
174
+ }
175
+ // renderBlockstatus
176
+ if (entry.renderBlockingStatus) {
177
+ details.renderBlockingStatus = entry.renderBlockingStatus;
178
+ }
179
+ return details;
180
+ }
181
+ function hasValidResourceEntryDuration(entry) {
182
+ return entry.duration >= 0;
183
+ }
184
+ function hasValidResourceEntryTimings(entry) {
185
+ var areCommonTimingsInOrder = areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd);
186
+ var areRedirectionTimingsInOrder = hasRedirection(entry) ? areInOrder(entry.startTime, entry.redirectStart, entry.redirectEnd, entry.fetchStart) : true;
187
+ return areCommonTimingsInOrder && areRedirectionTimingsInOrder;
188
+ }
189
+ function hasRedirection(entry) {
190
+ return entry.redirectEnd > entry.startTime;
191
+ }
192
+ function formatTiming(origin, start, end) {
193
+ return {
194
+ duration: (0, _browserCore.msToNs)(end - start),
195
+ start: (0, _browserCore.msToNs)(start - origin)
196
+ };
197
+ }
198
+ function computeResourceEntrySize(entry) {
199
+ // Make sure a request actually occurred
200
+ if (entry.startTime < entry.responseStart) {
201
+ return {
202
+ size: entry.decodedBodySize,
203
+ encodedBodySize: entry.encodedBodySize,
204
+ decodedBodySize: entry.decodedBodySize,
205
+ transferSize: entry.transferSize
206
+ };
207
+ // return {
208
+ // size: entry.decodedBodySize,
209
+ // encodeSize:
210
+ // Number.MAX_SAFE_INTEGER < entry.encodedBodySize
211
+ // ? 0
212
+ // : entry.encodedBodySize // max safe interger
213
+ // }
214
+ }
215
+ return {
216
+ size: undefined,
217
+ encodedBodySize: undefined,
218
+ decodedBodySize: undefined,
219
+ transferSize: undefined
220
+ };
221
+ }
222
+ function isAllowedRequestUrl(configuration, url) {
223
+ return url && !(0, _browserCore.isIntakeRequest)(url, configuration);
224
+ }
225
+ var DATA_URL_REGEX = /data:(.+)?(;base64)?,/g;
226
+ var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = exports.MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 24000;
227
+ function isLongDataUrl(url) {
228
+ if (url.length <= MAX_ATTRIBUTE_VALUE_CHAR_LENGTH) {
229
+ return false;
230
+ } else if (url.substring(0, 5) === 'data:') {
231
+ // Avoid String.match RangeError: Maximum call stack size exceeded
232
+ url = url.substring(0, MAX_ATTRIBUTE_VALUE_CHAR_LENGTH);
233
+ return true;
234
+ }
235
+ return false;
236
+ }
237
+ function sanitizeDataUrl(url) {
238
+ return url.match(DATA_URL_REGEX)[0] + '[...]';
239
+ }
240
+ //# sourceMappingURL=resourceUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceUtils.js","names":["_browserCore","require","FAKE_INITIAL_DOCUMENT","exports","RESOURCE_TYPES","ResourceType","DOCUMENT","initiatorType","XHR","FETCH","BEACON","CSS","_","path","match","JS","IMAGE","includes","FONT","MEDIA","computeResourceEntryType","entry","url","name","isValidUrl","OTHER","getPathName","type","each","res","_type","isType","areInOrder","numbers","toArray","arguments","i","length","computeResourceEntryDeliveryType","deliveryType","computeResourceEntryProtocol","nextHopProtocol","undefined","isResourceEntryRequestType","HAS_MULTI_BYTES_CHARACTERS","getStrSize","candidate","test","window","TextEncoder","encode","Blob","size","isResourceUrlLimit","limitSize","computeResourceEntryDuration","duration","startTime","responseEnd","msToNs","is304","encodedBodySize","transferSize","isCacheHit","decodedBodySize","computePerformanceResourceDetails","hasValidResourceEntryTimings","fetchStart","redirectStart","redirectEnd","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","details","firstbyte","trans","downloadTime","formatTiming","firstByteTime","preferredNow","ttfb","tcp","connectTime","ssl","sslTime","dns","dnsTime","hasRedirection","redirect","redirectTime","renderBlockingStatus","hasValidResourceEntryDuration","areCommonTimingsInOrder","areRedirectionTimingsInOrder","origin","start","end","computeResourceEntrySize","isAllowedRequestUrl","configuration","isIntakeRequest","DATA_URL_REGEX","MAX_ATTRIBUTE_VALUE_CHAR_LENGTH","isLongDataUrl","substring","sanitizeDataUrl"],"sources":["../../../../../rum/src/domain/rumEventsCollection/resource/resourceUtils.js"],"sourcesContent":["import {\n includes,\n msToNs,\n each,\n toArray,\n getPathName,\n isValidUrl,\n isIntakeRequest,\n ResourceType,\n preferredNow\n} from '@cloudcare/browser-core'\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document'\n\nvar RESOURCE_TYPES = [\n [\n ResourceType.DOCUMENT,\n function (initiatorType) {\n return FAKE_INITIAL_DOCUMENT === initiatorType\n }\n ],\n [\n ResourceType.XHR,\n function (initiatorType) {\n return 'xmlhttprequest' === initiatorType\n }\n ],\n [\n ResourceType.FETCH,\n function (initiatorType) {\n return 'fetch' === initiatorType\n }\n ],\n [\n ResourceType.BEACON,\n function (initiatorType) {\n return 'beacon' === initiatorType\n }\n ],\n [\n ResourceType.CSS,\n function (_, path) {\n return path.match(/\\.css$/i) !== null\n }\n ],\n [\n ResourceType.JS,\n function (_, path) {\n return path.match(/\\.js$/i) !== null\n }\n ],\n [\n ResourceType.IMAGE,\n function (initiatorType, path) {\n return (\n includes(['image', 'img', 'icon'], initiatorType) ||\n path.match(/\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i) !== null\n )\n }\n ],\n [\n ResourceType.FONT,\n function (_, path) {\n return path.match(/\\.(woff|eot|woff2|ttf)$/i) !== null\n }\n ],\n [\n ResourceType.MEDIA,\n function (initiatorType, path) {\n return (\n includes(['audio', 'video'], initiatorType) ||\n path.match(/\\.(mp3|mp4)$/i) !== null\n )\n }\n ]\n]\n\nexport function computeResourceEntryType(entry) {\n var url = entry.name\n if (!isValidUrl(url)) {\n return ResourceType.OTHER\n }\n var path = getPathName(url)\n var type = ResourceType.OTHER\n each(RESOURCE_TYPES, function (res) {\n var _type = res[0],\n isType = res[1]\n\n if (isType(entry.initiatorType, path)) {\n type = _type\n return false\n }\n })\n return type\n}\nfunction areInOrder() {\n var numbers = toArray(arguments)\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false\n }\n }\n return true\n}\n/**\n * Handles the 'deliveryType' property to distinguish between supported values ('cache', 'navigational-prefetch'),\n * undefined (unsupported in some browsers), and other cases ('other' for unknown or unrecognized values).\n * see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n */\nexport function computeResourceEntryDeliveryType(entry) {\n return entry.deliveryType === '' ? 'other' : entry.deliveryType\n}\n/**\n * The 'nextHopProtocol' is an empty string for cross-origin resources without CORS headers,\n * meaning the protocol is unknown, and we shouldn't report it.\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol#cross-origin_resources\n */\nexport function computeResourceEntryProtocol(entry) {\n return entry.nextHopProtocol === '' ? undefined : entry.nextHopProtocol\n}\n\nexport function isResourceEntryRequestType(entry) {\n return (\n entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch'\n )\n}\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\nexport function getStrSize(candidate) {\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length\n }\n\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length\n }\n\n return new Blob([candidate]).size\n}\nexport function isResourceUrlLimit(name, limitSize) {\n return getStrSize(name) > limitSize\n}\nexport function computeResourceEntryDuration(entry) {\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (entry.duration === 0 && entry.startTime < entry.responseEnd) {\n return msToNs(entry.responseEnd - entry.startTime)\n }\n\n return msToNs(entry.duration)\n}\nexport function is304(entry) {\n if (\n entry.encodedBodySize > 0 &&\n entry.transferSize > 0 &&\n entry.transferSize < entry.encodedBodySize\n ) {\n return true\n }\n\n // unknown\n return null\n}\nexport function isCacheHit(entry) {\n // if we transferred bytes, it must not be a cache hit\n // (will return false for 304 Not Modified)\n if (entry.transferSize > 0) return false\n\n // if the body size is non-zero, it must mean this is a\n // ResourceTiming2 browser, this was same-origin or TAO,\n // and transferSize was 0, so it was in the cache\n if (entry.decodedBodySize > 0) return true\n\n // fall back to duration checking (non-RT2 or cross-origin)\n return entry.duration < 30\n}\n\nexport function computePerformanceResourceDetails(entry) {\n if (!hasValidResourceEntryTimings(entry)) {\n return undefined\n }\n\n var startTime = entry.startTime,\n fetchStart = entry.fetchStart,\n redirectStart = entry.redirectStart,\n redirectEnd = entry.redirectEnd,\n domainLookupStart = entry.domainLookupStart,\n domainLookupEnd = entry.domainLookupEnd,\n connectStart = entry.connectStart,\n secureConnectionStart = entry.secureConnectionStart,\n connectEnd = entry.connectEnd,\n requestStart = entry.requestStart,\n responseStart = entry.responseStart,\n responseEnd = entry.responseEnd\n var details = {\n firstbyte: msToNs(responseStart - requestStart),\n trans: msToNs(responseEnd - responseStart),\n downloadTime: formatTiming(startTime, responseStart, responseEnd),\n firstByteTime: formatTiming(startTime, requestStart, responseStart)\n }\n if (responseStart > 0 && responseStart <= preferredNow()) {\n details.ttfb = msToNs(responseStart - requestStart)\n }\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.tcp = msToNs(connectEnd - connectStart)\n details.connectTime = formatTiming(startTime, connectStart, connectEnd)\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = msToNs(connectEnd - secureConnectionStart)\n details.sslTime = formatTiming(\n startTime,\n secureConnectionStart,\n connectEnd\n )\n }\n }\n\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = msToNs(domainLookupEnd - domainLookupStart)\n details.dnsTime = formatTiming(\n startTime,\n domainLookupStart,\n domainLookupEnd\n )\n }\n\n if (hasRedirection(entry)) {\n details.redirect = msToNs(redirectEnd - redirectStart)\n details.redirectTime = formatTiming(startTime, redirectStart, redirectEnd)\n }\n // renderBlockstatus\n if (entry.renderBlockingStatus) {\n details.renderBlockingStatus = entry.renderBlockingStatus\n }\n return details\n}\nexport function hasValidResourceEntryDuration(entry) {\n return entry.duration >= 0\n}\nexport function hasValidResourceEntryTimings(entry) {\n var areCommonTimingsInOrder = areInOrder(\n entry.startTime,\n entry.fetchStart,\n entry.domainLookupStart,\n entry.domainLookupEnd,\n entry.connectStart,\n entry.connectEnd,\n entry.requestStart,\n entry.responseStart,\n entry.responseEnd\n )\n var areRedirectionTimingsInOrder = hasRedirection(entry)\n ? areInOrder(\n entry.startTime,\n entry.redirectStart,\n entry.redirectEnd,\n entry.fetchStart\n )\n : true\n return areCommonTimingsInOrder && areRedirectionTimingsInOrder\n}\n\nfunction hasRedirection(entry) {\n return entry.redirectEnd > entry.startTime\n}\n\nfunction formatTiming(origin, start, end) {\n return {\n duration: msToNs(end - start),\n start: msToNs(start - origin)\n }\n}\n\nexport function computeResourceEntrySize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return {\n size: entry.decodedBodySize,\n encodedBodySize: entry.encodedBodySize,\n decodedBodySize: entry.decodedBodySize,\n transferSize: entry.transferSize\n }\n // return {\n // size: entry.decodedBodySize,\n // encodeSize:\n // Number.MAX_SAFE_INTEGER < entry.encodedBodySize\n // ? 0\n // : entry.encodedBodySize // max safe interger\n // }\n }\n return {\n size: undefined,\n encodedBodySize: undefined,\n decodedBodySize: undefined,\n transferSize: undefined\n }\n}\n\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !isIntakeRequest(url, configuration)\n}\n\nvar DATA_URL_REGEX = /data:(.+)?(;base64)?,/g\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 24_000\nexport function isLongDataUrl(url) {\n if (url.length <= MAX_ATTRIBUTE_VALUE_CHAR_LENGTH) {\n return false\n } else if (url.substring(0, 5) === 'data:') {\n // Avoid String.match RangeError: Maximum call stack size exceeded\n url = url.substring(0, MAX_ATTRIBUTE_VALUE_CHAR_LENGTH)\n return true\n }\n return false\n}\n\nexport function sanitizeDataUrl(url) {\n return url.match(DATA_URL_REGEX)[0] + '[...]'\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.retrieveInitialDocumentResourceTiming = retrieveInitialDocumentResourceTiming;
7
+ var _browserCore = require("@cloudcare/browser-core");
8
+ var _performanceObservable = require("../../performanceObservable");
9
+ var _resourceUtils = require("./resourceUtils");
10
+ var _performanceUtils = require("../../performanceUtils");
11
+ function retrieveInitialDocumentResourceTiming(configuration, callback) {
12
+ (0, _browserCore.runOnReadyState)('interactive', function () {
13
+ var entry = (0, _browserCore.assign)((0, _performanceUtils.getNavigationEntry)().toJSON(), {
14
+ entryType: _performanceObservable.RumPerformanceEntryType.RESOURCE,
15
+ initiatorType: _resourceUtils.FAKE_INITIAL_DOCUMENT,
16
+ toJSON: function toJSON() {
17
+ return (0, _browserCore.assign)({}, entry, {
18
+ toJSON: undefined
19
+ });
20
+ }
21
+ });
22
+ callback(entry);
23
+ });
24
+ }
25
+ //# sourceMappingURL=retrieveInitialDocumentResourceTiming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveInitialDocumentResourceTiming.js","names":["_browserCore","require","_performanceObservable","_resourceUtils","_performanceUtils","retrieveInitialDocumentResourceTiming","configuration","callback","runOnReadyState","entry","assign","getNavigationEntry","toJSON","entryType","RumPerformanceEntryType","RESOURCE","initiatorType","FAKE_INITIAL_DOCUMENT","undefined"],"sources":["../../../../../rum/src/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js"],"sourcesContent":["import { runOnReadyState, assign } from '@cloudcare/browser-core'\nimport { RumPerformanceEntryType } from '../../performanceObservable'\nimport { FAKE_INITIAL_DOCUMENT } from './resourceUtils'\nimport { getNavigationEntry } from '../../performanceUtils'\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState('interactive', function () {\n var entry = assign(getNavigationEntry().toJSON(), {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n toJSON: function () {\n return assign({}, entry, { toJSON: undefined })\n }\n })\n callback(entry)\n })\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACO,SAASI,qCAAqCA,CAACC,aAAa,EAAEC,QAAQ,EAAE;EAC7E,IAAAC,4BAAe,EAAC,aAAa,EAAE,YAAY;IACzC,IAAIC,KAAK,GAAG,IAAAC,mBAAM,EAAC,IAAAC,oCAAkB,EAAC,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE;MAChDC,SAAS,EAAEC,8CAAuB,CAACC,QAAQ;MAC3CC,aAAa,EAAEC,oCAAqB;MACpCL,MAAM,EAAE,SAARA,MAAMA,CAAA,EAAc;QAClB,OAAO,IAAAF,mBAAM,EAAC,CAAC,CAAC,EAAED,KAAK,EAAE;UAAEG,MAAM,EAAEM;QAAU,CAAC,CAAC;MACjD;IACF,CAAC,CAAC;IACFX,QAAQ,CAACE,KAAK,CAAC;EACjB,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getInteractionCount = void 0;
7
+ exports.initInteractionCountPolyfill = initInteractionCountPolyfill;
8
+ var _browserCore = require("@cloudcare/browser-core");
9
+ /**
10
+ * performance.interactionCount polyfill
11
+ *
12
+ * The interactionCount is an integer which counts the total number of distinct user interactions,
13
+ * for which there was a unique interactionId.
14
+ *
15
+ * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213
16
+ * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.
17
+ * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.
18
+ *
19
+ * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts
20
+ */
21
+
22
+ var observer;
23
+ var interactionCountEstimate = 0;
24
+ var minKnownInteractionId = Infinity;
25
+ var maxKnownInteractionId = 0;
26
+ function initInteractionCountPolyfill() {
27
+ if ('interactionCount' in performance || observer) {
28
+ return;
29
+ }
30
+ observer = new window.PerformanceObserver((0, _browserCore.monitor)(function (entries) {
31
+ entries.getEntries().forEach(function (e) {
32
+ var entry = e;
33
+ if (entry.interactionId) {
34
+ minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);
35
+ maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);
36
+ interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;
37
+ }
38
+ });
39
+ }));
40
+ observer.observe({
41
+ type: 'event',
42
+ buffered: true,
43
+ durationThreshold: 0
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Returns the `interactionCount` value using the native API (if available)
49
+ * or the polyfill estimate in this module.
50
+ */
51
+ var getInteractionCount = exports.getInteractionCount = function getInteractionCount() {
52
+ return observer ? interactionCountEstimate : window.performance.interactionCount || 0;
53
+ };
54
+ //# sourceMappingURL=interactionCountPolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactionCountPolyfill.js","names":["_browserCore","require","observer","interactionCountEstimate","minKnownInteractionId","Infinity","maxKnownInteractionId","initInteractionCountPolyfill","performance","window","PerformanceObserver","monitor","entries","getEntries","forEach","e","entry","interactionId","Math","min","max","observe","type","buffered","durationThreshold","getInteractionCount","exports","interactionCount"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/interactionCountPolyfill.js"],"sourcesContent":["/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\n\nimport { monitor } from '@cloudcare/browser-core'\n\nvar observer\n\nvar interactionCountEstimate = 0\nvar minKnownInteractionId = Infinity\nvar maxKnownInteractionId = 0\n\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return\n }\n\n observer = new window.PerformanceObserver(\n monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n const entry = e\n\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(\n minKnownInteractionId,\n entry.interactionId\n )\n maxKnownInteractionId = Math.max(\n maxKnownInteractionId,\n entry.interactionId\n )\n\n interactionCountEstimate =\n (maxKnownInteractionId - minKnownInteractionId) / 7 + 1\n }\n })\n })\n )\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 })\n}\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer\n ? interactionCountEstimate\n : window.performance.interactionCount || 0\n}\n"],"mappings":";;;;;;;AAaA,IAAAA,YAAA,GAAAC,OAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,IAAIC,QAAQ;AAEZ,IAAIC,wBAAwB,GAAG,CAAC;AAChC,IAAIC,qBAAqB,GAAGC,QAAQ;AACpC,IAAIC,qBAAqB,GAAG,CAAC;AAEtB,SAASC,4BAA4BA,CAAA,EAAG;EAC7C,IAAI,kBAAkB,IAAIC,WAAW,IAAIN,QAAQ,EAAE;IACjD;EACF;EAEAA,QAAQ,GAAG,IAAIO,MAAM,CAACC,mBAAmB,CACvC,IAAAC,oBAAO,EAAC,UAAUC,OAAO,EAAE;IACzBA,OAAO,CAACC,UAAU,CAAC,CAAC,CAACC,OAAO,CAAC,UAAUC,CAAC,EAAE;MACxC,IAAMC,KAAK,GAAGD,CAAC;MAEf,IAAIC,KAAK,CAACC,aAAa,EAAE;QACvBb,qBAAqB,GAAGc,IAAI,CAACC,GAAG,CAC9Bf,qBAAqB,EACrBY,KAAK,CAACC,aACR,CAAC;QACDX,qBAAqB,GAAGY,IAAI,CAACE,GAAG,CAC9Bd,qBAAqB,EACrBU,KAAK,CAACC,aACR,CAAC;QAEDd,wBAAwB,GACtB,CAACG,qBAAqB,GAAGF,qBAAqB,IAAI,CAAC,GAAG,CAAC;MAC3D;IACF,CAAC,CAAC;EACJ,CAAC,CACH,CAAC;EACDF,QAAQ,CAACmB,OAAO,CAAC;IAAEC,IAAI,EAAE,OAAO;IAAEC,QAAQ,EAAE,IAAI;IAAEC,iBAAiB,EAAE;EAAE,CAAC,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACO,IAAIC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAA,EAAe;EAC3C,OAAOvB,QAAQ,GACXC,wBAAwB,GACxBM,MAAM,CAACD,WAAW,CAACmB,gBAAgB,IAAI,CAAC;AAC9C,CAAC","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.trackCommonViewMetrics = trackCommonViewMetrics;
7
+ var _trackScrollMetrics2 = require("./trackScrollMetrics");
8
+ var _trackLoadingTime2 = require("./trackLoadingTime");
9
+ var _trackCumulativeLayoutShift2 = require("./trackCumulativeLayoutShift");
10
+ var _trackInteractionToNextPaint2 = require("./trackInteractionToNextPaint");
11
+ function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {
12
+ var commonViewMetrics = {};
13
+ var _trackLoadingTime = (0, _trackLoadingTime2.trackLoadingTime)(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {
14
+ commonViewMetrics.loadingTime = newLoadingTime;
15
+ scheduleViewUpdate();
16
+ });
17
+ var stopLoadingTimeTracking = _trackLoadingTime.stop;
18
+ var setLoadEvent = _trackLoadingTime.setLoadEvent;
19
+ var _trackScrollMetrics = (0, _trackScrollMetrics2.trackScrollMetrics)(configuration, viewStart, function (newScrollMetrics) {
20
+ commonViewMetrics.scroll = newScrollMetrics;
21
+ });
22
+ var stopScrollMetricsTracking = _trackScrollMetrics.stop;
23
+ var stopCLSTracking;
24
+ var _trackCumulativeLayoutShift = (0, _trackCumulativeLayoutShift2.trackCumulativeLayoutShift)(configuration, viewStart.relative, function (cumulativeLayoutShift) {
25
+ commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;
26
+ scheduleViewUpdate();
27
+ });
28
+ var stopCLSTracking = _trackCumulativeLayoutShift.stop;
29
+ var _trackInteractionToNextPaint = (0, _trackInteractionToNextPaint2.trackInteractionToNextPaint)(configuration, viewStart.relative, loadingType);
30
+ var stopINPTracking = _trackInteractionToNextPaint.stop;
31
+ var getInteractionToNextPaint = _trackInteractionToNextPaint.getInteractionToNextPaint;
32
+ var setViewEnd = _trackInteractionToNextPaint.setViewEnd;
33
+ return {
34
+ stop: function stop() {
35
+ stopLoadingTimeTracking();
36
+ stopCLSTracking();
37
+ stopScrollMetricsTracking();
38
+ },
39
+ stopINPTracking: stopINPTracking,
40
+ setLoadEvent: setLoadEvent,
41
+ setViewEnd: setViewEnd,
42
+ getCommonViewMetrics: function getCommonViewMetrics() {
43
+ commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();
44
+ return commonViewMetrics;
45
+ }
46
+ };
47
+ }
48
+ //# sourceMappingURL=trackCommonViewMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackCommonViewMetrics.js","names":["_trackScrollMetrics2","require","_trackLoadingTime2","_trackCumulativeLayoutShift2","_trackInteractionToNextPaint2","trackCommonViewMetrics","lifeCycle","domMutationObservable","configuration","scheduleViewUpdate","loadingType","viewStart","commonViewMetrics","_trackLoadingTime","trackLoadingTime","newLoadingTime","loadingTime","stopLoadingTimeTracking","stop","setLoadEvent","_trackScrollMetrics","trackScrollMetrics","newScrollMetrics","scroll","stopScrollMetricsTracking","stopCLSTracking","_trackCumulativeLayoutShift","trackCumulativeLayoutShift","relative","cumulativeLayoutShift","_trackInteractionToNextPaint","trackInteractionToNextPaint","stopINPTracking","getInteractionToNextPaint","setViewEnd","getCommonViewMetrics","interactionToNextPaint"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackCommonViewMetrics.js"],"sourcesContent":["import { trackScrollMetrics } from './trackScrollMetrics'\nimport { trackLoadingTime } from './trackLoadingTime'\nimport { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift'\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint'\n\nexport function trackCommonViewMetrics(\n lifeCycle,\n domMutationObservable,\n configuration,\n scheduleViewUpdate,\n loadingType,\n viewStart\n) {\n var commonViewMetrics = {}\n var _trackLoadingTime = trackLoadingTime(\n lifeCycle,\n domMutationObservable,\n configuration,\n loadingType,\n viewStart,\n function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime\n scheduleViewUpdate()\n }\n )\n var stopLoadingTimeTracking = _trackLoadingTime.stop\n var setLoadEvent = _trackLoadingTime.setLoadEvent\n var _trackScrollMetrics = trackScrollMetrics(\n configuration,\n viewStart,\n function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics\n }\n )\n var stopScrollMetricsTracking = _trackScrollMetrics.stop\n var stopCLSTracking\n var _trackCumulativeLayoutShift = trackCumulativeLayoutShift(\n configuration,\n viewStart.relative,\n function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift\n scheduleViewUpdate()\n }\n )\n var stopCLSTracking = _trackCumulativeLayoutShift.stop\n var _trackInteractionToNextPaint = trackInteractionToNextPaint(\n configuration,\n viewStart.relative,\n loadingType\n )\n var stopINPTracking = _trackInteractionToNextPaint.stop\n var getInteractionToNextPaint =\n _trackInteractionToNextPaint.getInteractionToNextPaint\n var setViewEnd = _trackInteractionToNextPaint.setViewEnd\n return {\n stop: function () {\n stopLoadingTimeTracking()\n stopCLSTracking()\n stopScrollMetricsTracking()\n },\n stopINPTracking: stopINPTracking,\n setLoadEvent: setLoadEvent,\n setViewEnd: setViewEnd,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint()\n return commonViewMetrics\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,6BAAA,GAAAH,OAAA;AAEO,SAASI,sBAAsBA,CACpCC,SAAS,EACTC,qBAAqB,EACrBC,aAAa,EACbC,kBAAkB,EAClBC,WAAW,EACXC,SAAS,EACT;EACA,IAAIC,iBAAiB,GAAG,CAAC,CAAC;EAC1B,IAAIC,iBAAiB,GAAG,IAAAC,mCAAgB,EACtCR,SAAS,EACTC,qBAAqB,EACrBC,aAAa,EACbE,WAAW,EACXC,SAAS,EACT,UAAUI,cAAc,EAAE;IACxBH,iBAAiB,CAACI,WAAW,GAAGD,cAAc;IAC9CN,kBAAkB,CAAC,CAAC;EACtB,CACF,CAAC;EACD,IAAIQ,uBAAuB,GAAGJ,iBAAiB,CAACK,IAAI;EACpD,IAAIC,YAAY,GAAGN,iBAAiB,CAACM,YAAY;EACjD,IAAIC,mBAAmB,GAAG,IAAAC,uCAAkB,EAC1Cb,aAAa,EACbG,SAAS,EACT,UAAUW,gBAAgB,EAAE;IAC1BV,iBAAiB,CAACW,MAAM,GAAGD,gBAAgB;EAC7C,CACF,CAAC;EACD,IAAIE,yBAAyB,GAAGJ,mBAAmB,CAACF,IAAI;EACxD,IAAIO,eAAe;EACnB,IAAIC,2BAA2B,GAAG,IAAAC,uDAA0B,EAC1DnB,aAAa,EACbG,SAAS,CAACiB,QAAQ,EAClB,UAAUC,qBAAqB,EAAE;IAC/BjB,iBAAiB,CAACiB,qBAAqB,GAAGA,qBAAqB;IAC/DpB,kBAAkB,CAAC,CAAC;EACtB,CACF,CAAC;EACD,IAAIgB,eAAe,GAAGC,2BAA2B,CAACR,IAAI;EACtD,IAAIY,4BAA4B,GAAG,IAAAC,yDAA2B,EAC5DvB,aAAa,EACbG,SAAS,CAACiB,QAAQ,EAClBlB,WACF,CAAC;EACD,IAAIsB,eAAe,GAAGF,4BAA4B,CAACZ,IAAI;EACvD,IAAIe,yBAAyB,GAC3BH,4BAA4B,CAACG,yBAAyB;EACxD,IAAIC,UAAU,GAAGJ,4BAA4B,CAACI,UAAU;EACxD,OAAO;IACLhB,IAAI,EAAE,SAANA,IAAIA,CAAA,EAAc;MAChBD,uBAAuB,CAAC,CAAC;MACzBQ,eAAe,CAAC,CAAC;MACjBD,yBAAyB,CAAC,CAAC;IAC7B,CAAC;IACDQ,eAAe,EAAEA,eAAe;IAChCb,YAAY,EAAEA,YAAY;IAC1Be,UAAU,EAAEA,UAAU;IACtBC,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAA,EAAc;MAChCvB,iBAAiB,CAACwB,sBAAsB,GAAGH,yBAAyB,CAAC,CAAC;MACtE,OAAOrB,iBAAiB;IAC1B;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MAX_WINDOW_DURATION = void 0;
7
+ exports.isLayoutShiftSupported = isLayoutShiftSupported;
8
+ exports.trackCumulativeLayoutShift = trackCumulativeLayoutShift;
9
+ var _browserCore = require("@cloudcare/browser-core");
10
+ var _getSelectorsFromElement = require("../actions/getSelectorsFromElement");
11
+ var _performanceObservable = require("../../performanceObservable");
12
+ /**
13
+ * Track the cumulative layout shifts (CLS).
14
+ * Layout shifts are grouped into session windows.
15
+ * The minimum gap between session windows is 1 second.
16
+ * The maximum duration of a session window is 5 second.
17
+ * The session window layout shift value is the sum of layout shifts inside it.
18
+ * The CLS value is the max of session windows values.
19
+ *
20
+ * This yields a new value whenever the CLS value is updated (a higher session window value is computed).
21
+ *
22
+ * See isLayoutShiftSupported to check for browser support.
23
+ *
24
+ * Documentation:
25
+ * https://web.dev/cls/
26
+ * https://web.dev/evolving-cls/
27
+ * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts
28
+ */
29
+ function trackCumulativeLayoutShift(configuration, viewStart, callback) {
30
+ if (!isLayoutShiftSupported()) {
31
+ return {
32
+ stop: _browserCore.noop
33
+ };
34
+ }
35
+ var maxClsValue = 0;
36
+ // WeakRef is not supported in IE11 and Safari mobile, but so is the layout shift API, so this code won't be executed in these browsers
37
+ var maxClsTarget;
38
+ var maxClsStartTime;
39
+
40
+ // if no layout shift happen the value should be reported as 0
41
+ callback({
42
+ value: 0
43
+ });
44
+ var window = slidingSessionWindow();
45
+ var performanceSubscription = (0, _performanceObservable.createPerformanceObservable)(configuration, {
46
+ type: _performanceObservable.RumPerformanceEntryType.LAYOUT_SHIFT,
47
+ buffered: true
48
+ }).subscribe(function (entries) {
49
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
50
+ var entry = entries_1[_i];
51
+ if (entry.hadRecentInput || entry.startTime < viewStart) {
52
+ continue;
53
+ }
54
+ var _update = window.update(entry);
55
+ var cumulatedValue = _update.cumulatedValue;
56
+ var isMaxValue = _update.isMaxValue;
57
+ if (isMaxValue) {
58
+ var target = getTargetFromSource(entry.sources);
59
+ maxClsTarget = target ? new WeakRef(target) : undefined;
60
+ maxClsStartTime = (0, _browserCore.elapsed)(viewStart, entry.startTime);
61
+ }
62
+ if (cumulatedValue > maxClsValue) {
63
+ maxClsValue = cumulatedValue;
64
+ var target = maxClsTarget && maxClsTarget.deref();
65
+ callback({
66
+ value: (0, _browserCore.round)(maxClsValue, 4),
67
+ targetSelector: target && (0, _getSelectorsFromElement.getSelectorFromElement)(target, configuration.actionNameAttribute),
68
+ time: maxClsStartTime
69
+ });
70
+ }
71
+ }
72
+ });
73
+ return {
74
+ stop: function stop() {
75
+ performanceSubscription.unsubscribe();
76
+ }
77
+ };
78
+ }
79
+ function getTargetFromSource(sources) {
80
+ if (!sources) {
81
+ return;
82
+ }
83
+ var source = (0, _browserCore.find)(sources, function (source) {
84
+ return !!source.node && (0, _browserCore.isElementNode)(source.node);
85
+ });
86
+ return source && source.node;
87
+ }
88
+ var MAX_WINDOW_DURATION = exports.MAX_WINDOW_DURATION = 5 * _browserCore.ONE_SECOND;
89
+ var MAX_UPDATE_GAP = _browserCore.ONE_SECOND;
90
+ function slidingSessionWindow() {
91
+ var cumulatedValue = 0;
92
+ var startTime;
93
+ var endTime;
94
+ var maxValue = 0;
95
+ return {
96
+ update: function update(entry) {
97
+ var shouldCreateNewWindow = startTime === undefined || entry.startTime - endTime >= MAX_UPDATE_GAP || entry.startTime - startTime >= 5 * MAX_WINDOW_DURATION;
98
+ var isMaxValue;
99
+ if (shouldCreateNewWindow) {
100
+ startTime = endTime = entry.startTime;
101
+ maxValue = cumulatedValue = entry.value;
102
+ isMaxValue = true;
103
+ } else {
104
+ cumulatedValue += entry.value;
105
+ endTime = entry.startTime;
106
+ isMaxValue = entry.value > maxValue;
107
+ if (isMaxValue) {
108
+ maxValue = entry.value;
109
+ }
110
+ }
111
+ return {
112
+ cumulatedValue: cumulatedValue,
113
+ isMaxValue: isMaxValue
114
+ };
115
+ }
116
+ };
117
+ }
118
+
119
+ /**
120
+ * Check whether `layout-shift` is supported by the browser.
121
+ */
122
+ function isLayoutShiftSupported() {
123
+ return (0, _performanceObservable.supportPerformanceTimingEvent)(_performanceObservable.RumPerformanceEntryType.LAYOUT_SHIFT) && 'WeakRef' in window;
124
+ }
125
+ //# sourceMappingURL=trackCumulativeLayoutShift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackCumulativeLayoutShift.js","names":["_browserCore","require","_getSelectorsFromElement","_performanceObservable","trackCumulativeLayoutShift","configuration","viewStart","callback","isLayoutShiftSupported","stop","noop","maxClsValue","maxClsTarget","maxClsStartTime","value","window","slidingSessionWindow","performanceSubscription","createPerformanceObservable","type","RumPerformanceEntryType","LAYOUT_SHIFT","buffered","subscribe","entries","_i","entries_1","length","entry","hadRecentInput","startTime","_update","update","cumulatedValue","isMaxValue","target","getTargetFromSource","sources","WeakRef","undefined","elapsed","deref","round","targetSelector","getSelectorFromElement","actionNameAttribute","time","unsubscribe","source","find","node","isElementNode","MAX_WINDOW_DURATION","exports","ONE_SECOND","MAX_UPDATE_GAP","endTime","maxValue","shouldCreateNewWindow","supportPerformanceTimingEvent"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js"],"sourcesContent":["import {\n find,\n noop,\n round,\n ONE_SECOND,\n isElementNode,\n elapsed\n} from '@cloudcare/browser-core'\nimport { getSelectorFromElement } from '../actions/getSelectorsFromElement'\nimport {\n RumPerformanceEntryType,\n supportPerformanceTimingEvent,\n createPerformanceObservable\n} from '../../performanceObservable'\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, viewStart, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop\n }\n }\n\n var maxClsValue = 0\n // WeakRef is not supported in IE11 and Safari mobile, but so is the layout shift API, so this code won't be executed in these browsers\n var maxClsTarget\n var maxClsStartTime\n\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0\n })\n\n var window = slidingSessionWindow()\n var performanceSubscription = createPerformanceObservable(configuration, {\n type: RumPerformanceEntryType.LAYOUT_SHIFT,\n buffered: true\n }).subscribe(function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i]\n if (entry.hadRecentInput || entry.startTime < viewStart) {\n continue\n }\n var _update = window.update(entry)\n var cumulatedValue = _update.cumulatedValue\n var isMaxValue = _update.isMaxValue\n if (isMaxValue) {\n var target = getTargetFromSource(entry.sources)\n maxClsTarget = target ? new WeakRef(target) : undefined\n maxClsStartTime = elapsed(viewStart, entry.startTime)\n }\n if (cumulatedValue > maxClsValue) {\n maxClsValue = cumulatedValue\n var target = maxClsTarget && maxClsTarget.deref()\n\n callback({\n value: round(maxClsValue, 4),\n targetSelector:\n target &&\n getSelectorFromElement(target, configuration.actionNameAttribute),\n time: maxClsStartTime\n })\n }\n }\n })\n\n return {\n stop: function () {\n performanceSubscription.unsubscribe()\n }\n }\n}\nfunction getTargetFromSource(sources) {\n if (!sources) {\n return\n }\n var source = find(sources, function (source) {\n return !!source.node && isElementNode(source.node)\n })\n return source && source.node\n}\nexport var MAX_WINDOW_DURATION = 5 * ONE_SECOND\nvar MAX_UPDATE_GAP = ONE_SECOND\nfunction slidingSessionWindow() {\n var cumulatedValue = 0\n var startTime\n var endTime\n var maxValue = 0\n return {\n update: function (entry) {\n var shouldCreateNewWindow =\n startTime === undefined ||\n entry.startTime - endTime >= MAX_UPDATE_GAP ||\n entry.startTime - startTime >= 5 * MAX_WINDOW_DURATION\n var isMaxValue\n\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime\n maxValue = cumulatedValue = entry.value\n isMaxValue = true\n } else {\n cumulatedValue += entry.value\n endTime = entry.startTime\n isMaxValue = entry.value > maxValue\n if (isMaxValue) {\n maxValue = entry.value\n }\n }\n return {\n cumulatedValue: cumulatedValue,\n isMaxValue: isMaxValue\n }\n }\n }\n}\n\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return (\n supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT) &&\n 'WeakRef' in window\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TIMING_MAXIMUM_DELAY = void 0;
7
+ exports.trackFirstContentfulPaint = trackFirstContentfulPaint;
8
+ var _browserCore = require("@cloudcare/browser-core");
9
+ var _performanceObservable = require("../../performanceObservable");
10
+ var TIMING_MAXIMUM_DELAY = exports.TIMING_MAXIMUM_DELAY = 10 * _browserCore.ONE_MINUTE;
11
+ function trackFirstContentfulPaint(configuration, firstHidden, callback) {
12
+ var performanceSubscription = (0, _performanceObservable.createPerformanceObservable)(configuration, {
13
+ type: _performanceObservable.RumPerformanceEntryType.PAINT,
14
+ buffered: true
15
+ }).subscribe(function (entries) {
16
+ var fcpEntry = (0, _browserCore.find)(entries, function (entry) {
17
+ return entry.entryType === _performanceObservable.RumPerformanceEntryType.PAINT && entry.name === 'first-contentful-paint' && entry.startTime < firstHidden.getTimeStamp() && entry.startTime < TIMING_MAXIMUM_DELAY;
18
+ });
19
+ if (fcpEntry) {
20
+ callback(fcpEntry.startTime);
21
+ }
22
+ });
23
+ return {
24
+ stop: performanceSubscription.unsubscribe
25
+ };
26
+ }
27
+ //# sourceMappingURL=trackFirstContentfulPaint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackFirstContentfulPaint.js","names":["_browserCore","require","_performanceObservable","TIMING_MAXIMUM_DELAY","exports","ONE_MINUTE","trackFirstContentfulPaint","configuration","firstHidden","callback","performanceSubscription","createPerformanceObservable","type","RumPerformanceEntryType","PAINT","buffered","subscribe","entries","fcpEntry","find","entry","entryType","name","startTime","getTimeStamp","stop","unsubscribe"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackFirstContentfulPaint.js"],"sourcesContent":["import { find, ONE_MINUTE } from '@cloudcare/browser-core'\nimport {\n RumPerformanceEntryType,\n createPerformanceObservable\n} from '../../performanceObservable'\nexport var TIMING_MAXIMUM_DELAY = 10 * ONE_MINUTE\nexport function trackFirstContentfulPaint(\n configuration,\n firstHidden,\n callback\n) {\n var performanceSubscription = createPerformanceObservable(configuration, {\n type: RumPerformanceEntryType.PAINT,\n buffered: true\n }).subscribe(function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return (\n entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.getTimeStamp() &&\n entry.startTime < TIMING_MAXIMUM_DELAY\n )\n })\n if (fcpEntry) {\n callback(fcpEntry.startTime)\n }\n })\n return { stop: performanceSubscription.unsubscribe }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAIO,IAAIE,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,EAAE,GAAGE,uBAAU;AAC1C,SAASC,yBAAyBA,CACvCC,aAAa,EACbC,WAAW,EACXC,QAAQ,EACR;EACA,IAAIC,uBAAuB,GAAG,IAAAC,kDAA2B,EAACJ,aAAa,EAAE;IACvEK,IAAI,EAAEC,8CAAuB,CAACC,KAAK;IACnCC,QAAQ,EAAE;EACZ,CAAC,CAAC,CAACC,SAAS,CAAC,UAAUC,OAAO,EAAE;IAC9B,IAAIC,QAAQ,GAAG,IAAAC,iBAAI,EAACF,OAAO,EAAE,UAAUG,KAAK,EAAE;MAC5C,OACEA,KAAK,CAACC,SAAS,KAAKR,8CAAuB,CAACC,KAAK,IACjDM,KAAK,CAACE,IAAI,KAAK,wBAAwB,IACvCF,KAAK,CAACG,SAAS,GAAGf,WAAW,CAACgB,YAAY,CAAC,CAAC,IAC5CJ,KAAK,CAACG,SAAS,GAAGpB,oBAAoB;IAE1C,CAAC,CAAC;IACF,IAAIe,QAAQ,EAAE;MACZT,QAAQ,CAACS,QAAQ,CAACK,SAAS,CAAC;IAC9B;EACF,CAAC,CAAC;EACF,OAAO;IAAEE,IAAI,EAAEf,uBAAuB,CAACgB;EAAY,CAAC;AACtD","ignoreList":[]}