@kubesense/kubesense-browser-rum 1.8.0 → 2.0.0-beta.1

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 (784) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +23 -0
  3. package/bundle/chunks/kubesenseProfiler-4b8cfd8f889074788478-kubesense-rum.js +1 -0
  4. package/bundle/chunks/kubesenseRecorder-db948e96649585a2b3e9-kubesense-rum.js +1 -0
  5. package/bundle/kubesense-rum.js +1 -1
  6. package/cjs/boot/kubesenseRecorder.d.ts +6 -0
  7. package/cjs/boot/kubesenseRecorder.js +75 -0
  8. package/cjs/boot/kubesenseRecorder.js.map +1 -0
  9. package/cjs/boot/lazyLoadProfiler.d.ts +3 -4
  10. package/cjs/boot/lazyLoadProfiler.js +18 -50
  11. package/cjs/boot/lazyLoadProfiler.js.map +1 -1
  12. package/cjs/boot/lazyLoadRecorder.d.ts +3 -4
  13. package/cjs/boot/lazyLoadRecorder.js +18 -50
  14. package/cjs/boot/lazyLoadRecorder.js.map +1 -1
  15. package/cjs/boot/postStartStrategy.d.ts +4 -4
  16. package/cjs/boot/postStartStrategy.js +89 -110
  17. package/cjs/boot/postStartStrategy.js.map +1 -1
  18. package/cjs/boot/preStartStrategy.js +21 -21
  19. package/cjs/boot/preStartStrategy.js.map +1 -1
  20. package/cjs/boot/profilerApi.js +44 -50
  21. package/cjs/boot/profilerApi.js.map +1 -1
  22. package/cjs/boot/recorderApi.d.ts +1 -3
  23. package/cjs/boot/recorderApi.js +41 -71
  24. package/cjs/boot/recorderApi.js.map +1 -1
  25. package/cjs/domain/deflate/deflateEncoder.d.ts +1 -2
  26. package/cjs/domain/deflate/deflateEncoder.js +94 -108
  27. package/cjs/domain/deflate/deflateEncoder.js.map +1 -1
  28. package/cjs/domain/deflate/deflateWorker.d.ts +3 -4
  29. package/cjs/domain/deflate/deflateWorker.js +79 -90
  30. package/cjs/domain/deflate/deflateWorker.js.map +1 -1
  31. package/cjs/domain/deflate/index.d.ts +1 -1
  32. package/cjs/domain/deflate/index.js +5 -10
  33. package/cjs/domain/getSessionReplayLink.d.ts +3 -2
  34. package/cjs/domain/getSessionReplayLink.js +17 -31
  35. package/cjs/domain/getSessionReplayLink.js.map +1 -1
  36. package/cjs/domain/profiling/actionHistory.d.ts +10 -0
  37. package/cjs/domain/profiling/actionHistory.js +37 -0
  38. package/cjs/domain/profiling/actionHistory.js.map +1 -0
  39. package/cjs/domain/profiling/kubesenseProfiler.d.ts +6 -0
  40. package/cjs/domain/profiling/kubesenseProfiler.js +243 -0
  41. package/cjs/domain/profiling/kubesenseProfiler.js.map +1 -0
  42. package/cjs/domain/profiling/longTaskHistory.d.ts +11 -0
  43. package/cjs/domain/profiling/longTaskHistory.js +22 -0
  44. package/cjs/domain/profiling/longTaskHistory.js.map +1 -0
  45. package/cjs/domain/profiling/profilerDebugIds.d.ts +2 -0
  46. package/cjs/domain/profiling/profilerDebugIds.js +18 -0
  47. package/cjs/domain/profiling/profilerDebugIds.js.map +1 -0
  48. package/cjs/domain/profiling/profilingContext.js +20 -25
  49. package/cjs/domain/profiling/profilingContext.js.map +1 -1
  50. package/cjs/domain/profiling/profilingSupported.js +6 -8
  51. package/cjs/domain/profiling/profilingSupported.js.map +1 -1
  52. package/cjs/domain/profiling/quotaCheck.d.ts +9 -0
  53. package/cjs/domain/profiling/quotaCheck.js +66 -0
  54. package/cjs/domain/profiling/quotaCheck.js.map +1 -0
  55. package/cjs/domain/profiling/test-utils/mockedTrace.d.ts +1 -1
  56. package/cjs/domain/profiling/transport/buildProfileEvent.d.ts +38 -0
  57. package/cjs/domain/profiling/transport/buildProfileEvent.js +91 -0
  58. package/cjs/domain/profiling/transport/buildProfileEvent.js.map +1 -0
  59. package/cjs/domain/profiling/transport/formDataEmitter.d.ts +5 -0
  60. package/cjs/domain/profiling/transport/formDataEmitter.js +17 -0
  61. package/cjs/domain/profiling/transport/formDataEmitter.js.map +1 -0
  62. package/cjs/domain/profiling/transport/profilingBridge.d.ts +2 -0
  63. package/cjs/domain/profiling/transport/profilingBridge.js +12 -0
  64. package/cjs/domain/profiling/transport/profilingBridge.js.map +1 -0
  65. package/cjs/domain/profiling/{types/rumProfiler.types.d.ts → types.d.ts} +13 -24
  66. package/cjs/domain/profiling/utils/getCustomOrDefaultViewName.js +5 -5
  67. package/cjs/domain/profiling/utils/getCustomOrDefaultViewName.js.map +1 -1
  68. package/cjs/domain/profiling/utils/getDefaultViewName.js +6 -10
  69. package/cjs/domain/profiling/utils/getDefaultViewName.js.map +1 -1
  70. package/cjs/domain/profiling/vitalHistory.d.ts +13 -0
  71. package/cjs/domain/profiling/vitalHistory.js +56 -0
  72. package/cjs/domain/profiling/vitalHistory.js.map +1 -0
  73. package/cjs/domain/record/assembly.d.ts +2 -1
  74. package/cjs/domain/record/assembly.js +15 -14
  75. package/cjs/domain/record/assembly.js.map +1 -1
  76. package/cjs/domain/record/canvas/canvasHash.d.ts +2 -0
  77. package/cjs/domain/record/canvas/canvasHash.js +33 -0
  78. package/cjs/domain/record/canvas/canvasHash.js.map +1 -0
  79. package/cjs/domain/record/canvas/canvasManager.d.ts +42 -0
  80. package/cjs/domain/record/canvas/canvasManager.js +99 -0
  81. package/cjs/domain/record/canvas/canvasManager.js.map +1 -0
  82. package/cjs/domain/record/canvas/canvasSnapshot.d.ts +8 -0
  83. package/cjs/domain/record/canvas/canvasSnapshot.js +40 -0
  84. package/cjs/domain/record/canvas/canvasSnapshot.js.map +1 -0
  85. package/cjs/domain/record/canvas/canvasUtils.d.ts +2 -0
  86. package/cjs/domain/record/canvas/canvasUtils.js +14 -0
  87. package/cjs/domain/record/canvas/canvasUtils.js.map +1 -0
  88. package/cjs/domain/record/elementsScrollPositions.js +17 -20
  89. package/cjs/domain/record/elementsScrollPositions.js.map +1 -1
  90. package/cjs/domain/record/encoding/changeDecoder.d.ts +39 -0
  91. package/cjs/domain/record/encoding/changeDecoder.js +152 -0
  92. package/cjs/domain/record/encoding/changeDecoder.js.map +1 -0
  93. package/cjs/domain/record/encoding/changeEncoder.d.ts +39 -0
  94. package/cjs/domain/record/encoding/changeEncoder.js +146 -0
  95. package/cjs/domain/record/encoding/changeEncoder.js.map +1 -0
  96. package/cjs/domain/record/encoding/index.d.ts +10 -0
  97. package/cjs/domain/record/encoding/itemIds.d.ts +32 -0
  98. package/cjs/domain/record/encoding/itemIds.js +49 -0
  99. package/cjs/domain/record/encoding/itemIds.js.map +1 -0
  100. package/cjs/domain/record/encoding/roles.d.ts +52 -0
  101. package/cjs/domain/record/encoding/roles.js +66 -0
  102. package/cjs/domain/record/encoding/roles.js.map +1 -0
  103. package/cjs/domain/record/encoding/stringIds.d.ts +15 -0
  104. package/cjs/domain/record/encoding/stringIds.js +47 -0
  105. package/cjs/domain/record/encoding/stringIds.js.map +1 -0
  106. package/cjs/domain/record/encoding/stringTable.d.ts +15 -0
  107. package/cjs/domain/record/encoding/stringTable.js +38 -0
  108. package/cjs/domain/record/encoding/stringTable.js.map +1 -0
  109. package/cjs/domain/record/eventsUtils.js +9 -10
  110. package/cjs/domain/record/eventsUtils.js.map +1 -1
  111. package/cjs/domain/record/index.d.ts +5 -2
  112. package/cjs/domain/record/index.js +13 -17
  113. package/cjs/domain/record/internalApi.d.ts +6 -6
  114. package/cjs/domain/record/internalApi.js +55 -49
  115. package/cjs/domain/record/internalApi.js.map +1 -1
  116. package/cjs/domain/record/mutationBatch.d.ts +1 -0
  117. package/cjs/domain/record/mutationBatch.js +38 -39
  118. package/cjs/domain/record/mutationBatch.js.map +1 -1
  119. package/cjs/domain/record/record.d.ts +7 -1
  120. package/cjs/domain/record/record.js +76 -87
  121. package/cjs/domain/record/record.js.map +1 -1
  122. package/cjs/domain/record/record.types.d.ts +1 -0
  123. package/cjs/domain/record/recordingScope.d.ts +7 -3
  124. package/cjs/domain/record/recordingScope.js +25 -11
  125. package/cjs/domain/record/recordingScope.js.map +1 -1
  126. package/cjs/domain/record/serialization/index.d.ts +4 -2
  127. package/cjs/domain/record/serialization/index.js +16 -18
  128. package/cjs/domain/record/serialization/insertionCursor.d.ts +57 -0
  129. package/cjs/domain/record/serialization/insertionCursor.js +55 -0
  130. package/cjs/domain/record/serialization/insertionCursor.js.map +1 -0
  131. package/cjs/domain/record/serialization/serialization.types.d.ts +0 -6
  132. package/cjs/domain/record/serialization/serializationStats.js +26 -25
  133. package/cjs/domain/record/serialization/serializationStats.js.map +1 -1
  134. package/cjs/domain/record/serialization/serializationTransaction.d.ts +44 -22
  135. package/cjs/domain/record/serialization/serializationTransaction.js +90 -36
  136. package/cjs/domain/record/serialization/serializationTransaction.js.map +1 -1
  137. package/cjs/domain/record/serialization/serializationUtils.d.ts +0 -1
  138. package/cjs/domain/record/serialization/serializationUtils.js +46 -75
  139. package/cjs/domain/record/serialization/serializationUtils.js.map +1 -1
  140. package/cjs/domain/record/serialization/serializeAttribute.js +24 -39
  141. package/cjs/domain/record/serialization/serializeAttribute.js.map +1 -1
  142. package/cjs/domain/record/serialization/serializeAttributes.d.ts +2 -2
  143. package/cjs/domain/record/serialization/serializeAttributes.js +100 -152
  144. package/cjs/domain/record/serialization/serializeAttributes.js.map +1 -1
  145. package/cjs/domain/record/serialization/serializeFullSnapshot.d.ts +5 -0
  146. package/cjs/domain/record/serialization/serializeFullSnapshot.js +14 -0
  147. package/cjs/domain/record/serialization/serializeFullSnapshot.js.map +1 -0
  148. package/cjs/domain/record/serialization/serializeMutations.d.ts +5 -0
  149. package/cjs/domain/record/serialization/serializeMutations.js +152 -0
  150. package/cjs/domain/record/serialization/serializeMutations.js.map +1 -0
  151. package/cjs/domain/record/serialization/serializeNode.d.ts +3 -6
  152. package/cjs/domain/record/serialization/serializeNode.js +116 -144
  153. package/cjs/domain/record/serialization/serializeNode.js.map +1 -1
  154. package/cjs/domain/record/shadowRootsController.d.ts +2 -2
  155. package/cjs/domain/record/shadowRootsController.js +37 -42
  156. package/cjs/domain/record/shadowRootsController.js.map +1 -1
  157. package/cjs/domain/record/startFullSnapshots.d.ts +1 -1
  158. package/cjs/domain/record/startFullSnapshots.js +38 -54
  159. package/cjs/domain/record/startFullSnapshots.js.map +1 -1
  160. package/cjs/domain/record/trackers/index.d.ts +2 -1
  161. package/cjs/domain/record/trackers/index.js +25 -27
  162. package/cjs/domain/record/trackers/trackCanvasCapture.d.ts +3 -0
  163. package/cjs/domain/record/trackers/trackCanvasCapture.js +102 -0
  164. package/cjs/domain/record/trackers/trackCanvasCapture.js.map +1 -0
  165. package/cjs/domain/record/trackers/trackCanvasContent.d.ts +3 -0
  166. package/cjs/domain/record/trackers/trackCanvasContent.js +31 -0
  167. package/cjs/domain/record/trackers/trackCanvasContent.js.map +1 -0
  168. package/cjs/domain/record/trackers/trackFocus.d.ts +1 -2
  169. package/cjs/domain/record/trackers/trackFocus.js +15 -13
  170. package/cjs/domain/record/trackers/trackFocus.js.map +1 -1
  171. package/cjs/domain/record/trackers/trackInput.d.ts +2 -2
  172. package/cjs/domain/record/trackers/trackInput.js +129 -102
  173. package/cjs/domain/record/trackers/trackInput.js.map +1 -1
  174. package/cjs/domain/record/trackers/trackMediaInteraction.js +22 -26
  175. package/cjs/domain/record/trackers/trackMediaInteraction.js.map +1 -1
  176. package/cjs/domain/record/trackers/trackMouseInteraction.js +47 -54
  177. package/cjs/domain/record/trackers/trackMouseInteraction.js.map +1 -1
  178. package/cjs/domain/record/trackers/trackMove.js +43 -49
  179. package/cjs/domain/record/trackers/trackMove.js.map +1 -1
  180. package/cjs/domain/record/trackers/trackMutation.d.ts +3 -3
  181. package/cjs/domain/record/trackers/trackMutation.js +42 -267
  182. package/cjs/domain/record/trackers/trackMutation.js.map +1 -1
  183. package/cjs/domain/record/trackers/trackScroll.js +36 -44
  184. package/cjs/domain/record/trackers/trackScroll.js.map +1 -1
  185. package/cjs/domain/record/trackers/trackStyleSheet.js +75 -84
  186. package/cjs/domain/record/trackers/trackStyleSheet.js.map +1 -1
  187. package/cjs/domain/record/trackers/trackViewEnd.js +17 -17
  188. package/cjs/domain/record/trackers/trackViewEnd.js.map +1 -1
  189. package/cjs/domain/record/trackers/trackViewportResize.d.ts +2 -3
  190. package/cjs/domain/record/trackers/trackViewportResize.js +36 -42
  191. package/cjs/domain/record/trackers/trackViewportResize.js.map +1 -1
  192. package/cjs/domain/record/viewports.js +32 -50
  193. package/cjs/domain/record/viewports.js.map +1 -1
  194. package/cjs/domain/replayStats.d.ts +1 -0
  195. package/cjs/domain/replayStats.js +36 -44
  196. package/cjs/domain/replayStats.js.map +1 -1
  197. package/cjs/domain/scriptLoadingError.js +15 -22
  198. package/cjs/domain/scriptLoadingError.js.map +1 -1
  199. package/cjs/domain/segmentCollection/buildReplayPayload.js +22 -23
  200. package/cjs/domain/segmentCollection/buildReplayPayload.js.map +1 -1
  201. package/cjs/domain/segmentCollection/buildResourcePayload.d.ts +5 -0
  202. package/cjs/domain/segmentCollection/buildResourcePayload.js +19 -0
  203. package/cjs/domain/segmentCollection/buildResourcePayload.js.map +1 -0
  204. package/cjs/domain/segmentCollection/index.d.ts +3 -0
  205. package/cjs/domain/segmentCollection/index.js +14 -11
  206. package/cjs/domain/segmentCollection/replayResourceCollection.d.ts +10 -0
  207. package/cjs/domain/segmentCollection/replayResourceCollection.js +52 -0
  208. package/cjs/domain/segmentCollection/replayResourceCollection.js.map +1 -0
  209. package/cjs/domain/segmentCollection/segment.js +50 -80
  210. package/cjs/domain/segmentCollection/segment.js.map +1 -1
  211. package/cjs/domain/segmentCollection/segmentCollection.d.ts +4 -4
  212. package/cjs/domain/segmentCollection/segmentCollection.js +87 -105
  213. package/cjs/domain/segmentCollection/segmentCollection.js.map +1 -1
  214. package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.d.ts +16 -0
  215. package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.js +29 -0
  216. package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.js.map +1 -0
  217. package/cjs/domain/segmentCollection/startSegmentTelemetry.js +40 -42
  218. package/cjs/domain/segmentCollection/startSegmentTelemetry.js.map +1 -1
  219. package/cjs/domain/startRecordBridge.js +10 -14
  220. package/cjs/domain/startRecordBridge.js.map +1 -1
  221. package/cjs/domain/startRecorderInitTelemetry.js +42 -50
  222. package/cjs/domain/startRecorderInitTelemetry.js.map +1 -1
  223. package/cjs/entries/internal.d.ts +11 -2
  224. package/cjs/entries/internal.js +47 -28
  225. package/cjs/entries/internalSynthetics.js +26 -24
  226. package/cjs/entries/internalSynthetics.js.map +1 -1
  227. package/cjs/entries/main.d.ts +5 -3
  228. package/cjs/entries/main.js +50 -31
  229. package/cjs/entries/main.js.map +1 -1
  230. package/cjs/types/index.d.ts +1 -0
  231. package/cjs/types/profiling.d.ts +313 -0
  232. package/cjs/types/sessionReplay.d.ts +381 -3
  233. package/cjs/types/sessionReplayConstants.d.ts +57 -0
  234. package/cjs/types/sessionReplayConstants.js +104 -47
  235. package/cjs/types/sessionReplayConstants.js.map +1 -1
  236. package/esm/boot/kubesenseRecorder.mjs +75 -0
  237. package/esm/boot/kubesenseRecorder.mjs.map +1 -0
  238. package/esm/boot/lazyLoadProfiler.mjs +24 -0
  239. package/esm/boot/lazyLoadProfiler.mjs.map +1 -0
  240. package/esm/boot/lazyLoadRecorder.mjs +24 -0
  241. package/esm/boot/lazyLoadRecorder.mjs.map +1 -0
  242. package/esm/boot/postStartStrategy.mjs +97 -0
  243. package/esm/boot/postStartStrategy.mjs.map +1 -0
  244. package/esm/boot/preStartStrategy.mjs +24 -0
  245. package/esm/boot/preStartStrategy.mjs.map +1 -0
  246. package/esm/boot/profilerApi.mjs +47 -0
  247. package/esm/boot/profilerApi.mjs.map +1 -0
  248. package/esm/boot/recorderApi.mjs +43 -0
  249. package/esm/boot/recorderApi.mjs.map +1 -0
  250. package/esm/domain/deflate/deflateEncoder.mjs +96 -0
  251. package/esm/domain/deflate/deflateEncoder.mjs.map +1 -0
  252. package/esm/domain/deflate/deflateWorker.mjs +90 -0
  253. package/esm/domain/deflate/deflateWorker.mjs.map +1 -0
  254. package/esm/domain/deflate/index.mjs +3 -0
  255. package/esm/domain/getSessionReplayLink.mjs +21 -0
  256. package/esm/domain/getSessionReplayLink.mjs.map +1 -0
  257. package/esm/domain/profiling/actionHistory.mjs +36 -0
  258. package/esm/domain/profiling/actionHistory.mjs.map +1 -0
  259. package/esm/domain/profiling/kubesenseProfiler.mjs +242 -0
  260. package/esm/domain/profiling/kubesenseProfiler.mjs.map +1 -0
  261. package/esm/domain/profiling/longTaskHistory.mjs +21 -0
  262. package/esm/domain/profiling/longTaskHistory.mjs.map +1 -0
  263. package/esm/domain/profiling/profilerDebugIds.mjs +18 -0
  264. package/esm/domain/profiling/profilerDebugIds.mjs.map +1 -0
  265. package/esm/domain/profiling/profilingContext.mjs +23 -0
  266. package/esm/domain/profiling/profilingContext.mjs.map +1 -0
  267. package/esm/domain/profiling/profilingSupported.mjs +9 -0
  268. package/esm/domain/profiling/profilingSupported.mjs.map +1 -0
  269. package/esm/domain/profiling/quotaCheck.mjs +66 -0
  270. package/esm/domain/profiling/quotaCheck.mjs.map +1 -0
  271. package/esm/domain/profiling/transport/buildProfileEvent.mjs +90 -0
  272. package/esm/domain/profiling/transport/buildProfileEvent.mjs.map +1 -0
  273. package/esm/domain/profiling/transport/formDataEmitter.mjs +17 -0
  274. package/esm/domain/profiling/transport/formDataEmitter.mjs.map +1 -0
  275. package/esm/domain/profiling/transport/profilingBridge.mjs +12 -0
  276. package/esm/domain/profiling/transport/profilingBridge.mjs.map +1 -0
  277. package/esm/domain/profiling/utils/getCustomOrDefaultViewName.mjs +7 -0
  278. package/esm/domain/profiling/utils/getCustomOrDefaultViewName.mjs.map +1 -0
  279. package/esm/domain/profiling/utils/getDefaultViewName.mjs +10 -0
  280. package/esm/domain/profiling/utils/getDefaultViewName.mjs.map +1 -0
  281. package/esm/domain/profiling/vitalHistory.mjs +55 -0
  282. package/esm/domain/profiling/vitalHistory.mjs.map +1 -0
  283. package/esm/domain/record/assembly.mjs +17 -0
  284. package/esm/domain/record/assembly.mjs.map +1 -0
  285. package/esm/domain/record/canvas/canvasHash.mjs +33 -0
  286. package/esm/domain/record/canvas/canvasHash.mjs.map +1 -0
  287. package/esm/domain/record/canvas/canvasManager.mjs +99 -0
  288. package/esm/domain/record/canvas/canvasManager.mjs.map +1 -0
  289. package/esm/domain/record/canvas/canvasSnapshot.mjs +38 -0
  290. package/esm/domain/record/canvas/canvasSnapshot.mjs.map +1 -0
  291. package/esm/domain/record/canvas/canvasUtils.mjs +13 -0
  292. package/esm/domain/record/canvas/canvasUtils.mjs.map +1 -0
  293. package/esm/domain/record/elementsScrollPositions.mjs +20 -0
  294. package/esm/domain/record/elementsScrollPositions.mjs.map +1 -0
  295. package/esm/domain/record/encoding/changeDecoder.mjs +152 -0
  296. package/esm/domain/record/encoding/changeDecoder.mjs.map +1 -0
  297. package/esm/domain/record/encoding/changeEncoder.mjs +146 -0
  298. package/esm/domain/record/encoding/changeEncoder.mjs.map +1 -0
  299. package/esm/domain/record/encoding/itemIds.mjs +47 -0
  300. package/esm/domain/record/encoding/itemIds.mjs.map +1 -0
  301. package/esm/domain/record/encoding/roles.mjs +64 -0
  302. package/esm/domain/record/encoding/roles.mjs.map +1 -0
  303. package/esm/domain/record/encoding/stringIds.mjs +47 -0
  304. package/esm/domain/record/encoding/stringIds.mjs.map +1 -0
  305. package/esm/domain/record/encoding/stringTable.mjs +38 -0
  306. package/esm/domain/record/encoding/stringTable.mjs.map +1 -0
  307. package/esm/domain/record/eventsUtils.mjs +13 -0
  308. package/esm/domain/record/eventsUtils.mjs.map +1 -0
  309. package/esm/domain/record/index.mjs +8 -0
  310. package/esm/domain/record/internalApi.mjs +62 -0
  311. package/esm/domain/record/internalApi.mjs.map +1 -0
  312. package/esm/domain/record/mutationBatch.mjs +43 -0
  313. package/esm/domain/record/mutationBatch.mjs.map +1 -0
  314. package/esm/domain/record/record.mjs +79 -0
  315. package/esm/domain/record/record.mjs.map +1 -0
  316. package/esm/domain/record/recordingScope.mjs +27 -0
  317. package/esm/domain/record/recordingScope.mjs.map +1 -0
  318. package/esm/domain/record/serialization/index.mjs +9 -0
  319. package/esm/domain/record/serialization/insertionCursor.mjs +54 -0
  320. package/esm/domain/record/serialization/insertionCursor.mjs.map +1 -0
  321. package/esm/domain/record/serialization/serializationStats.mjs +31 -0
  322. package/esm/domain/record/serialization/serializationStats.mjs.map +1 -0
  323. package/esm/domain/record/serialization/serializationTransaction.mjs +92 -0
  324. package/esm/domain/record/serialization/serializationTransaction.mjs.map +1 -0
  325. package/esm/domain/record/serialization/serializationUtils.mjs +53 -0
  326. package/esm/domain/record/serialization/serializationUtils.mjs.map +1 -0
  327. package/esm/domain/record/serialization/serializeAttribute.mjs +26 -0
  328. package/esm/domain/record/serialization/serializeAttribute.mjs.map +1 -0
  329. package/esm/domain/record/serialization/serializeAttributes.mjs +113 -0
  330. package/esm/domain/record/serialization/serializeAttributes.mjs.map +1 -0
  331. package/esm/domain/record/serialization/serializeFullSnapshot.mjs +14 -0
  332. package/esm/domain/record/serialization/serializeFullSnapshot.mjs.map +1 -0
  333. package/esm/domain/record/serialization/serializeMutations.mjs +152 -0
  334. package/esm/domain/record/serialization/serializeMutations.mjs.map +1 -0
  335. package/esm/domain/record/serialization/serializeNode.mjs +126 -0
  336. package/esm/domain/record/serialization/serializeNode.mjs.map +1 -0
  337. package/esm/domain/record/shadowRootsController.mjs +40 -0
  338. package/esm/domain/record/shadowRootsController.mjs.map +1 -0
  339. package/esm/domain/record/startFullSnapshots.mjs +42 -0
  340. package/esm/domain/record/startFullSnapshots.mjs.map +1 -0
  341. package/esm/domain/record/trackers/index.mjs +13 -0
  342. package/esm/domain/record/trackers/trackCanvasCapture.mjs +102 -0
  343. package/esm/domain/record/trackers/trackCanvasCapture.mjs.map +1 -0
  344. package/esm/domain/record/trackers/trackCanvasContent.mjs +31 -0
  345. package/esm/domain/record/trackers/trackCanvasContent.mjs.map +1 -0
  346. package/esm/domain/record/trackers/trackFocus.mjs +17 -0
  347. package/esm/domain/record/trackers/trackFocus.mjs.map +1 -0
  348. package/esm/domain/record/trackers/trackInput.mjs +131 -0
  349. package/esm/domain/record/trackers/trackInput.mjs.map +1 -0
  350. package/esm/domain/record/trackers/trackMediaInteraction.mjs +25 -0
  351. package/esm/domain/record/trackers/trackMediaInteraction.mjs.map +1 -0
  352. package/esm/domain/record/trackers/trackMouseInteraction.mjs +52 -0
  353. package/esm/domain/record/trackers/trackMouseInteraction.mjs.map +1 -0
  354. package/esm/domain/record/trackers/trackMove.mjs +48 -0
  355. package/esm/domain/record/trackers/trackMove.mjs.map +1 -0
  356. package/esm/domain/record/trackers/trackMutation.mjs +45 -0
  357. package/esm/domain/record/trackers/trackMutation.mjs.map +1 -0
  358. package/esm/domain/record/trackers/trackScroll.mjs +40 -0
  359. package/esm/domain/record/trackers/trackScroll.mjs.map +1 -0
  360. package/esm/domain/record/trackers/trackStyleSheet.mjs +79 -0
  361. package/esm/domain/record/trackers/trackStyleSheet.mjs.map +1 -0
  362. package/esm/domain/record/trackers/trackViewEnd.mjs +20 -0
  363. package/esm/domain/record/trackers/trackViewEnd.mjs.map +1 -0
  364. package/esm/domain/record/trackers/trackViewportResize.mjs +39 -0
  365. package/esm/domain/record/trackers/trackViewportResize.mjs.map +1 -0
  366. package/esm/domain/record/viewports.mjs +41 -0
  367. package/esm/domain/record/viewports.mjs.map +1 -0
  368. package/esm/domain/replayStats.mjs +46 -0
  369. package/esm/domain/replayStats.mjs.map +1 -0
  370. package/esm/domain/scriptLoadingError.mjs +19 -0
  371. package/esm/domain/scriptLoadingError.mjs.map +1 -0
  372. package/esm/domain/segmentCollection/buildReplayPayload.mjs +25 -0
  373. package/esm/domain/segmentCollection/buildReplayPayload.mjs.map +1 -0
  374. package/esm/domain/segmentCollection/buildResourcePayload.mjs +19 -0
  375. package/esm/domain/segmentCollection/buildResourcePayload.mjs.map +1 -0
  376. package/esm/domain/segmentCollection/index.mjs +5 -0
  377. package/esm/domain/segmentCollection/replayResourceCollection.mjs +52 -0
  378. package/esm/domain/segmentCollection/replayResourceCollection.mjs.map +1 -0
  379. package/esm/domain/segmentCollection/segment.mjs +52 -0
  380. package/esm/domain/segmentCollection/segment.mjs.map +1 -0
  381. package/esm/domain/segmentCollection/segmentCollection.mjs +87 -0
  382. package/esm/domain/segmentCollection/segmentCollection.mjs.map +1 -0
  383. package/esm/domain/segmentCollection/startDroppedSegmentRecovery.mjs +28 -0
  384. package/esm/domain/segmentCollection/startDroppedSegmentRecovery.mjs.map +1 -0
  385. package/esm/domain/segmentCollection/startSegmentTelemetry.mjs +45 -0
  386. package/esm/domain/segmentCollection/startSegmentTelemetry.mjs.map +1 -0
  387. package/esm/domain/startRecordBridge.mjs +13 -0
  388. package/esm/domain/startRecordBridge.mjs.map +1 -0
  389. package/esm/domain/startRecorderInitTelemetry.mjs +47 -0
  390. package/esm/domain/startRecorderInitTelemetry.mjs.map +1 -0
  391. package/esm/entries/internal.mjs +8 -0
  392. package/esm/entries/internalSynthetics.mjs +22 -0
  393. package/esm/entries/internalSynthetics.mjs.map +1 -0
  394. package/esm/entries/main.mjs +35 -0
  395. package/esm/entries/main.mjs.map +1 -0
  396. package/esm/types/sessionReplayConstants.mjs +97 -0
  397. package/esm/types/sessionReplayConstants.mjs.map +1 -0
  398. package/internal/package.json +1 -1
  399. package/internal-synthetics/package.json +1 -1
  400. package/package.json +26 -15
  401. package/src/boot/kubesenseRecorder.ts +134 -0
  402. package/src/boot/lazyLoadProfiler.ts +6 -7
  403. package/src/boot/lazyLoadRecorder.ts +6 -7
  404. package/src/boot/postStartStrategy.ts +18 -16
  405. package/src/boot/profilerApi.ts +29 -19
  406. package/src/boot/recorderApi.ts +6 -21
  407. package/src/domain/deflate/deflateEncoder.ts +3 -8
  408. package/src/domain/deflate/deflateWorker.ts +8 -13
  409. package/src/domain/deflate/index.ts +1 -0
  410. package/src/domain/getSessionReplayLink.ts +15 -11
  411. package/src/domain/profiling/actionHistory.ts +66 -0
  412. package/src/domain/profiling/{profiler.ts → kubesenseProfiler.ts} +166 -79
  413. package/src/domain/profiling/longTaskHistory.ts +45 -0
  414. package/src/domain/profiling/profilerDebugIds.ts +17 -0
  415. package/src/domain/profiling/profilingContext.ts +8 -3
  416. package/src/domain/profiling/profilingSupported.ts +2 -7
  417. package/src/domain/profiling/quotaCheck.ts +89 -0
  418. package/src/domain/profiling/test-utils/mockedTrace.ts +1 -2
  419. package/src/domain/profiling/transport/buildProfileEvent.ts +143 -0
  420. package/src/domain/profiling/transport/formDataEmitter.ts +17 -0
  421. package/src/domain/profiling/transport/profilingBridge.ts +9 -0
  422. package/src/domain/profiling/{types/rumProfiler.types.ts → types.ts} +14 -26
  423. package/src/domain/profiling/vitalHistory.ts +106 -0
  424. package/src/domain/record/assembly.ts +5 -3
  425. package/src/domain/record/canvas/canvasHash.ts +54 -0
  426. package/src/domain/record/canvas/canvasManager.ts +175 -0
  427. package/src/domain/record/canvas/canvasSnapshot.ts +52 -0
  428. package/src/domain/record/canvas/canvasUtils.ts +11 -0
  429. package/src/domain/record/encoding/changeDecoder.ts +287 -0
  430. package/src/domain/record/encoding/changeEncoder.ts +327 -0
  431. package/src/domain/record/encoding/index.ts +19 -0
  432. package/src/domain/record/encoding/itemIds.ts +84 -0
  433. package/src/domain/record/encoding/roles.ts +136 -0
  434. package/src/domain/record/encoding/stringIds.ts +70 -0
  435. package/src/domain/record/encoding/stringTable.ts +68 -0
  436. package/src/domain/record/index.ts +5 -2
  437. package/src/domain/record/internalApi.ts +21 -18
  438. package/src/domain/record/mutationBatch.ts +14 -3
  439. package/src/domain/record/record.ts +35 -16
  440. package/src/domain/record/record.types.ts +1 -0
  441. package/src/domain/record/recordingScope.ts +28 -5
  442. package/src/domain/record/serialization/index.ts +4 -2
  443. package/src/domain/record/serialization/insertionCursor.ts +131 -0
  444. package/src/domain/record/serialization/serialization.types.ts +0 -16
  445. package/src/domain/record/serialization/serializationTransaction.ts +191 -37
  446. package/src/domain/record/serialization/serializationUtils.ts +1 -15
  447. package/src/domain/record/serialization/serializeAttributes.ts +36 -32
  448. package/src/domain/record/serialization/serializeFullSnapshot.ts +26 -0
  449. package/src/domain/record/serialization/serializeMutations.ts +357 -0
  450. package/src/domain/record/serialization/serializeNode.ts +200 -164
  451. package/src/domain/record/shadowRootsController.ts +4 -3
  452. package/src/domain/record/startFullSnapshots.ts +28 -41
  453. package/src/domain/record/trackers/index.ts +2 -1
  454. package/src/domain/record/trackers/trackCanvasCapture.ts +137 -0
  455. package/src/domain/record/trackers/trackCanvasContent.ts +46 -0
  456. package/src/domain/record/trackers/trackFocus.ts +4 -4
  457. package/src/domain/record/trackers/trackInput.ts +146 -41
  458. package/src/domain/record/trackers/trackMediaInteraction.ts +0 -1
  459. package/src/domain/record/trackers/trackMouseInteraction.ts +1 -2
  460. package/src/domain/record/trackers/trackMove.ts +0 -1
  461. package/src/domain/record/trackers/trackMutation.ts +17 -355
  462. package/src/domain/record/trackers/trackScroll.ts +1 -1
  463. package/src/domain/record/trackers/trackStyleSheet.ts +1 -1
  464. package/src/domain/record/trackers/trackViewEnd.ts +1 -1
  465. package/src/domain/record/trackers/trackViewportResize.ts +7 -16
  466. package/src/domain/record/trackers/tracker.types.ts +1 -1
  467. package/src/domain/replayStats.ts +5 -0
  468. package/src/domain/scriptLoadingError.ts +2 -1
  469. package/src/domain/segmentCollection/buildResourcePayload.ts +20 -0
  470. package/src/domain/segmentCollection/index.ts +3 -0
  471. package/src/domain/segmentCollection/replayResourceCollection.ts +79 -0
  472. package/src/domain/segmentCollection/segment.ts +2 -1
  473. package/src/domain/segmentCollection/segmentCollection.ts +14 -13
  474. package/src/domain/segmentCollection/startDroppedSegmentRecovery.ts +37 -0
  475. package/src/domain/segmentCollection/startSegmentTelemetry.ts +16 -2
  476. package/src/domain/startRecorderInitTelemetry.ts +5 -3
  477. package/src/entries/internal.ts +13 -2
  478. package/src/entries/internalSynthetics.ts +3 -4
  479. package/src/entries/main.ts +23 -14
  480. package/src/types/index.ts +1 -0
  481. package/src/types/profiling.ts +315 -0
  482. package/src/types/sessionReplay.ts +395 -3
  483. package/src/types/sessionReplayConstants.ts +109 -0
  484. package/bundle/chunks/profiler-6f621c66a29d9f39a9bd-kubesense-rum.js +0 -1
  485. package/bundle/chunks/recorder-c73b8d42b98d4a01f120-kubesense-rum.js +0 -1
  486. package/cjs/boot/isBrowserSupported.d.ts +0 -4
  487. package/cjs/boot/isBrowserSupported.js +0 -17
  488. package/cjs/boot/isBrowserSupported.js.map +0 -1
  489. package/cjs/boot/startRecording.d.ts +0 -6
  490. package/cjs/boot/startRecording.js +0 -45
  491. package/cjs/boot/startRecording.js.map +0 -1
  492. package/cjs/domain/deflate/index.js.map +0 -1
  493. package/cjs/domain/profiling/profiler.d.ts +0 -7
  494. package/cjs/domain/profiling/profiler.js +0 -244
  495. package/cjs/domain/profiling/profiler.js.map +0 -1
  496. package/cjs/domain/profiling/test-utils/mockedTrace.js +0 -57
  497. package/cjs/domain/profiling/test-utils/mockedTrace.js.map +0 -1
  498. package/cjs/domain/profiling/transport/assembly.d.ts +0 -21
  499. package/cjs/domain/profiling/transport/assembly.js +0 -45
  500. package/cjs/domain/profiling/transport/assembly.js.map +0 -1
  501. package/cjs/domain/profiling/transport/buildProfileEventAttributes.d.ts +0 -25
  502. package/cjs/domain/profiling/transport/buildProfileEventAttributes.js +0 -50
  503. package/cjs/domain/profiling/transport/buildProfileEventAttributes.js.map +0 -1
  504. package/cjs/domain/profiling/types/index.d.ts +0 -2
  505. package/cjs/domain/profiling/types/index.js +0 -3
  506. package/cjs/domain/profiling/types/index.js.map +0 -1
  507. package/cjs/domain/profiling/types/profilerApi.types.d.ts +0 -58
  508. package/cjs/domain/profiling/types/profilerApi.types.js +0 -5
  509. package/cjs/domain/profiling/types/profilerApi.types.js.map +0 -1
  510. package/cjs/domain/profiling/types/rumProfiler.types.js +0 -3
  511. package/cjs/domain/profiling/types/rumProfiler.types.js.map +0 -1
  512. package/cjs/domain/profiling/utils/getNumberOfSamples.d.ts +0 -7
  513. package/cjs/domain/profiling/utils/getNumberOfSamples.js +0 -18
  514. package/cjs/domain/profiling/utils/getNumberOfSamples.js.map +0 -1
  515. package/cjs/domain/record/eventIds.d.ts +0 -4
  516. package/cjs/domain/record/eventIds.js +0 -16
  517. package/cjs/domain/record/eventIds.js.map +0 -1
  518. package/cjs/domain/record/index.js.map +0 -1
  519. package/cjs/domain/record/nodeIds.d.ts +0 -15
  520. package/cjs/domain/record/nodeIds.js +0 -32
  521. package/cjs/domain/record/nodeIds.js.map +0 -1
  522. package/cjs/domain/record/record.types.js +0 -3
  523. package/cjs/domain/record/record.types.js.map +0 -1
  524. package/cjs/domain/record/serialization/index.js.map +0 -1
  525. package/cjs/domain/record/serialization/serialization.types.js +0 -3
  526. package/cjs/domain/record/serialization/serialization.types.js.map +0 -1
  527. package/cjs/domain/record/serialization/serializeDocument.d.ts +0 -3
  528. package/cjs/domain/record/serialization/serializeDocument.js +0 -11
  529. package/cjs/domain/record/serialization/serializeDocument.js.map +0 -1
  530. package/cjs/domain/record/serialization/serializeStyleSheets.d.ts +0 -2
  531. package/cjs/domain/record/serialization/serializeStyleSheets.js +0 -19
  532. package/cjs/domain/record/serialization/serializeStyleSheets.js.map +0 -1
  533. package/cjs/domain/record/trackers/index.js.map +0 -1
  534. package/cjs/domain/record/trackers/trackFrustration.d.ts +0 -7
  535. package/cjs/domain/record/trackers/trackFrustration.js +0 -31
  536. package/cjs/domain/record/trackers/trackFrustration.js.map +0 -1
  537. package/cjs/domain/record/trackers/tracker.types.js +0 -3
  538. package/cjs/domain/record/trackers/tracker.types.js.map +0 -1
  539. package/cjs/domain/segmentCollection/index.js.map +0 -1
  540. package/cjs/entries/internal.js.map +0 -1
  541. package/cjs/types/index.js +0 -18
  542. package/cjs/types/index.js.map +0 -1
  543. package/cjs/types/sessionReplay.js +0 -7
  544. package/cjs/types/sessionReplay.js.map +0 -1
  545. package/esm/boot/isBrowserSupported.d.ts +0 -4
  546. package/esm/boot/isBrowserSupported.js +0 -14
  547. package/esm/boot/isBrowserSupported.js.map +0 -1
  548. package/esm/boot/lazyLoadProfiler.d.ts +0 -4
  549. package/esm/boot/lazyLoadProfiler.js +0 -18
  550. package/esm/boot/lazyLoadProfiler.js.map +0 -1
  551. package/esm/boot/lazyLoadRecorder.d.ts +0 -4
  552. package/esm/boot/lazyLoadRecorder.js +0 -18
  553. package/esm/boot/lazyLoadRecorder.js.map +0 -1
  554. package/esm/boot/postStartStrategy.d.ts +0 -33
  555. package/esm/boot/postStartStrategy.js +0 -115
  556. package/esm/boot/postStartStrategy.js.map +0 -1
  557. package/esm/boot/preStartStrategy.d.ts +0 -6
  558. package/esm/boot/preStartStrategy.js +0 -21
  559. package/esm/boot/preStartStrategy.js.map +0 -1
  560. package/esm/boot/profilerApi.d.ts +0 -2
  561. package/esm/boot/profilerApi.js +0 -50
  562. package/esm/boot/profilerApi.js.map +0 -1
  563. package/esm/boot/recorderApi.d.ts +0 -4
  564. package/esm/boot/recorderApi.js +0 -70
  565. package/esm/boot/recorderApi.js.map +0 -1
  566. package/esm/boot/startRecording.d.ts +0 -6
  567. package/esm/boot/startRecording.js +0 -42
  568. package/esm/boot/startRecording.js.map +0 -1
  569. package/esm/domain/deflate/deflateEncoder.d.ts +0 -3
  570. package/esm/domain/deflate/deflateEncoder.js +0 -107
  571. package/esm/domain/deflate/deflateEncoder.js.map +0 -1
  572. package/esm/domain/deflate/deflateWorker.d.ts +0 -30
  573. package/esm/domain/deflate/deflateWorker.js +0 -97
  574. package/esm/domain/deflate/deflateWorker.js.map +0 -1
  575. package/esm/domain/deflate/index.d.ts +0 -3
  576. package/esm/domain/deflate/index.js +0 -3
  577. package/esm/domain/deflate/index.js.map +0 -1
  578. package/esm/domain/getSessionReplayLink.d.ts +0 -2
  579. package/esm/domain/getSessionReplayLink.js +0 -32
  580. package/esm/domain/getSessionReplayLink.js.map +0 -1
  581. package/esm/domain/profiling/profiler.d.ts +0 -7
  582. package/esm/domain/profiling/profiler.js +0 -240
  583. package/esm/domain/profiling/profiler.js.map +0 -1
  584. package/esm/domain/profiling/profilingContext.d.ts +0 -6
  585. package/esm/domain/profiling/profilingContext.js +0 -25
  586. package/esm/domain/profiling/profilingContext.js.map +0 -1
  587. package/esm/domain/profiling/profilingSupported.d.ts +0 -1
  588. package/esm/domain/profiling/profilingSupported.js +0 -8
  589. package/esm/domain/profiling/profilingSupported.js.map +0 -1
  590. package/esm/domain/profiling/test-utils/mockedTrace.d.ts +0 -3
  591. package/esm/domain/profiling/test-utils/mockedTrace.js +0 -54
  592. package/esm/domain/profiling/test-utils/mockedTrace.js.map +0 -1
  593. package/esm/domain/profiling/transport/assembly.d.ts +0 -21
  594. package/esm/domain/profiling/transport/assembly.js +0 -42
  595. package/esm/domain/profiling/transport/assembly.js.map +0 -1
  596. package/esm/domain/profiling/transport/buildProfileEventAttributes.d.ts +0 -25
  597. package/esm/domain/profiling/transport/buildProfileEventAttributes.js +0 -47
  598. package/esm/domain/profiling/transport/buildProfileEventAttributes.js.map +0 -1
  599. package/esm/domain/profiling/types/index.d.ts +0 -2
  600. package/esm/domain/profiling/types/index.js +0 -2
  601. package/esm/domain/profiling/types/index.js.map +0 -1
  602. package/esm/domain/profiling/types/profilerApi.types.d.ts +0 -58
  603. package/esm/domain/profiling/types/profilerApi.types.js +0 -4
  604. package/esm/domain/profiling/types/profilerApi.types.js.map +0 -1
  605. package/esm/domain/profiling/types/rumProfiler.types.d.ts +0 -72
  606. package/esm/domain/profiling/types/rumProfiler.types.js +0 -2
  607. package/esm/domain/profiling/types/rumProfiler.types.js.map +0 -1
  608. package/esm/domain/profiling/utils/getCustomOrDefaultViewName.d.ts +0 -1
  609. package/esm/domain/profiling/utils/getCustomOrDefaultViewName.js +0 -3
  610. package/esm/domain/profiling/utils/getCustomOrDefaultViewName.js.map +0 -1
  611. package/esm/domain/profiling/utils/getDefaultViewName.d.ts +0 -1
  612. package/esm/domain/profiling/utils/getDefaultViewName.js +0 -11
  613. package/esm/domain/profiling/utils/getDefaultViewName.js.map +0 -1
  614. package/esm/domain/profiling/utils/getNumberOfSamples.d.ts +0 -7
  615. package/esm/domain/profiling/utils/getNumberOfSamples.js +0 -15
  616. package/esm/domain/profiling/utils/getNumberOfSamples.js.map +0 -1
  617. package/esm/domain/record/assembly.d.ts +0 -2
  618. package/esm/domain/record/assembly.js +0 -13
  619. package/esm/domain/record/assembly.js.map +0 -1
  620. package/esm/domain/record/elementsScrollPositions.d.ts +0 -10
  621. package/esm/domain/record/elementsScrollPositions.js +0 -20
  622. package/esm/domain/record/elementsScrollPositions.js.map +0 -1
  623. package/esm/domain/record/eventIds.d.ts +0 -4
  624. package/esm/domain/record/eventIds.js +0 -13
  625. package/esm/domain/record/eventIds.js.map +0 -1
  626. package/esm/domain/record/eventsUtils.d.ts +0 -2
  627. package/esm/domain/record/eventsUtils.js +0 -11
  628. package/esm/domain/record/eventsUtils.js.map +0 -1
  629. package/esm/domain/record/index.d.ts +0 -7
  630. package/esm/domain/record/index.js +0 -6
  631. package/esm/domain/record/index.js.map +0 -1
  632. package/esm/domain/record/internalApi.d.ts +0 -22
  633. package/esm/domain/record/internalApi.js +0 -53
  634. package/esm/domain/record/internalApi.js.map +0 -1
  635. package/esm/domain/record/mutationBatch.d.ts +0 -12
  636. package/esm/domain/record/mutationBatch.js +0 -40
  637. package/esm/domain/record/mutationBatch.js.map +0 -1
  638. package/esm/domain/record/nodeIds.d.ts +0 -15
  639. package/esm/domain/record/nodeIds.js +0 -29
  640. package/esm/domain/record/nodeIds.js.map +0 -1
  641. package/esm/domain/record/record.d.ts +0 -16
  642. package/esm/domain/record/record.js +0 -54
  643. package/esm/domain/record/record.js.map +0 -1
  644. package/esm/domain/record/record.types.d.ts +0 -4
  645. package/esm/domain/record/record.types.js +0 -2
  646. package/esm/domain/record/record.types.js.map +0 -1
  647. package/esm/domain/record/recordingScope.d.ts +0 -19
  648. package/esm/domain/record/recordingScope.js +0 -10
  649. package/esm/domain/record/recordingScope.js.map +0 -1
  650. package/esm/domain/record/serialization/index.d.ts +0 -8
  651. package/esm/domain/record/serialization/index.js +0 -7
  652. package/esm/domain/record/serialization/index.js.map +0 -1
  653. package/esm/domain/record/serialization/serialization.types.d.ts +0 -28
  654. package/esm/domain/record/serialization/serialization.types.js +0 -2
  655. package/esm/domain/record/serialization/serialization.types.js.map +0 -1
  656. package/esm/domain/record/serialization/serializationStats.d.ts +0 -12
  657. package/esm/domain/record/serialization/serializationStats.js +0 -27
  658. package/esm/domain/record/serialization/serializationStats.js.map +0 -1
  659. package/esm/domain/record/serialization/serializationTransaction.d.ts +0 -45
  660. package/esm/domain/record/serialization/serializationTransaction.js +0 -35
  661. package/esm/domain/record/serialization/serializationTransaction.js.map +0 -1
  662. package/esm/domain/record/serialization/serializationUtils.d.ts +0 -18
  663. package/esm/domain/record/serialization/serializationUtils.js +0 -80
  664. package/esm/domain/record/serialization/serializationUtils.js.map +0 -1
  665. package/esm/domain/record/serialization/serializeAttribute.d.ts +0 -4
  666. package/esm/domain/record/serialization/serializeAttribute.js +0 -38
  667. package/esm/domain/record/serialization/serializeAttribute.js.map +0 -1
  668. package/esm/domain/record/serialization/serializeAttributes.d.ts +0 -7
  669. package/esm/domain/record/serialization/serializeAttributes.js +0 -161
  670. package/esm/domain/record/serialization/serializeAttributes.js.map +0 -1
  671. package/esm/domain/record/serialization/serializeDocument.d.ts +0 -3
  672. package/esm/domain/record/serialization/serializeDocument.js +0 -8
  673. package/esm/domain/record/serialization/serializeDocument.js.map +0 -1
  674. package/esm/domain/record/serialization/serializeNode.d.ts +0 -7
  675. package/esm/domain/record/serialization/serializeNode.js +0 -149
  676. package/esm/domain/record/serialization/serializeNode.js.map +0 -1
  677. package/esm/domain/record/serialization/serializeStyleSheets.d.ts +0 -2
  678. package/esm/domain/record/serialization/serializeStyleSheets.js +0 -16
  679. package/esm/domain/record/serialization/serializeStyleSheets.js.map +0 -1
  680. package/esm/domain/record/shadowRootsController.d.ts +0 -11
  681. package/esm/domain/record/shadowRootsController.js +0 -41
  682. package/esm/domain/record/shadowRootsController.js.map +0 -1
  683. package/esm/domain/record/startFullSnapshots.d.ts +0 -9
  684. package/esm/domain/record/startFullSnapshots.js +0 -55
  685. package/esm/domain/record/startFullSnapshots.js.map +0 -1
  686. package/esm/domain/record/trackers/index.d.ts +0 -12
  687. package/esm/domain/record/trackers/index.js +0 -12
  688. package/esm/domain/record/trackers/index.js.map +0 -1
  689. package/esm/domain/record/trackers/trackFocus.d.ts +0 -5
  690. package/esm/domain/record/trackers/trackFocus.js +0 -12
  691. package/esm/domain/record/trackers/trackFocus.js.map +0 -1
  692. package/esm/domain/record/trackers/trackFrustration.d.ts +0 -7
  693. package/esm/domain/record/trackers/trackFrustration.js +0 -28
  694. package/esm/domain/record/trackers/trackFrustration.js.map +0 -1
  695. package/esm/domain/record/trackers/trackInput.d.ts +0 -4
  696. package/esm/domain/record/trackers/trackInput.js +0 -101
  697. package/esm/domain/record/trackers/trackInput.js.map +0 -1
  698. package/esm/domain/record/trackers/trackMediaInteraction.d.ts +0 -5
  699. package/esm/domain/record/trackers/trackMediaInteraction.js +0 -26
  700. package/esm/domain/record/trackers/trackMediaInteraction.js.map +0 -1
  701. package/esm/domain/record/trackers/trackMouseInteraction.d.ts +0 -5
  702. package/esm/domain/record/trackers/trackMouseInteraction.js +0 -56
  703. package/esm/domain/record/trackers/trackMouseInteraction.js.map +0 -1
  704. package/esm/domain/record/trackers/trackMove.d.ts +0 -9
  705. package/esm/domain/record/trackers/trackMove.js +0 -51
  706. package/esm/domain/record/trackers/trackMove.js.map +0 -1
  707. package/esm/domain/record/trackers/trackMutation.d.ts +0 -11
  708. package/esm/domain/record/trackers/trackMutation.js +0 -266
  709. package/esm/domain/record/trackers/trackMutation.js.map +0 -1
  710. package/esm/domain/record/trackers/trackScroll.d.ts +0 -5
  711. package/esm/domain/record/trackers/trackScroll.js +0 -45
  712. package/esm/domain/record/trackers/trackScroll.js.map +0 -1
  713. package/esm/domain/record/trackers/trackStyleSheet.d.ts +0 -6
  714. package/esm/domain/record/trackers/trackStyleSheet.js +0 -85
  715. package/esm/domain/record/trackers/trackStyleSheet.js.map +0 -1
  716. package/esm/domain/record/trackers/trackViewEnd.d.ts +0 -5
  717. package/esm/domain/record/trackers/trackViewEnd.js +0 -17
  718. package/esm/domain/record/trackers/trackViewEnd.js.map +0 -1
  719. package/esm/domain/record/trackers/trackViewportResize.d.ts +0 -6
  720. package/esm/domain/record/trackers/trackViewportResize.js +0 -42
  721. package/esm/domain/record/trackers/trackViewportResize.js.map +0 -1
  722. package/esm/domain/record/trackers/tracker.types.d.ts +0 -3
  723. package/esm/domain/record/trackers/tracker.types.js +0 -2
  724. package/esm/domain/record/trackers/tracker.types.js.map +0 -1
  725. package/esm/domain/record/viewports.d.ts +0 -20
  726. package/esm/domain/record/viewports.js +0 -55
  727. package/esm/domain/record/viewports.js.map +0 -1
  728. package/esm/domain/replayStats.d.ts +0 -8
  729. package/esm/domain/replayStats.js +0 -51
  730. package/esm/domain/replayStats.js.map +0 -1
  731. package/esm/domain/scriptLoadingError.d.ts +0 -6
  732. package/esm/domain/scriptLoadingError.js +0 -23
  733. package/esm/domain/scriptLoadingError.js.map +0 -1
  734. package/esm/domain/segmentCollection/buildReplayPayload.d.ts +0 -15
  735. package/esm/domain/segmentCollection/buildReplayPayload.js +0 -23
  736. package/esm/domain/segmentCollection/buildReplayPayload.js.map +0 -1
  737. package/esm/domain/segmentCollection/index.d.ts +0 -4
  738. package/esm/domain/segmentCollection/index.js +0 -4
  739. package/esm/domain/segmentCollection/index.js.map +0 -1
  740. package/esm/domain/segmentCollection/segment.d.ts +0 -16
  741. package/esm/domain/segmentCollection/segment.js +0 -46
  742. package/esm/domain/segmentCollection/segment.js.map +0 -1
  743. package/esm/domain/segmentCollection/segmentCollection.d.ts +0 -31
  744. package/esm/domain/segmentCollection/segmentCollection.js +0 -106
  745. package/esm/domain/segmentCollection/segmentCollection.js.map +0 -1
  746. package/esm/domain/segmentCollection/startSegmentTelemetry.d.ts +0 -6
  747. package/esm/domain/segmentCollection/startSegmentTelemetry.js +0 -44
  748. package/esm/domain/segmentCollection/startSegmentTelemetry.js.map +0 -1
  749. package/esm/domain/startRecordBridge.d.ts +0 -5
  750. package/esm/domain/startRecordBridge.js +0 -14
  751. package/esm/domain/startRecordBridge.js.map +0 -1
  752. package/esm/domain/startRecorderInitTelemetry.d.ts +0 -15
  753. package/esm/domain/startRecorderInitTelemetry.js +0 -52
  754. package/esm/domain/startRecorderInitTelemetry.js.map +0 -1
  755. package/esm/entries/internal.d.ts +0 -11
  756. package/esm/entries/internal.js +0 -4
  757. package/esm/entries/internal.js.map +0 -1
  758. package/esm/entries/internalSynthetics.d.ts +0 -2
  759. package/esm/entries/internalSynthetics.js +0 -23
  760. package/esm/entries/internalSynthetics.js.map +0 -1
  761. package/esm/entries/main.d.ts +0 -23
  762. package/esm/entries/main.js +0 -31
  763. package/esm/entries/main.js.map +0 -1
  764. package/esm/types/index.d.ts +0 -2
  765. package/esm/types/index.js +0 -2
  766. package/esm/types/index.js.map +0 -1
  767. package/esm/types/sessionReplay.d.ts +0 -703
  768. package/esm/types/sessionReplay.js +0 -6
  769. package/esm/types/sessionReplay.js.map +0 -1
  770. package/esm/types/sessionReplayConstants.d.ts +0 -49
  771. package/esm/types/sessionReplayConstants.js +0 -46
  772. package/esm/types/sessionReplayConstants.js.map +0 -1
  773. package/src/boot/isBrowserSupported.ts +0 -14
  774. package/src/boot/startRecording.ts +0 -70
  775. package/src/domain/profiling/transport/assembly.ts +0 -78
  776. package/src/domain/profiling/transport/buildProfileEventAttributes.ts +0 -66
  777. package/src/domain/profiling/types/index.ts +0 -2
  778. package/src/domain/profiling/types/profilerApi.types.ts +0 -87
  779. package/src/domain/profiling/utils/getNumberOfSamples.ts +0 -16
  780. package/src/domain/record/eventIds.ts +0 -17
  781. package/src/domain/record/nodeIds.ts +0 -46
  782. package/src/domain/record/serialization/serializeDocument.ts +0 -13
  783. package/src/domain/record/serialization/serializeStyleSheets.ts +0 -18
  784. package/src/domain/record/trackers/trackFrustration.ts +0 -41
@@ -1,44 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MUTATION_PROCESS_MIN_DELAY = void 0;
4
- exports.createMutationBatch = createMutationBatch;
5
- const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
1
+ let _kubesense_kubesense_browser_core = require("@kubesense/kubesense-browser-core");
2
+ //#region src/domain/record/mutationBatch.ts
6
3
  /**
7
- * Maximum duration to wait before processing mutations. If the browser is idle, mutations will be
8
- * processed more quickly. If the browser is busy executing small tasks (ex: rendering frames), the
9
- * mutations will wait MUTATION_PROCESS_MAX_DELAY milliseconds before being processed. If the
10
- * browser is busy executing a longer task, mutations will be processed after this task.
11
- */
4
+ * Maximum duration to wait before processing mutations. If the browser is idle, mutations will be
5
+ * processed more quickly. If the browser is busy executing small tasks (ex: rendering frames), the
6
+ * mutations will wait MUTATION_PROCESS_MAX_DELAY milliseconds before being processed. If the
7
+ * browser is busy executing a longer task, mutations will be processed after this task.
8
+ */
12
9
  const MUTATION_PROCESS_MAX_DELAY = 100;
13
- /**
14
- * Minimum duration to wait before processing mutations. This is used to batch mutations together
15
- * and be able to deduplicate them to save processing time and bandwidth.
16
- * 16ms is the duration of a frame at 60fps that ensure fluid UI.
17
- */
18
- exports.MUTATION_PROCESS_MIN_DELAY = 16;
19
10
  function createMutationBatch(processMutationBatch) {
20
- let cancelScheduledFlush = kubesense_browser_core_1.noop;
21
- let pendingMutations = [];
22
- function flush() {
23
- cancelScheduledFlush();
24
- processMutationBatch(pendingMutations);
25
- pendingMutations = [];
26
- }
27
- const { throttled: throttledFlush, cancel: cancelThrottle } = (0, kubesense_browser_core_1.throttle)(flush, exports.MUTATION_PROCESS_MIN_DELAY, {
28
- leading: false,
29
- });
30
- return {
31
- addMutations: (mutations) => {
32
- if (pendingMutations.length === 0) {
33
- cancelScheduledFlush = (0, kubesense_browser_core_1.requestIdleCallback)(throttledFlush, { timeout: MUTATION_PROCESS_MAX_DELAY });
34
- }
35
- pendingMutations.push(...mutations);
36
- },
37
- flush,
38
- stop: () => {
39
- cancelScheduledFlush();
40
- cancelThrottle();
41
- },
42
- };
11
+ let cancelScheduledFlush = _kubesense_kubesense_browser_core.noop;
12
+ let pendingMutations = [];
13
+ let flushScheduled = false;
14
+ function scheduleFlush() {
15
+ if (!flushScheduled) {
16
+ flushScheduled = true;
17
+ cancelScheduledFlush = (0, _kubesense_kubesense_browser_core.requestIdleCallback)(throttledFlush, { timeout: MUTATION_PROCESS_MAX_DELAY });
18
+ }
19
+ }
20
+ function flush() {
21
+ cancelScheduledFlush();
22
+ flushScheduled = false;
23
+ processMutationBatch(pendingMutations);
24
+ pendingMutations = [];
25
+ }
26
+ const { throttled: throttledFlush, cancel: cancelThrottle } = (0, _kubesense_kubesense_browser_core.throttle)(flush, 16, { leading: false });
27
+ return {
28
+ addMutations: (mutations) => {
29
+ scheduleFlush();
30
+ for (const mutation of mutations) pendingMutations.push(mutation);
31
+ },
32
+ notifyContentMutated: scheduleFlush,
33
+ flush,
34
+ stop: () => {
35
+ cancelScheduledFlush();
36
+ cancelThrottle();
37
+ }
38
+ };
43
39
  }
40
+ //#endregion
41
+ exports.createMutationBatch = createMutationBatch;
42
+
44
43
  //# sourceMappingURL=mutationBatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutationBatch.js","sourceRoot":"","sources":["../../../src/domain/record/mutationBatch.ts"],"names":[],"mappings":";;;AAiBA,kDA6BC;AA9CD,8EAAuF;AAGvF;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,GAAG,CAAA;AACtC;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,EAAE,CAAA;AAE5C,SAAgB,mBAAmB,CAAC,oBAA8D;IAChG,IAAI,oBAAoB,GAAG,6BAAI,CAAA;IAC/B,IAAI,gBAAgB,GAAwB,EAAE,CAAA;IAE9C,SAAS,KAAK;QACZ,oBAAoB,EAAE,CAAA;QACtB,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;QACtC,gBAAgB,GAAG,EAAE,CAAA;IACvB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,iCAAQ,EAAC,KAAK,EAAE,kCAA0B,EAAE;QACxG,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;IAEF,OAAO;QACL,YAAY,EAAE,CAAC,SAA8B,EAAE,EAAE;YAC/C,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,oBAAoB,GAAG,IAAA,4CAAmB,EAAC,cAAc,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAA;YACrG,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;QACrC,CAAC;QAED,KAAK;QAEL,IAAI,EAAE,GAAG,EAAE;YACT,oBAAoB,EAAE,CAAA;YACtB,cAAc,EAAE,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"mutationBatch.js","names":["noop","requestIdleCallback","throttle"],"sources":["../../../src/domain/record/mutationBatch.ts"],"sourcesContent":["import { noop, throttle, requestIdleCallback } from '@kubesense/kubesense-browser-core'\nimport type { RumMutationRecord } from '@kubesense/kubesense-browser-rum-core'\n\n/**\n * Maximum duration to wait before processing mutations. If the browser is idle, mutations will be\n * processed more quickly. If the browser is busy executing small tasks (ex: rendering frames), the\n * mutations will wait MUTATION_PROCESS_MAX_DELAY milliseconds before being processed. If the\n * browser is busy executing a longer task, mutations will be processed after this task.\n */\nconst MUTATION_PROCESS_MAX_DELAY = 100\n/**\n * Minimum duration to wait before processing mutations. This is used to batch mutations together\n * and be able to deduplicate them to save processing time and bandwidth.\n * 16ms is the duration of a frame at 60fps that ensure fluid UI.\n */\nexport const MUTATION_PROCESS_MIN_DELAY = 16\n\nexport function createMutationBatch(processMutationBatch: (mutations: RumMutationRecord[]) => void) {\n let cancelScheduledFlush = noop\n let pendingMutations: RumMutationRecord[] = []\n let flushScheduled = false\n\n function scheduleFlush() {\n if (!flushScheduled) {\n flushScheduled = true\n cancelScheduledFlush = requestIdleCallback(throttledFlush, { timeout: MUTATION_PROCESS_MAX_DELAY })\n }\n }\n\n function flush() {\n cancelScheduledFlush()\n flushScheduled = false\n processMutationBatch(pendingMutations)\n pendingMutations = []\n }\n\n const { throttled: throttledFlush, cancel: cancelThrottle } = throttle(flush, MUTATION_PROCESS_MIN_DELAY, {\n leading: false,\n })\n\n return {\n addMutations: (mutations: RumMutationRecord[]) => {\n scheduleFlush()\n for (const mutation of mutations) {\n pendingMutations.push(mutation)\n }\n },\n\n notifyContentMutated: scheduleFlush,\n\n flush,\n\n stop: () => {\n cancelScheduledFlush()\n cancelThrottle()\n },\n }\n}\n"],"mappings":";;;;;;;;AASA,MAAM,6BAA6B;AAQnC,SAAgB,oBAAoB,sBAAgE;CAClG,IAAI,uBAAuBA,kCAAAA;CAC3B,IAAI,mBAAwC,CAAC;CAC7C,IAAI,iBAAiB;CAErB,SAAS,gBAAgB;EACvB,IAAI,CAAC,gBAAgB;GACnB,iBAAiB;GACjB,wBAAA,GAAuBC,kCAAAA,oBAAAA,CAAoB,gBAAgB,EAAE,SAAS,2BAA2B,CAAC;EACpG;CACF;CAEA,SAAS,QAAQ;EACf,qBAAqB;EACrB,iBAAiB;EACjB,qBAAqB,gBAAgB;EACrC,mBAAmB,CAAC;CACtB;CAEA,MAAM,EAAE,WAAW,gBAAgB,QAAQ,oBAAA,GAAmBC,kCAAAA,SAAAA,CAAS,OAAA,IAAmC,EACxG,SAAS,MACX,CAAC;CAED,OAAO;EACL,eAAe,cAAmC;GAChD,cAAc;GACd,KAAK,MAAM,YAAY,WACrB,iBAAiB,KAAK,QAAQ;EAElC;EAEA,sBAAsB;EAEtB;EAEA,YAAY;GACV,qBAAqB;GACrB,eAAe;EACjB;CACF;AACF"}
@@ -1,8 +1,9 @@
1
1
  import type { LifeCycle, RumConfiguration, ViewHistory } from '@kubesense/kubesense-browser-rum-core';
2
2
  import type { ShadowRootsController } from './shadowRootsController';
3
- import type { EmitRecordCallback, EmitStatsCallback } from './record.types';
3
+ import type { EmitRecordCallback, EmitStatsCallback, EmitResourceCallback } from './record.types';
4
4
  export interface RecordOptions {
5
5
  emitRecord: EmitRecordCallback;
6
+ emitResource: EmitResourceCallback;
6
7
  emitStats: EmitStatsCallback;
7
8
  configuration: RumConfiguration;
8
9
  lifeCycle: LifeCycle;
@@ -12,5 +13,10 @@ export interface RecordAPI {
12
13
  stop: () => void;
13
14
  flushMutations: () => void;
14
15
  shadowRootsController: ShadowRootsController;
16
+ /**
17
+ * Starts the record stream over with a new full snapshot, so replay can recover when records
18
+ * already emitted never reached the intake.
19
+ */
20
+ takeFullSnapshot: () => void;
15
21
  }
16
22
  export declare function record(options: RecordOptions): RecordAPI;
@@ -1,90 +1,79 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.record = record;
37
- const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
38
- const replayStats = __importStar(require("../replayStats"));
39
- const trackers_1 = require("./trackers");
40
- const elementsScrollPositions_1 = require("./elementsScrollPositions");
41
- const shadowRootsController_1 = require("./shadowRootsController");
42
- const startFullSnapshots_1 = require("./startFullSnapshots");
43
- const eventIds_1 = require("./eventIds");
44
- const nodeIds_1 = require("./nodeIds");
45
- const recordingScope_1 = require("./recordingScope");
1
+ const require_canvasManager = require("./canvas/canvasManager.js");
2
+ require("./serialization/index.js");
3
+ const require_startFullSnapshots = require("./startFullSnapshots.js");
4
+ const require_recordingScope = require("./recordingScope.js");
5
+ const require_elementsScrollPositions = require("./elementsScrollPositions.js");
6
+ const require_replayStats = require("../replayStats.js");
7
+ const require_trackMove = require("./trackers/trackMove.js");
8
+ const require_trackMouseInteraction = require("./trackers/trackMouseInteraction.js");
9
+ const require_trackScroll = require("./trackers/trackScroll.js");
10
+ const require_trackViewportResize = require("./trackers/trackViewportResize.js");
11
+ const require_trackMediaInteraction = require("./trackers/trackMediaInteraction.js");
12
+ const require_trackStyleSheet = require("./trackers/trackStyleSheet.js");
13
+ const require_trackFocus = require("./trackers/trackFocus.js");
14
+ const require_trackViewEnd = require("./trackers/trackViewEnd.js");
15
+ const require_trackInput = require("./trackers/trackInput.js");
16
+ const require_trackMutation = require("./trackers/trackMutation.js");
17
+ const require_trackCanvasContent = require("./trackers/trackCanvasContent.js");
18
+ const require_trackCanvasCapture = require("./trackers/trackCanvasCapture.js");
19
+ require("./trackers/index.js");
20
+ const require_shadowRootsController = require("./shadowRootsController.js");
21
+ let _kubesense_kubesense_browser_core = require("@kubesense/kubesense-browser-core");
22
+ let _kubesense_kubesense_js_core_time = require("@kubesense/kubesense-js-core/time");
23
+ //#region src/domain/record/record.ts
46
24
  function record(options) {
47
- const { emitRecord, emitStats, configuration, lifeCycle } = options;
48
- // runtime checks for user options
49
- if (!emitRecord || !emitStats) {
50
- throw new Error('emit functions are required');
51
- }
52
- const processRecord = (record) => {
53
- emitRecord(record);
54
- (0, kubesense_browser_core_1.sendToExtension)('record', { record });
55
- const view = options.viewHistory.findView();
56
- replayStats.addRecord(view.id);
57
- };
58
- const shadowRootsController = (0, shadowRootsController_1.initShadowRootsController)(processRecord, emitStats);
59
- const scope = (0, recordingScope_1.createRecordingScope)(configuration, (0, elementsScrollPositions_1.createElementsScrollPositions)(), (0, eventIds_1.createEventIds)(), (0, nodeIds_1.createNodeIds)(), shadowRootsController);
60
- const { stop: stopFullSnapshots } = (0, startFullSnapshots_1.startFullSnapshots)(lifeCycle, processRecord, emitStats, flushMutations, scope);
61
- function flushMutations() {
62
- shadowRootsController.flush();
63
- mutationTracker.flush();
64
- }
65
- const mutationTracker = (0, trackers_1.trackMutation)(document, processRecord, emitStats, scope);
66
- const trackers = [
67
- mutationTracker,
68
- (0, trackers_1.trackMove)(processRecord, scope),
69
- (0, trackers_1.trackMouseInteraction)(processRecord, scope),
70
- (0, trackers_1.trackScroll)(document, processRecord, scope),
71
- (0, trackers_1.trackViewportResize)(processRecord, scope),
72
- (0, trackers_1.trackInput)(document, processRecord, scope),
73
- (0, trackers_1.trackMediaInteraction)(processRecord, scope),
74
- (0, trackers_1.trackStyleSheet)(processRecord, scope),
75
- (0, trackers_1.trackFocus)(processRecord, scope),
76
- (0, trackers_1.trackVisualViewportResize)(processRecord, scope),
77
- (0, trackers_1.trackFrustration)(lifeCycle, processRecord, scope),
78
- (0, trackers_1.trackViewEnd)(lifeCycle, processRecord, flushMutations),
79
- ];
80
- return {
81
- stop: () => {
82
- shadowRootsController.stop();
83
- trackers.forEach((tracker) => tracker.stop());
84
- stopFullSnapshots();
85
- },
86
- flushMutations,
87
- shadowRootsController,
88
- };
25
+ const { emitRecord, emitResource, emitStats, configuration, lifeCycle } = options;
26
+ if (!emitRecord || !emitResource || !emitStats) throw new Error("emit functions are required");
27
+ const processRecord = (record) => {
28
+ emitRecord(record);
29
+ (0, _kubesense_kubesense_browser_core.sendToExtension)("record", { record });
30
+ const view = options.viewHistory.findView();
31
+ require_replayStats.addRecord(view.id);
32
+ };
33
+ const processResource = (hash, content, onDiscard) => {
34
+ emitResource(hash, content, onDiscard);
35
+ const view = options.viewHistory.findView();
36
+ require_replayStats.addResource(view.id);
37
+ };
38
+ const canvasManager = require_canvasManager.createCanvasManager();
39
+ const shadowRootsController = require_shadowRootsController.initShadowRootsController(processRecord, processResource, emitStats);
40
+ const scope = require_recordingScope.createRecordingScope(canvasManager, configuration, require_elementsScrollPositions.createElementsScrollPositions(), shadowRootsController);
41
+ const { stop: stopFullSnapshots } = require_startFullSnapshots.startFullSnapshots(lifeCycle, processRecord, emitStats, flushMutations, scope);
42
+ function flushMutations() {
43
+ shadowRootsController.flush();
44
+ mutationTracker.flush();
45
+ }
46
+ const mutationTracker = require_trackMutation.trackMutation(document, processRecord, processResource, emitStats, scope);
47
+ const trackers = [
48
+ mutationTracker,
49
+ require_trackMove.trackMove(processRecord, scope),
50
+ require_trackMouseInteraction.trackMouseInteraction(processRecord, scope),
51
+ require_trackScroll.trackScroll(document, processRecord, scope),
52
+ require_trackViewportResize.trackViewportResize(processRecord),
53
+ require_trackInput.trackInput(document, processRecord, emitStats, scope),
54
+ require_trackMediaInteraction.trackMediaInteraction(processRecord, scope),
55
+ require_trackStyleSheet.trackStyleSheet(processRecord, scope),
56
+ require_trackFocus.trackFocus(processRecord),
57
+ require_trackViewportResize.trackVisualViewportResize(processRecord),
58
+ require_trackViewEnd.trackViewEnd(lifeCycle, processRecord, flushMutations),
59
+ require_trackCanvasContent.trackCanvasContent(scope),
60
+ require_trackCanvasCapture.trackCanvasCapture(scope, mutationTracker.notifyContentMutated)
61
+ ];
62
+ return {
63
+ stop: () => {
64
+ shadowRootsController.stop();
65
+ trackers.forEach((tracker) => tracker.stop());
66
+ stopFullSnapshots();
67
+ },
68
+ flushMutations,
69
+ shadowRootsController,
70
+ takeFullSnapshot: () => {
71
+ flushMutations();
72
+ require_startFullSnapshots.takeFullSnapshot((0, _kubesense_kubesense_js_core_time.timeStampNow)(), 1, processRecord, emitStats, scope);
73
+ }
74
+ };
89
75
  }
76
+ //#endregion
77
+ exports.record = record;
78
+
90
79
  //# sourceMappingURL=record.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/domain/record/record.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wBAuDC;AAjGD,8EAAmE;AAEnE,4DAA6C;AAG7C,yCAamB;AACnB,uEAAyE;AAEzE,mEAAmE;AACnE,6DAAyD;AACzD,yCAA2C;AAC3C,uCAAyC;AAEzC,qDAAuD;AAgBvD,SAAgB,MAAM,CAAC,OAAsB;IAC3C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACnE,kCAAkC;IAClC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,aAAa,GAAuB,CAAC,MAAqB,EAAE,EAAE;QAClE,UAAU,CAAC,MAAM,CAAC,CAAA;QAClB,IAAA,wCAAe,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAG,CAAA;QAC5C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,IAAA,iDAAyB,EAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IACjF,MAAM,KAAK,GAAG,IAAA,qCAAoB,EAChC,aAAa,EACb,IAAA,uDAA6B,GAAE,EAC/B,IAAA,yBAAc,GAAE,EAChB,IAAA,uBAAa,GAAE,EACf,qBAAqB,CACtB,CAAA;IAED,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAA,uCAAkB,EAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;IAElH,SAAS,cAAc;QACrB,qBAAqB,CAAC,KAAK,EAAE,CAAA;QAC7B,eAAe,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,wBAAa,EAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAChF,MAAM,QAAQ,GAAc;QAC1B,eAAe;QACf,IAAA,oBAAS,EAAC,aAAa,EAAE,KAAK,CAAC;QAC/B,IAAA,gCAAqB,EAAC,aAAa,EAAE,KAAK,CAAC;QAC3C,IAAA,sBAAW,EAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;QAC3C,IAAA,8BAAmB,EAAC,aAAa,EAAE,KAAK,CAAC;QACzC,IAAA,qBAAU,EAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;QAC1C,IAAA,gCAAqB,EAAC,aAAa,EAAE,KAAK,CAAC;QAC3C,IAAA,0BAAe,EAAC,aAAa,EAAE,KAAK,CAAC;QACrC,IAAA,qBAAU,EAAC,aAAa,EAAE,KAAK,CAAC;QAChC,IAAA,oCAAyB,EAAC,aAAa,EAAE,KAAK,CAAC;QAC/C,IAAA,2BAAgB,EAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC;QACjD,IAAA,uBAAY,EAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC;KACvD,CAAA;IAED,OAAO;QACL,IAAI,EAAE,GAAG,EAAE;YACT,qBAAqB,CAAC,IAAI,EAAE,CAAA;YAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC7C,iBAAiB,EAAE,CAAA;QACrB,CAAC;QACD,cAAc;QACd,qBAAqB;KACtB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"record.js","names":["createCanvasManager","initShadowRootsController","createRecordingScope","createElementsScrollPositions","startFullSnapshots","trackMutation","trackMove","trackMouseInteraction","trackScroll","trackViewportResize","trackInput","trackMediaInteraction","trackStyleSheet","trackFocus","trackVisualViewportResize","trackViewEnd","trackCanvasContent","trackCanvasCapture","timeStampNow"],"sources":["../../../src/domain/record/record.ts"],"sourcesContent":["import { sendToExtension } from '@kubesense/kubesense-browser-core'\nimport { timeStampNow } from '@kubesense/kubesense-js-core/time'\nimport type { LifeCycle, RumConfiguration, ViewHistory } from '@kubesense/kubesense-browser-rum-core'\nimport * as replayStats from '../replayStats'\nimport type { BrowserRecord } from '../../types'\nimport type { Tracker } from './trackers'\nimport {\n trackFocus,\n trackInput,\n trackMediaInteraction,\n trackMouseInteraction,\n trackMove,\n trackMutation,\n trackScroll,\n trackStyleSheet,\n trackViewEnd,\n trackViewportResize,\n trackVisualViewportResize,\n trackCanvasContent,\n trackCanvasCapture,\n} from './trackers'\nimport { createElementsScrollPositions } from './elementsScrollPositions'\nimport type { ShadowRootsController } from './shadowRootsController'\nimport { initShadowRootsController } from './shadowRootsController'\nimport { startFullSnapshots, takeFullSnapshot } from './startFullSnapshots'\nimport type { EmitRecordCallback, EmitStatsCallback, EmitResourceCallback } from './record.types'\nimport { createRecordingScope } from './recordingScope'\nimport { createCanvasManager } from './canvas/canvasManager'\nimport { SerializationKind } from './serialization'\n\nexport interface RecordOptions {\n emitRecord: EmitRecordCallback\n emitResource: EmitResourceCallback\n emitStats: EmitStatsCallback\n configuration: RumConfiguration\n lifeCycle: LifeCycle\n viewHistory: ViewHistory\n}\n\nexport interface RecordAPI {\n stop: () => void\n flushMutations: () => void\n shadowRootsController: ShadowRootsController\n /**\n * Starts the record stream over with a new full snapshot, so replay can recover when records\n * already emitted never reached the intake.\n */\n takeFullSnapshot: () => void\n}\n\nexport function record(options: RecordOptions): RecordAPI {\n const { emitRecord, emitResource, emitStats, configuration, lifeCycle } = options\n // runtime checks for user options\n if (!emitRecord || !emitResource || !emitStats) {\n throw new Error('emit functions are required')\n }\n\n const processRecord: EmitRecordCallback = (record: BrowserRecord) => {\n emitRecord(record)\n sendToExtension('record', { record })\n const view = options.viewHistory.findView()!\n replayStats.addRecord(view.id)\n }\n\n const processResource: EmitResourceCallback = (hash, content, onDiscard) => {\n emitResource(hash, content, onDiscard)\n const view = options.viewHistory.findView()!\n replayStats.addResource(view.id)\n }\n\n const canvasManager = createCanvasManager()\n const shadowRootsController = initShadowRootsController(processRecord, processResource, emitStats)\n const scope = createRecordingScope(\n canvasManager,\n configuration,\n createElementsScrollPositions(),\n shadowRootsController\n )\n\n const { stop: stopFullSnapshots } = startFullSnapshots(lifeCycle, processRecord, emitStats, flushMutations, scope)\n\n function flushMutations() {\n shadowRootsController.flush()\n mutationTracker.flush()\n }\n\n const mutationTracker = trackMutation(document, processRecord, processResource, emitStats, scope)\n const trackers: Tracker[] = [\n mutationTracker,\n trackMove(processRecord, scope),\n trackMouseInteraction(processRecord, scope),\n trackScroll(document, processRecord, scope),\n trackViewportResize(processRecord),\n trackInput(document, processRecord, emitStats, scope),\n trackMediaInteraction(processRecord, scope),\n trackStyleSheet(processRecord, scope),\n trackFocus(processRecord),\n trackVisualViewportResize(processRecord),\n trackViewEnd(lifeCycle, processRecord, flushMutations),\n trackCanvasContent(scope),\n trackCanvasCapture(scope, mutationTracker.notifyContentMutated),\n ]\n\n return {\n stop: () => {\n shadowRootsController.stop()\n trackers.forEach((tracker) => tracker.stop())\n stopFullSnapshots()\n },\n flushMutations,\n shadowRootsController,\n takeFullSnapshot: () => {\n flushMutations()\n takeFullSnapshot(timeStampNow(), SerializationKind.SUBSEQUENT_FULL_SNAPSHOT, processRecord, emitStats, scope)\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkDA,SAAgB,OAAO,SAAmC;CACxD,MAAM,EAAE,YAAY,cAAc,WAAW,eAAe,cAAc;CAE1E,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WACnC,MAAM,IAAI,MAAM,6BAA6B;CAG/C,MAAM,iBAAqC,WAA0B;EACnE,WAAW,MAAM;EACjB,CAAA,GAAA,kCAAA,gBAAA,CAAgB,UAAU,EAAE,OAAO,CAAC;EACpC,MAAM,OAAO,QAAQ,YAAY,SAAS;EAC1C,oBAAA,UAAsB,KAAK,EAAE;CAC/B;CAEA,MAAM,mBAAyC,MAAM,SAAS,cAAc;EAC1E,aAAa,MAAM,SAAS,SAAS;EACrC,MAAM,OAAO,QAAQ,YAAY,SAAS;EAC1C,oBAAA,YAAwB,KAAK,EAAE;CACjC;CAEA,MAAM,gBAAgBA,sBAAAA,oBAAoB;CAC1C,MAAM,wBAAwBC,8BAAAA,0BAA0B,eAAe,iBAAiB,SAAS;CACjG,MAAM,QAAQC,uBAAAA,qBACZ,eACA,eACAC,gCAAAA,8BAA8B,GAC9B,qBACF;CAEA,MAAM,EAAE,MAAM,sBAAsBC,2BAAAA,mBAAmB,WAAW,eAAe,WAAW,gBAAgB,KAAK;CAEjH,SAAS,iBAAiB;EACxB,sBAAsB,MAAM;EAC5B,gBAAgB,MAAM;CACxB;CAEA,MAAM,kBAAkBC,sBAAAA,cAAc,UAAU,eAAe,iBAAiB,WAAW,KAAK;CAChG,MAAM,WAAsB;EAC1B;EACAC,kBAAAA,UAAU,eAAe,KAAK;EAC9BC,8BAAAA,sBAAsB,eAAe,KAAK;EAC1CC,oBAAAA,YAAY,UAAU,eAAe,KAAK;EAC1CC,4BAAAA,oBAAoB,aAAa;EACjCC,mBAAAA,WAAW,UAAU,eAAe,WAAW,KAAK;EACpDC,8BAAAA,sBAAsB,eAAe,KAAK;EAC1CC,wBAAAA,gBAAgB,eAAe,KAAK;EACpCC,mBAAAA,WAAW,aAAa;EACxBC,4BAAAA,0BAA0B,aAAa;EACvCC,qBAAAA,aAAa,WAAW,eAAe,cAAc;EACrDC,2BAAAA,mBAAmB,KAAK;EACxBC,2BAAAA,mBAAmB,OAAO,gBAAgB,oBAAoB;CAChE;CAEA,OAAO;EACL,YAAY;GACV,sBAAsB,KAAK;GAC3B,SAAS,SAAS,YAAY,QAAQ,KAAK,CAAC;GAC5C,kBAAkB;EACpB;EACA;EACA;EACA,wBAAwB;GACtB,eAAe;GACf,2BAAA,kBAAA,GAAiBC,kCAAAA,aAAAA,CAAa,GAAA,GAA+C,eAAe,WAAW,KAAK;EAC9G;CACF;AACF"}
@@ -1,4 +1,5 @@
1
1
  import type { BrowserRecord } from '../../types';
2
2
  import type { SerializationStats } from './serialization';
3
3
  export type EmitRecordCallback<Record extends BrowserRecord = BrowserRecord> = (record: Record) => void;
4
+ export type EmitResourceCallback = (hash: string, content: Blob, onDiscard?: () => void) => void;
4
5
  export type EmitStatsCallback = (stats: SerializationStats) => void;
@@ -1,8 +1,8 @@
1
1
  import type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core';
2
2
  import type { ElementsScrollPositions } from './elementsScrollPositions';
3
- import type { EventIds } from './eventIds';
4
- import type { NodeIds } from './nodeIds';
3
+ import type { EventIds, NodeIds, StringIds, StyleSheetIds } from './encoding';
5
4
  import type { ShadowRootsController } from './shadowRootsController';
5
+ import type { CanvasManager } from './canvas/canvasManager';
6
6
  /**
7
7
  * State associated with a stream of session replay records. When a new stream of records
8
8
  * starts (e.g. because recording has shut down and restarted), a new RecordingScope
@@ -10,10 +10,14 @@ import type { ShadowRootsController } from './shadowRootsController';
10
10
  * or data which aren't present in the current stream.
11
11
  */
12
12
  export interface RecordingScope {
13
+ resetIds(): void;
14
+ canvasManager: CanvasManager;
13
15
  configuration: RumConfiguration;
14
16
  elementsScrollPositions: ElementsScrollPositions;
15
17
  eventIds: EventIds;
16
18
  nodeIds: NodeIds;
17
19
  shadowRootsController: ShadowRootsController;
20
+ stringIds: StringIds;
21
+ styleSheetIds: StyleSheetIds;
18
22
  }
19
- export declare function createRecordingScope(configuration: RumConfiguration, elementsScrollPositions: ElementsScrollPositions, eventIds: EventIds, nodeIds: NodeIds, shadowRootsController: ShadowRootsController): RecordingScope;
23
+ export declare function createRecordingScope(canvasManager: CanvasManager, configuration: RumConfiguration, elementsScrollPositions: ElementsScrollPositions, shadowRootsController: ShadowRootsController): RecordingScope;
@@ -1,13 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRecordingScope = createRecordingScope;
4
- function createRecordingScope(configuration, elementsScrollPositions, eventIds, nodeIds, shadowRootsController) {
5
- return {
6
- configuration,
7
- elementsScrollPositions,
8
- eventIds,
9
- nodeIds,
10
- shadowRootsController,
11
- };
1
+ const require_stringIds = require("./encoding/stringIds.js");
2
+ const require_itemIds = require("./encoding/itemIds.js");
3
+ //#region src/domain/record/recordingScope.ts
4
+ function createRecordingScope(canvasManager, configuration, elementsScrollPositions, shadowRootsController) {
5
+ const scope = {
6
+ resetIds() {
7
+ scope.eventIds.clear();
8
+ scope.nodeIds.clear();
9
+ scope.stringIds.clear();
10
+ scope.styleSheetIds.clear();
11
+ scope.canvasManager.reset();
12
+ },
13
+ canvasManager,
14
+ configuration,
15
+ elementsScrollPositions,
16
+ eventIds: require_itemIds.createEventIds(),
17
+ nodeIds: require_itemIds.createNodeIds(),
18
+ shadowRootsController,
19
+ stringIds: require_stringIds.createStringIds(),
20
+ styleSheetIds: require_itemIds.createStyleSheetIds()
21
+ };
22
+ return scope;
12
23
  }
24
+ //#endregion
25
+ exports.createRecordingScope = createRecordingScope;
26
+
13
27
  //# sourceMappingURL=recordingScope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recordingScope.js","sourceRoot":"","sources":["../../../src/domain/record/recordingScope.ts"],"names":[],"mappings":";;AAqBA,oDAcC;AAdD,SAAgB,oBAAoB,CAClC,aAA+B,EAC/B,uBAAgD,EAChD,QAAkB,EAClB,OAAgB,EAChB,qBAA4C;IAE5C,OAAO;QACL,aAAa;QACb,uBAAuB;QACvB,QAAQ;QACR,OAAO;QACP,qBAAqB;KACtB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"recordingScope.js","names":["createEventIds","createNodeIds","createStringIds","createStyleSheetIds"],"sources":["../../../src/domain/record/recordingScope.ts"],"sourcesContent":["import type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core'\n\nimport type { ElementsScrollPositions } from './elementsScrollPositions'\nimport { createEventIds, createNodeIds, createStringIds, createStyleSheetIds } from './encoding'\nimport type { EventIds, NodeIds, StringIds, StyleSheetIds } from './encoding'\nimport type { ShadowRootsController } from './shadowRootsController'\nimport type { CanvasManager } from './canvas/canvasManager'\n\n/**\n * State associated with a stream of session replay records. When a new stream of records\n * starts (e.g. because recording has shut down and restarted), a new RecordingScope\n * object must be created; this ensures that we don't generate records that reference ids\n * or data which aren't present in the current stream.\n */\nexport interface RecordingScope {\n resetIds(): void\n\n canvasManager: CanvasManager\n configuration: RumConfiguration\n elementsScrollPositions: ElementsScrollPositions\n eventIds: EventIds\n nodeIds: NodeIds\n shadowRootsController: ShadowRootsController\n stringIds: StringIds\n styleSheetIds: StyleSheetIds\n}\n\nexport function createRecordingScope(\n canvasManager: CanvasManager,\n configuration: RumConfiguration,\n elementsScrollPositions: ElementsScrollPositions,\n shadowRootsController: ShadowRootsController\n): RecordingScope {\n const eventIds = createEventIds()\n const nodeIds = createNodeIds()\n const stringIds = createStringIds()\n const styleSheetIds = createStyleSheetIds()\n\n const scope: RecordingScope = {\n resetIds(): void {\n scope.eventIds.clear()\n scope.nodeIds.clear()\n scope.stringIds.clear()\n scope.styleSheetIds.clear()\n scope.canvasManager.reset()\n },\n\n canvasManager,\n configuration,\n elementsScrollPositions,\n eventIds,\n nodeIds,\n shadowRootsController,\n stringIds,\n styleSheetIds,\n }\n\n return scope\n}\n"],"mappings":";;;AA2BA,SAAgB,qBACd,eACA,eACA,yBACA,uBACgB;CAMhB,MAAM,QAAwB;EAC5B,WAAiB;GACf,MAAM,SAAS,MAAM;GACrB,MAAM,QAAQ,MAAM;GACpB,MAAM,UAAU,MAAM;GACtB,MAAM,cAAc,MAAM;GAC1B,MAAM,cAAc,MAAM;EAC5B;EAEA;EACA;EACA;EACA,UAjBeA,gBAAAA,eAiBR;EACP,SAjBcC,gBAAAA,cAiBR;EACN;EACA,WAlBgBC,kBAAAA,gBAkBR;EACR,eAlBoBC,gBAAAA,oBAkBR;CACd;CAEA,OAAO;AACT"}
@@ -1,8 +1,10 @@
1
+ export { createChildInsertionCursor, createRootInsertionCursor } from './insertionCursor';
1
2
  export { getElementInputValue } from './serializationUtils';
2
- export { serializeDocument } from './serializeDocument';
3
+ export { serializeFullSnapshot } from './serializeFullSnapshot';
4
+ export { serializeMutations } from './serializeMutations';
3
5
  export { serializeNode } from './serializeNode';
4
6
  export { serializeAttribute } from './serializeAttribute';
5
7
  export { createSerializationStats, updateSerializationStats, aggregateSerializationStats } from './serializationStats';
6
8
  export type { SerializationMetric, SerializationStats } from './serializationStats';
7
9
  export { serializeInTransaction, SerializationKind } from './serializationTransaction';
8
- export type { SerializationTransaction, SerializationTransactionCallback } from './serializationTransaction';
10
+ export type { SerializationTransaction } from './serializationTransaction';
@@ -1,18 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeInTransaction = exports.aggregateSerializationStats = exports.updateSerializationStats = exports.createSerializationStats = exports.serializeAttribute = exports.serializeNode = exports.serializeDocument = exports.getElementInputValue = void 0;
4
- var serializationUtils_1 = require("./serializationUtils");
5
- Object.defineProperty(exports, "getElementInputValue", { enumerable: true, get: function () { return serializationUtils_1.getElementInputValue; } });
6
- var serializeDocument_1 = require("./serializeDocument");
7
- Object.defineProperty(exports, "serializeDocument", { enumerable: true, get: function () { return serializeDocument_1.serializeDocument; } });
8
- var serializeNode_1 = require("./serializeNode");
9
- Object.defineProperty(exports, "serializeNode", { enumerable: true, get: function () { return serializeNode_1.serializeNode; } });
10
- var serializeAttribute_1 = require("./serializeAttribute");
11
- Object.defineProperty(exports, "serializeAttribute", { enumerable: true, get: function () { return serializeAttribute_1.serializeAttribute; } });
12
- var serializationStats_1 = require("./serializationStats");
13
- Object.defineProperty(exports, "createSerializationStats", { enumerable: true, get: function () { return serializationStats_1.createSerializationStats; } });
14
- Object.defineProperty(exports, "updateSerializationStats", { enumerable: true, get: function () { return serializationStats_1.updateSerializationStats; } });
15
- Object.defineProperty(exports, "aggregateSerializationStats", { enumerable: true, get: function () { return serializationStats_1.aggregateSerializationStats; } });
16
- var serializationTransaction_1 = require("./serializationTransaction");
17
- Object.defineProperty(exports, "serializeInTransaction", { enumerable: true, get: function () { return serializationTransaction_1.serializeInTransaction; } });
18
- //# sourceMappingURL=index.js.map
1
+ const require_insertionCursor = require("./insertionCursor.js");
2
+ const require_serializationUtils = require("./serializationUtils.js");
3
+ const require_serializationStats = require("./serializationStats.js");
4
+ const require_serializationTransaction = require("./serializationTransaction.js");
5
+ require("./serializeAttribute.js");
6
+ const require_serializeNode = require("./serializeNode.js");
7
+ const require_serializeFullSnapshot = require("./serializeFullSnapshot.js");
8
+ const require_serializeMutations = require("./serializeMutations.js");
9
+ exports.aggregateSerializationStats = require_serializationStats.aggregateSerializationStats;
10
+ exports.createRootInsertionCursor = require_insertionCursor.createRootInsertionCursor;
11
+ exports.createSerializationStats = require_serializationStats.createSerializationStats;
12
+ exports.getElementInputValue = require_serializationUtils.getElementInputValue;
13
+ exports.serializeFullSnapshot = require_serializeFullSnapshot.serializeFullSnapshot;
14
+ exports.serializeInTransaction = require_serializationTransaction.serializeInTransaction;
15
+ exports.serializeMutations = require_serializeMutations.serializeMutations;
16
+ exports.serializeNode = require_serializeNode.serializeNode;
@@ -0,0 +1,57 @@
1
+ import type { InsertionPoint } from '../../../types';
2
+ import type { NodeId, NodeIds } from '../encoding';
3
+ /**
4
+ * InsertionCursor tracks the point at which the next node will be inserted during
5
+ * Change-style DOM serialization.
6
+ *
7
+ * When a new node is added to the document, we use an InsertionPoint to encode its
8
+ * position. There are often multiple equally-valid ways to express the same insertion
9
+ * point; we generally want to favor encodings that use as few characters as possible (to
10
+ * reduce uncompressed size) and that are as repetitive as possible (to reduce compressed
11
+ * size). InsertionCursor's purpose is to heuristically pick an efficient encoding based
12
+ * on the nodes we've recently serialized, while doing as little work as possible. The
13
+ * results are not optimal, but should be close to it in most situations.
14
+ *
15
+ * At the beginning of the serialization process, use a factory function like
16
+ * createRootInsertionCursor() to create a new cursor with an appropriate initial
17
+ * position.
18
+ *
19
+ * When visiting a node, the expected usage pattern is as follows:
20
+ * 1. Call advance() to get a node id and insertion point for the node.
21
+ * 2. Serialize the node.
22
+ * 3. If the node has no children, we're done; continue to the node's next
23
+ * sibling and apply this algorithm again.
24
+ * 4. Otherwise, call descend() to move the cursor into the node's child list.
25
+ * 5. Recursively apply this algorithm.
26
+ * 6. Call ascend() to move the cursor out of the node's child list. We're done;
27
+ * continue to the node's next sibling and apply this algorithm again.
28
+ */
29
+ export interface InsertionCursor {
30
+ /**
31
+ * Given the node id for a new node, returns the InsertionPoint for that node.
32
+ * Updates the cursor to point to the new node's next sibling.
33
+ */
34
+ advance(node: Node): {
35
+ nodeId: NodeId;
36
+ insertionPoint: InsertionPoint;
37
+ };
38
+ /**
39
+ * Ascends out of the current child list and updates the cursor to point to the parent
40
+ * node's next sibling.
41
+ */
42
+ ascend(): void;
43
+ /**
44
+ * Descends into the child list of the last node we inserted and updates the cursor to
45
+ * point to the node's first child.
46
+ */
47
+ descend(): void;
48
+ }
49
+ /** Returns an InsertionCursor which starts positioned at the root of the document. */
50
+ export declare function createRootInsertionCursor(nodeIds: NodeIds): InsertionCursor;
51
+ /**
52
+ * Returns an InsertionCursor which starts positioned in the child list of the given
53
+ * parent node. If a next sibling is provided, the cursor points to the position
54
+ * immediately before the next sibling; otherwise, the cursor points to the end of the
55
+ * child list.
56
+ */
57
+ export declare function createChildInsertionCursor(parentId: NodeId, nextSiblingId: NodeId | undefined, nodeIds: NodeIds): InsertionCursor;
@@ -0,0 +1,55 @@
1
+ //#region src/domain/record/serialization/insertionCursor.ts
2
+ /** Returns an InsertionCursor which starts positioned at the root of the document. */
3
+ function createRootInsertionCursor(nodeIds) {
4
+ return createInsertionCursor(void 0, void 0, nodeIds);
5
+ }
6
+ /**
7
+ * Returns an InsertionCursor which starts positioned in the child list of the given
8
+ * parent node. If a next sibling is provided, the cursor points to the position
9
+ * immediately before the next sibling; otherwise, the cursor points to the end of the
10
+ * child list.
11
+ */
12
+ function createChildInsertionCursor(parentId, nextSiblingId, nodeIds) {
13
+ return createInsertionCursor(parentId, nextSiblingId, nodeIds);
14
+ }
15
+ function createInsertionCursor(parentId, nextSiblingId, nodeIds) {
16
+ let cursor = {
17
+ container: void 0,
18
+ parentId,
19
+ previousSiblingId: void 0,
20
+ nextSiblingId
21
+ };
22
+ const computeInsertionPoint = (nodeId) => {
23
+ if (cursor.previousSiblingId === nodeId - 1) return 0;
24
+ if (cursor.nextSiblingId !== void 0) return cursor.nextSiblingId - nodeId;
25
+ if (cursor.parentId !== void 0) return nodeId - cursor.parentId;
26
+ return null;
27
+ };
28
+ return {
29
+ advance(node) {
30
+ const nodeId = nodeIds.getOrInsert(node);
31
+ const insertionPoint = computeInsertionPoint(nodeId);
32
+ cursor.previousSiblingId = nodeId;
33
+ return {
34
+ nodeId,
35
+ insertionPoint
36
+ };
37
+ },
38
+ ascend() {
39
+ if (cursor.container) cursor = cursor.container;
40
+ },
41
+ descend() {
42
+ if (cursor.previousSiblingId !== void 0) cursor = {
43
+ container: cursor,
44
+ parentId: cursor.previousSiblingId,
45
+ previousSiblingId: void 0,
46
+ nextSiblingId: void 0
47
+ };
48
+ }
49
+ };
50
+ }
51
+ //#endregion
52
+ exports.createChildInsertionCursor = createChildInsertionCursor;
53
+ exports.createRootInsertionCursor = createRootInsertionCursor;
54
+
55
+ //# sourceMappingURL=insertionCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertionCursor.js","names":[],"sources":["../../../../src/domain/record/serialization/insertionCursor.ts"],"sourcesContent":["import type { InsertionPoint } from '../../../types'\nimport type { NodeId, NodeIds } from '../encoding'\n\n/**\n * InsertionCursor tracks the point at which the next node will be inserted during\n * Change-style DOM serialization.\n *\n * When a new node is added to the document, we use an InsertionPoint to encode its\n * position. There are often multiple equally-valid ways to express the same insertion\n * point; we generally want to favor encodings that use as few characters as possible (to\n * reduce uncompressed size) and that are as repetitive as possible (to reduce compressed\n * size). InsertionCursor's purpose is to heuristically pick an efficient encoding based\n * on the nodes we've recently serialized, while doing as little work as possible. The\n * results are not optimal, but should be close to it in most situations.\n *\n * At the beginning of the serialization process, use a factory function like\n * createRootInsertionCursor() to create a new cursor with an appropriate initial\n * position.\n *\n * When visiting a node, the expected usage pattern is as follows:\n * 1. Call advance() to get a node id and insertion point for the node.\n * 2. Serialize the node.\n * 3. If the node has no children, we're done; continue to the node's next\n * sibling and apply this algorithm again.\n * 4. Otherwise, call descend() to move the cursor into the node's child list.\n * 5. Recursively apply this algorithm.\n * 6. Call ascend() to move the cursor out of the node's child list. We're done;\n * continue to the node's next sibling and apply this algorithm again.\n */\nexport interface InsertionCursor {\n /**\n * Given the node id for a new node, returns the InsertionPoint for that node.\n * Updates the cursor to point to the new node's next sibling.\n */\n advance(node: Node): { nodeId: NodeId; insertionPoint: InsertionPoint }\n\n /**\n * Ascends out of the current child list and updates the cursor to point to the parent\n * node's next sibling.\n */\n ascend(): void\n\n /**\n * Descends into the child list of the last node we inserted and updates the cursor to\n * point to the node's first child.\n */\n descend(): void\n}\n\n/** Returns an InsertionCursor which starts positioned at the root of the document. */\nexport function createRootInsertionCursor(nodeIds: NodeIds): InsertionCursor {\n return createInsertionCursor(undefined, undefined, nodeIds)\n}\n\n/**\n * Returns an InsertionCursor which starts positioned in the child list of the given\n * parent node. If a next sibling is provided, the cursor points to the position\n * immediately before the next sibling; otherwise, the cursor points to the end of the\n * child list.\n */\nexport function createChildInsertionCursor(\n parentId: NodeId,\n nextSiblingId: NodeId | undefined,\n nodeIds: NodeIds\n): InsertionCursor {\n return createInsertionCursor(parentId, nextSiblingId, nodeIds)\n}\n\nfunction createInsertionCursor(\n parentId: NodeId | undefined,\n nextSiblingId: NodeId | undefined,\n nodeIds: NodeIds\n): InsertionCursor {\n interface ChildListCursor {\n container: ChildListCursor | undefined\n parentId: NodeId | undefined\n previousSiblingId: NodeId | undefined\n nextSiblingId: NodeId | undefined\n }\n\n let cursor: ChildListCursor = {\n container: undefined,\n parentId,\n previousSiblingId: undefined,\n nextSiblingId,\n }\n\n const computeInsertionPoint = (nodeId: NodeId): InsertionPoint => {\n if (cursor.previousSiblingId === nodeId - 1) {\n // Use an AppendAfterPreviousInsertionPoint. (i.e., 0)\n return 0\n }\n if (cursor.nextSiblingId !== undefined) {\n // Use an InsertBeforeInsertionPoint. We identify the next sibling using a\n // negative integer indicating the difference between the new node's id and its next\n // sibling's id.\n return cursor.nextSiblingId - nodeId\n }\n if (cursor.parentId !== undefined) {\n // Use an AppendChildInsertionPoint. We identify the parent node using a positive\n // integer indicating the difference between the new node's id and its parent's id.\n return nodeId - cursor.parentId\n }\n // There's no parent. Use a RootInsertionPoint. (i.e., null)\n return null\n }\n\n return {\n advance(node: Node): { nodeId: NodeId; insertionPoint: InsertionPoint } {\n const nodeId = nodeIds.getOrInsert(node)\n const insertionPoint = computeInsertionPoint(nodeId)\n cursor.previousSiblingId = nodeId\n return { nodeId, insertionPoint }\n },\n ascend(): void {\n if (cursor.container) {\n cursor = cursor.container\n }\n },\n descend(): void {\n if (cursor.previousSiblingId !== undefined) {\n cursor = {\n container: cursor,\n parentId: cursor.previousSiblingId,\n previousSiblingId: undefined,\n nextSiblingId: undefined,\n }\n }\n },\n }\n}\n"],"mappings":";;AAkDA,SAAgB,0BAA0B,SAAmC;CAC3E,OAAO,sBAAsB,KAAA,GAAW,KAAA,GAAW,OAAO;AAC5D;;;;;;;AAQA,SAAgB,2BACd,UACA,eACA,SACiB;CACjB,OAAO,sBAAsB,UAAU,eAAe,OAAO;AAC/D;AAEA,SAAS,sBACP,UACA,eACA,SACiB;CAQjB,IAAI,SAA0B;EAC5B,WAAW,KAAA;EACX;EACA,mBAAmB,KAAA;EACnB;CACF;CAEA,MAAM,yBAAyB,WAAmC;EAChE,IAAI,OAAO,sBAAsB,SAAS,GAExC,OAAO;EAET,IAAI,OAAO,kBAAkB,KAAA,GAI3B,OAAO,OAAO,gBAAgB;EAEhC,IAAI,OAAO,aAAa,KAAA,GAGtB,OAAO,SAAS,OAAO;EAGzB,OAAO;CACT;CAEA,OAAO;EACL,QAAQ,MAAgE;GACtE,MAAM,SAAS,QAAQ,YAAY,IAAI;GACvC,MAAM,iBAAiB,sBAAsB,MAAM;GACnD,OAAO,oBAAoB;GAC3B,OAAO;IAAE;IAAQ;GAAe;EAClC;EACA,SAAe;GACb,IAAI,OAAO,WACT,SAAS,OAAO;EAEpB;EACA,UAAgB;GACd,IAAI,OAAO,sBAAsB,KAAA,GAC/B,SAAS;IACP,WAAW;IACX,UAAU,OAAO;IACjB,mBAAmB,KAAA;IACnB,eAAe,KAAA;GACjB;EAEJ;CACF;AACF"}
@@ -1,5 +1,3 @@
1
- import type { NodePrivacyLevel } from '@kubesense/kubesense-browser-rum-core';
2
- export type ParentNodePrivacyLevel = typeof NodePrivacyLevel.ALLOW | typeof NodePrivacyLevel.MASK | typeof NodePrivacyLevel.MASK_USER_INPUT | typeof NodePrivacyLevel.MASK_UNLESS_ALLOWLISTED;
3
1
  /**
4
2
  * Virtual attributes. These attributes appear in the serialized attribute map of
5
3
  * elements, but they're not actually derived from the DOM; they're used to represent
@@ -22,7 +20,3 @@ export interface VirtualAttributes {
22
20
  /** For HIDDEN elements, the height of the element's bounding client rect. */
23
21
  rr_height?: string;
24
22
  }
25
- export interface SerializeOptions {
26
- /** For HIDDEN elements, the height of the element's bounding client rect. */
27
- rr_height?: string;
28
- }