@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,187 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RumTrackingType = exports.RumSessionPlan = exports.RUM_SESSION_KEY = exports.ERROR_SESSION = void 0;
7
+ exports.startRumSessionManager = startRumSessionManager;
8
+ exports.startRumSessionManagerStub = startRumSessionManagerStub;
9
+ var _browserCore = require("@cloudcare/browser-core");
10
+ var RUM_SESSION_KEY = exports.RUM_SESSION_KEY = 'rum';
11
+ var RumSessionPlan = exports.RumSessionPlan = {
12
+ WITHOUT_SESSION_REPLAY: 1,
13
+ WITH_SESSION_REPLAY: 2,
14
+ WITH_ERROR_SESSION_REPLAY: 3
15
+ };
16
+ var ERROR_SESSION = exports.ERROR_SESSION = '1';
17
+ var RumTrackingType = exports.RumTrackingType = {
18
+ NOT_TRACKED: _browserCore.SESSION_NOT_TRACKED,
19
+ // Note: the "tracking type" value (stored in the session cookie) does not match the "session
20
+ // plan" value (sent in RUM events). This is expected, and was done to keep retrocompatibility
21
+ // with active sessions when upgrading the SDK.
22
+
23
+ TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY: '1',
24
+ TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY: '2',
25
+ TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY: '3',
26
+ TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY: '4',
27
+ TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY: '5',
28
+ TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY: '6'
29
+ };
30
+ function startRumSessionManager(configuration, lifeCycle) {
31
+ var sessionManager = (0, _browserCore.startSessionManager)(configuration, RUM_SESSION_KEY, function (rawTrackingType) {
32
+ return computeSessionState(configuration, rawTrackingType);
33
+ });
34
+ sessionManager.expireObservable.subscribe(function () {
35
+ lifeCycle.notify(_browserCore.LifeCycleEventType.SESSION_EXPIRED);
36
+ });
37
+ sessionManager.renewObservable.subscribe(function () {
38
+ lifeCycle.notify(_browserCore.LifeCycleEventType.SESSION_RENEWED);
39
+ });
40
+ sessionManager.sessionStateUpdateObservable.subscribe(function (_ref) {
41
+ var previousState = _ref.previousState,
42
+ newState = _ref.newState;
43
+ if (!previousState.hasError && newState.hasError) {
44
+ var sessionEntity = sessionManager.findSession();
45
+ if (sessionEntity) {
46
+ sessionEntity.hasError = true;
47
+ sessionEntity.ets = newState.ets || (0, _browserCore.timeStampNow)();
48
+ }
49
+ }
50
+ if (!previousState.forcedSession && newState.forcedSession) {
51
+ var _sessionEntity = sessionManager.findSession();
52
+ if (_sessionEntity) {
53
+ _sessionEntity.isSessionForced = true;
54
+ }
55
+ }
56
+ });
57
+ return {
58
+ findTrackedSession: function findTrackedSession(startTime) {
59
+ var session = sessionManager.findSession(startTime);
60
+ if (!session) {
61
+ return;
62
+ }
63
+ if (!isTypeTracked(session.trackingType) && !session.isSessionForced) {
64
+ return;
65
+ }
66
+ var isErrorSession = session.trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY || session.trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY || session.trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY;
67
+ var plan = RumSessionPlan.WITHOUT_SESSION_REPLAY;
68
+ if (session.trackingType === RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY || session.trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY) {
69
+ plan = RumSessionPlan.WITH_SESSION_REPLAY;
70
+ } else if (session.trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY || session.trackingType === RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY) {
71
+ plan = RumSessionPlan.WITH_ERROR_SESSION_REPLAY;
72
+ }
73
+ return {
74
+ id: session.id,
75
+ plan: plan,
76
+ errorSessionReplayAllowed: plan === RumSessionPlan.WITH_ERROR_SESSION_REPLAY,
77
+ sessionHasError: session.hasError,
78
+ isErrorSession: isErrorSession,
79
+ sessionErrorTimestamp: session.ets,
80
+ isSessionForced: session.isSessionForced,
81
+ sessionReplayAllowed: plan === RumSessionPlan.WITH_SESSION_REPLAY || plan === RumSessionPlan.WITH_ERROR_SESSION_REPLAY || session.isSessionForced
82
+ };
83
+ },
84
+ expire: sessionManager.expire,
85
+ keepSessionAlive: sessionManager.expandOrRenewSession,
86
+ expireObservable: sessionManager.expireObservable,
87
+ sessionStateUpdateObservable: sessionManager.sessionStateUpdateObservable,
88
+ setErrorForSession: function setErrorForSession() {
89
+ return sessionManager.updateSessionState({
90
+ hasError: '1',
91
+ ets: (0, _browserCore.timeStampNow)()
92
+ });
93
+ },
94
+ setForcedSession: function setForcedSession() {
95
+ sessionManager.updateSessionState({
96
+ forcedSession: '1'
97
+ });
98
+ }
99
+ };
100
+ }
101
+
102
+ /**
103
+ * Start a tracked replay session stub
104
+ * It needs to be a premium plan in order to get long tasks
105
+ */
106
+ function startRumSessionManagerStub() {
107
+ var session = {
108
+ id: '00000000-aaaa-0000-aaaa-000000000000',
109
+ isErrorSession: false,
110
+ sessionErrorTimestamp: 0,
111
+ sessionReplayAllowed: (0, _browserCore.bridgeSupports)(_browserCore.BridgeCapability.RECORDS) ? true : false,
112
+ errorSessionReplayAllowed: false,
113
+ sessionHasError: false,
114
+ isSessionForced: false
115
+ };
116
+ return {
117
+ findTrackedSession: function findTrackedSession() {
118
+ return session;
119
+ },
120
+ expire: _browserCore.noop,
121
+ keepSessionAlive: _browserCore.noop,
122
+ expireObservable: new _browserCore.Observable(),
123
+ setErrorForSession: function setErrorForSession() {
124
+ session.sessionErrorTimestamp = (0, _browserCore.timeStampNow)();
125
+ session.sessionHasError = true;
126
+ session.isErrorSession = true;
127
+ session.errorSessionReplayAllowed = true;
128
+ },
129
+ setForcedSession: _browserCore.noop
130
+ };
131
+ }
132
+ function computeSessionState(configuration, rawTrackingType) {
133
+ var sessionSampleRate = configuration.sessionSampleRate,
134
+ sessionOnErrorSampleRate = configuration.sessionOnErrorSampleRate,
135
+ sessionReplaySampleRate = configuration.sessionReplaySampleRate,
136
+ sessionReplayOnErrorSampleRate = configuration.sessionReplayOnErrorSampleRate;
137
+ var isSession = (0, _browserCore.performDraw)(sessionSampleRate);
138
+ var isErrorSession = (0, _browserCore.performDraw)(sessionOnErrorSampleRate);
139
+ var isSessionReplay = (0, _browserCore.performDraw)(sessionReplaySampleRate);
140
+ var isErrorSessionReplay = (0, _browserCore.performDraw)(sessionReplayOnErrorSampleRate);
141
+ var trackingType;
142
+ if (hasValidRumSession(rawTrackingType)) {
143
+ trackingType = rawTrackingType;
144
+ } else if (!isErrorSession && !isSession) {
145
+ trackingType = RumTrackingType.NOT_TRACKED;
146
+ } else if (isSession && isSessionReplay) {
147
+ trackingType = RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY;
148
+ } else if (isSession && isErrorSessionReplay) {
149
+ trackingType = RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY;
150
+ } else if (isSession && !isSessionReplay && !isErrorSessionReplay) {
151
+ trackingType = RumTrackingType.TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY;
152
+ } else if (isErrorSession && isSessionReplay) {
153
+ trackingType = RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY;
154
+ } else if (isErrorSession && isErrorSessionReplay) {
155
+ trackingType = RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY;
156
+ } else if (isErrorSession && !isSessionReplay && !isErrorSessionReplay) {
157
+ trackingType = RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY;
158
+ }
159
+ // if (hasValidRumSession(rawTrackingType)) {
160
+ // trackingType = rawTrackingType
161
+ // } else if (
162
+ // !performDraw(configuration.sessionSampleRate) &&
163
+ // !performDraw(configuration.sessionOnErrorSampleRate)
164
+ // ) {
165
+ // trackingType = RumTrackingType.NOT_TRACKED
166
+ // } else if (
167
+ // !performDraw(configuration.sessionReplaySampleRate) &&
168
+ // !performDraw(configuration.sessionReplayOnErrorSampleRate)
169
+ // ) {
170
+ // trackingType = RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY
171
+ // } else if (performDraw(configuration.sessionReplayOnErrorSampleRate)) {
172
+ // trackingType = RumTrackingType.TRACKED_WITH_ERROR_SESSION_REPLAY
173
+ // } else {
174
+ // trackingType = RumTrackingType.TRACKED_WITH_SESSION_REPLAY
175
+ // }
176
+ return {
177
+ trackingType: trackingType,
178
+ isTracked: isTypeTracked(trackingType)
179
+ };
180
+ }
181
+ function hasValidRumSession(trackingType) {
182
+ return trackingType === RumTrackingType.NOT_TRACKED || trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY || trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY || trackingType === RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY || trackingType === RumTrackingType.TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY || trackingType === RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY || trackingType === RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY;
183
+ }
184
+ function isTypeTracked(rumSessionType) {
185
+ return rumSessionType !== RumTrackingType.NOT_TRACKED;
186
+ }
187
+ //# sourceMappingURL=rumSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rumSessionManager.js","names":["_browserCore","require","RUM_SESSION_KEY","exports","RumSessionPlan","WITHOUT_SESSION_REPLAY","WITH_SESSION_REPLAY","WITH_ERROR_SESSION_REPLAY","ERROR_SESSION","RumTrackingType","NOT_TRACKED","SESSION_NOT_TRACKED","TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY","TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY","TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY","TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY","TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY","TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY","startRumSessionManager","configuration","lifeCycle","sessionManager","startSessionManager","rawTrackingType","computeSessionState","expireObservable","subscribe","notify","LifeCycleEventType","SESSION_EXPIRED","renewObservable","SESSION_RENEWED","sessionStateUpdateObservable","_ref","previousState","newState","hasError","sessionEntity","findSession","ets","timeStampNow","forcedSession","isSessionForced","findTrackedSession","startTime","session","isTypeTracked","trackingType","isErrorSession","plan","id","errorSessionReplayAllowed","sessionHasError","sessionErrorTimestamp","sessionReplayAllowed","expire","keepSessionAlive","expandOrRenewSession","setErrorForSession","updateSessionState","setForcedSession","startRumSessionManagerStub","bridgeSupports","BridgeCapability","RECORDS","noop","Observable","sessionSampleRate","sessionOnErrorSampleRate","sessionReplaySampleRate","sessionReplayOnErrorSampleRate","isSession","performDraw","isSessionReplay","isErrorSessionReplay","hasValidRumSession","isTracked","rumSessionType"],"sources":["../../../rum/src/domain/rumSessionManager.js"],"sourcesContent":["import {\n performDraw,\n startSessionManager,\n LifeCycleEventType,\n noop,\n Observable,\n timeStampNow,\n bridgeSupports,\n BridgeCapability,\n SESSION_NOT_TRACKED\n} from '@cloudcare/browser-core'\n\nexport var RUM_SESSION_KEY = 'rum'\n\nexport var RumSessionPlan = {\n WITHOUT_SESSION_REPLAY: 1,\n WITH_SESSION_REPLAY: 2,\n WITH_ERROR_SESSION_REPLAY: 3\n}\nexport const ERROR_SESSION = '1'\nexport var RumTrackingType = {\n NOT_TRACKED: SESSION_NOT_TRACKED,\n // Note: the \"tracking type\" value (stored in the session cookie) does not match the \"session\n // plan\" value (sent in RUM events). This is expected, and was done to keep retrocompatibility\n // with active sessions when upgrading the SDK.\n\n TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY: '1',\n TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY: '2',\n TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY: '3',\n TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY: '4',\n TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY: '5',\n TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY: '6'\n}\n\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(\n configuration,\n RUM_SESSION_KEY,\n function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType)\n }\n )\n\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(LifeCycleEventType.SESSION_EXPIRED)\n })\n\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(LifeCycleEventType.SESSION_RENEWED)\n })\n sessionManager.sessionStateUpdateObservable.subscribe(\n ({ previousState, newState }) => {\n if (!previousState.hasError && newState.hasError) {\n const sessionEntity = sessionManager.findSession()\n if (sessionEntity) {\n sessionEntity.hasError = true\n sessionEntity.ets = newState.ets || timeStampNow()\n }\n }\n if (!previousState.forcedSession && newState.forcedSession) {\n const sessionEntity = sessionManager.findSession()\n if (sessionEntity) {\n sessionEntity.isSessionForced = true\n }\n }\n }\n )\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findSession(startTime)\n if (!session) {\n return\n }\n if (!isTypeTracked(session.trackingType) && !session.isSessionForced) {\n return\n }\n const isErrorSession =\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY ||\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY ||\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY\n\n let plan = RumSessionPlan.WITHOUT_SESSION_REPLAY\n if (\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY ||\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY\n ) {\n plan = RumSessionPlan.WITH_SESSION_REPLAY\n } else if (\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY ||\n session.trackingType ===\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY\n ) {\n plan = RumSessionPlan.WITH_ERROR_SESSION_REPLAY\n }\n\n return {\n id: session.id,\n plan: plan,\n errorSessionReplayAllowed:\n plan === RumSessionPlan.WITH_ERROR_SESSION_REPLAY,\n sessionHasError: session.hasError,\n isErrorSession: isErrorSession,\n sessionErrorTimestamp: session.ets,\n isSessionForced: session.isSessionForced,\n sessionReplayAllowed:\n plan === RumSessionPlan.WITH_SESSION_REPLAY ||\n plan === RumSessionPlan.WITH_ERROR_SESSION_REPLAY ||\n session.isSessionForced\n }\n },\n expire: sessionManager.expire,\n keepSessionAlive: sessionManager.expandOrRenewSession,\n expireObservable: sessionManager.expireObservable,\n sessionStateUpdateObservable: sessionManager.sessionStateUpdateObservable,\n setErrorForSession: () =>\n sessionManager.updateSessionState({ hasError: '1', ets: timeStampNow() }),\n setForcedSession: () => {\n sessionManager.updateSessionState({ forcedSession: '1' })\n }\n }\n}\n\n/**\n * Start a tracked replay session stub\n * It needs to be a premium plan in order to get long tasks\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n isErrorSession: false,\n sessionErrorTimestamp: 0,\n sessionReplayAllowed: bridgeSupports(BridgeCapability.RECORDS)\n ? true\n : false,\n errorSessionReplayAllowed: false,\n sessionHasError: false,\n isSessionForced: false\n }\n return {\n findTrackedSession: function () {\n return session\n },\n expire: noop,\n keepSessionAlive: noop,\n expireObservable: new Observable(),\n setErrorForSession: function () {\n session.sessionErrorTimestamp = timeStampNow()\n session.sessionHasError = true\n session.isErrorSession = true\n session.errorSessionReplayAllowed = true\n },\n setForcedSession: noop\n }\n}\n\nfunction computeSessionState(configuration, rawTrackingType) {\n const {\n sessionSampleRate,\n sessionOnErrorSampleRate,\n sessionReplaySampleRate,\n sessionReplayOnErrorSampleRate\n } = configuration\n const isSession = performDraw(sessionSampleRate)\n const isErrorSession = performDraw(sessionOnErrorSampleRate)\n const isSessionReplay = performDraw(sessionReplaySampleRate)\n const isErrorSessionReplay = performDraw(sessionReplayOnErrorSampleRate)\n var trackingType\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType\n } else if (!isErrorSession && !isSession) {\n trackingType = RumTrackingType.NOT_TRACKED\n } else if (isSession && isSessionReplay) {\n trackingType = RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY\n } else if (isSession && isErrorSessionReplay) {\n trackingType =\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY\n } else if (isSession && !isSessionReplay && !isErrorSessionReplay) {\n trackingType =\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY\n } else if (isErrorSession && isSessionReplay) {\n trackingType =\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY\n } else if (isErrorSession && isErrorSessionReplay) {\n trackingType =\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY\n } else if (isErrorSession && !isSessionReplay && !isErrorSessionReplay) {\n trackingType =\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY\n }\n // if (hasValidRumSession(rawTrackingType)) {\n // trackingType = rawTrackingType\n // } else if (\n // !performDraw(configuration.sessionSampleRate) &&\n // !performDraw(configuration.sessionOnErrorSampleRate)\n // ) {\n // trackingType = RumTrackingType.NOT_TRACKED\n // } else if (\n // !performDraw(configuration.sessionReplaySampleRate) &&\n // !performDraw(configuration.sessionReplayOnErrorSampleRate)\n // ) {\n // trackingType = RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY\n // } else if (performDraw(configuration.sessionReplayOnErrorSampleRate)) {\n // trackingType = RumTrackingType.TRACKED_WITH_ERROR_SESSION_REPLAY\n // } else {\n // trackingType = RumTrackingType.TRACKED_WITH_SESSION_REPLAY\n // }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType)\n }\n}\n\nfunction hasValidRumSession(trackingType) {\n return (\n trackingType === RumTrackingType.NOT_TRACKED ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITHOUT_SESSION_REPLAY ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_ERROR_SESSION_REPLAY ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_ERROR_SESSION_AND_WITH_SESSION_REPLAY ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITHOUT_SESSION_REPLAY ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_ERROR_SESSION_REPLAY ||\n trackingType ===\n RumTrackingType.TRACKED_WITH_SESSION_AND_WITH_SESSION_REPLAY\n )\n}\n\nfunction isTypeTracked(rumSessionType) {\n return rumSessionType !== RumTrackingType.NOT_TRACKED\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DDtraceTracer = DDtraceTracer;
7
+ var _traceIdentifier = require("./traceIdentifier");
8
+ var _browserCore = require("@cloudcare/browser-core");
9
+ /**
10
+ *
11
+ * @param {*} configuration
12
+ */
13
+ function DDtraceTracer(configuration, traceSampled) {
14
+ this._spanId = new _traceIdentifier.TraceIdentifier();
15
+ this._traceId = new _traceIdentifier.TraceIdentifier();
16
+ this._traceSampled = traceSampled;
17
+ if (configuration.generateTraceId && (0, _browserCore.getType)(configuration.generateTraceId) === 'function') {
18
+ var customTraceId = configuration.generateTraceId();
19
+ if ((0, _browserCore.getType)(customTraceId) === 'string') {
20
+ this.customTraceId = customTraceId;
21
+ }
22
+ }
23
+ }
24
+ DDtraceTracer.prototype = {
25
+ isTracingSupported: function isTracingSupported() {
26
+ return (0, _traceIdentifier.getCrypto)() !== undefined;
27
+ },
28
+ getSpanId: function getSpanId() {
29
+ return this._spanId.toDecimalString();
30
+ },
31
+ getTraceId: function getTraceId() {
32
+ if (this.customTraceId) {
33
+ return this.customTraceId;
34
+ }
35
+ return this._traceId.toDecimalString();
36
+ },
37
+ makeTracingHeaders: function makeTracingHeaders() {
38
+ return {
39
+ 'x-datadog-origin': 'rum',
40
+ 'x-datadog-parent-id': this.getSpanId(),
41
+ 'x-datadog-sampling-priority': this._traceSampled ? '2' : '-1',
42
+ 'x-datadog-trace-id': this.getTraceId()
43
+ };
44
+ }
45
+ };
46
+ //# sourceMappingURL=ddtraceTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddtraceTracer.js","names":["_traceIdentifier","require","_browserCore","DDtraceTracer","configuration","traceSampled","_spanId","TraceIdentifier","_traceId","_traceSampled","generateTraceId","getType","customTraceId","prototype","isTracingSupported","getCrypto","undefined","getSpanId","toDecimalString","getTraceId","makeTracingHeaders"],"sources":["../../../../rum/src/domain/tracing/ddtraceTracer.js"],"sourcesContent":["import { TraceIdentifier, getCrypto } from './traceIdentifier'\nimport { getType } from '@cloudcare/browser-core'\n/**\n *\n * @param {*} configuration\n */\nexport function DDtraceTracer(configuration, traceSampled) {\n this._spanId = new TraceIdentifier()\n this._traceId = new TraceIdentifier()\n this._traceSampled = traceSampled\n if (\n configuration.generateTraceId &&\n getType(configuration.generateTraceId) === 'function'\n ) {\n const customTraceId = configuration.generateTraceId()\n if (getType(customTraceId) === 'string') {\n this.customTraceId = customTraceId\n }\n }\n}\nDDtraceTracer.prototype = {\n isTracingSupported: function () {\n return getCrypto() !== undefined\n },\n getSpanId: function () {\n return this._spanId.toDecimalString()\n },\n getTraceId: function () {\n if (this.customTraceId) {\n return this.customTraceId\n }\n return this._traceId.toDecimalString()\n },\n makeTracingHeaders: function () {\n return {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': this.getSpanId(),\n 'x-datadog-sampling-priority': this._traceSampled ? '2' : '-1',\n 'x-datadog-trace-id': this.getTraceId()\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAACC,aAAa,EAAEC,YAAY,EAAE;EACzD,IAAI,CAACC,OAAO,GAAG,IAAIC,gCAAe,CAAC,CAAC;EACpC,IAAI,CAACC,QAAQ,GAAG,IAAID,gCAAe,CAAC,CAAC;EACrC,IAAI,CAACE,aAAa,GAAGJ,YAAY;EACjC,IACED,aAAa,CAACM,eAAe,IAC7B,IAAAC,oBAAO,EAACP,aAAa,CAACM,eAAe,CAAC,KAAK,UAAU,EACrD;IACA,IAAME,aAAa,GAAGR,aAAa,CAACM,eAAe,CAAC,CAAC;IACrD,IAAI,IAAAC,oBAAO,EAACC,aAAa,CAAC,KAAK,QAAQ,EAAE;MACvC,IAAI,CAACA,aAAa,GAAGA,aAAa;IACpC;EACF;AACF;AACAT,aAAa,CAACU,SAAS,GAAG;EACxBC,kBAAkB,EAAE,SAApBA,kBAAkBA,CAAA,EAAc;IAC9B,OAAO,IAAAC,0BAAS,EAAC,CAAC,KAAKC,SAAS;EAClC,CAAC;EACDC,SAAS,EAAE,SAAXA,SAASA,CAAA,EAAc;IACrB,OAAO,IAAI,CAACX,OAAO,CAACY,eAAe,CAAC,CAAC;EACvC,CAAC;EACDC,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;IACtB,IAAI,IAAI,CAACP,aAAa,EAAE;MACtB,OAAO,IAAI,CAACA,aAAa;IAC3B;IACA,OAAO,IAAI,CAACJ,QAAQ,CAACU,eAAe,CAAC,CAAC;EACxC,CAAC;EACDE,kBAAkB,EAAE,SAApBA,kBAAkBA,CAAA,EAAc;IAC9B,OAAO;MACL,kBAAkB,EAAE,KAAK;MACzB,qBAAqB,EAAE,IAAI,CAACH,SAAS,CAAC,CAAC;MACvC,6BAA6B,EAAE,IAAI,CAACR,aAAa,GAAG,GAAG,GAAG,IAAI;MAC9D,oBAAoB,EAAE,IAAI,CAACU,UAAU,CAAC;IACxC,CAAC;EACH;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = void 0;
7
+ exports.createDocumentTraceData = createDocumentTraceData;
8
+ exports.findTraceComment = findTraceComment;
9
+ exports.getDocumentTraceDataFromComment = getDocumentTraceDataFromComment;
10
+ exports.getDocumentTraceDataFromMeta = getDocumentTraceDataFromMeta;
11
+ exports.getDocumentTraceId = getDocumentTraceId;
12
+ var _browserCore = require("@cloudcare/browser-core");
13
+ var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = exports.INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * _browserCore.ONE_MINUTE;
14
+ function getDocumentTraceId(document) {
15
+ var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);
16
+ if (!data || data.traceTime <= Date.now() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {
17
+ return undefined;
18
+ }
19
+ return data.traceId;
20
+ }
21
+ function getDocumentTraceDataFromMeta(document) {
22
+ var traceIdMeta = document.querySelector('meta[name=df-trace-id]');
23
+ var traceTimeMeta = document.querySelector('meta[name=df-trace-time]');
24
+ return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);
25
+ }
26
+ function getDocumentTraceDataFromComment(document) {
27
+ var comment = findTraceComment(document);
28
+ if (!comment) {
29
+ return undefined;
30
+ }
31
+ return createDocumentTraceData((0, _browserCore.findCommaSeparatedValue)(comment, 'trace-id'), (0, _browserCore.findCommaSeparatedValue)(comment, 'trace-time'));
32
+ }
33
+ function createDocumentTraceData(traceId, rawTraceTime) {
34
+ var traceTime = rawTraceTime && Number(rawTraceTime);
35
+ if (!traceId || !traceTime) {
36
+ return undefined;
37
+ }
38
+ return {
39
+ traceId: traceId,
40
+ traceTime: traceTime
41
+ };
42
+ }
43
+ function findTraceComment(document) {
44
+ // 1. Try to find the comment as a direct child of the document
45
+ // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated
46
+ // value is not an array or string (here, a NodeList).
47
+ // tslint:disable-next-line: prefer-for-of
48
+ for (var i = 0; i < document.childNodes.length; i += 1) {
49
+ var comment = getTraceCommentFromNode(document.childNodes[i]);
50
+ if (comment) {
51
+ return comment;
52
+ }
53
+ }
54
+
55
+ // 2. If the comment is placed after the </html> tag, but have some space or new lines before or
56
+ // after, the DOM parser will lift it (and the surrounding text) at the end of the <body> tag.
57
+ // Try to look for the comment at the end of the <body> by by iterating over its child nodes in
58
+ // reverse order, stoping if we come accross a non-text node.
59
+ if (document.body) {
60
+ for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {
61
+ var node = document.body.childNodes[i];
62
+ var comment = getTraceCommentFromNode(node);
63
+ if (comment) {
64
+ return comment;
65
+ }
66
+ if (!(0, _browserCore.isTextNode)(node)) {
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ function getTraceCommentFromNode(node) {
73
+ if (node && (0, _browserCore.isCommentNode)(node)) {
74
+ var match = node.data.match(/^\s*GUANCE;(.*?)\s*$/);
75
+ if (match) {
76
+ return match[1];
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=getDocumentTraceId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentTraceId.js","names":["_browserCore","require","INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD","exports","ONE_MINUTE","getDocumentTraceId","document","data","getDocumentTraceDataFromMeta","getDocumentTraceDataFromComment","traceTime","Date","now","undefined","traceId","traceIdMeta","querySelector","traceTimeMeta","createDocumentTraceData","content","comment","findTraceComment","findCommaSeparatedValue","rawTraceTime","Number","i","childNodes","length","getTraceCommentFromNode","body","node","isTextNode","isCommentNode","match"],"sources":["../../../../rum/src/domain/tracing/getDocumentTraceId.js"],"sourcesContent":["import {\n findCommaSeparatedValue,\n ONE_MINUTE,\n isCommentNode,\n isTextNode\n} from '@cloudcare/browser-core'\n\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE\n\nexport function getDocumentTraceId(document) {\n var data =\n getDocumentTraceDataFromMeta(document) ||\n getDocumentTraceDataFromComment(document)\n\n if (\n !data ||\n data.traceTime <= Date.now() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD\n ) {\n return undefined\n }\n\n return data.traceId\n}\n\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=df-trace-id]')\n var traceTimeMeta = document.querySelector('meta[name=df-trace-time]')\n return createDocumentTraceData(\n traceIdMeta && traceIdMeta.content,\n traceTimeMeta && traceTimeMeta.content\n )\n}\n\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document)\n if (!comment) {\n return undefined\n }\n return createDocumentTraceData(\n findCommaSeparatedValue(comment, 'trace-id'),\n findCommaSeparatedValue(comment, 'trace-time')\n )\n}\n\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime)\n if (!traceId || !traceTime) {\n return undefined\n }\n\n return {\n traceId: traceId,\n traceTime: traceTime\n }\n}\n\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n // tslint:disable-next-line: prefer-for-of\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i])\n if (comment) {\n return comment\n }\n }\n\n // 2. If the comment is placed after the </html> tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the <body> tag.\n // Try to look for the comment at the end of the <body> by by iterating over its child nodes in\n // reverse order, stoping if we come accross a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i]\n var comment = getTraceCommentFromNode(node)\n if (comment) {\n return comment\n }\n if (!isTextNode(node)) {\n break\n }\n }\n }\n}\n\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = node.data.match(/^\\s*GUANCE;(.*?)\\s*$/)\n if (match) {\n return match[1]\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.JaegerTracer = JaegerTracer;
7
+ var _traceIdentifier = require("./traceIdentifier");
8
+ var _browserCore = require("@cloudcare/browser-core");
9
+ /**
10
+ *
11
+ * @param {*} configuration
12
+ */
13
+ function JaegerTracer(configuration, traceSampled) {
14
+ this._traceId = configuration.traceId128Bit ? (0, _traceIdentifier.createRandomHexIdentifier)(16) : (0, _traceIdentifier.createRandomHexIdentifier)(8);
15
+ this._spanId = (0, _traceIdentifier.createRandomHexIdentifier)(8);
16
+ this._traceSampled = traceSampled;
17
+ this.is128Bit = configuration.traceId128Bit;
18
+ if (configuration.generateTraceId && (0, _browserCore.getType)(configuration.generateTraceId) === 'function') {
19
+ var customTraceId = (0, _traceIdentifier.normalizeHexIdentifier)(configuration.generateTraceId(), [16, 32]);
20
+ if (customTraceId) {
21
+ this.customTraceId = customTraceId;
22
+ }
23
+ }
24
+ }
25
+ JaegerTracer.prototype = {
26
+ isTracingSupported: function isTracingSupported() {
27
+ return (0, _traceIdentifier.getCrypto)() !== undefined;
28
+ },
29
+ getSpanId: function getSpanId() {
30
+ return this._spanId;
31
+ },
32
+ getTraceId: function getTraceId() {
33
+ if (this.customTraceId) {
34
+ return this.customTraceId;
35
+ }
36
+ return this._traceId;
37
+ },
38
+ getUberTraceId: function getUberTraceId() {
39
+ //{trace-id}:{span-id}:{parent-span-id}:{flags}
40
+ return this.getTraceId() + ':' + this.getSpanId() + ':' + '0' + ':' + (this._traceSampled ? '1' : '0');
41
+ },
42
+ makeTracingHeaders: function makeTracingHeaders() {
43
+ return {
44
+ 'uber-trace-id': this.getUberTraceId()
45
+ };
46
+ }
47
+ };
48
+ //# sourceMappingURL=jaegerTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jaegerTracer.js","names":["_traceIdentifier","require","_browserCore","JaegerTracer","configuration","traceSampled","_traceId","traceId128Bit","createRandomHexIdentifier","_spanId","_traceSampled","is128Bit","generateTraceId","getType","customTraceId","normalizeHexIdentifier","prototype","isTracingSupported","getCrypto","undefined","getSpanId","getTraceId","getUberTraceId","makeTracingHeaders"],"sources":["../../../../rum/src/domain/tracing/jaegerTracer.js"],"sourcesContent":["import {\n createRandomHexIdentifier,\n getCrypto,\n normalizeHexIdentifier\n} from './traceIdentifier'\nimport { getType } from '@cloudcare/browser-core'\n/**\n *\n * @param {*} configuration\n */\nexport function JaegerTracer(configuration, traceSampled) {\n this._traceId = configuration.traceId128Bit\n ? createRandomHexIdentifier(16)\n : createRandomHexIdentifier(8)\n this._spanId = createRandomHexIdentifier(8)\n this._traceSampled = traceSampled\n this.is128Bit = configuration.traceId128Bit\n if (\n configuration.generateTraceId &&\n getType(configuration.generateTraceId) === 'function'\n ) {\n const customTraceId = normalizeHexIdentifier(\n configuration.generateTraceId(),\n [16, 32]\n )\n if (customTraceId) {\n this.customTraceId = customTraceId\n }\n }\n}\nJaegerTracer.prototype = {\n isTracingSupported: function () {\n return getCrypto() !== undefined\n },\n getSpanId: function () {\n return this._spanId\n },\n getTraceId: function () {\n if (this.customTraceId) {\n return this.customTraceId\n }\n return this._traceId\n },\n getUberTraceId: function () {\n //{trace-id}:{span-id}:{parent-span-id}:{flags}\n return (\n this.getTraceId() +\n ':' +\n this.getSpanId() +\n ':' +\n '0' +\n ':' +\n (this._traceSampled ? '1' : '0')\n )\n },\n makeTracingHeaders: function () {\n return {\n 'uber-trace-id': this.getUberTraceId()\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAACC,aAAa,EAAEC,YAAY,EAAE;EACxD,IAAI,CAACC,QAAQ,GAAGF,aAAa,CAACG,aAAa,GACvC,IAAAC,0CAAyB,EAAC,EAAE,CAAC,GAC7B,IAAAA,0CAAyB,EAAC,CAAC,CAAC;EAChC,IAAI,CAACC,OAAO,GAAG,IAAAD,0CAAyB,EAAC,CAAC,CAAC;EAC3C,IAAI,CAACE,aAAa,GAAGL,YAAY;EACjC,IAAI,CAACM,QAAQ,GAAGP,aAAa,CAACG,aAAa;EAC3C,IACEH,aAAa,CAACQ,eAAe,IAC7B,IAAAC,oBAAO,EAACT,aAAa,CAACQ,eAAe,CAAC,KAAK,UAAU,EACrD;IACA,IAAME,aAAa,GAAG,IAAAC,uCAAsB,EAC1CX,aAAa,CAACQ,eAAe,CAAC,CAAC,EAC/B,CAAC,EAAE,EAAE,EAAE,CACT,CAAC;IACD,IAAIE,aAAa,EAAE;MACjB,IAAI,CAACA,aAAa,GAAGA,aAAa;IACpC;EACF;AACF;AACAX,YAAY,CAACa,SAAS,GAAG;EACvBC,kBAAkB,EAAE,SAApBA,kBAAkBA,CAAA,EAAc;IAC9B,OAAO,IAAAC,0BAAS,EAAC,CAAC,KAAKC,SAAS;EAClC,CAAC;EACDC,SAAS,EAAE,SAAXA,SAASA,CAAA,EAAc;IACrB,OAAO,IAAI,CAACX,OAAO;EACrB,CAAC;EACDY,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;IACtB,IAAI,IAAI,CAACP,aAAa,EAAE;MACtB,OAAO,IAAI,CAACA,aAAa;IAC3B;IACA,OAAO,IAAI,CAACR,QAAQ;EACtB,CAAC;EACDgB,cAAc,EAAE,SAAhBA,cAAcA,CAAA,EAAc;IAC1B;IACA,OACE,IAAI,CAACD,UAAU,CAAC,CAAC,GACjB,GAAG,GACH,IAAI,CAACD,SAAS,CAAC,CAAC,GAChB,GAAG,GACH,GAAG,GACH,GAAG,IACF,IAAI,CAACV,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC;EAEpC,CAAC;EACDa,kBAAkB,EAAE,SAApBA,kBAAkBA,CAAA,EAAc;IAC9B,OAAO;MACL,eAAe,EAAE,IAAI,CAACD,cAAc,CAAC;IACvC,CAAC;EACH;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isTraceSampled = isTraceSampled;
7
+ exports.resetSampleDecisionCache = resetSampleDecisionCache;
8
+ exports.sampleUsingKnuthFactor = sampleUsingKnuthFactor;
9
+ var _browserCore = require("@cloudcare/browser-core");
10
+ var sampleDecisionCache;
11
+ function isTraceSampled(sessionId, sampleRate) {
12
+ // Shortcuts for common cases. This is not strictly necessary, but it makes the code faster for
13
+ // customers willing to ingest all traces.
14
+ if (sampleRate === 100) {
15
+ return true;
16
+ }
17
+ if (sampleRate === 0) {
18
+ return false;
19
+ }
20
+ if (sampleDecisionCache && sessionId === sampleDecisionCache.sessionId) {
21
+ return sampleDecisionCache.decision;
22
+ }
23
+ var decision;
24
+ // @ts-expect-error BigInt might not be defined in every browser we support
25
+ if (window.BigInt) {
26
+ decision = sampleUsingKnuthFactor(BigInt("0x".concat(sessionId.split('-')[4])), sampleRate);
27
+ } else {
28
+ // For simplicity, we don't use consistent sampling for browser without BigInt support
29
+ // TODO: remove this when all browser we support have BigInt support
30
+ decision = (0, _browserCore.performDraw)(sampleRate);
31
+ }
32
+ sampleDecisionCache = {
33
+ sessionId: sessionId,
34
+ decision: decision
35
+ };
36
+ return decision;
37
+ }
38
+
39
+ // Exported for tests
40
+ function resetSampleDecisionCache() {
41
+ sampleDecisionCache = undefined;
42
+ }
43
+
44
+ /**
45
+ * Perform sampling using the Knuth factor method. This method offer consistent sampling result
46
+ * based on the provided identifier.
47
+ *
48
+ * @param identifier The identifier to use for sampling.
49
+ * @param sampleRate The sample rate in percentage between 0 and 100.
50
+ */
51
+ function sampleUsingKnuthFactor(identifier, sampleRate) {
52
+ // The formula is:
53
+ //
54
+ // (identifier * knuthFactor) % 2^64 < sampleRate * 2^64
55
+ //
56
+ // Because JavaScript numbers are 64-bit floats, we can't represent 64-bit integers, and the
57
+ // modulo would be incorrect. Thus, we are using BigInts here.
58
+
59
+ // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and
60
+ // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation
61
+ // should adhere to the spec and is a bit simpler than using a 2^64-1 limit as there are less
62
+ // BigInt arithmetic to write. In practice this does not matter, as we are using floating point
63
+ // numbers in the end, and Number(2n**64n-1n) === Number(2n**64n).
64
+ var knuthFactor = BigInt('1111111111111111111');
65
+ var twoPow64 = BigInt('0x10000000000000000'); // 2n ** 64n
66
+ var hash = identifier * knuthFactor % twoPow64;
67
+ return Number(hash) <= sampleRate / 100 * Number(twoPow64);
68
+ }
69
+ //# sourceMappingURL=sampler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampler.js","names":["_browserCore","require","sampleDecisionCache","isTraceSampled","sessionId","sampleRate","decision","window","BigInt","sampleUsingKnuthFactor","concat","split","performDraw","resetSampleDecisionCache","undefined","identifier","knuthFactor","twoPow64","hash","Number"],"sources":["../../../../rum/src/domain/tracing/sampler.js"],"sourcesContent":["import { performDraw } from '@cloudcare/browser-core'\n\nlet sampleDecisionCache\n\nexport function isTraceSampled(sessionId, sampleRate) {\n // Shortcuts for common cases. This is not strictly necessary, but it makes the code faster for\n // customers willing to ingest all traces.\n if (sampleRate === 100) {\n return true\n }\n\n if (sampleRate === 0) {\n return false\n }\n\n if (sampleDecisionCache && sessionId === sampleDecisionCache.sessionId) {\n return sampleDecisionCache.decision\n }\n\n let decision\n // @ts-expect-error BigInt might not be defined in every browser we support\n if (window.BigInt) {\n decision = sampleUsingKnuthFactor(\n BigInt(`0x${sessionId.split('-')[4]}`),\n sampleRate\n )\n } else {\n // For simplicity, we don't use consistent sampling for browser without BigInt support\n // TODO: remove this when all browser we support have BigInt support\n decision = performDraw(sampleRate)\n }\n sampleDecisionCache = { sessionId, decision }\n return decision\n}\n\n// Exported for tests\nexport function resetSampleDecisionCache() {\n sampleDecisionCache = undefined\n}\n\n/**\n * Perform sampling using the Knuth factor method. This method offer consistent sampling result\n * based on the provided identifier.\n *\n * @param identifier The identifier to use for sampling.\n * @param sampleRate The sample rate in percentage between 0 and 100.\n */\nexport function sampleUsingKnuthFactor(identifier, sampleRate) {\n // The formula is:\n //\n // (identifier * knuthFactor) % 2^64 < sampleRate * 2^64\n //\n // Because JavaScript numbers are 64-bit floats, we can't represent 64-bit integers, and the\n // modulo would be incorrect. Thus, we are using BigInts here.\n\n // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and\n // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation\n // should adhere to the spec and is a bit simpler than using a 2^64-1 limit as there are less\n // BigInt arithmetic to write. In practice this does not matter, as we are using floating point\n // numbers in the end, and Number(2n**64n-1n) === Number(2n**64n).\n const knuthFactor = BigInt('1111111111111111111')\n const twoPow64 = BigInt('0x10000000000000000') // 2n ** 64n\n const hash = (identifier * knuthFactor) % twoPow64\n return Number(hash) <= (sampleRate / 100) * Number(twoPow64)\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAIC,mBAAmB;AAEhB,SAASC,cAAcA,CAACC,SAAS,EAAEC,UAAU,EAAE;EACpD;EACA;EACA,IAAIA,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO,IAAI;EACb;EAEA,IAAIA,UAAU,KAAK,CAAC,EAAE;IACpB,OAAO,KAAK;EACd;EAEA,IAAIH,mBAAmB,IAAIE,SAAS,KAAKF,mBAAmB,CAACE,SAAS,EAAE;IACtE,OAAOF,mBAAmB,CAACI,QAAQ;EACrC;EAEA,IAAIA,QAAQ;EACZ;EACA,IAAIC,MAAM,CAACC,MAAM,EAAE;IACjBF,QAAQ,GAAGG,sBAAsB,CAC/BD,MAAM,MAAAE,MAAA,CAAMN,SAAS,CAACO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EACtCN,UACF,CAAC;EACH,CAAC,MAAM;IACL;IACA;IACAC,QAAQ,GAAG,IAAAM,wBAAW,EAACP,UAAU,CAAC;EACpC;EACAH,mBAAmB,GAAG;IAAEE,SAAS,EAATA,SAAS;IAAEE,QAAQ,EAARA;EAAS,CAAC;EAC7C,OAAOA,QAAQ;AACjB;;AAEA;AACO,SAASO,wBAAwBA,CAAA,EAAG;EACzCX,mBAAmB,GAAGY,SAAS;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASL,sBAAsBA,CAACM,UAAU,EAAEV,UAAU,EAAE;EAC7D;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA,IAAMW,WAAW,GAAGR,MAAM,CAAC,qBAAqB,CAAC;EACjD,IAAMS,QAAQ,GAAGT,MAAM,CAAC,qBAAqB,CAAC,EAAC;EAC/C,IAAMU,IAAI,GAAIH,UAAU,GAAGC,WAAW,GAAIC,QAAQ;EAClD,OAAOE,MAAM,CAACD,IAAI,CAAC,IAAKb,UAAU,GAAG,GAAG,GAAIc,MAAM,CAACF,QAAQ,CAAC;AAC9D","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SkyWalkingTracer = SkyWalkingTracer;
7
+ var _browserCore = require("@cloudcare/browser-core");
8
+ // start SkyWalking
9
+ function uuid() {
10
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
11
+ /* tslint:disable */
12
+ var r = Math.random() * 16 | 0;
13
+ /* tslint:disable */
14
+ var v = c === 'x' ? r : r & 0x3 | 0x8;
15
+ return v.toString(16);
16
+ });
17
+ }
18
+ /**
19
+ *
20
+ * @param {*} traceId
21
+ * @param {*} traceSegmentId
22
+ * @param {*} applicationId
23
+ * @param {*} version
24
+ * @param {*} requestUrlHost
25
+ */
26
+ function getSkyWalkingSw8(traceId, traceSegmentId, applicationId, env, version, requestUrlHost) {
27
+ try {
28
+ var traceIdStr = String((0, _browserCore.base64Encode)(traceId));
29
+ var segmentId = String((0, _browserCore.base64Encode)(traceSegmentId));
30
+ var service = String((0, _browserCore.base64Encode)(applicationId + '_rum_' + env));
31
+ var instance = String((0, _browserCore.base64Encode)(version));
32
+ var endpoint = String((0, _browserCore.base64Encode)(window.location.href));
33
+ var peer = String((0, _browserCore.base64Encode)(requestUrlHost));
34
+ var index = '0';
35
+ // var values = `${1}-${traceIdStr}-${segmentId}-${index}-${service}-${instance}-${endpoint}-${peer}`;
36
+ return '1-' + traceIdStr + '-' + segmentId + '-' + index + '-' + service + '-' + instance + '-' + endpoint + '-' + peer;
37
+ } catch (err) {
38
+ return '';
39
+ }
40
+ }
41
+ /**
42
+ *
43
+ * @param {*} configuration
44
+ * @param {*} requestUrl
45
+ */
46
+ function SkyWalkingTracer(configuration, requestUrl, traceSampled) {
47
+ this._spanId = uuid();
48
+ this._traceId = uuid();
49
+ this._applicationId = configuration.applicationId;
50
+ this._env = configuration.env;
51
+ this._version = configuration.version;
52
+ this._urlParse = (0, _browserCore.urlParse)(requestUrl).getParse();
53
+ this._traceSampled = traceSampled;
54
+ if (configuration.generateTraceId && (0, _browserCore.getType)(configuration.generateTraceId) === 'function') {
55
+ var customTraceId = configuration.generateTraceId();
56
+ if ((0, _browserCore.getType)(customTraceId) === 'string') {
57
+ this.customTraceId = customTraceId;
58
+ }
59
+ }
60
+ }
61
+ SkyWalkingTracer.prototype = {
62
+ isTracingSupported: function isTracingSupported() {
63
+ if (this._env && this._version && this._urlParse) return true;
64
+ return false;
65
+ },
66
+ getSpanId: function getSpanId() {
67
+ return this._spanId;
68
+ },
69
+ getTraceId: function getTraceId() {
70
+ if (this.customTraceId) {
71
+ return this.customTraceId;
72
+ }
73
+ return this._traceId;
74
+ },
75
+ getSkyWalkingSw8: function getSkyWalkingSw8() {
76
+ try {
77
+ var traceIdStr = String((0, _browserCore.base64Encode)(this.getTraceId()));
78
+ var segmentId = String((0, _browserCore.base64Encode)(this.getSpanId()));
79
+ var service = String((0, _browserCore.base64Encode)(this._applicationId + '_rum_' + this._env));
80
+ var instance = String((0, _browserCore.base64Encode)(this._version));
81
+ var endpoint = String((0, _browserCore.base64Encode)(window.location.href));
82
+ var peer = String((0, _browserCore.base64Encode)(this._urlParse.Host));
83
+ var index = '0';
84
+ // var values = `${1}-${traceIdStr}-${segmentId}-${index}-${service}-${instance}-${endpoint}-${peer}`;
85
+ return (this._traceSampled ? '1' : '0') + '-' + traceIdStr + '-' + segmentId + '-' + index + '-' + service + '-' + instance + '-' + endpoint + '-' + peer;
86
+ } catch (err) {
87
+ return '';
88
+ }
89
+ },
90
+ makeTracingHeaders: function makeTracingHeaders() {
91
+ return {
92
+ sw8: this.getSkyWalkingSw8()
93
+ };
94
+ }
95
+ };
96
+ //# sourceMappingURL=skywalkingTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skywalkingTracer.js","names":["_browserCore","require","uuid","replace","c","r","Math","random","v","toString","getSkyWalkingSw8","traceId","traceSegmentId","applicationId","env","version","requestUrlHost","traceIdStr","String","base64Encode","segmentId","service","instance","endpoint","window","location","href","peer","index","err","SkyWalkingTracer","configuration","requestUrl","traceSampled","_spanId","_traceId","_applicationId","_env","_version","_urlParse","urlParse","getParse","_traceSampled","generateTraceId","getType","customTraceId","prototype","isTracingSupported","getSpanId","getTraceId","Host","makeTracingHeaders","sw8"],"sources":["../../../../rum/src/domain/tracing/skywalkingTracer.js"],"sourcesContent":["import { base64Encode, urlParse, getType } from '@cloudcare/browser-core'\n// start SkyWalking\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n /* tslint:disable */\n var r = (Math.random() * 16) | 0\n /* tslint:disable */\n var v = c === 'x' ? r : (r & 0x3) | 0x8\n\n return v.toString(16)\n })\n}\n/**\n *\n * @param {*} traceId\n * @param {*} traceSegmentId\n * @param {*} applicationId\n * @param {*} version\n * @param {*} requestUrlHost\n */\nfunction getSkyWalkingSw8(\n traceId,\n traceSegmentId,\n applicationId,\n env,\n version,\n requestUrlHost\n) {\n try {\n var traceIdStr = String(base64Encode(traceId))\n var segmentId = String(base64Encode(traceSegmentId))\n var service = String(base64Encode(applicationId + '_rum_' + env))\n var instance = String(base64Encode(version))\n var endpoint = String(base64Encode(window.location.href))\n var peer = String(base64Encode(requestUrlHost))\n var index = '0'\n // var values = `${1}-${traceIdStr}-${segmentId}-${index}-${service}-${instance}-${endpoint}-${peer}`;\n return (\n '1-' +\n traceIdStr +\n '-' +\n segmentId +\n '-' +\n index +\n '-' +\n service +\n '-' +\n instance +\n '-' +\n endpoint +\n '-' +\n peer\n )\n } catch (err) {\n return ''\n }\n}\n/**\n *\n * @param {*} configuration\n * @param {*} requestUrl\n */\nexport function SkyWalkingTracer(configuration, requestUrl, traceSampled) {\n this._spanId = uuid()\n this._traceId = uuid()\n this._applicationId = configuration.applicationId\n this._env = configuration.env\n this._version = configuration.version\n this._urlParse = urlParse(requestUrl).getParse()\n this._traceSampled = traceSampled\n if (\n configuration.generateTraceId &&\n getType(configuration.generateTraceId) === 'function'\n ) {\n const customTraceId = configuration.generateTraceId()\n if (getType(customTraceId) === 'string') {\n this.customTraceId = customTraceId\n }\n }\n}\nSkyWalkingTracer.prototype = {\n isTracingSupported: function () {\n if (this._env && this._version && this._urlParse) return true\n return false\n },\n getSpanId: function () {\n return this._spanId\n },\n getTraceId: function () {\n if (this.customTraceId) {\n return this.customTraceId\n }\n return this._traceId\n },\n getSkyWalkingSw8: function () {\n try {\n var traceIdStr = String(base64Encode(this.getTraceId()))\n var segmentId = String(base64Encode(this.getSpanId()))\n var service = String(\n base64Encode(this._applicationId + '_rum_' + this._env)\n )\n var instance = String(base64Encode(this._version))\n var endpoint = String(base64Encode(window.location.href))\n var peer = String(base64Encode(this._urlParse.Host))\n var index = '0'\n // var values = `${1}-${traceIdStr}-${segmentId}-${index}-${service}-${instance}-${endpoint}-${peer}`;\n return (\n (this._traceSampled ? '1' : '0') +\n '-' +\n traceIdStr +\n '-' +\n segmentId +\n '-' +\n index +\n '-' +\n service +\n '-' +\n instance +\n '-' +\n endpoint +\n '-' +\n peer\n )\n } catch (err) {\n return ''\n }\n },\n makeTracingHeaders: function () {\n return {\n sw8: this.getSkyWalkingSw8()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}