@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
@@ -0,0 +1,49 @@
1
+ //#region src/domain/record/encoding/itemIds.ts
2
+ function createEventIds() {
3
+ return createWeakIdMap(1);
4
+ }
5
+ function createNodeIds() {
6
+ return createWeakIdMap(0);
7
+ }
8
+ function createStyleSheetIds() {
9
+ return createWeakIdMap(0);
10
+ }
11
+ function createWeakIdMap(firstId) {
12
+ return createItemIds(() => /* @__PURE__ */ new WeakMap(), firstId);
13
+ }
14
+ function createItemIds(createMap, firstId) {
15
+ let map = createMap();
16
+ let nextId = firstId;
17
+ const get = (object) => map.get(object);
18
+ return {
19
+ clear() {
20
+ if (nextId === firstId) return;
21
+ map = createMap();
22
+ nextId = firstId;
23
+ },
24
+ delete(object) {
25
+ map.delete(object);
26
+ },
27
+ get,
28
+ getOrInsert(object) {
29
+ let id = get(object);
30
+ if (id === void 0) {
31
+ id = nextId++;
32
+ map.set(object, id);
33
+ }
34
+ return id;
35
+ },
36
+ get nextId() {
37
+ return nextId;
38
+ },
39
+ get size() {
40
+ return nextId - firstId;
41
+ }
42
+ };
43
+ }
44
+ //#endregion
45
+ exports.createEventIds = createEventIds;
46
+ exports.createNodeIds = createNodeIds;
47
+ exports.createStyleSheetIds = createStyleSheetIds;
48
+
49
+ //# sourceMappingURL=itemIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemIds.js","names":[],"sources":["../../../../src/domain/record/encoding/itemIds.ts"],"sourcesContent":["export type EventId = number & { __brand: 'EventId' }\nexport type EventIds = ItemIds<Event, EventId>\nexport const enum EventIdConstants {\n FIRST_ID = 1,\n}\nexport function createEventIds(): EventIds {\n return createWeakIdMap(EventIdConstants.FIRST_ID as EventId)\n}\n\nexport type NodeId = number & { __brand: 'NodeId' }\nexport type NodeIds = ItemIds<Node, NodeId>\nexport const enum NodeIdConstants {\n FIRST_ID = 0,\n}\nexport function createNodeIds(): NodeIds {\n return createWeakIdMap(NodeIdConstants.FIRST_ID as NodeId)\n}\n\nexport type StyleSheetId = number & { __brand: 'StyleSheetId' }\nexport type StyleSheetIds = ItemIds<CSSStyleSheet, StyleSheetId>\nexport const enum StyleSheetIdConstants {\n FIRST_ID = 0,\n}\nexport function createStyleSheetIds(): StyleSheetIds {\n return createWeakIdMap(StyleSheetIdConstants.FIRST_ID as StyleSheetId)\n}\n\nexport interface ItemIds<ItemType, ItemId extends number> {\n clear(this: void): void\n delete(this: void, item: ItemType): void\n get(this: void, item: ItemType): ItemId | undefined\n getOrInsert(this: void, item: ItemType): ItemId\n get nextId(): ItemId\n get size(): number\n}\n\nfunction createWeakIdMap<ItemType extends object, ItemId extends number>(firstId: ItemId): ItemIds<ItemType, ItemId> {\n return createItemIds(() => new WeakMap<ItemType, ItemId>(), firstId)\n}\n\ninterface MapLike<Key, Value> {\n delete(key: Key): void\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\nfunction createItemIds<ItemType, ItemId extends number>(\n createMap: () => MapLike<ItemType, ItemId>,\n firstId: ItemId\n): ItemIds<ItemType, ItemId> {\n let map = createMap()\n let nextId = firstId\n\n const get = (object: ItemType): ItemId | undefined => map.get(object)\n\n return {\n clear(): void {\n if (nextId === firstId) {\n return\n }\n map = createMap()\n nextId = firstId\n },\n delete(object: ItemType): void {\n map.delete(object)\n },\n get,\n getOrInsert(object: ItemType): ItemId {\n // Try to reuse any existing id.\n let id = get(object)\n if (id === undefined) {\n id = nextId++ as ItemId\n map.set(object, id)\n }\n return id\n },\n get nextId(): ItemId {\n return nextId\n },\n get size(): number {\n return nextId - firstId\n },\n }\n}\n"],"mappings":";AAKA,SAAgB,iBAA2B;CACzC,OAAO,gBAAA,CAAoD;AAC7D;AAOA,SAAgB,gBAAyB;CACvC,OAAO,gBAAA,CAAkD;AAC3D;AAOA,SAAgB,sBAAqC;CACnD,OAAO,gBAAA,CAA8D;AACvE;AAWA,SAAS,gBAAgE,SAA4C;CACnH,OAAO,oCAAoB,IAAI,QAA0B,GAAG,OAAO;AACrE;AAQA,SAAS,cACP,WACA,SAC2B;CAC3B,IAAI,MAAM,UAAU;CACpB,IAAI,SAAS;CAEb,MAAM,OAAO,WAAyC,IAAI,IAAI,MAAM;CAEpE,OAAO;EACL,QAAc;GACZ,IAAI,WAAW,SACb;GAEF,MAAM,UAAU;GAChB,SAAS;EACX;EACA,OAAO,QAAwB;GAC7B,IAAI,OAAO,MAAM;EACnB;EACA;EACA,YAAY,QAA0B;GAEpC,IAAI,KAAK,IAAI,MAAM;GACnB,IAAI,OAAO,KAAA,GAAW;IACpB,KAAK;IACL,IAAI,IAAI,QAAQ,EAAE;GACpB;GACA,OAAO;EACT;EACA,IAAI,SAAiB;GACnB,OAAO;EACT;EACA,IAAI,OAAe;GACjB,OAAO,SAAS;EAClB;CACF;AACF"}
@@ -0,0 +1,52 @@
1
+ import type { AddNodeChange, RoleAnnotatedStringLiteral, StringLiteral, StringOrStringReference, StringReference } from '../../../types';
2
+ import { StringRole } from '../../../types';
3
+ import type { NodeId } from './itemIds';
4
+ /** The node name of an AddNode change operation, in its role-annotated form. */
5
+ export type RoleAnnotatedAddNodeName<NodeChange extends AddNodeChange> = Exclude<NodeChange[1], StringLiteral | StringReference>;
6
+ /**
7
+ * The node-type-specific parameters of an AddNode change operation, with every string
8
+ * in its role-annotated form.
9
+ */
10
+ export type RoleAnnotatedAddNodeParams<NodeChange extends AddNodeChange> = NodeChange extends [
11
+ any,
12
+ any,
13
+ ...infer Params
14
+ ] ? RoleAnnotatedParams<Params> : never;
15
+ type RoleAnnotatedParams<Params> = {
16
+ [Index in keyof Params]: RoleAnnotatedParam<Params[Index]>;
17
+ };
18
+ type RoleAnnotatedParam<Param> = Param extends StringOrStringReference ? RoleAnnotatedStringLiteral : RoleAnnotatedParams<Param>;
19
+ /**
20
+ * An attribute change whose strings are all annotated with their roles. The node id is a number
21
+ * rather than a string, so it is unaffected.
22
+ */
23
+ export type RoleAnnotatedAttributeChange = [NodeId, ...RoleAnnotatedAttributeAssignmentOrDeletion[]];
24
+ /** An attribute assignment, annotated with string roles. */
25
+ export type RoleAnnotatedAttributeAssignment = [RoleAnnotatedStringLiteral, RoleAnnotatedStringLiteral];
26
+ /** An attribute assignment or deletion, annotated with string roles. */
27
+ export type RoleAnnotatedAttributeAssignmentOrDeletion = [
28
+ RoleAnnotatedStringLiteral,
29
+ RoleAnnotatedStringLiteral
30
+ ] | [RoleAnnotatedStringLiteral];
31
+ /** The string literal portion of a role-annotated string literal type. */
32
+ export type RoleAnnotatedStringLiteralValue<Literal> = Literal extends RoleAnnotatedStringLiteral ? Literal['string'] : never;
33
+ /** The rules of a stylesheet, annotated with their roles. */
34
+ export type RoleAnnotatedStyleSheetRules = RoleAnnotatedStringLiteral | RoleAnnotatedStringLiteral[];
35
+ /** The media list of a stylesheet, annotated with their roles. */
36
+ export type RoleAnnotatedStyleSheetMediaList = RoleAnnotatedStringLiteral[];
37
+ /** Create a serialized string literal annotated with the given role. */
38
+ export declare function createString<Role extends StringRole, Literal extends string>(role: Role, string: Literal): RoleAnnotatedStringLiteral & {
39
+ role: Role;
40
+ string: Literal;
41
+ };
42
+ /**
43
+ * Given a normalized tag name, an attribute name, and an attribute value, returns a
44
+ * serialized attribute assignment annotated with the appropriate roles.
45
+ */
46
+ export declare function createAttributeAssignment(tagName: string, attributeName: string, attributeValue: string): RoleAnnotatedAttributeAssignment;
47
+ /**
48
+ * Given a normalized tag name, an attribute name, and an attribute value, returns a
49
+ * serialized attribute assignment or deletion annotated with the appropriate roles.
50
+ */
51
+ export declare function createAttributeAssignmentOrDeletion(tagName: string, attributeName: string, attributeValue: string | null): RoleAnnotatedAttributeAssignmentOrDeletion;
52
+ export {};
@@ -0,0 +1,66 @@
1
+ const require_sessionReplayConstants = require("../../../types/sessionReplayConstants.js");
2
+ //#region src/domain/record/encoding/roles.ts
3
+ /** Create a serialized string literal annotated with the given role. */
4
+ function createString(role, string) {
5
+ return {
6
+ role,
7
+ string
8
+ };
9
+ }
10
+ /**
11
+ * Given a normalized tag name, an attribute name, and an attribute value, returns a
12
+ * serialized attribute assignment annotated with the appropriate roles.
13
+ */
14
+ function createAttributeAssignment(tagName, attributeName, attributeValue) {
15
+ return [createString(require_sessionReplayConstants.StringRole.AttributeName, attributeName), createString(attributeValueRole(tagName, attributeName), attributeValue)];
16
+ }
17
+ /**
18
+ * Given a normalized tag name, an attribute name, and an attribute value, returns a
19
+ * serialized attribute assignment or deletion annotated with the appropriate roles.
20
+ */
21
+ function createAttributeAssignmentOrDeletion(tagName, attributeName, attributeValue) {
22
+ const name = createString(require_sessionReplayConstants.StringRole.AttributeName, attributeName);
23
+ if (attributeValue === null) return [name];
24
+ return [name, createString(attributeValueRole(tagName, attributeName), attributeValue)];
25
+ }
26
+ /**
27
+ * Elements whose `value` attribute holds form input. Every other element that carries a `value`
28
+ * attribute — `<li>`, `<button>`, `<meter>`, `<param>`, and the rest — holds an ordinary attribute
29
+ * value there, and masking it would change how the page renders rather than hide anything private.
30
+ */
31
+ const FORM_ELEMENT_NAMES = /* @__PURE__ */ new Set([
32
+ "input",
33
+ "option",
34
+ "select",
35
+ "textarea"
36
+ ]);
37
+ /** Attributes whose value is a URL or a list of URLs. */
38
+ const URL_ATTRIBUTE_NAMES = /* @__PURE__ */ new Set([
39
+ "action",
40
+ "background",
41
+ "cite",
42
+ "data",
43
+ "formaction",
44
+ "href",
45
+ "longdesc",
46
+ "manifest",
47
+ "ping",
48
+ "poster",
49
+ "src",
50
+ "srcset",
51
+ "xlink:href"
52
+ ]);
53
+ /** The role that the value of the given attribute plays on the given element. */
54
+ function attributeValueRole(tagName, attributeName) {
55
+ switch (attributeName) {
56
+ case "value": return FORM_ELEMENT_NAMES.has(tagName) ? require_sessionReplayConstants.StringRole.FormInput : require_sessionReplayConstants.StringRole.AttributeValue;
57
+ case "style": return require_sessionReplayConstants.StringRole.Css;
58
+ default: return URL_ATTRIBUTE_NAMES.has(attributeName) ? require_sessionReplayConstants.StringRole.Url : require_sessionReplayConstants.StringRole.AttributeValue;
59
+ }
60
+ }
61
+ //#endregion
62
+ exports.createAttributeAssignment = createAttributeAssignment;
63
+ exports.createAttributeAssignmentOrDeletion = createAttributeAssignmentOrDeletion;
64
+ exports.createString = createString;
65
+
66
+ //# sourceMappingURL=roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.js","names":["StringRole"],"sources":["../../../../src/domain/record/encoding/roles.ts"],"sourcesContent":["/* eslint-disable id-denylist */\n\nimport type {\n AddNodeChange,\n RoleAnnotatedStringLiteral,\n StringLiteral,\n StringOrStringReference,\n StringReference,\n} from '../../../types'\nimport { StringRole } from '../../../types'\nimport type { NodeId } from './itemIds'\n\n/** The node name of an AddNode change operation, in its role-annotated form. */\nexport type RoleAnnotatedAddNodeName<NodeChange extends AddNodeChange> = Exclude<\n NodeChange[1],\n StringLiteral | StringReference\n>\n\n/**\n * The node-type-specific parameters of an AddNode change operation, with every string\n * in its role-annotated form.\n */\nexport type RoleAnnotatedAddNodeParams<NodeChange extends AddNodeChange> = NodeChange extends [\n any,\n any,\n ...infer Params,\n]\n ? RoleAnnotatedParams<Params>\n : never\n\ntype RoleAnnotatedParams<Params> = { [Index in keyof Params]: RoleAnnotatedParam<Params[Index]> }\n\ntype RoleAnnotatedParam<Param> = Param extends StringOrStringReference\n ? RoleAnnotatedStringLiteral\n : RoleAnnotatedParams<Param>\n\n/**\n * An attribute change whose strings are all annotated with their roles. The node id is a number\n * rather than a string, so it is unaffected.\n */\nexport type RoleAnnotatedAttributeChange = [NodeId, ...RoleAnnotatedAttributeAssignmentOrDeletion[]]\n\n/** An attribute assignment, annotated with string roles. */\nexport type RoleAnnotatedAttributeAssignment = [RoleAnnotatedStringLiteral, RoleAnnotatedStringLiteral]\n\n/** An attribute assignment or deletion, annotated with string roles. */\nexport type RoleAnnotatedAttributeAssignmentOrDeletion =\n [RoleAnnotatedStringLiteral, RoleAnnotatedStringLiteral] | [RoleAnnotatedStringLiteral]\n\n/** The string literal portion of a role-annotated string literal type. */\nexport type RoleAnnotatedStringLiteralValue<Literal> = Literal extends RoleAnnotatedStringLiteral\n ? Literal['string']\n : never\n\n/** The rules of a stylesheet, annotated with their roles. */\nexport type RoleAnnotatedStyleSheetRules = RoleAnnotatedStringLiteral | RoleAnnotatedStringLiteral[]\n\n/** The media list of a stylesheet, annotated with their roles. */\nexport type RoleAnnotatedStyleSheetMediaList = RoleAnnotatedStringLiteral[]\n\n/** Create a serialized string literal annotated with the given role. */\nexport function createString<Role extends StringRole, Literal extends string>(\n role: Role,\n string: Literal\n): RoleAnnotatedStringLiteral & { role: Role; string: Literal } {\n return { role, string }\n}\n\n/**\n * Given a normalized tag name, an attribute name, and an attribute value, returns a\n * serialized attribute assignment annotated with the appropriate roles.\n */\nexport function createAttributeAssignment(\n tagName: string,\n attributeName: string,\n attributeValue: string\n): RoleAnnotatedAttributeAssignment {\n return [\n createString(StringRole.AttributeName, attributeName),\n createString(attributeValueRole(tagName, attributeName), attributeValue),\n ]\n}\n\n/**\n * Given a normalized tag name, an attribute name, and an attribute value, returns a\n * serialized attribute assignment or deletion annotated with the appropriate roles.\n */\nexport function createAttributeAssignmentOrDeletion(\n tagName: string,\n attributeName: string,\n attributeValue: string | null\n): RoleAnnotatedAttributeAssignmentOrDeletion {\n const name = createString(StringRole.AttributeName, attributeName)\n\n if (attributeValue === null) {\n return [name]\n }\n\n return [name, createString(attributeValueRole(tagName, attributeName), attributeValue)]\n}\n\n/**\n * Elements whose `value` attribute holds form input. Every other element that carries a `value`\n * attribute — `<li>`, `<button>`, `<meter>`, `<param>`, and the rest — holds an ordinary attribute\n * value there, and masking it would change how the page renders rather than hide anything private.\n */\nconst FORM_ELEMENT_NAMES = new Set(['input', 'option', 'select', 'textarea'])\n\n/** Attributes whose value is a URL or a list of URLs. */\nconst URL_ATTRIBUTE_NAMES = new Set([\n 'action',\n 'background',\n 'cite',\n 'data',\n 'formaction',\n 'href',\n 'longdesc',\n 'manifest',\n 'ping',\n 'poster',\n 'src',\n 'srcset',\n 'xlink:href',\n])\n\n/** The role that the value of the given attribute plays on the given element. */\nfunction attributeValueRole(tagName: string, attributeName: string): StringRole {\n switch (attributeName) {\n case 'value':\n return FORM_ELEMENT_NAMES.has(tagName) ? StringRole.FormInput : StringRole.AttributeValue\n case 'style':\n return StringRole.Css\n default:\n return URL_ATTRIBUTE_NAMES.has(attributeName) ? StringRole.Url : StringRole.AttributeValue\n }\n}\n"],"mappings":";;;AA6DA,SAAgB,aACd,MACA,QAC8D;CAC9D,OAAO;EAAE;EAAM;CAAO;AACxB;;;;;AAMA,SAAgB,0BACd,SACA,eACA,gBACkC;CAClC,OAAO,CACL,aAAaA,+BAAAA,WAAW,eAAe,aAAa,GACpD,aAAa,mBAAmB,SAAS,aAAa,GAAG,cAAc,CACzE;AACF;;;;;AAMA,SAAgB,oCACd,SACA,eACA,gBAC4C;CAC5C,MAAM,OAAO,aAAaA,+BAAAA,WAAW,eAAe,aAAa;CAEjE,IAAI,mBAAmB,MACrB,OAAO,CAAC,IAAI;CAGd,OAAO,CAAC,MAAM,aAAa,mBAAmB,SAAS,aAAa,GAAG,cAAc,CAAC;AACxF;;;;;;AAOA,MAAM,qCAAqB,IAAI,IAAI;CAAC;CAAS;CAAU;CAAU;AAAU,CAAC;;AAG5E,MAAM,sCAAsB,IAAI,IAAI;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;;AAGD,SAAS,mBAAmB,SAAiB,eAAmC;CAC9E,QAAQ,eAAR;EACE,KAAK,SACH,OAAO,mBAAmB,IAAI,OAAO,IAAIA,+BAAAA,WAAW,YAAYA,+BAAAA,WAAW;EAC7E,KAAK,SACH,OAAOA,+BAAAA,WAAW;EACpB,SACE,OAAO,oBAAoB,IAAI,aAAa,IAAIA,+BAAAA,WAAW,MAAMA,+BAAAA,WAAW;CAChF;AACF"}
@@ -0,0 +1,15 @@
1
+ import type { RoleAnnotatedStringLiteral } from '../../../types';
2
+ export type StringId = number & {
3
+ __brand: 'StringId';
4
+ };
5
+ export interface StringIds {
6
+ clear(this: void): void;
7
+ get(this: void, literal: RoleAnnotatedStringLiteral): StringId | undefined;
8
+ getOrInsert(this: void, literal: RoleAnnotatedStringLiteral): StringId;
9
+ get size(): number;
10
+ }
11
+ export declare const enum StringIdConstants {
12
+ FIRST_ID = 0,
13
+ SOFT_MAX_SIZE = 1000000
14
+ }
15
+ export declare function createStringIds(): StringIds;
@@ -0,0 +1,47 @@
1
+ const require_sessionReplayConstants = require("../../../types/sessionReplayConstants.js");
2
+ //#region src/domain/record/encoding/stringIds.ts
3
+ function createStringIds() {
4
+ const firstId = 0;
5
+ let nextId = firstId;
6
+ let mapsByRole = createMapsByRole();
7
+ const get = (literal) => mapsByRole[literal.role][literal.string];
8
+ return {
9
+ clear() {
10
+ if (nextId === firstId) return;
11
+ mapsByRole = createMapsByRole();
12
+ nextId = firstId;
13
+ },
14
+ get,
15
+ getOrInsert(literal) {
16
+ let id = get(literal);
17
+ if (id === void 0) {
18
+ id = nextId++;
19
+ mapsByRole[literal.role][literal.string] = id;
20
+ }
21
+ return id;
22
+ },
23
+ get size() {
24
+ return nextId - firstId;
25
+ }
26
+ };
27
+ }
28
+ function createMapsByRole() {
29
+ return {
30
+ [require_sessionReplayConstants.StringRole.Default]: createStringIdMap(),
31
+ [require_sessionReplayConstants.StringRole.NodeName]: createStringIdMap(),
32
+ [require_sessionReplayConstants.StringRole.AttributeName]: createStringIdMap(),
33
+ [require_sessionReplayConstants.StringRole.AttributeValue]: createStringIdMap(),
34
+ [require_sessionReplayConstants.StringRole.TextContent]: createStringIdMap(),
35
+ [require_sessionReplayConstants.StringRole.FormInput]: createStringIdMap(),
36
+ [require_sessionReplayConstants.StringRole.Css]: createStringIdMap(),
37
+ [require_sessionReplayConstants.StringRole.Url]: createStringIdMap(),
38
+ [require_sessionReplayConstants.StringRole.ResourceId]: createStringIdMap()
39
+ };
40
+ }
41
+ function createStringIdMap() {
42
+ return Object.create(null);
43
+ }
44
+ //#endregion
45
+ exports.createStringIds = createStringIds;
46
+
47
+ //# sourceMappingURL=stringIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringIds.js","names":["StringRole"],"sources":["../../../../src/domain/record/encoding/stringIds.ts"],"sourcesContent":["import type { RoleAnnotatedStringLiteral } from '../../../types'\nimport { StringRole } from '../../../types'\n\nexport type StringId = number & { __brand: 'StringId' }\n\nexport interface StringIds {\n clear(this: void): void\n get(this: void, literal: RoleAnnotatedStringLiteral): StringId | undefined\n getOrInsert(this: void, literal: RoleAnnotatedStringLiteral): StringId\n get size(): number\n}\n\nexport const enum StringIdConstants {\n FIRST_ID = 0,\n\n // An arbitrarily-chosen soft limit on the maximum size of the string id map.\n SOFT_MAX_SIZE = 1000000,\n}\n\ntype StringIdMap = Record<string, StringId | undefined>\ntype StringIdMapsByRole = Record<StringRole, StringIdMap>\n\nexport function createStringIds(): StringIds {\n const firstId = StringIdConstants.FIRST_ID as StringId\n let nextId = firstId\n let mapsByRole = createMapsByRole()\n\n const get = (literal: RoleAnnotatedStringLiteral): StringId | undefined => mapsByRole[literal.role][literal.string]\n\n return {\n clear(): void {\n if (nextId === firstId) {\n return\n }\n mapsByRole = createMapsByRole()\n nextId = firstId\n },\n get,\n getOrInsert(literal: RoleAnnotatedStringLiteral): StringId {\n // Try to reuse any existing id.\n let id = get(literal)\n if (id === undefined) {\n id = nextId++ as StringId\n mapsByRole[literal.role][literal.string] = id\n }\n return id\n },\n get size(): number {\n return nextId - firstId\n },\n }\n}\n\nfunction createMapsByRole(): StringIdMapsByRole {\n return {\n [StringRole.Default]: createStringIdMap(),\n [StringRole.NodeName]: createStringIdMap(),\n [StringRole.AttributeName]: createStringIdMap(),\n [StringRole.AttributeValue]: createStringIdMap(),\n [StringRole.TextContent]: createStringIdMap(),\n [StringRole.FormInput]: createStringIdMap(),\n [StringRole.Css]: createStringIdMap(),\n [StringRole.Url]: createStringIdMap(),\n [StringRole.ResourceId]: createStringIdMap(),\n }\n}\n\nfunction createStringIdMap(): StringIdMap {\n return Object.create(null) as StringIdMap\n}\n"],"mappings":";;AAsBA,SAAgB,kBAA6B;CAC3C,MAAM,UAAA;CACN,IAAI,SAAS;CACb,IAAI,aAAa,iBAAiB;CAElC,MAAM,OAAO,YAA8D,WAAW,QAAQ,KAAK,CAAC,QAAQ;CAE5G,OAAO;EACL,QAAc;GACZ,IAAI,WAAW,SACb;GAEF,aAAa,iBAAiB;GAC9B,SAAS;EACX;EACA;EACA,YAAY,SAA+C;GAEzD,IAAI,KAAK,IAAI,OAAO;GACpB,IAAI,OAAO,KAAA,GAAW;IACpB,KAAK;IACL,WAAW,QAAQ,KAAK,CAAC,QAAQ,UAAU;GAC7C;GACA,OAAO;EACT;EACA,IAAI,OAAe;GACjB,OAAO,SAAS;EAClB;CACF;AACF;AAEA,SAAS,mBAAuC;CAC9C,OAAO;GACJA,+BAAAA,WAAW,UAAU,kBAAkB;GACvCA,+BAAAA,WAAW,WAAW,kBAAkB;GACxCA,+BAAAA,WAAW,gBAAgB,kBAAkB;GAC7CA,+BAAAA,WAAW,iBAAiB,kBAAkB;GAC9CA,+BAAAA,WAAW,cAAc,kBAAkB;GAC3CA,+BAAAA,WAAW,YAAY,kBAAkB;GACzCA,+BAAAA,WAAW,MAAM,kBAAkB;GACnCA,+BAAAA,WAAW,MAAM,kBAAkB;GACnCA,+BAAAA,WAAW,aAAa,kBAAkB;CAC7C;AACF;AAEA,SAAS,oBAAiC;CACxC,OAAO,OAAO,OAAO,IAAI;AAC3B"}
@@ -0,0 +1,15 @@
1
+ import type { RoleAnnotatedStringLiteral, StringLiteral, StringOrStringReference } from '../../../types';
2
+ import { StringRole } from '../../../types';
3
+ export interface StringTable {
4
+ add(newString: string, role: StringRole): void;
5
+ /** Remove every string from the table, so that the next string added gets the first id. */
6
+ clear(): void;
7
+ /** The string that the given value holds, whichever form it takes. */
8
+ decode(value: StringOrStringReference): string;
9
+ /**
10
+ * The given value in the form the decoded record should carry it: the string on its own, or the
11
+ * string together with the role it was defined in, depending on how the table was created.
12
+ */
13
+ decodeAnnotated(value: StringOrStringReference): StringLiteral | RoleAnnotatedStringLiteral;
14
+ }
15
+ export declare function createStringTable(allowObsoleteStringRepresentations?: boolean, keepRoles?: boolean): StringTable;
@@ -0,0 +1,38 @@
1
+ const require_sessionReplayConstants = require("../../../types/sessionReplayConstants.js");
2
+ const require_roles = require("./roles.js");
3
+ //#region src/domain/record/encoding/stringTable.ts
4
+ function createStringTable(allowObsoleteStringRepresentations = false, keepRoles = false) {
5
+ const strings = /* @__PURE__ */ new Map();
6
+ const literalOf = (value) => {
7
+ if (typeof value === "string") {
8
+ if (!allowObsoleteStringRepresentations) throw new Error(`Obsolete untagged string literal: ${value}`);
9
+ return require_roles.createString(require_sessionReplayConstants.StringRole.Default, value);
10
+ }
11
+ if (typeof value === "object") {
12
+ if (!allowObsoleteStringRepresentations) throw new Error(`Obsolete string literal outside the string table: ${value.string}`);
13
+ return value;
14
+ }
15
+ const referencedString = strings.get(value);
16
+ if (referencedString === void 0) throw new Error(`Reference to unknown string: ${value}`);
17
+ return referencedString;
18
+ };
19
+ return {
20
+ add(newString, role) {
21
+ strings.set(strings.size, require_roles.createString(role, newString));
22
+ },
23
+ clear() {
24
+ strings.clear();
25
+ },
26
+ decode(value) {
27
+ return literalOf(value).string;
28
+ },
29
+ decodeAnnotated(value) {
30
+ const literal = literalOf(value);
31
+ return keepRoles ? literal : literal.string;
32
+ }
33
+ };
34
+ }
35
+ //#endregion
36
+ exports.createStringTable = createStringTable;
37
+
38
+ //# sourceMappingURL=stringTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringTable.js","names":["createString","StringRole"],"sources":["../../../../src/domain/record/encoding/stringTable.ts"],"sourcesContent":["import type { RoleAnnotatedStringLiteral, StringLiteral, StringOrStringReference } from '../../../types'\nimport { StringRole } from '../../../types'\nimport { createString } from './roles'\nimport type { StringId } from './stringIds'\n\nexport interface StringTable {\n add(newString: string, role: StringRole): void\n\n /** Remove every string from the table, so that the next string added gets the first id. */\n clear(): void\n\n /** The string that the given value holds, whichever form it takes. */\n decode(value: StringOrStringReference): string\n\n /**\n * The given value in the form the decoded record should carry it: the string on its own, or the\n * string together with the role it was defined in, depending on how the table was created.\n */\n decodeAnnotated(value: StringOrStringReference): StringLiteral | RoleAnnotatedStringLiteral\n}\n\nexport function createStringTable(allowObsoleteStringRepresentations = false, keepRoles = false): StringTable {\n const strings = new Map<StringId, RoleAnnotatedStringLiteral>()\n\n // The string the given value holds, along with the role it holds it in.\n const literalOf = (value: StringOrStringReference): RoleAnnotatedStringLiteral => {\n if (typeof value === 'string') {\n // A plain string literal. The encoder tags every literal it emits with a role, so one\n // without a role means something built this change data outside the encoder.\n if (!allowObsoleteStringRepresentations) {\n throw new Error(`Obsolete untagged string literal: ${value}`)\n }\n // An untagged literal says nothing about what it holds, which is the default role.\n return createString(StringRole.Default, value)\n }\n\n if (typeof value === 'object') {\n // A role-annotated string literal. The encoder gives every string an entry in the\n // string table, so something must have built this change data outside the encoder.\n if (!allowObsoleteStringRepresentations) {\n throw new Error(`Obsolete string literal outside the string table: ${value.string}`)\n }\n return value\n }\n\n const referencedString = strings.get(value as StringId)\n if (referencedString === undefined) {\n throw new Error(`Reference to unknown string: ${value}`)\n }\n return referencedString\n }\n\n return {\n add(newString: string, role: StringRole): void {\n strings.set(strings.size as StringId, createString(role, newString))\n },\n clear(): void {\n strings.clear()\n },\n decode(value: StringOrStringReference): string {\n return literalOf(value).string\n },\n decodeAnnotated(value: StringOrStringReference): StringLiteral | RoleAnnotatedStringLiteral {\n const literal = literalOf(value)\n return keepRoles ? literal : literal.string\n },\n }\n}\n"],"mappings":";;;AAqBA,SAAgB,kBAAkB,qCAAqC,OAAO,YAAY,OAAoB;CAC5G,MAAM,0BAAU,IAAI,IAA0C;CAG9D,MAAM,aAAa,UAA+D;EAChF,IAAI,OAAO,UAAU,UAAU;GAG7B,IAAI,CAAC,oCACH,MAAM,IAAI,MAAM,qCAAqC,OAAO;GAG9D,OAAOA,cAAAA,aAAaC,+BAAAA,WAAW,SAAS,KAAK;EAC/C;EAEA,IAAI,OAAO,UAAU,UAAU;GAG7B,IAAI,CAAC,oCACH,MAAM,IAAI,MAAM,qDAAqD,MAAM,QAAQ;GAErF,OAAO;EACT;EAEA,MAAM,mBAAmB,QAAQ,IAAI,KAAiB;EACtD,IAAI,qBAAqB,KAAA,GACvB,MAAM,IAAI,MAAM,gCAAgC,OAAO;EAEzD,OAAO;CACT;CAEA,OAAO;EACL,IAAI,WAAmB,MAAwB;GAC7C,QAAQ,IAAI,QAAQ,MAAkBD,cAAAA,aAAa,MAAM,SAAS,CAAC;EACrE;EACA,QAAc;GACZ,QAAQ,MAAM;EAChB;EACA,OAAO,OAAwC;GAC7C,OAAO,UAAU,KAAK,CAAC,CAAC;EAC1B;EACA,gBAAgB,OAA4E;GAC1F,MAAM,UAAU,UAAU,KAAK;GAC/B,OAAO,YAAY,UAAU,QAAQ;EACvC;CACF;AACF"}
@@ -1,15 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTouchEvent = isTouchEvent;
4
- exports.getEventTarget = getEventTarget;
5
- const kubesense_browser_rum_core_1 = require("@kubesense/kubesense-browser-rum-core");
1
+ let _kubesense_kubesense_browser_rum_core = require("@kubesense/kubesense-browser-rum-core");
2
+ //#region src/domain/record/eventsUtils.ts
6
3
  function isTouchEvent(event) {
7
- return Boolean(event.changedTouches);
4
+ return Boolean(event.changedTouches);
8
5
  }
9
6
  function getEventTarget(event) {
10
- if (event.composed === true && (0, kubesense_browser_rum_core_1.isNodeShadowHost)(event.target)) {
11
- return event.composedPath()[0];
12
- }
13
- return event.target;
7
+ if (event.composed === true && (0, _kubesense_kubesense_browser_rum_core.isNodeShadowHost)(event.target)) return event.composedPath()[0];
8
+ return event.target;
14
9
  }
10
+ //#endregion
11
+ exports.getEventTarget = getEventTarget;
12
+ exports.isTouchEvent = isTouchEvent;
13
+
15
14
  //# sourceMappingURL=eventsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventsUtils.js","sourceRoot":"","sources":["../../../src/domain/record/eventsUtils.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,wCAKC;AAXD,sFAAwE;AAExE,SAAgB,YAAY,CAAC,KAA8B;IACzD,OAAO,OAAO,CAAE,KAAoB,CAAC,cAAc,CAAC,CAAA;AACtD,CAAC;AAED,SAAgB,cAAc,CAAC,KAAY;IACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAA,6CAAgB,EAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAS,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAC,MAAc,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"eventsUtils.js","names":["isNodeShadowHost"],"sources":["../../../src/domain/record/eventsUtils.ts"],"sourcesContent":["import { isNodeShadowHost } from '@kubesense/kubesense-browser-rum-core'\n\nexport function isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n return Boolean((event as TouchEvent).changedTouches)\n}\n\nexport function getEventTarget(event: Event): Node {\n if (event.composed === true && isNodeShadowHost(event.target as Node)) {\n return event.composedPath()[0] as Node\n }\n return event.target as Node\n}\n"],"mappings":";;AAEA,SAAgB,aAAa,OAAqD;CAChF,OAAO,QAAS,MAAqB,cAAc;AACrD;AAEA,SAAgB,eAAe,OAAoB;CACjD,IAAI,MAAM,aAAa,SAAA,GAAQA,sCAAAA,iBAAAA,CAAiB,MAAM,MAAc,GAClE,OAAO,MAAM,aAAa,CAAC,CAAC;CAE9B,OAAO,MAAM;AACf"}
@@ -1,7 +1,10 @@
1
+ export { MUTATION_PROCESS_MIN_DELAY } from './mutationBatch';
2
+ export type { EmitResourceCallback } from './record.types';
1
3
  export { takeFullSnapshot, takeNodeSnapshot } from './internalApi';
2
4
  export { record } from './record';
5
+ export type { ChangeDecoder, ChangeDecoderOptions } from './encoding';
6
+ export { createChangeDecoder } from './encoding';
3
7
  export type { SerializationMetric, SerializationStats } from './serialization';
4
- export { createSerializationStats, aggregateSerializationStats } from './serialization';
5
- export { serializeNode, serializeDocument } from './serialization';
8
+ export { aggregateSerializationStats, createSerializationStats } from './serialization';
6
9
  export { createElementsScrollPositions } from './elementsScrollPositions';
7
10
  export type { ShadowRootsController } from './shadowRootsController';
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createElementsScrollPositions = exports.serializeDocument = exports.serializeNode = exports.aggregateSerializationStats = exports.createSerializationStats = exports.record = exports.takeNodeSnapshot = exports.takeFullSnapshot = void 0;
4
- var internalApi_1 = require("./internalApi");
5
- Object.defineProperty(exports, "takeFullSnapshot", { enumerable: true, get: function () { return internalApi_1.takeFullSnapshot; } });
6
- Object.defineProperty(exports, "takeNodeSnapshot", { enumerable: true, get: function () { return internalApi_1.takeNodeSnapshot; } });
7
- var record_1 = require("./record");
8
- Object.defineProperty(exports, "record", { enumerable: true, get: function () { return record_1.record; } });
9
- var serialization_1 = require("./serialization");
10
- Object.defineProperty(exports, "createSerializationStats", { enumerable: true, get: function () { return serialization_1.createSerializationStats; } });
11
- Object.defineProperty(exports, "aggregateSerializationStats", { enumerable: true, get: function () { return serialization_1.aggregateSerializationStats; } });
12
- var serialization_2 = require("./serialization");
13
- Object.defineProperty(exports, "serializeNode", { enumerable: true, get: function () { return serialization_2.serializeNode; } });
14
- Object.defineProperty(exports, "serializeDocument", { enumerable: true, get: function () { return serialization_2.serializeDocument; } });
15
- var elementsScrollPositions_1 = require("./elementsScrollPositions");
16
- Object.defineProperty(exports, "createElementsScrollPositions", { enumerable: true, get: function () { return elementsScrollPositions_1.createElementsScrollPositions; } });
17
- //# sourceMappingURL=index.js.map
1
+ require("./mutationBatch.js");
2
+ const require_changeDecoder = require("./encoding/changeDecoder.js");
3
+ const require_serializationStats = require("./serialization/serializationStats.js");
4
+ require("./serialization/index.js");
5
+ require("./elementsScrollPositions.js");
6
+ const require_internalApi = require("./internalApi.js");
7
+ const require_record = require("./record.js");
8
+ exports.aggregateSerializationStats = require_serializationStats.aggregateSerializationStats;
9
+ exports.createChangeDecoder = require_changeDecoder.createChangeDecoder;
10
+ exports.createSerializationStats = require_serializationStats.createSerializationStats;
11
+ exports.record = require_record.record;
12
+ exports.takeFullSnapshot = require_internalApi.takeFullSnapshot;
13
+ exports.takeNodeSnapshot = require_internalApi.takeNodeSnapshot;
@@ -1,10 +1,10 @@
1
1
  import type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core';
2
- import type { BrowserRecord, SerializedNodeWithId } from '../../types';
2
+ import type { BrowserRecord } from '../../types';
3
3
  /**
4
- * Take a full snapshot of the document, generating the same records that the Kubesense browser SDK
4
+ * Take a full snapshot of the document, generating the same records that the browser SDK
5
5
  * would generate.
6
6
  *
7
- * This is an internal API function. Be sure to update kubesense-internal callers if you
7
+ * This is an internal API function. Be sure to update KubeSense-internal callers if you
8
8
  * change its signature or behavior.
9
9
  */
10
10
  export declare function takeFullSnapshot({ configuration, }?: {
@@ -12,11 +12,11 @@ export declare function takeFullSnapshot({ configuration, }?: {
12
12
  }): BrowserRecord[];
13
13
  /**
14
14
  * Take a snapshot of a DOM node, generating the serialized representation that the
15
- * kubesense browser SDK would generate.
15
+ * browser SDK would generate.
16
16
  *
17
- * This is an internal API function. Be sure to update Kubesense-internal callers if you
17
+ * This is an internal API function. Be sure to update KubeSense-internal callers if you
18
18
  * change its signature or behavior.
19
19
  */
20
20
  export declare function takeNodeSnapshot(node: Node, { configuration }?: {
21
21
  configuration?: Partial<RumConfiguration>;
22
- }): SerializedNodeWithId | null;
22
+ }): BrowserRecord | undefined;
@@ -1,57 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.takeFullSnapshot = takeFullSnapshot;
4
- exports.takeNodeSnapshot = takeNodeSnapshot;
5
- const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
6
- const kubesense_browser_rum_core_1 = require("@kubesense/kubesense-browser-rum-core");
7
- const startFullSnapshots_1 = require("./startFullSnapshots");
8
- const recordingScope_1 = require("./recordingScope");
9
- const elementsScrollPositions_1 = require("./elementsScrollPositions");
10
- const eventIds_1 = require("./eventIds");
11
- const nodeIds_1 = require("./nodeIds");
12
- const serialization_1 = require("./serialization");
1
+ const require_insertionCursor = require("./serialization/insertionCursor.js");
2
+ const require_serializationTransaction = require("./serialization/serializationTransaction.js");
3
+ const require_canvasManager = require("./canvas/canvasManager.js");
4
+ const require_serializeNode = require("./serialization/serializeNode.js");
5
+ require("./serialization/index.js");
6
+ const require_startFullSnapshots = require("./startFullSnapshots.js");
7
+ const require_recordingScope = require("./recordingScope.js");
8
+ const require_elementsScrollPositions = require("./elementsScrollPositions.js");
9
+ let _kubesense_kubesense_browser_rum_core = require("@kubesense/kubesense-browser-rum-core");
10
+ let _kubesense_kubesense_browser_core = require("@kubesense/kubesense-browser-core");
11
+ let _kubesense_kubesense_js_core_time = require("@kubesense/kubesense-js-core/time");
12
+ //#region src/domain/record/internalApi.ts
13
13
  /**
14
- * Take a full snapshot of the document, generating the same records that the Kubesense browser SDK
15
- * would generate.
16
- *
17
- * This is an internal API function. Be sure to update kubesense-internal callers if you
18
- * change its signature or behavior.
19
- */
20
- function takeFullSnapshot({ configuration, } = {}) {
21
- const records = [];
22
- const emitRecord = (record) => {
23
- records.push(record);
24
- };
25
- (0, startFullSnapshots_1.takeFullSnapshot)((0, kubesense_browser_core_1.timeStampNow)(), 0 /* SerializationKind.INITIAL_FULL_SNAPSHOT */, emitRecord, kubesense_browser_core_1.noop, createTemporaryRecordingScope(configuration));
26
- return records;
14
+ * Take a full snapshot of the document, generating the same records that the browser SDK
15
+ * would generate.
16
+ *
17
+ * This is an internal API function. Be sure to update KubeSense-internal callers if you
18
+ * change its signature or behavior.
19
+ */
20
+ function takeFullSnapshot({ configuration } = {}) {
21
+ const records = [];
22
+ const emitRecord = (record) => {
23
+ records.push(record);
24
+ };
25
+ require_startFullSnapshots.takeFullSnapshot((0, _kubesense_kubesense_js_core_time.timeStampNow)(), 0, emitRecord, _kubesense_kubesense_browser_core.noop, createTemporaryRecordingScope(configuration));
26
+ return records;
27
27
  }
28
28
  /**
29
- * Take a snapshot of a DOM node, generating the serialized representation that the
30
- * kubesense browser SDK would generate.
31
- *
32
- * This is an internal API function. Be sure to update Kubesense-internal callers if you
33
- * change its signature or behavior.
34
- */
29
+ * Take a snapshot of a DOM node, generating the serialized representation that the
30
+ * browser SDK would generate.
31
+ *
32
+ * This is an internal API function. Be sure to update KubeSense-internal callers if you
33
+ * change its signature or behavior.
34
+ */
35
35
  function takeNodeSnapshot(node, { configuration } = {}) {
36
- let serializedNode = null;
37
- (0, serialization_1.serializeInTransaction)(0 /* SerializationKind.INITIAL_FULL_SNAPSHOT */, kubesense_browser_core_1.noop, kubesense_browser_core_1.noop, createTemporaryRecordingScope(configuration), (transaction) => {
38
- const privacyLevel = (0, kubesense_browser_rum_core_1.getNodePrivacyLevel)(node, transaction.scope.configuration.defaultPrivacyLevel);
39
- if (privacyLevel === kubesense_browser_rum_core_1.NodePrivacyLevel.HIDDEN || privacyLevel === kubesense_browser_rum_core_1.NodePrivacyLevel.IGNORE) {
40
- return;
41
- }
42
- serializedNode = (0, serialization_1.serializeNode)(node, privacyLevel, transaction);
43
- });
44
- return serializedNode;
36
+ let nodeSnapshotRecord;
37
+ const emitRecord = (record) => {
38
+ nodeSnapshotRecord = record;
39
+ };
40
+ require_serializationTransaction.serializeInTransaction(0, emitRecord, _kubesense_kubesense_browser_core.noop, createTemporaryRecordingScope(configuration), (0, _kubesense_kubesense_js_core_time.timeStampNow)(), (transaction) => {
41
+ const privacyLevel = (0, _kubesense_kubesense_browser_rum_core.getNodePrivacyLevel)(node, transaction.scope.configuration.defaultPrivacyLevel);
42
+ if (privacyLevel === _kubesense_kubesense_browser_rum_core.NodePrivacyLevel.HIDDEN || privacyLevel === _kubesense_kubesense_browser_rum_core.NodePrivacyLevel.IGNORE) return;
43
+ const cursor = require_insertionCursor.createRootInsertionCursor(transaction.scope.nodeIds);
44
+ require_serializeNode.serializeNode(cursor, node, privacyLevel, transaction);
45
+ });
46
+ return nodeSnapshotRecord;
45
47
  }
46
48
  function createTemporaryRecordingScope(configuration) {
47
- return (0, recordingScope_1.createRecordingScope)({
48
- defaultPrivacyLevel: kubesense_browser_rum_core_1.NodePrivacyLevel.ALLOW,
49
- ...configuration,
50
- }, (0, elementsScrollPositions_1.createElementsScrollPositions)(), (0, eventIds_1.createEventIds)(), (0, nodeIds_1.createNodeIds)(), {
51
- addShadowRoot: kubesense_browser_core_1.noop,
52
- removeShadowRoot: kubesense_browser_core_1.noop,
53
- flush: kubesense_browser_core_1.noop,
54
- stop: kubesense_browser_core_1.noop,
55
- });
49
+ return require_recordingScope.createRecordingScope(require_canvasManager.createCanvasManager(), {
50
+ defaultPrivacyLevel: _kubesense_kubesense_browser_rum_core.NodePrivacyLevel.ALLOW,
51
+ ...configuration
52
+ }, require_elementsScrollPositions.createElementsScrollPositions(), {
53
+ addShadowRoot: _kubesense_kubesense_browser_core.noop,
54
+ removeShadowRoot: _kubesense_kubesense_browser_core.noop,
55
+ flush: _kubesense_kubesense_browser_core.noop,
56
+ stop: _kubesense_kubesense_browser_core.noop
57
+ });
56
58
  }
59
+ //#endregion
60
+ exports.takeFullSnapshot = takeFullSnapshot;
61
+ exports.takeNodeSnapshot = takeNodeSnapshot;
62
+
57
63
  //# sourceMappingURL=internalApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internalApi.js","sourceRoot":"","sources":["../../../src/domain/record/internalApi.ts"],"names":[],"mappings":";;AAsBA,4CAiBC;AASD,4CAqBC;AArED,8EAAsE;AAEtE,sFAA6F;AAE7F,6DAA6E;AAG7E,qDAAuD;AACvD,uEAAyE;AACzE,yCAA2C;AAC3C,uCAAyC;AAGzC,mDAA0F;AAE1F;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,EAC/B,aAAa,MACoC,EAAE;IACnD,MAAM,OAAO,GAAoB,EAAE,CAAA;IACnC,MAAM,UAAU,GAAuB,CAAC,MAAqB,EAAE,EAAE;QAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,IAAA,qCAAkB,EAChB,IAAA,qCAAY,GAAE,mDAEd,UAAU,EACV,6BAAI,EACJ,6BAA6B,CAAC,aAAa,CAAC,CAC7C,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,IAAU,EACV,EAAE,aAAa,KAAoD,EAAE;IAErE,IAAI,cAAc,GAAgC,IAAI,CAAA;IAEtD,IAAA,sCAAsB,mDAEpB,6BAAI,EACJ,6BAAI,EACJ,6BAA6B,CAAC,aAAa,CAAC,EAC5C,CAAC,WAAqC,EAAQ,EAAE;QAC9C,MAAM,YAAY,GAAG,IAAA,gDAAmB,EAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QACnG,IAAI,YAAY,KAAK,6CAAgB,CAAC,MAAM,IAAI,YAAY,KAAK,6CAAgB,CAAC,MAAM,EAAE,CAAC;YACzF,OAAM;QACR,CAAC;QACD,cAAc,GAAG,IAAA,6BAAa,EAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IACjE,CAAC,CACF,CAAA;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAyC;IAC9E,OAAO,IAAA,qCAAoB,EACzB;QACE,mBAAmB,EAAE,6CAAgB,CAAC,KAAK;QAC3C,GAAG,aAAa;KACG,EACrB,IAAA,uDAA6B,GAAE,EAC/B,IAAA,yBAAc,GAAE,EAChB,IAAA,uBAAa,GAAE,EACf;QACE,aAAa,EAAE,6BAAI;QACnB,gBAAgB,EAAE,6BAAI;QACtB,KAAK,EAAE,6BAAI;QACX,IAAI,EAAE,6BAAI;KACc,CAC3B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"internalApi.js","names":["timeStampNow","noop","getNodePrivacyLevel","NodePrivacyLevel","createRootInsertionCursor","createRecordingScope","createCanvasManager","createElementsScrollPositions"],"sources":["../../../src/domain/record/internalApi.ts"],"sourcesContent":["import { noop } from '@kubesense/kubesense-browser-core'\nimport { timeStampNow } from '@kubesense/kubesense-js-core/time'\nimport type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core'\nimport { getNodePrivacyLevel, NodePrivacyLevel } from '@kubesense/kubesense-browser-rum-core'\nimport type { BrowserRecord } from '../../types'\nimport { takeFullSnapshot as doTakeFullSnapshot } from './startFullSnapshots'\nimport type { RecordingScope } from './recordingScope'\nimport { createRecordingScope } from './recordingScope'\nimport { createElementsScrollPositions } from './elementsScrollPositions'\nimport type { EmitRecordCallback } from './record.types'\nimport type { SerializationTransaction } from './serialization'\nimport { createRootInsertionCursor, SerializationKind, serializeInTransaction, serializeNode } from './serialization'\nimport { createCanvasManager } from './canvas/canvasManager'\n\n/**\n * Take a full snapshot of the document, generating the same records that the browser SDK\n * would generate.\n *\n * This is an internal API function. Be sure to update KubeSense-internal callers if you\n * change its signature or behavior.\n */\nexport function takeFullSnapshot({\n configuration,\n}: { configuration?: Partial<RumConfiguration> } = {}): BrowserRecord[] {\n const records: BrowserRecord[] = []\n const emitRecord: EmitRecordCallback = (record: BrowserRecord) => {\n records.push(record)\n }\n\n doTakeFullSnapshot(\n timeStampNow(),\n SerializationKind.INITIAL_FULL_SNAPSHOT,\n emitRecord,\n noop,\n createTemporaryRecordingScope(configuration)\n )\n\n return records\n}\n\n/**\n * Take a snapshot of a DOM node, generating the serialized representation that the\n * browser SDK would generate.\n *\n * This is an internal API function. Be sure to update KubeSense-internal callers if you\n * change its signature or behavior.\n */\nexport function takeNodeSnapshot(\n node: Node,\n { configuration }: { configuration?: Partial<RumConfiguration> } = {}\n): BrowserRecord | undefined {\n let nodeSnapshotRecord: BrowserRecord | undefined\n const emitRecord = (record: BrowserRecord) => {\n nodeSnapshotRecord = record\n }\n\n serializeInTransaction(\n SerializationKind.INITIAL_FULL_SNAPSHOT,\n emitRecord,\n noop,\n createTemporaryRecordingScope(configuration),\n timeStampNow(),\n (transaction: SerializationTransaction): void => {\n const privacyLevel = getNodePrivacyLevel(node, transaction.scope.configuration.defaultPrivacyLevel)\n if (privacyLevel === NodePrivacyLevel.HIDDEN || privacyLevel === NodePrivacyLevel.IGNORE) {\n return\n }\n const cursor = createRootInsertionCursor(transaction.scope.nodeIds)\n serializeNode(cursor, node, privacyLevel, transaction)\n }\n )\n\n return nodeSnapshotRecord\n}\n\nfunction createTemporaryRecordingScope(configuration?: Partial<RumConfiguration>): RecordingScope {\n return createRecordingScope(\n createCanvasManager(),\n {\n defaultPrivacyLevel: NodePrivacyLevel.ALLOW,\n ...configuration,\n } as RumConfiguration,\n createElementsScrollPositions(),\n {\n addShadowRoot: noop,\n removeShadowRoot: noop,\n flush: noop,\n stop: noop,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,iBAAiB,EAC/B,kBACiD,CAAC,GAAoB;CACtE,MAAM,UAA2B,CAAC;CAClC,MAAM,cAAkC,WAA0B;EAChE,QAAQ,KAAK,MAAM;CACrB;CAEA,2BAAA,kBAAA,GACEA,kCAAAA,aAAAA,CAAa,GAAA,GAEb,YACAC,kCAAAA,MACA,8BAA8B,aAAa,CAC7C;CAEA,OAAO;AACT;;;;;;;;AASA,SAAgB,iBACd,MACA,EAAE,kBAAiE,CAAC,GACzC;CAC3B,IAAI;CACJ,MAAM,cAAc,WAA0B;EAC5C,qBAAqB;CACvB;CAEA,iCAAA,uBAAA,GAEE,YACAA,kCAAAA,MACA,8BAA8B,aAAa,IAAA,GAC3CD,kCAAAA,aAAAA,CAAa,IACZ,gBAAgD;EAC/C,MAAM,gBAAA,GAAeE,sCAAAA,oBAAAA,CAAoB,MAAM,YAAY,MAAM,cAAc,mBAAmB;EAClG,IAAI,iBAAiBC,sCAAAA,iBAAiB,UAAU,iBAAiBA,sCAAAA,iBAAiB,QAChF;EAEF,MAAM,SAASC,wBAAAA,0BAA0B,YAAY,MAAM,OAAO;EAClE,sBAAA,cAAc,QAAQ,MAAM,cAAc,WAAW;CACvD,CACF;CAEA,OAAO;AACT;AAEA,SAAS,8BAA8B,eAA2D;CAChG,OAAOC,uBAAAA,qBACLC,sBAAAA,oBAAoB,GACpB;EACE,qBAAqBH,sCAAAA,iBAAiB;EACtC,GAAG;CACL,GACAI,gCAAAA,8BAA8B,GAC9B;EACE,eAAeN,kCAAAA;EACf,kBAAkBA,kCAAAA;EAClB,OAAOA,kCAAAA;EACP,MAAMA,kCAAAA;CACR,CACF;AACF"}
@@ -7,6 +7,7 @@ import type { RumMutationRecord } from '@kubesense/kubesense-browser-rum-core';
7
7
  export declare const MUTATION_PROCESS_MIN_DELAY = 16;
8
8
  export declare function createMutationBatch(processMutationBatch: (mutations: RumMutationRecord[]) => void): {
9
9
  addMutations: (mutations: RumMutationRecord[]) => void;
10
+ notifyContentMutated: () => void;
10
11
  flush: () => void;
11
12
  stop: () => void;
12
13
  };