@kubesense/kubesense-browser-rum-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (689) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/cjs/boot/preStartRum.d.ts +7 -0
  4. package/cjs/boot/preStartRum.js +190 -0
  5. package/cjs/boot/preStartRum.js.map +1 -0
  6. package/cjs/boot/rumPublicApi.d.ts +409 -0
  7. package/cjs/boot/rumPublicApi.js +168 -0
  8. package/cjs/boot/rumPublicApi.js.map +1 -0
  9. package/cjs/boot/startRum.d.ts +109 -0
  10. package/cjs/boot/startRum.js +153 -0
  11. package/cjs/boot/startRum.js.map +1 -0
  12. package/cjs/browser/cookieObservable.d.ts +8 -0
  13. package/cjs/browser/cookieObservable.js +39 -0
  14. package/cjs/browser/cookieObservable.js.map +1 -0
  15. package/cjs/browser/domMutationObservable.d.ts +27 -0
  16. package/cjs/browser/domMutationObservable.js +58 -0
  17. package/cjs/browser/domMutationObservable.js.map +1 -0
  18. package/cjs/browser/firstInputPolyfill.d.ts +8 -0
  19. package/cjs/browser/firstInputPolyfill.js +68 -0
  20. package/cjs/browser/firstInputPolyfill.js.map +1 -0
  21. package/cjs/browser/htmlDomUtils.d.ts +13 -0
  22. package/cjs/browser/htmlDomUtils.js +46 -0
  23. package/cjs/browser/htmlDomUtils.js.map +1 -0
  24. package/cjs/browser/locationChangeObservable.d.ts +7 -0
  25. package/cjs/browser/locationChangeObservable.js +51 -0
  26. package/cjs/browser/locationChangeObservable.js.map +1 -0
  27. package/cjs/browser/performanceObservable.d.ts +174 -0
  28. package/cjs/browser/performanceObservable.js +126 -0
  29. package/cjs/browser/performanceObservable.js.map +1 -0
  30. package/cjs/browser/performanceUtils.d.ts +7 -0
  31. package/cjs/browser/performanceUtils.js +42 -0
  32. package/cjs/browser/performanceUtils.js.map +1 -0
  33. package/cjs/browser/scroll.d.ts +2 -0
  34. package/cjs/browser/scroll.js +33 -0
  35. package/cjs/browser/scroll.js.map +1 -0
  36. package/cjs/browser/viewportObservable.d.ts +10 -0
  37. package/cjs/browser/viewportObservable.js +37 -0
  38. package/cjs/browser/viewportObservable.js.map +1 -0
  39. package/cjs/browser/windowOpenObservable.d.ts +5 -0
  40. package/cjs/browser/windowOpenObservable.js +10 -0
  41. package/cjs/browser/windowOpenObservable.js.map +1 -0
  42. package/cjs/domain/action/actionCollection.d.ts +21 -0
  43. package/cjs/domain/action/actionCollection.js +96 -0
  44. package/cjs/domain/action/actionCollection.js.map +1 -0
  45. package/cjs/domain/action/actionNameConstants.d.ts +18 -0
  46. package/cjs/domain/action/actionNameConstants.js +11 -0
  47. package/cjs/domain/action/actionNameConstants.js.map +1 -0
  48. package/cjs/domain/action/clickChain.d.ts +8 -0
  49. package/cjs/domain/action/clickChain.js +61 -0
  50. package/cjs/domain/action/clickChain.js.map +1 -0
  51. package/cjs/domain/action/computeFrustration.d.ts +6 -0
  52. package/cjs/domain/action/computeFrustration.js +70 -0
  53. package/cjs/domain/action/computeFrustration.js.map +1 -0
  54. package/cjs/domain/action/getActionNameFromElement.d.ts +4 -0
  55. package/cjs/domain/action/getActionNameFromElement.js +239 -0
  56. package/cjs/domain/action/getActionNameFromElement.js.map +1 -0
  57. package/cjs/domain/action/interactionSelectorCache.d.ts +5 -0
  58. package/cjs/domain/action/interactionSelectorCache.js +23 -0
  59. package/cjs/domain/action/interactionSelectorCache.js.map +1 -0
  60. package/cjs/domain/action/listenActionEvents.d.ts +19 -0
  61. package/cjs/domain/action/listenActionEvents.js +61 -0
  62. package/cjs/domain/action/listenActionEvents.js.map +1 -0
  63. package/cjs/domain/action/trackClickActions.d.ts +81 -0
  64. package/cjs/domain/action/trackClickActions.js +237 -0
  65. package/cjs/domain/action/trackClickActions.js.map +1 -0
  66. package/cjs/domain/assembly.d.ts +5 -0
  67. package/cjs/domain/assembly.js +102 -0
  68. package/cjs/domain/assembly.js.map +1 -0
  69. package/cjs/domain/configuration/configuration.d.ts +325 -0
  70. package/cjs/domain/configuration/configuration.js +205 -0
  71. package/cjs/domain/configuration/configuration.js.map +1 -0
  72. package/cjs/domain/configuration/index.d.ts +2 -0
  73. package/cjs/domain/configuration/index.js +19 -0
  74. package/cjs/domain/configuration/index.js.map +1 -0
  75. package/cjs/domain/configuration/jsonPathParser.d.ts +28 -0
  76. package/cjs/domain/configuration/jsonPathParser.js +159 -0
  77. package/cjs/domain/configuration/jsonPathParser.js.map +1 -0
  78. package/cjs/domain/configuration/remoteConfiguration.d.ts +39 -0
  79. package/cjs/domain/configuration/remoteConfiguration.js +243 -0
  80. package/cjs/domain/configuration/remoteConfiguration.js.map +1 -0
  81. package/cjs/domain/configuration/remoteConfiguration.types.d.ts +138 -0
  82. package/cjs/domain/configuration/remoteConfiguration.types.js +7 -0
  83. package/cjs/domain/configuration/remoteConfiguration.types.js.map +1 -0
  84. package/cjs/domain/contexts/ciVisibilityContext.d.ts +12 -0
  85. package/cjs/domain/contexts/ciVisibilityContext.js +34 -0
  86. package/cjs/domain/contexts/ciVisibilityContext.js.map +1 -0
  87. package/cjs/domain/contexts/connectivityContext.d.ts +2 -0
  88. package/cjs/domain/contexts/connectivityContext.js +11 -0
  89. package/cjs/domain/contexts/connectivityContext.js.map +1 -0
  90. package/cjs/domain/contexts/defaultContext.d.ts +4 -0
  91. package/cjs/domain/contexts/defaultContext.js +34 -0
  92. package/cjs/domain/contexts/defaultContext.js.map +1 -0
  93. package/cjs/domain/contexts/displayContext.d.ts +6 -0
  94. package/cjs/domain/contexts/displayContext.js +28 -0
  95. package/cjs/domain/contexts/displayContext.js.map +1 -0
  96. package/cjs/domain/contexts/featureFlagContext.d.ts +19 -0
  97. package/cjs/domain/contexts/featureFlagContext.js +53 -0
  98. package/cjs/domain/contexts/featureFlagContext.js.map +1 -0
  99. package/cjs/domain/contexts/internalContext.d.ts +12 -0
  100. package/cjs/domain/contexts/internalContext.js +26 -0
  101. package/cjs/domain/contexts/internalContext.js.map +1 -0
  102. package/cjs/domain/contexts/pageStateHistory.d.ts +23 -0
  103. package/cjs/domain/contexts/pageStateHistory.js +104 -0
  104. package/cjs/domain/contexts/pageStateHistory.js.map +1 -0
  105. package/cjs/domain/contexts/sessionContext.d.ts +5 -0
  106. package/cjs/domain/contexts/sessionContext.js +47 -0
  107. package/cjs/domain/contexts/sessionContext.js.map +1 -0
  108. package/cjs/domain/contexts/syntheticsContext.d.ts +2 -0
  109. package/cjs/domain/contexts/syntheticsContext.js +25 -0
  110. package/cjs/domain/contexts/syntheticsContext.js.map +1 -0
  111. package/cjs/domain/contexts/trackingConsentContext.d.ts +3 -0
  112. package/cjs/domain/contexts/trackingConsentContext.js +14 -0
  113. package/cjs/domain/contexts/trackingConsentContext.js.map +1 -0
  114. package/cjs/domain/contexts/urlContexts.d.ts +22 -0
  115. package/cjs/domain/contexts/urlContexts.js +64 -0
  116. package/cjs/domain/contexts/urlContexts.js.map +1 -0
  117. package/cjs/domain/contexts/userAgentDataContext.d.ts +2 -0
  118. package/cjs/domain/contexts/userAgentDataContext.js +31 -0
  119. package/cjs/domain/contexts/userAgentDataContext.js.map +1 -0
  120. package/cjs/domain/contexts/viewHistory.d.ts +17 -0
  121. package/cjs/domain/contexts/viewHistory.js +48 -0
  122. package/cjs/domain/contexts/viewHistory.js.map +1 -0
  123. package/cjs/domain/discardNegativeDuration.d.ts +2 -0
  124. package/cjs/domain/discardNegativeDuration.js +8 -0
  125. package/cjs/domain/discardNegativeDuration.js.map +1 -0
  126. package/cjs/domain/error/errorCollection.d.ts +17 -0
  127. package/cjs/domain/error/errorCollection.js +74 -0
  128. package/cjs/domain/error/errorCollection.js.map +1 -0
  129. package/cjs/domain/error/trackConsoleError.d.ts +4 -0
  130. package/cjs/domain/error/trackConsoleError.js +13 -0
  131. package/cjs/domain/error/trackConsoleError.js.map +1 -0
  132. package/cjs/domain/error/trackReportError.d.ts +5 -0
  133. package/cjs/domain/error/trackReportError.js +16 -0
  134. package/cjs/domain/error/trackReportError.js.map +1 -0
  135. package/cjs/domain/event/eventCollection.d.ts +10 -0
  136. package/cjs/domain/event/eventCollection.js +27 -0
  137. package/cjs/domain/event/eventCollection.js.map +1 -0
  138. package/cjs/domain/getSelectorFromElement.d.ts +64 -0
  139. package/cjs/domain/getSelectorFromElement.js +218 -0
  140. package/cjs/domain/getSelectorFromElement.js.map +1 -0
  141. package/cjs/domain/getSessionReplayUrl.d.ts +9 -0
  142. package/cjs/domain/getSessionReplayUrl.js +34 -0
  143. package/cjs/domain/getSessionReplayUrl.js.map +1 -0
  144. package/cjs/domain/hooks.d.ts +23 -0
  145. package/cjs/domain/hooks.js +6 -0
  146. package/cjs/domain/hooks.js.map +1 -0
  147. package/cjs/domain/lifeCycle.d.ts +73 -0
  148. package/cjs/domain/lifeCycle.js +6 -0
  149. package/cjs/domain/lifeCycle.js.map +1 -0
  150. package/cjs/domain/limitModification.d.ts +8 -0
  151. package/cjs/domain/limitModification.js +46 -0
  152. package/cjs/domain/limitModification.js.map +1 -0
  153. package/cjs/domain/longTask/longTaskCollection.d.ts +18 -0
  154. package/cjs/domain/longTask/longTaskCollection.js +91 -0
  155. package/cjs/domain/longTask/longTaskCollection.js.map +1 -0
  156. package/cjs/domain/plugins.d.ts +40 -0
  157. package/cjs/domain/plugins.js +15 -0
  158. package/cjs/domain/plugins.js.map +1 -0
  159. package/cjs/domain/privacy.d.ts +44 -0
  160. package/cjs/domain/privacy.js +313 -0
  161. package/cjs/domain/privacy.js.map +1 -0
  162. package/cjs/domain/privacyConstants.d.ts +23 -0
  163. package/cjs/domain/privacyConstants.js +39 -0
  164. package/cjs/domain/privacyConstants.js.map +1 -0
  165. package/cjs/domain/requestCollection.d.ts +54 -0
  166. package/cjs/domain/requestCollection.js +111 -0
  167. package/cjs/domain/requestCollection.js.map +1 -0
  168. package/cjs/domain/resource/graphql.d.ts +23 -0
  169. package/cjs/domain/resource/graphql.js +97 -0
  170. package/cjs/domain/resource/graphql.js.map +1 -0
  171. package/cjs/domain/resource/matchRequestResourceEntry.d.ts +16 -0
  172. package/cjs/domain/resource/matchRequestResourceEntry.js +49 -0
  173. package/cjs/domain/resource/matchRequestResourceEntry.js.map +1 -0
  174. package/cjs/domain/resource/requestRegistry.d.ts +9 -0
  175. package/cjs/domain/resource/requestRegistry.js +41 -0
  176. package/cjs/domain/resource/requestRegistry.js.map +1 -0
  177. package/cjs/domain/resource/resourceCollection.d.ts +7 -0
  178. package/cjs/domain/resource/resourceCollection.js +190 -0
  179. package/cjs/domain/resource/resourceCollection.js.map +1 -0
  180. package/cjs/domain/resource/resourceUtils.d.ts +55 -0
  181. package/cjs/domain/resource/resourceUtils.js +259 -0
  182. package/cjs/domain/resource/resourceUtils.js.map +1 -0
  183. package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.d.ts +4 -0
  184. package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.js +24 -0
  185. package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
  186. package/cjs/domain/rumSessionManager.d.ts +36 -0
  187. package/cjs/domain/rumSessionManager.js +77 -0
  188. package/cjs/domain/rumSessionManager.js.map +1 -0
  189. package/cjs/domain/sampler/sampler.d.ts +10 -0
  190. package/cjs/domain/sampler/sampler.js +63 -0
  191. package/cjs/domain/sampler/sampler.js.map +1 -0
  192. package/cjs/domain/startCustomerDataTelemetry.d.ts +4 -0
  193. package/cjs/domain/startCustomerDataTelemetry.js +56 -0
  194. package/cjs/domain/startCustomerDataTelemetry.js.map +1 -0
  195. package/cjs/domain/tracing/getDocumentTraceId.d.ts +12 -0
  196. package/cjs/domain/tracing/getDocumentTraceId.js +76 -0
  197. package/cjs/domain/tracing/getDocumentTraceId.js.map +1 -0
  198. package/cjs/domain/tracing/identifier.d.ts +13 -0
  199. package/cjs/domain/tracing/identifier.js +55 -0
  200. package/cjs/domain/tracing/identifier.js.map +1 -0
  201. package/cjs/domain/tracing/sampler.d.ts +10 -0
  202. package/cjs/domain/tracing/sampler.js +69 -0
  203. package/cjs/domain/tracing/sampler.js.map +1 -0
  204. package/cjs/domain/tracing/tracer.d.ts +30 -0
  205. package/cjs/domain/tracing/tracer.js +161 -0
  206. package/cjs/domain/tracing/tracer.js.map +1 -0
  207. package/cjs/domain/tracing/tracer.types.d.ts +12 -0
  208. package/cjs/domain/tracing/tracer.types.js +3 -0
  209. package/cjs/domain/tracing/tracer.types.js.map +1 -0
  210. package/cjs/domain/trackEventCounts.d.ts +17 -0
  211. package/cjs/domain/trackEventCounts.js +50 -0
  212. package/cjs/domain/trackEventCounts.js.map +1 -0
  213. package/cjs/domain/view/bfCacheSupport.d.ts +2 -0
  214. package/cjs/domain/view/bfCacheSupport.js +13 -0
  215. package/cjs/domain/view/bfCacheSupport.js.map +1 -0
  216. package/cjs/domain/view/trackViewEventCounts.d.ts +5 -0
  217. package/cjs/domain/view/trackViewEventCounts.js +16 -0
  218. package/cjs/domain/view/trackViewEventCounts.js.map +1 -0
  219. package/cjs/domain/view/trackViews.d.ts +65 -0
  220. package/cjs/domain/view/trackViews.js +275 -0
  221. package/cjs/domain/view/trackViews.js.map +1 -0
  222. package/cjs/domain/view/viewCollection.d.ts +18 -0
  223. package/cjs/domain/view/viewCollection.js +153 -0
  224. package/cjs/domain/view/viewCollection.js.map +1 -0
  225. package/cjs/domain/view/viewMetrics/getClsAttributionImpactedArea.d.ts +6 -0
  226. package/cjs/domain/view/viewMetrics/getClsAttributionImpactedArea.js +32 -0
  227. package/cjs/domain/view/viewMetrics/getClsAttributionImpactedArea.js.map +1 -0
  228. package/cjs/domain/view/viewMetrics/interactionCountPolyfill.d.ts +18 -0
  229. package/cjs/domain/view/viewMetrics/interactionCountPolyfill.js +44 -0
  230. package/cjs/domain/view/viewMetrics/interactionCountPolyfill.js.map +1 -0
  231. package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.d.ts +6 -0
  232. package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js +44 -0
  233. package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js.map +1 -0
  234. package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.d.ts +8 -0
  235. package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.js +17 -0
  236. package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.js.map +1 -0
  237. package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.d.ts +21 -0
  238. package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.js +37 -0
  239. package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.js.map +1 -0
  240. package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.d.ts +37 -0
  241. package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.js +135 -0
  242. package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.js.map +1 -0
  243. package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.d.ts +13 -0
  244. package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.js +39 -0
  245. package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.js.map +1 -0
  246. package/cjs/domain/view/viewMetrics/trackFirstHidden.d.ts +10 -0
  247. package/cjs/domain/view/viewMetrics/trackFirstHidden.js +33 -0
  248. package/cjs/domain/view/viewMetrics/trackFirstHidden.js.map +1 -0
  249. package/cjs/domain/view/viewMetrics/trackFirstInput.d.ts +19 -0
  250. package/cjs/domain/view/viewMetrics/trackFirstInput.js +43 -0
  251. package/cjs/domain/view/viewMetrics/trackFirstInput.js.map +1 -0
  252. package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.d.ts +15 -0
  253. package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.js +41 -0
  254. package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.js.map +1 -0
  255. package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.d.ts +25 -0
  256. package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.js +155 -0
  257. package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.js.map +1 -0
  258. package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.d.ts +18 -0
  259. package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.js +61 -0
  260. package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.js.map +1 -0
  261. package/cjs/domain/view/viewMetrics/trackLoadingTime.d.ts +14 -0
  262. package/cjs/domain/view/viewMetrics/trackLoadingTime.js +50 -0
  263. package/cjs/domain/view/viewMetrics/trackLoadingTime.js.map +1 -0
  264. package/cjs/domain/view/viewMetrics/trackNavigationTimings.d.ts +14 -0
  265. package/cjs/domain/view/viewMetrics/trackNavigationTimings.js +43 -0
  266. package/cjs/domain/view/viewMetrics/trackNavigationTimings.js.map +1 -0
  267. package/cjs/domain/view/viewMetrics/trackScrollMetrics.d.ts +25 -0
  268. package/cjs/domain/view/viewMetrics/trackScrollMetrics.js +78 -0
  269. package/cjs/domain/view/viewMetrics/trackScrollMetrics.js.map +1 -0
  270. package/cjs/domain/vital/vitalCollection.d.ts +55 -0
  271. package/cjs/domain/vital/vitalCollection.js +113 -0
  272. package/cjs/domain/vital/vitalCollection.js.map +1 -0
  273. package/cjs/domain/waitPageActivityEnd.d.ts +54 -0
  274. package/cjs/domain/waitPageActivityEnd.js +129 -0
  275. package/cjs/domain/waitPageActivityEnd.js.map +1 -0
  276. package/cjs/domainContext.types.d.ts +39 -0
  277. package/cjs/domainContext.types.js +6 -0
  278. package/cjs/domainContext.types.js.map +1 -0
  279. package/cjs/index.d.ts +41 -0
  280. package/cjs/index.js +59 -0
  281. package/cjs/index.js.map +1 -0
  282. package/cjs/rawRumEvent.types.d.ts +326 -0
  283. package/cjs/rawRumEvent.types.js +34 -0
  284. package/cjs/rawRumEvent.types.js.map +1 -0
  285. package/cjs/rumEvent.types.d.ts +2026 -0
  286. package/cjs/rumEvent.types.js +7 -0
  287. package/cjs/rumEvent.types.js.map +1 -0
  288. package/cjs/transport/formDataTransport.d.ts +16 -0
  289. package/cjs/transport/formDataTransport.js +46 -0
  290. package/cjs/transport/formDataTransport.js.map +1 -0
  291. package/cjs/transport/startRumBatch.d.ts +5 -0
  292. package/cjs/transport/startRumBatch.js +33 -0
  293. package/cjs/transport/startRumBatch.js.map +1 -0
  294. package/cjs/transport/startRumEventBridge.d.ts +2 -0
  295. package/cjs/transport/startRumEventBridge.js +11 -0
  296. package/cjs/transport/startRumEventBridge.js.map +1 -0
  297. package/esm/boot/preStartRum.d.ts +7 -0
  298. package/esm/boot/preStartRum.js +187 -0
  299. package/esm/boot/preStartRum.js.map +1 -0
  300. package/esm/boot/rumPublicApi.d.ts +409 -0
  301. package/esm/boot/rumPublicApi.js +165 -0
  302. package/esm/boot/rumPublicApi.js.map +1 -0
  303. package/esm/boot/startRum.d.ts +109 -0
  304. package/esm/boot/startRum.js +149 -0
  305. package/esm/boot/startRum.js.map +1 -0
  306. package/esm/browser/cookieObservable.d.ts +8 -0
  307. package/esm/browser/cookieObservable.js +35 -0
  308. package/esm/browser/cookieObservable.js.map +1 -0
  309. package/esm/browser/domMutationObservable.d.ts +27 -0
  310. package/esm/browser/domMutationObservable.js +54 -0
  311. package/esm/browser/domMutationObservable.js.map +1 -0
  312. package/esm/browser/firstInputPolyfill.d.ts +8 -0
  313. package/esm/browser/firstInputPolyfill.js +65 -0
  314. package/esm/browser/firstInputPolyfill.js.map +1 -0
  315. package/esm/browser/htmlDomUtils.d.ts +13 -0
  316. package/esm/browser/htmlDomUtils.js +36 -0
  317. package/esm/browser/htmlDomUtils.js.map +1 -0
  318. package/esm/browser/locationChangeObservable.d.ts +7 -0
  319. package/esm/browser/locationChangeObservable.js +48 -0
  320. package/esm/browser/locationChangeObservable.js.map +1 -0
  321. package/esm/browser/performanceObservable.d.ts +174 -0
  322. package/esm/browser/performanceObservable.js +121 -0
  323. package/esm/browser/performanceObservable.js.map +1 -0
  324. package/esm/browser/performanceUtils.d.ts +7 -0
  325. package/esm/browser/performanceUtils.js +38 -0
  326. package/esm/browser/performanceUtils.js.map +1 -0
  327. package/esm/browser/scroll.d.ts +2 -0
  328. package/esm/browser/scroll.js +29 -0
  329. package/esm/browser/scroll.js.map +1 -0
  330. package/esm/browser/viewportObservable.d.ts +10 -0
  331. package/esm/browser/viewportObservable.js +32 -0
  332. package/esm/browser/viewportObservable.js.map +1 -0
  333. package/esm/browser/windowOpenObservable.d.ts +5 -0
  334. package/esm/browser/windowOpenObservable.js +7 -0
  335. package/esm/browser/windowOpenObservable.js.map +1 -0
  336. package/esm/domain/action/actionCollection.d.ts +21 -0
  337. package/esm/domain/action/actionCollection.js +93 -0
  338. package/esm/domain/action/actionCollection.js.map +1 -0
  339. package/esm/domain/action/actionNameConstants.d.ts +18 -0
  340. package/esm/domain/action/actionNameConstants.js +8 -0
  341. package/esm/domain/action/actionNameConstants.js.map +1 -0
  342. package/esm/domain/action/clickChain.d.ts +8 -0
  343. package/esm/domain/action/clickChain.js +57 -0
  344. package/esm/domain/action/clickChain.js.map +1 -0
  345. package/esm/domain/action/computeFrustration.d.ts +6 -0
  346. package/esm/domain/action/computeFrustration.js +65 -0
  347. package/esm/domain/action/computeFrustration.js.map +1 -0
  348. package/esm/domain/action/getActionNameFromElement.d.ts +4 -0
  349. package/esm/domain/action/getActionNameFromElement.js +236 -0
  350. package/esm/domain/action/getActionNameFromElement.js.map +1 -0
  351. package/esm/domain/action/interactionSelectorCache.d.ts +5 -0
  352. package/esm/domain/action/interactionSelectorCache.js +18 -0
  353. package/esm/domain/action/interactionSelectorCache.js.map +1 -0
  354. package/esm/domain/action/listenActionEvents.d.ts +19 -0
  355. package/esm/domain/action/listenActionEvents.js +58 -0
  356. package/esm/domain/action/listenActionEvents.js.map +1 -0
  357. package/esm/domain/action/trackClickActions.d.ts +81 -0
  358. package/esm/domain/action/trackClickActions.js +232 -0
  359. package/esm/domain/action/trackClickActions.js.map +1 -0
  360. package/esm/domain/assembly.d.ts +5 -0
  361. package/esm/domain/assembly.js +99 -0
  362. package/esm/domain/assembly.js.map +1 -0
  363. package/esm/domain/configuration/configuration.d.ts +325 -0
  364. package/esm/domain/configuration/configuration.js +200 -0
  365. package/esm/domain/configuration/configuration.js.map +1 -0
  366. package/esm/domain/configuration/index.d.ts +2 -0
  367. package/esm/domain/configuration/index.js +3 -0
  368. package/esm/domain/configuration/index.js.map +1 -0
  369. package/esm/domain/configuration/jsonPathParser.d.ts +28 -0
  370. package/esm/domain/configuration/jsonPathParser.js +156 -0
  371. package/esm/domain/configuration/jsonPathParser.js.map +1 -0
  372. package/esm/domain/configuration/remoteConfiguration.d.ts +39 -0
  373. package/esm/domain/configuration/remoteConfiguration.js +236 -0
  374. package/esm/domain/configuration/remoteConfiguration.js.map +1 -0
  375. package/esm/domain/configuration/remoteConfiguration.types.d.ts +138 -0
  376. package/esm/domain/configuration/remoteConfiguration.types.js +6 -0
  377. package/esm/domain/configuration/remoteConfiguration.types.js.map +1 -0
  378. package/esm/domain/contexts/ciVisibilityContext.d.ts +12 -0
  379. package/esm/domain/contexts/ciVisibilityContext.js +30 -0
  380. package/esm/domain/contexts/ciVisibilityContext.js.map +1 -0
  381. package/esm/domain/contexts/connectivityContext.d.ts +2 -0
  382. package/esm/domain/contexts/connectivityContext.js +8 -0
  383. package/esm/domain/contexts/connectivityContext.js.map +1 -0
  384. package/esm/domain/contexts/defaultContext.d.ts +4 -0
  385. package/esm/domain/contexts/defaultContext.js +31 -0
  386. package/esm/domain/contexts/defaultContext.js.map +1 -0
  387. package/esm/domain/contexts/displayContext.d.ts +6 -0
  388. package/esm/domain/contexts/displayContext.js +25 -0
  389. package/esm/domain/contexts/displayContext.js.map +1 -0
  390. package/esm/domain/contexts/featureFlagContext.d.ts +19 -0
  391. package/esm/domain/contexts/featureFlagContext.js +49 -0
  392. package/esm/domain/contexts/featureFlagContext.js.map +1 -0
  393. package/esm/domain/contexts/internalContext.d.ts +12 -0
  394. package/esm/domain/contexts/internalContext.js +23 -0
  395. package/esm/domain/contexts/internalContext.js.map +1 -0
  396. package/esm/domain/contexts/pageStateHistory.d.ts +23 -0
  397. package/esm/domain/contexts/pageStateHistory.js +100 -0
  398. package/esm/domain/contexts/pageStateHistory.js.map +1 -0
  399. package/esm/domain/contexts/sessionContext.d.ts +5 -0
  400. package/esm/domain/contexts/sessionContext.js +44 -0
  401. package/esm/domain/contexts/sessionContext.js.map +1 -0
  402. package/esm/domain/contexts/syntheticsContext.d.ts +2 -0
  403. package/esm/domain/contexts/syntheticsContext.js +22 -0
  404. package/esm/domain/contexts/syntheticsContext.js.map +1 -0
  405. package/esm/domain/contexts/trackingConsentContext.d.ts +3 -0
  406. package/esm/domain/contexts/trackingConsentContext.js +11 -0
  407. package/esm/domain/contexts/trackingConsentContext.js.map +1 -0
  408. package/esm/domain/contexts/urlContexts.d.ts +22 -0
  409. package/esm/domain/contexts/urlContexts.js +60 -0
  410. package/esm/domain/contexts/urlContexts.js.map +1 -0
  411. package/esm/domain/contexts/userAgentDataContext.d.ts +2 -0
  412. package/esm/domain/contexts/userAgentDataContext.js +28 -0
  413. package/esm/domain/contexts/userAgentDataContext.js.map +1 -0
  414. package/esm/domain/contexts/viewHistory.d.ts +17 -0
  415. package/esm/domain/contexts/viewHistory.js +44 -0
  416. package/esm/domain/contexts/viewHistory.js.map +1 -0
  417. package/esm/domain/discardNegativeDuration.d.ts +2 -0
  418. package/esm/domain/discardNegativeDuration.js +5 -0
  419. package/esm/domain/discardNegativeDuration.js.map +1 -0
  420. package/esm/domain/error/errorCollection.d.ts +17 -0
  421. package/esm/domain/error/errorCollection.js +70 -0
  422. package/esm/domain/error/errorCollection.js.map +1 -0
  423. package/esm/domain/error/trackConsoleError.d.ts +4 -0
  424. package/esm/domain/error/trackConsoleError.js +10 -0
  425. package/esm/domain/error/trackConsoleError.js.map +1 -0
  426. package/esm/domain/error/trackReportError.d.ts +5 -0
  427. package/esm/domain/error/trackReportError.js +13 -0
  428. package/esm/domain/error/trackReportError.js.map +1 -0
  429. package/esm/domain/event/eventCollection.d.ts +10 -0
  430. package/esm/domain/event/eventCollection.js +24 -0
  431. package/esm/domain/event/eventCollection.js.map +1 -0
  432. package/esm/domain/getSelectorFromElement.d.ts +64 -0
  433. package/esm/domain/getSelectorFromElement.js +213 -0
  434. package/esm/domain/getSelectorFromElement.js.map +1 -0
  435. package/esm/domain/getSessionReplayUrl.d.ts +9 -0
  436. package/esm/domain/getSessionReplayUrl.js +30 -0
  437. package/esm/domain/getSessionReplayUrl.js.map +1 -0
  438. package/esm/domain/hooks.d.ts +23 -0
  439. package/esm/domain/hooks.js +3 -0
  440. package/esm/domain/hooks.js.map +1 -0
  441. package/esm/domain/lifeCycle.d.ts +73 -0
  442. package/esm/domain/lifeCycle.js +3 -0
  443. package/esm/domain/lifeCycle.js.map +1 -0
  444. package/esm/domain/limitModification.d.ts +8 -0
  445. package/esm/domain/limitModification.js +43 -0
  446. package/esm/domain/limitModification.js.map +1 -0
  447. package/esm/domain/longTask/longTaskCollection.d.ts +18 -0
  448. package/esm/domain/longTask/longTaskCollection.js +87 -0
  449. package/esm/domain/longTask/longTaskCollection.js.map +1 -0
  450. package/esm/domain/plugins.d.ts +40 -0
  451. package/esm/domain/plugins.js +12 -0
  452. package/esm/domain/plugins.js.map +1 -0
  453. package/esm/domain/privacy.d.ts +44 -0
  454. package/esm/domain/privacy.js +302 -0
  455. package/esm/domain/privacy.js.map +1 -0
  456. package/esm/domain/privacyConstants.d.ts +23 -0
  457. package/esm/domain/privacyConstants.js +35 -0
  458. package/esm/domain/privacyConstants.js.map +1 -0
  459. package/esm/domain/requestCollection.d.ts +54 -0
  460. package/esm/domain/requestCollection.js +106 -0
  461. package/esm/domain/requestCollection.js.map +1 -0
  462. package/esm/domain/resource/graphql.d.ts +23 -0
  463. package/esm/domain/resource/graphql.js +91 -0
  464. package/esm/domain/resource/graphql.js.map +1 -0
  465. package/esm/domain/resource/matchRequestResourceEntry.d.ts +16 -0
  466. package/esm/domain/resource/matchRequestResourceEntry.js +46 -0
  467. package/esm/domain/resource/matchRequestResourceEntry.js.map +1 -0
  468. package/esm/domain/resource/requestRegistry.d.ts +9 -0
  469. package/esm/domain/resource/requestRegistry.js +37 -0
  470. package/esm/domain/resource/requestRegistry.js.map +1 -0
  471. package/esm/domain/resource/resourceCollection.d.ts +7 -0
  472. package/esm/domain/resource/resourceCollection.js +187 -0
  473. package/esm/domain/resource/resourceCollection.js.map +1 -0
  474. package/esm/domain/resource/resourceUtils.d.ts +55 -0
  475. package/esm/domain/resource/resourceUtils.js +244 -0
  476. package/esm/domain/resource/resourceUtils.js.map +1 -0
  477. package/esm/domain/resource/retrieveInitialDocumentResourceTiming.d.ts +4 -0
  478. package/esm/domain/resource/retrieveInitialDocumentResourceTiming.js +21 -0
  479. package/esm/domain/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
  480. package/esm/domain/rumSessionManager.d.ts +36 -0
  481. package/esm/domain/rumSessionManager.js +72 -0
  482. package/esm/domain/rumSessionManager.js.map +1 -0
  483. package/esm/domain/sampler/sampler.d.ts +10 -0
  484. package/esm/domain/sampler/sampler.js +58 -0
  485. package/esm/domain/sampler/sampler.js.map +1 -0
  486. package/esm/domain/startCustomerDataTelemetry.d.ts +4 -0
  487. package/esm/domain/startCustomerDataTelemetry.js +52 -0
  488. package/esm/domain/startCustomerDataTelemetry.js.map +1 -0
  489. package/esm/domain/tracing/getDocumentTraceId.d.ts +12 -0
  490. package/esm/domain/tracing/getDocumentTraceId.js +68 -0
  491. package/esm/domain/tracing/getDocumentTraceId.js.map +1 -0
  492. package/esm/domain/tracing/identifier.d.ts +13 -0
  493. package/esm/domain/tracing/identifier.js +50 -0
  494. package/esm/domain/tracing/identifier.js.map +1 -0
  495. package/esm/domain/tracing/sampler.d.ts +10 -0
  496. package/esm/domain/tracing/sampler.js +64 -0
  497. package/esm/domain/tracing/sampler.js.map +1 -0
  498. package/esm/domain/tracing/tracer.d.ts +30 -0
  499. package/esm/domain/tracing/tracer.js +156 -0
  500. package/esm/domain/tracing/tracer.js.map +1 -0
  501. package/esm/domain/tracing/tracer.types.d.ts +12 -0
  502. package/esm/domain/tracing/tracer.types.js +2 -0
  503. package/esm/domain/tracing/tracer.types.js.map +1 -0
  504. package/esm/domain/trackEventCounts.d.ts +17 -0
  505. package/esm/domain/trackEventCounts.js +47 -0
  506. package/esm/domain/trackEventCounts.js.map +1 -0
  507. package/esm/domain/view/bfCacheSupport.d.ts +2 -0
  508. package/esm/domain/view/bfCacheSupport.js +10 -0
  509. package/esm/domain/view/bfCacheSupport.js.map +1 -0
  510. package/esm/domain/view/trackViewEventCounts.d.ts +5 -0
  511. package/esm/domain/view/trackViewEventCounts.js +13 -0
  512. package/esm/domain/view/trackViewEventCounts.js.map +1 -0
  513. package/esm/domain/view/trackViews.d.ts +65 -0
  514. package/esm/domain/view/trackViews.js +271 -0
  515. package/esm/domain/view/trackViews.js.map +1 -0
  516. package/esm/domain/view/viewCollection.d.ts +18 -0
  517. package/esm/domain/view/viewCollection.js +150 -0
  518. package/esm/domain/view/viewCollection.js.map +1 -0
  519. package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.d.ts +6 -0
  520. package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.js +28 -0
  521. package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.js.map +1 -0
  522. package/esm/domain/view/viewMetrics/interactionCountPolyfill.d.ts +18 -0
  523. package/esm/domain/view/viewMetrics/interactionCountPolyfill.js +39 -0
  524. package/esm/domain/view/viewMetrics/interactionCountPolyfill.js.map +1 -0
  525. package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.d.ts +6 -0
  526. package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js +41 -0
  527. package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js.map +1 -0
  528. package/esm/domain/view/viewMetrics/trackBfcacheMetrics.d.ts +8 -0
  529. package/esm/domain/view/viewMetrics/trackBfcacheMetrics.js +14 -0
  530. package/esm/domain/view/viewMetrics/trackBfcacheMetrics.js.map +1 -0
  531. package/esm/domain/view/viewMetrics/trackCommonViewMetrics.d.ts +21 -0
  532. package/esm/domain/view/viewMetrics/trackCommonViewMetrics.js +34 -0
  533. package/esm/domain/view/viewMetrics/trackCommonViewMetrics.js.map +1 -0
  534. package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.d.ts +37 -0
  535. package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js +130 -0
  536. package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js.map +1 -0
  537. package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.d.ts +13 -0
  538. package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js +34 -0
  539. package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js.map +1 -0
  540. package/esm/domain/view/viewMetrics/trackFirstHidden.d.ts +10 -0
  541. package/esm/domain/view/viewMetrics/trackFirstHidden.js +30 -0
  542. package/esm/domain/view/viewMetrics/trackFirstHidden.js.map +1 -0
  543. package/esm/domain/view/viewMetrics/trackFirstInput.d.ts +19 -0
  544. package/esm/domain/view/viewMetrics/trackFirstInput.js +40 -0
  545. package/esm/domain/view/viewMetrics/trackFirstInput.js.map +1 -0
  546. package/esm/domain/view/viewMetrics/trackInitialViewMetrics.d.ts +15 -0
  547. package/esm/domain/view/viewMetrics/trackInitialViewMetrics.js +38 -0
  548. package/esm/domain/view/viewMetrics/trackInitialViewMetrics.js.map +1 -0
  549. package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.d.ts +25 -0
  550. package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js +149 -0
  551. package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js.map +1 -0
  552. package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.d.ts +18 -0
  553. package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js +57 -0
  554. package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js.map +1 -0
  555. package/esm/domain/view/viewMetrics/trackLoadingTime.d.ts +14 -0
  556. package/esm/domain/view/viewMetrics/trackLoadingTime.js +47 -0
  557. package/esm/domain/view/viewMetrics/trackLoadingTime.js.map +1 -0
  558. package/esm/domain/view/viewMetrics/trackNavigationTimings.d.ts +14 -0
  559. package/esm/domain/view/viewMetrics/trackNavigationTimings.js +40 -0
  560. package/esm/domain/view/viewMetrics/trackNavigationTimings.js.map +1 -0
  561. package/esm/domain/view/viewMetrics/trackScrollMetrics.d.ts +25 -0
  562. package/esm/domain/view/viewMetrics/trackScrollMetrics.js +72 -0
  563. package/esm/domain/view/viewMetrics/trackScrollMetrics.js.map +1 -0
  564. package/esm/domain/vital/vitalCollection.d.ts +55 -0
  565. package/esm/domain/vital/vitalCollection.js +107 -0
  566. package/esm/domain/vital/vitalCollection.js.map +1 -0
  567. package/esm/domain/waitPageActivityEnd.d.ts +54 -0
  568. package/esm/domain/waitPageActivityEnd.js +123 -0
  569. package/esm/domain/waitPageActivityEnd.js.map +1 -0
  570. package/esm/domainContext.types.d.ts +39 -0
  571. package/esm/domainContext.types.js +5 -0
  572. package/esm/domainContext.types.js.map +1 -0
  573. package/esm/index.d.ts +41 -0
  574. package/esm/index.js +21 -0
  575. package/esm/index.js.map +1 -0
  576. package/esm/rawRumEvent.types.d.ts +326 -0
  577. package/esm/rawRumEvent.types.js +31 -0
  578. package/esm/rawRumEvent.types.js.map +1 -0
  579. package/esm/rumEvent.types.d.ts +2026 -0
  580. package/esm/rumEvent.types.js +6 -0
  581. package/esm/rumEvent.types.js.map +1 -0
  582. package/esm/transport/formDataTransport.d.ts +16 -0
  583. package/esm/transport/formDataTransport.js +43 -0
  584. package/esm/transport/formDataTransport.js.map +1 -0
  585. package/esm/transport/startRumBatch.d.ts +5 -0
  586. package/esm/transport/startRumBatch.js +30 -0
  587. package/esm/transport/startRumBatch.js.map +1 -0
  588. package/esm/transport/startRumEventBridge.d.ts +2 -0
  589. package/esm/transport/startRumEventBridge.js +8 -0
  590. package/esm/transport/startRumEventBridge.js.map +1 -0
  591. package/package.json +29 -0
  592. package/src/boot/preStartRum.ts +298 -0
  593. package/src/boot/rumPublicApi.ts +830 -0
  594. package/src/boot/startRum.ts +280 -0
  595. package/src/browser/cookieObservable.ts +63 -0
  596. package/src/browser/domMutationObservable.ts +98 -0
  597. package/src/browser/firstInputPolyfill.ts +87 -0
  598. package/src/browser/htmlDomUtils.ts +45 -0
  599. package/src/browser/locationChangeObservable.ts +69 -0
  600. package/src/browser/performanceObservable.ts +324 -0
  601. package/src/browser/performanceUtils.ts +50 -0
  602. package/src/browser/scroll.ts +25 -0
  603. package/src/browser/viewportObservable.ts +44 -0
  604. package/src/browser/windowOpenObservable.ts +7 -0
  605. package/src/domain/action/actionCollection.ts +146 -0
  606. package/src/domain/action/actionNameConstants.ts +20 -0
  607. package/src/domain/action/clickChain.ts +83 -0
  608. package/src/domain/action/computeFrustration.ts +77 -0
  609. package/src/domain/action/getActionNameFromElement.ts +337 -0
  610. package/src/domain/action/interactionSelectorCache.ts +21 -0
  611. package/src/domain/action/listenActionEvents.ts +119 -0
  612. package/src/domain/action/trackClickActions.ts +388 -0
  613. package/src/domain/assembly.ts +141 -0
  614. package/src/domain/configuration/configuration.ts +548 -0
  615. package/src/domain/configuration/index.ts +2 -0
  616. package/src/domain/configuration/jsonPathParser.ts +214 -0
  617. package/src/domain/configuration/remoteConfiguration.ts +304 -0
  618. package/src/domain/configuration/remoteConfiguration.types.ts +147 -0
  619. package/src/domain/contexts/ciVisibilityContext.ts +50 -0
  620. package/src/domain/contexts/connectivityContext.ts +12 -0
  621. package/src/domain/contexts/defaultContext.ts +43 -0
  622. package/src/domain/contexts/displayContext.ts +38 -0
  623. package/src/domain/contexts/featureFlagContext.ts +71 -0
  624. package/src/domain/contexts/internalContext.ts +34 -0
  625. package/src/domain/contexts/pageStateHistory.ts +171 -0
  626. package/src/domain/contexts/sessionContext.ts +59 -0
  627. package/src/domain/contexts/syntheticsContext.ts +33 -0
  628. package/src/domain/contexts/trackingConsentContext.ts +15 -0
  629. package/src/domain/contexts/urlContexts.ts +97 -0
  630. package/src/domain/contexts/userAgentDataContext.ts +36 -0
  631. package/src/domain/contexts/viewHistory.ts +70 -0
  632. package/src/domain/discardNegativeDuration.ts +6 -0
  633. package/src/domain/error/errorCollection.ts +107 -0
  634. package/src/domain/error/trackConsoleError.ts +14 -0
  635. package/src/domain/error/trackReportError.ts +16 -0
  636. package/src/domain/event/eventCollection.ts +53 -0
  637. package/src/domain/getSelectorFromElement.ts +268 -0
  638. package/src/domain/getSessionReplayUrl.ts +47 -0
  639. package/src/domain/hooks.ts +31 -0
  640. package/src/domain/lifeCycle.ts +103 -0
  641. package/src/domain/limitModification.ts +66 -0
  642. package/src/domain/longTask/longTaskCollection.ts +133 -0
  643. package/src/domain/plugins.ts +59 -0
  644. package/src/domain/privacy.ts +355 -0
  645. package/src/domain/privacyConstants.ts +43 -0
  646. package/src/domain/requestCollection.ts +179 -0
  647. package/src/domain/resource/graphql.ts +135 -0
  648. package/src/domain/resource/matchRequestResourceEntry.ts +68 -0
  649. package/src/domain/resource/requestRegistry.ts +52 -0
  650. package/src/domain/resource/resourceCollection.ts +273 -0
  651. package/src/domain/resource/resourceUtils.ts +355 -0
  652. package/src/domain/resource/retrieveInitialDocumentResourceTiming.ts +27 -0
  653. package/src/domain/rumSessionManager.ts +134 -0
  654. package/src/domain/sampler/sampler.ts +63 -0
  655. package/src/domain/startCustomerDataTelemetry.ts +83 -0
  656. package/src/domain/tracing/getDocumentTraceId.ts +90 -0
  657. package/src/domain/tracing/identifier.ts +69 -0
  658. package/src/domain/tracing/sampler.ts +69 -0
  659. package/src/domain/tracing/tracer.ts +248 -0
  660. package/src/domain/tracing/tracer.types.ts +13 -0
  661. package/src/domain/trackEventCounts.ts +67 -0
  662. package/src/domain/view/bfCacheSupport.ts +20 -0
  663. package/src/domain/view/trackViewEventCounts.ts +15 -0
  664. package/src/domain/view/trackViews.ts +431 -0
  665. package/src/domain/view/viewCollection.ts +203 -0
  666. package/src/domain/view/viewMetrics/getClsAttributionImpactedArea.ts +34 -0
  667. package/src/domain/view/viewMetrics/interactionCountPolyfill.ts +55 -0
  668. package/src/domain/view/viewMetrics/startInitialViewMetricsTelemetry.ts +70 -0
  669. package/src/domain/view/viewMetrics/trackBfcacheMetrics.ts +20 -0
  670. package/src/domain/view/viewMetrics/trackCommonViewMetrics.ts +78 -0
  671. package/src/domain/view/viewMetrics/trackCumulativeLayoutShift.ts +180 -0
  672. package/src/domain/view/viewMetrics/trackFirstContentfulPaint.ts +47 -0
  673. package/src/domain/view/viewMetrics/trackFirstHidden.ts +53 -0
  674. package/src/domain/view/viewMetrics/trackFirstInput.ts +59 -0
  675. package/src/domain/view/viewMetrics/trackInitialViewMetrics.ts +66 -0
  676. package/src/domain/view/viewMetrics/trackInteractionToNextPaint.ts +193 -0
  677. package/src/domain/view/viewMetrics/trackLargestContentfulPaint.ts +87 -0
  678. package/src/domain/view/viewMetrics/trackLoadingTime.ts +69 -0
  679. package/src/domain/view/viewMetrics/trackNavigationTimings.ts +66 -0
  680. package/src/domain/view/viewMetrics/trackScrollMetrics.ts +119 -0
  681. package/src/domain/vital/vitalCollection.ts +207 -0
  682. package/src/domain/waitPageActivityEnd.ts +189 -0
  683. package/src/domainContext.types.ts +61 -0
  684. package/src/index.ts +76 -0
  685. package/src/rawRumEvent.types.ts +409 -0
  686. package/src/rumEvent.types.ts +2151 -0
  687. package/src/transport/formDataTransport.ts +85 -0
  688. package/src/transport/startRumBatch.ts +46 -0
  689. package/src/transport/startRumEventBridge.ts +12 -0
@@ -0,0 +1,44 @@
1
+ import { SESSION_TIME_OUT_DELAY, createValueHistory } from '@kubesense/kubesense-browser-core';
2
+ export const VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;
3
+ export function startViewHistory(lifeCycle) {
4
+ const viewValueHistory = createValueHistory({ expireDelay: VIEW_CONTEXT_TIME_OUT_DELAY });
5
+ lifeCycle.subscribe(1 /* LifeCycleEventType.BEFORE_VIEW_CREATED */, (view) => {
6
+ viewValueHistory.add(buildViewHistoryEntry(view), view.startClocks.relative);
7
+ });
8
+ lifeCycle.subscribe(6 /* LifeCycleEventType.AFTER_VIEW_ENDED */, ({ endClocks }) => {
9
+ viewValueHistory.closeActive(endClocks.relative);
10
+ });
11
+ lifeCycle.subscribe(3 /* LifeCycleEventType.BEFORE_VIEW_UPDATED */, (viewUpdate) => {
12
+ const currentView = viewValueHistory.find(viewUpdate.startClocks.relative);
13
+ if (!currentView) {
14
+ return;
15
+ }
16
+ if (viewUpdate.name) {
17
+ currentView.name = viewUpdate.name;
18
+ }
19
+ if (viewUpdate.context) {
20
+ currentView.context = viewUpdate.context;
21
+ }
22
+ currentView.sessionIsActive = viewUpdate.sessionIsActive;
23
+ });
24
+ lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, () => {
25
+ viewValueHistory.reset();
26
+ });
27
+ function buildViewHistoryEntry(view) {
28
+ return {
29
+ service: view.service,
30
+ version: view.version,
31
+ context: view.context,
32
+ id: view.id,
33
+ name: view.name,
34
+ startClocks: view.startClocks,
35
+ };
36
+ }
37
+ return {
38
+ findView: (startTime) => viewValueHistory.find(startTime),
39
+ stop: () => {
40
+ viewValueHistory.stop();
41
+ },
42
+ };
43
+ }
44
+ //# sourceMappingURL=viewHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewHistory.js","sourceRoot":"","sources":["../../../src/domain/contexts/viewHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAK9F,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAA;AAiBjE,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,MAAM,gBAAgB,GAAG,kBAAkB,CAAmB,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAE3G,SAAS,CAAC,SAAS,iDAAyC,CAAC,IAAI,EAAE,EAAE;QACnE,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,SAAS,8CAAsC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACzE,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,SAAS,iDAAyC,CAAC,UAAiC,EAAE,EAAE;QAChG,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACpC,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAC1C,CAAC;QACD,WAAW,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,SAAS,8CAAqC,GAAG,EAAE;QAC3D,gBAAgB,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,SAAS,qBAAqB,CAAC,IAAsB;QACnD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAA;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QACzD,IAAI,EAAE,GAAG,EAAE;YACT,gBAAgB,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ServerDuration } from '@kubesense/kubesense-browser-core';
2
+ export declare function discardNegativeDuration(duration: ServerDuration | undefined): ServerDuration | undefined;
@@ -0,0 +1,5 @@
1
+ import { isNumber } from '@kubesense/kubesense-browser-core';
2
+ export function discardNegativeDuration(duration) {
3
+ return isNumber(duration) && duration < 0 ? undefined : duration;
4
+ }
5
+ //# sourceMappingURL=discardNegativeDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discardNegativeDuration.js","sourceRoot":"","sources":["../../src/domain/discardNegativeDuration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAE5D,MAAM,UAAU,uBAAuB,CAAC,QAAoC;IAC1E,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;AAClE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Context, ClocksState, BufferedData } from '@kubesense/kubesense-browser-core';
2
+ import { Observable } from '@kubesense/kubesense-browser-core';
3
+ import type { RumConfiguration } from '../configuration';
4
+ import type { LifeCycle } from '../lifeCycle';
5
+ export interface ProvidedError {
6
+ startClocks: ClocksState;
7
+ error: unknown;
8
+ context?: Context;
9
+ handlingStack: string;
10
+ componentStack?: string;
11
+ }
12
+ export declare function startErrorCollection(lifeCycle: LifeCycle, configuration: RumConfiguration, bufferedDataObservable: Observable<BufferedData>): {
13
+ addError: ({ error, handlingStack, componentStack, startClocks, context }: ProvidedError) => void;
14
+ };
15
+ export declare function doStartErrorCollection(lifeCycle: LifeCycle): {
16
+ addError: ({ error, handlingStack, componentStack, startClocks, context }: ProvidedError) => void;
17
+ };
@@ -0,0 +1,70 @@
1
+ import { Observable, ErrorSource, generateUUID, computeRawError, combine, } from '@kubesense/kubesense-browser-core';
2
+ import { RumEventType } from '../../rawRumEvent.types';
3
+ import { trackConsoleError } from './trackConsoleError';
4
+ import { trackReportError } from './trackReportError';
5
+ export function startErrorCollection(lifeCycle, configuration, bufferedDataObservable) {
6
+ const errorObservable = new Observable();
7
+ bufferedDataObservable.subscribe((bufferedData) => {
8
+ if (bufferedData.type === 0 /* BufferedDataType.RUNTIME_ERROR */) {
9
+ errorObservable.notify(bufferedData.error);
10
+ }
11
+ });
12
+ trackConsoleError(errorObservable);
13
+ trackReportError(configuration, errorObservable);
14
+ errorObservable.subscribe((error) => lifeCycle.notify(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error }));
15
+ return doStartErrorCollection(lifeCycle);
16
+ }
17
+ export function doStartErrorCollection(lifeCycle) {
18
+ lifeCycle.subscribe(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, ({ error }) => {
19
+ lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processError(error));
20
+ });
21
+ return {
22
+ addError: ({ error, handlingStack, componentStack, startClocks, context }) => {
23
+ const rawError = computeRawError({
24
+ originalError: error,
25
+ handlingStack,
26
+ componentStack,
27
+ startClocks,
28
+ nonErrorPrefix: "Provided" /* NonErrorPrefix.PROVIDED */,
29
+ source: ErrorSource.CUSTOM,
30
+ handling: "handled" /* ErrorHandling.HANDLED */,
31
+ });
32
+ rawError.context = combine(rawError.context, context);
33
+ lifeCycle.notify(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: rawError });
34
+ },
35
+ };
36
+ }
37
+ function processError(error) {
38
+ const rawRumEvent = {
39
+ date: error.startClocks.timeStamp,
40
+ error: {
41
+ id: generateUUID(),
42
+ message: error.message,
43
+ source: error.source,
44
+ stack: error.stack,
45
+ handling_stack: error.handlingStack,
46
+ component_stack: error.componentStack,
47
+ type: error.type,
48
+ handling: error.handling,
49
+ causes: error.causes,
50
+ source_type: 'browser',
51
+ fingerprint: error.fingerprint,
52
+ csp: error.csp,
53
+ },
54
+ _kubesense: {
55
+ discarded: false,
56
+ },
57
+ type: RumEventType.ERROR,
58
+ context: error.context,
59
+ };
60
+ const domainContext = {
61
+ error: error.originalError,
62
+ handlingStack: error.handlingStack,
63
+ };
64
+ return {
65
+ rawRumEvent,
66
+ startTime: error.startClocks.relative,
67
+ domainContext,
68
+ };
69
+ }
70
+ //# sourceMappingURL=errorCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorCollection.js","sourceRoot":"","sources":["../../../src/domain/error/errorCollection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Observable, RawError } from '@kubesense/kubesense-browser-core';
2
+ export declare function trackConsoleError(errorObservable: Observable<RawError>): {
3
+ stop: () => void;
4
+ };
@@ -0,0 +1,10 @@
1
+ import { initConsoleObservable, ConsoleApiName } from '@kubesense/kubesense-browser-core';
2
+ export function trackConsoleError(errorObservable) {
3
+ const subscription = initConsoleObservable([ConsoleApiName.error]).subscribe((consoleLog) => errorObservable.notify(consoleLog.error));
4
+ return {
5
+ stop: () => {
6
+ subscription.unsubscribe();
7
+ },
8
+ };
9
+ }
10
+ //# sourceMappingURL=trackConsoleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackConsoleError.js","sourceRoot":"","sources":["../../../src/domain/error/trackConsoleError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAEzF,MAAM,UAAU,iBAAiB,CAAC,eAAqC;IACrE,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAC1F,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CACzC,CAAA;IAED,OAAO;QACL,IAAI,EAAE,GAAG,EAAE;YACT,YAAY,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Observable, RawError } from '@kubesense/kubesense-browser-core';
2
+ import type { RumConfiguration } from '../configuration';
3
+ export declare function trackReportError(configuration: RumConfiguration, errorObservable: Observable<RawError>): {
4
+ stop: () => void;
5
+ };
@@ -0,0 +1,13 @@
1
+ import { initReportObservable, RawReportType } from '@kubesense/kubesense-browser-core';
2
+ export function trackReportError(configuration, errorObservable) {
3
+ const subscription = initReportObservable(configuration, [
4
+ RawReportType.cspViolation,
5
+ RawReportType.intervention,
6
+ ]).subscribe((rawError) => errorObservable.notify(rawError));
7
+ return {
8
+ stop: () => {
9
+ subscription.unsubscribe();
10
+ },
11
+ };
12
+ }
13
+ //# sourceMappingURL=trackReportError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackReportError.js","sourceRoot":"","sources":["../../../src/domain/error/trackReportError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAGvF,MAAM,UAAU,gBAAgB,CAAC,aAA+B,EAAE,eAAqC;IACrG,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,EAAE;QACvD,aAAa,CAAC,YAAY;QAC1B,aAAa,CAAC,YAAY;KAC3B,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE5D,OAAO;QACL,IAAI,EAAE,GAAG,EAAE;YACT,YAAY,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Context, Duration, RelativeTime } from '@kubesense/kubesense-browser-core';
2
+ import type { RumEventDomainContext } from '../../domainContext.types';
3
+ import type { LifeCycle } from '../lifeCycle';
4
+ import type { RawRumActionEvent, RawRumErrorEvent, RawRumLongAnimationFrameEvent, RawRumLongTaskEvent, RawRumResourceEvent, RawRumVitalEvent } from '../../rawRumEvent.types';
5
+ export type AllowedRawRumEvent = (RawRumErrorEvent | RawRumResourceEvent | RawRumLongTaskEvent | RawRumLongAnimationFrameEvent | RawRumActionEvent | RawRumVitalEvent) & {
6
+ context?: Context;
7
+ };
8
+ export declare function startEventCollection(lifeCycle: LifeCycle): {
9
+ addEvent: (startTime: RelativeTime, event: AllowedRawRumEvent, domainContext: RumEventDomainContext, duration?: Duration) => void;
10
+ };
@@ -0,0 +1,24 @@
1
+ import { RumEventType } from '../../rawRumEvent.types';
2
+ const allowedEventTypes = [
3
+ RumEventType.ACTION,
4
+ RumEventType.ERROR,
5
+ RumEventType.LONG_TASK,
6
+ RumEventType.RESOURCE,
7
+ RumEventType.VITAL,
8
+ ];
9
+ export function startEventCollection(lifeCycle) {
10
+ return {
11
+ addEvent: (startTime, event, domainContext, duration) => {
12
+ if (!allowedEventTypes.includes(event.type)) {
13
+ return;
14
+ }
15
+ lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, {
16
+ startTime,
17
+ rawRumEvent: event,
18
+ domainContext,
19
+ duration,
20
+ });
21
+ },
22
+ };
23
+ }
24
+ //# sourceMappingURL=eventCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventCollection.js","sourceRoot":"","sources":["../../../src/domain/event/eventCollection.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,iBAAiB,GAAG;IACxB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,KAAK;IAClB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,KAAK;CACV,CAAA;AAWV,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,OAAO;QACL,QAAQ,EAAE,CACR,SAAuB,EACvB,KAAyB,EACzB,aAAoC,EACpC,QAAmB,EACnB,EAAE;YACF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,OAAM;YACR,CAAC;YAED,SAAS,CAAC,MAAM,sDAA6C;gBAC3D,SAAS;gBACT,WAAW,EAAE,KAAK;gBAClB,aAAa;gBACb,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:
3
+ * component). Those attribute values should not be generated randomly (hardcoded most of the time)
4
+ * and stay the same across deploys. They are not necessarily unique across the document.
5
+ */
6
+ export declare const STABLE_ATTRIBUTES: string[];
7
+ export declare function getSelectorFromElement(targetElement: Element, actionNameAttribute: string | undefined): string | undefined;
8
+ /**
9
+ * Check whether the selector is unique among the element siblings. In other words, it returns true
10
+ * if "ELEMENT_PARENT > CHILD_SELECTOR" returns a single element.
11
+ *
12
+ * @param {Element} currentElement - the element being considered while iterating over the target
13
+ * element ancestors.
14
+ *
15
+ * @param {string} currentElementSelector - a selector that matches the current element. That
16
+ * selector is not a composed selector (i.e. it might be a single tag name, class name...).
17
+ *
18
+ * @param {string|undefined} childSelector - child selector is a selector that targets a descendant
19
+ * of the current element. When undefined, the current element is the target element.
20
+ *
21
+ * # Scope selector usage
22
+ *
23
+ * When composed together, the final selector will be joined with `>` operators to make sure we
24
+ * target direct descendants at each level. In this function, we'll use `querySelector` to check if
25
+ * a selector matches descendants of the current element. But by default, the query selector match
26
+ * elements at any level. Example:
27
+ *
28
+ * ```html
29
+ * <main>
30
+ * <div>
31
+ * <span></span>
32
+ * </div>
33
+ * <marquee>
34
+ * <div>
35
+ * <span></span>
36
+ * </div>
37
+ * </marquee>
38
+ * </main>
39
+ * ```
40
+ *
41
+ * `sibling.querySelector('DIV > SPAN')` will match both span elements, so we would consider the
42
+ * selector to be not unique, even if it is unique when we'll compose it with the parent with a `>`
43
+ * operator (`MAIN > DIV > SPAN`).
44
+ *
45
+ * To avoid this, we can use the `:scope` selector to make sure the selector starts from the current
46
+ * sibling (i.e. `sibling.querySelector('DIV:scope > SPAN')` will only match the first span).
47
+ *
48
+ * [1]: https://developer.mozilla.org/fr/docs/Web/CSS/:scope
49
+ *
50
+ * # Performance considerations
51
+ *
52
+ * We compute selectors in performance-critical operations (ex: during a click), so we need to make
53
+ * sure the function is as fast as possible. We observed that naively using `querySelectorAll` to
54
+ * check if the selector matches more than 1 element is quite expensive, so we want to avoid it.
55
+ *
56
+ * Because we are iterating the DOM upward and we use that function at every level, we know the
57
+ * child selector is already unique among the current element children, so we don't need to check
58
+ * for the current element subtree.
59
+ *
60
+ * Instead, we can focus on the current element siblings. If we find a single element matching the
61
+ * selector within a sibling, we know that it's not unique. This allows us to use `querySelector`
62
+ * (or `matches`, when the current element is the target element) instead of `querySelectorAll`.
63
+ */
64
+ export declare function isSelectorUniqueAmongSiblings(currentElement: Element, currentElementSelector: string, childSelector: string | undefined): boolean;
@@ -0,0 +1,213 @@
1
+ import { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/actionNameConstants';
2
+ /**
3
+ * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:
4
+ * component). Those attribute values should not be generated randomly (hardcoded most of the time)
5
+ * and stay the same across deploys. They are not necessarily unique across the document.
6
+ */
7
+ export const STABLE_ATTRIBUTES = [
8
+ DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,
9
+ // Common test attributes (list provided by google recorder)
10
+ 'data-testid',
11
+ 'data-test',
12
+ 'data-qa',
13
+ 'data-cy',
14
+ 'data-test-id',
15
+ 'data-qa-id',
16
+ 'data-testing',
17
+ // FullStory decorator attributes:
18
+ 'data-component',
19
+ 'data-element',
20
+ 'data-source-file',
21
+ ];
22
+ // Selectors to use if they target a single element on the whole document. Those selectors are
23
+ // considered as "stable" and uniquely identify an element regardless of the page state. If we find
24
+ // one, we should consider the selector "complete" and stop iterating over ancestors.
25
+ const GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];
26
+ // Selectors to use if they target a single element among an element descendants. Those selectors
27
+ // are more brittle than "globally unique" selectors and should be combined with ancestor selectors
28
+ // to improve specificity.
29
+ const UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [
30
+ getStableAttributeSelector,
31
+ getClassSelector,
32
+ getTagNameSelector,
33
+ ];
34
+ export function getSelectorFromElement(targetElement, actionNameAttribute) {
35
+ if (!targetElement.isConnected) {
36
+ // We cannot compute a selector for a detached element, as we don't have access to all of its
37
+ // parents, and we cannot determine if it's unique in the document.
38
+ return;
39
+ }
40
+ let targetElementSelector;
41
+ let currentElement = targetElement;
42
+ while (currentElement && currentElement.nodeName !== 'HTML') {
43
+ const globallyUniqueSelector = findSelector(currentElement, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);
44
+ if (globallyUniqueSelector) {
45
+ return globallyUniqueSelector;
46
+ }
47
+ const uniqueSelectorAmongChildren = findSelector(currentElement, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);
48
+ targetElementSelector =
49
+ uniqueSelectorAmongChildren || combineSelector(getPositionSelector(currentElement), targetElementSelector);
50
+ currentElement = currentElement.parentElement;
51
+ }
52
+ return targetElementSelector;
53
+ }
54
+ function isGeneratedValue(value) {
55
+ // To compute the "URL path group", the backend replaces every URL path parts as a question mark
56
+ // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is
57
+ // present.
58
+ //
59
+ // Here, we use the same strategy: if the value contains a digit, we consider it generated. This
60
+ // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate
61
+ // CSS selectors so it should be fine most of the time.
62
+ return /[0-9]/.test(value);
63
+ }
64
+ function getIDSelector(element) {
65
+ if (element.id && !isGeneratedValue(element.id)) {
66
+ return `#${CSS.escape(element.id)}`;
67
+ }
68
+ }
69
+ function getClassSelector(element) {
70
+ if (element.tagName === 'BODY') {
71
+ return;
72
+ }
73
+ const classList = element.classList;
74
+ for (let i = 0; i < classList.length; i += 1) {
75
+ const className = classList[i];
76
+ if (isGeneratedValue(className)) {
77
+ continue;
78
+ }
79
+ return `${CSS.escape(element.tagName)}.${CSS.escape(className)}`;
80
+ }
81
+ }
82
+ function getTagNameSelector(element) {
83
+ return CSS.escape(element.tagName);
84
+ }
85
+ function getStableAttributeSelector(element, actionNameAttribute) {
86
+ if (actionNameAttribute) {
87
+ const selector = getAttributeSelector(actionNameAttribute);
88
+ if (selector) {
89
+ return selector;
90
+ }
91
+ }
92
+ for (const attributeName of STABLE_ATTRIBUTES) {
93
+ const selector = getAttributeSelector(attributeName);
94
+ if (selector) {
95
+ return selector;
96
+ }
97
+ }
98
+ function getAttributeSelector(attributeName) {
99
+ if (element.hasAttribute(attributeName)) {
100
+ return `${CSS.escape(element.tagName)}[${attributeName}="${CSS.escape(element.getAttribute(attributeName))}"]`;
101
+ }
102
+ }
103
+ }
104
+ function getPositionSelector(element) {
105
+ let sibling = element.parentElement.firstElementChild;
106
+ let elementIndex = 1;
107
+ while (sibling && sibling !== element) {
108
+ if (sibling.tagName === element.tagName) {
109
+ elementIndex += 1;
110
+ }
111
+ sibling = sibling.nextElementSibling;
112
+ }
113
+ return `${CSS.escape(element.tagName)}:nth-of-type(${elementIndex})`;
114
+ }
115
+ function findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {
116
+ for (const selectorGetter of selectorGetters) {
117
+ const elementSelector = selectorGetter(element, actionNameAttribute);
118
+ if (!elementSelector) {
119
+ continue;
120
+ }
121
+ if (predicate(element, elementSelector, childSelector)) {
122
+ return combineSelector(elementSelector, childSelector);
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ * Check whether the selector is unique among the whole document.
128
+ */
129
+ function isSelectorUniqueGlobally(element, elementSelector, childSelector) {
130
+ return element.ownerDocument.querySelectorAll(combineSelector(elementSelector, childSelector)).length === 1;
131
+ }
132
+ /**
133
+ * Check whether the selector is unique among the element siblings. In other words, it returns true
134
+ * if "ELEMENT_PARENT > CHILD_SELECTOR" returns a single element.
135
+ *
136
+ * @param {Element} currentElement - the element being considered while iterating over the target
137
+ * element ancestors.
138
+ *
139
+ * @param {string} currentElementSelector - a selector that matches the current element. That
140
+ * selector is not a composed selector (i.e. it might be a single tag name, class name...).
141
+ *
142
+ * @param {string|undefined} childSelector - child selector is a selector that targets a descendant
143
+ * of the current element. When undefined, the current element is the target element.
144
+ *
145
+ * # Scope selector usage
146
+ *
147
+ * When composed together, the final selector will be joined with `>` operators to make sure we
148
+ * target direct descendants at each level. In this function, we'll use `querySelector` to check if
149
+ * a selector matches descendants of the current element. But by default, the query selector match
150
+ * elements at any level. Example:
151
+ *
152
+ * ```html
153
+ * <main>
154
+ * <div>
155
+ * <span></span>
156
+ * </div>
157
+ * <marquee>
158
+ * <div>
159
+ * <span></span>
160
+ * </div>
161
+ * </marquee>
162
+ * </main>
163
+ * ```
164
+ *
165
+ * `sibling.querySelector('DIV > SPAN')` will match both span elements, so we would consider the
166
+ * selector to be not unique, even if it is unique when we'll compose it with the parent with a `>`
167
+ * operator (`MAIN > DIV > SPAN`).
168
+ *
169
+ * To avoid this, we can use the `:scope` selector to make sure the selector starts from the current
170
+ * sibling (i.e. `sibling.querySelector('DIV:scope > SPAN')` will only match the first span).
171
+ *
172
+ * [1]: https://developer.mozilla.org/fr/docs/Web/CSS/:scope
173
+ *
174
+ * # Performance considerations
175
+ *
176
+ * We compute selectors in performance-critical operations (ex: during a click), so we need to make
177
+ * sure the function is as fast as possible. We observed that naively using `querySelectorAll` to
178
+ * check if the selector matches more than 1 element is quite expensive, so we want to avoid it.
179
+ *
180
+ * Because we are iterating the DOM upward and we use that function at every level, we know the
181
+ * child selector is already unique among the current element children, so we don't need to check
182
+ * for the current element subtree.
183
+ *
184
+ * Instead, we can focus on the current element siblings. If we find a single element matching the
185
+ * selector within a sibling, we know that it's not unique. This allows us to use `querySelector`
186
+ * (or `matches`, when the current element is the target element) instead of `querySelectorAll`.
187
+ */
188
+ export function isSelectorUniqueAmongSiblings(currentElement, currentElementSelector, childSelector) {
189
+ let isSiblingMatching;
190
+ if (childSelector === undefined) {
191
+ // If the child selector is undefined (meaning `currentElement` is the target element, not one
192
+ // of its ancestor), we need to use `matches` to check if the sibling is matching the selector,
193
+ // as `querySelector` only returns a descendant of the element.
194
+ isSiblingMatching = (sibling) => sibling.matches(currentElementSelector);
195
+ }
196
+ else {
197
+ const scopedSelector = combineSelector(`${currentElementSelector}:scope`, childSelector);
198
+ isSiblingMatching = (sibling) => sibling.querySelector(scopedSelector) !== null;
199
+ }
200
+ const parent = currentElement.parentElement;
201
+ let sibling = parent.firstElementChild;
202
+ while (sibling) {
203
+ if (sibling !== currentElement && isSiblingMatching(sibling)) {
204
+ return false;
205
+ }
206
+ sibling = sibling.nextElementSibling;
207
+ }
208
+ return true;
209
+ }
210
+ function combineSelector(parent, child) {
211
+ return child ? `${parent}>${child}` : parent;
212
+ }
213
+ //# sourceMappingURL=getSelectorFromElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSelectorFromElement.js","sourceRoot":"","sources":["../../src/domain/getSelectorFromElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { RumConfiguration } from './configuration';
2
+ import type { ViewHistoryEntry } from './contexts/viewHistory';
3
+ import type { RumSession } from './rumSessionManager';
4
+ export declare function getSessionReplayUrl(configuration: RumConfiguration, { session, viewContext, errorType, }: {
5
+ session?: RumSession;
6
+ viewContext?: ViewHistoryEntry;
7
+ errorType?: string;
8
+ }): string;
9
+ export declare function getKubsesenseSiteUrl(rumConfiguration: RumConfiguration): string;
@@ -0,0 +1,30 @@
1
+ import { INTAKE_SITE_STAGING, INTAKE_SITE_PROD } from '@kubesense/kubesense-browser-core';
2
+ export function getSessionReplayUrl(configuration, { session, viewContext, errorType, }) {
3
+ const sessionId = session ? session.id : 'no-session-id';
4
+ const parameters = [];
5
+ if (errorType !== undefined) {
6
+ parameters.push(`error-type=${errorType}`);
7
+ }
8
+ if (viewContext) {
9
+ parameters.push(`seed=${viewContext.id}`);
10
+ parameters.push(`from=${viewContext.startClocks.timeStamp}`);
11
+ }
12
+ const origin = getKubsesenseSiteUrl(configuration);
13
+ const path = `/rum/replay/sessions/${sessionId}`;
14
+ return `${origin}${path}?${parameters.join('&')}`;
15
+ }
16
+ export function getKubsesenseSiteUrl(rumConfiguration) {
17
+ const site = rumConfiguration.kubesenseRumEndpoint;
18
+ const subdomain = rumConfiguration.subdomain;
19
+ return `https://${subdomain ? `${subdomain}.` : ''}${site}`;
20
+ }
21
+ function getSiteDefaultSubdomain(configuration) {
22
+ switch (configuration.kubesenseRumEndpoint) {
23
+ case INTAKE_SITE_PROD:
24
+ case INTAKE_SITE_STAGING:
25
+ return 'staging';
26
+ default:
27
+ return undefined;
28
+ }
29
+ }
30
+ //# sourceMappingURL=getSessionReplayUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSessionReplayUrl.js","sourceRoot":"","sources":["../../src/domain/getSessionReplayUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAKzF,MAAM,UAAU,mBAAmB,CACjC,aAA+B,EAC/B,EACE,OAAO,EACP,WAAW,EACX,SAAS,GAKV;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;IACxD,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,UAAU,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,wBAAwB,SAAS,EAAE,CAAA;IAChD,OAAO,GAAG,MAAM,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,gBAAkC;IACrE,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAAA;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAA;IAC5C,OAAO,WAAW,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;AAC7D,CAAC;AAED,SAAS,uBAAuB,CAAC,aAA+B;IAC9D,QAAQ,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAC3C,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { DISCARDED, Duration, HookNamesAsConst, RecursivePartial, RelativeTime, SKIPPED, TelemetryEvent } from '@kubesense/kubesense-browser-core';
2
+ import type { RumEvent } from '../rumEvent.types';
3
+ export type DefaultRumEventAttributes = RecursivePartial<RumEvent> & {
4
+ type: RumEvent['type'];
5
+ };
6
+ export type DefaultTelemetryEventAttributes = RecursivePartial<TelemetryEvent>;
7
+ export interface HookCallbackMap {
8
+ [HookNamesAsConst.ASSEMBLE]: (param: {
9
+ eventType: RumEvent['type'];
10
+ startTime: RelativeTime;
11
+ duration?: Duration | undefined;
12
+ }) => DefaultRumEventAttributes | SKIPPED | DISCARDED;
13
+ [HookNamesAsConst.ASSEMBLE_TELEMETRY]: (param: {
14
+ startTime: RelativeTime;
15
+ }) => DefaultTelemetryEventAttributes | SKIPPED | DISCARDED;
16
+ }
17
+ export type Hooks = ReturnType<typeof createHooks>;
18
+ export declare const createHooks: () => {
19
+ register<K extends import("@kubesense/kubesense-browser-core").HookNames>(hookName: K, callback: HookCallbackMap[K]): {
20
+ unregister: () => void;
21
+ };
22
+ triggerHook<K extends import("@kubesense/kubesense-browser-core").HookNames>(hookName: K, param: Parameters<HookCallbackMap[K]>[0]): "DISCARDED" | Exclude<ReturnType<HookCallbackMap[K]>, "SKIPPED"> | undefined;
23
+ };
@@ -0,0 +1,3 @@
1
+ import { abstractHooks } from '@kubesense/kubesense-browser-core';
2
+ export const createHooks = (abstractHooks);
3
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/domain/hooks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAqBjE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAA,aAA8B,CAAA,CAAA"}