@openreplay/tracker 14.0.10-beta.1 → 14.0.10

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 (273) hide show
  1. package/{cjs → dist/cjs}/index.js +27 -49
  2. package/dist/cjs/index.js.map +1 -0
  3. package/{cjs → dist/cjs/main}/app/index.d.ts +38 -6
  4. package/{lib → dist/cjs/main}/app/messages.gen.d.ts +2 -2
  5. package/{lib/app/nodes.d.ts → dist/cjs/main/app/nodes/index.d.ts} +15 -7
  6. package/dist/cjs/main/app/nodes/maintainer.d.ts +28 -0
  7. package/{cjs → dist/cjs/main}/app/observer/iframe_observer.d.ts +1 -1
  8. package/{lib → dist/cjs/main}/app/observer/iframe_offsets.d.ts +1 -1
  9. package/{lib → dist/cjs/main}/app/observer/observer.d.ts +6 -0
  10. package/{lib → dist/cjs/main}/app/observer/top_observer.d.ts +6 -2
  11. package/{cjs → dist/cjs/main}/app/sanitizer.d.ts +5 -2
  12. package/{cjs → dist/cjs/main}/app/session.d.ts +6 -3
  13. package/{lib → dist/cjs/main}/index.d.ts +2 -2
  14. package/{lib → dist/cjs/main}/modules/attributeSender.d.ts +5 -2
  15. package/{cjs → dist/cjs/main}/modules/conditionsManager.d.ts +1 -1
  16. package/{cjs → dist/cjs/main}/modules/tagWatcher.d.ts +8 -4
  17. package/{lib → dist/cjs/main}/modules/userTesting/SignalManager.d.ts +2 -2
  18. package/{lib → dist/cjs/main}/utils.d.ts +4 -3
  19. package/dist/lib/index.js +9323 -0
  20. package/dist/lib/index.js.map +1 -0
  21. package/{lib → dist/lib/main}/app/index.d.ts +38 -6
  22. package/{cjs → dist/lib/main}/app/messages.gen.d.ts +2 -2
  23. package/{cjs/app/nodes.d.ts → dist/lib/main/app/nodes/index.d.ts} +15 -7
  24. package/dist/lib/main/app/nodes/maintainer.d.ts +28 -0
  25. package/{lib → dist/lib/main}/app/observer/iframe_observer.d.ts +1 -1
  26. package/{cjs → dist/lib/main}/app/observer/iframe_offsets.d.ts +1 -1
  27. package/{cjs → dist/lib/main}/app/observer/observer.d.ts +6 -0
  28. package/{cjs → dist/lib/main}/app/observer/top_observer.d.ts +6 -2
  29. package/{lib → dist/lib/main}/app/sanitizer.d.ts +5 -2
  30. package/{lib → dist/lib/main}/app/session.d.ts +6 -3
  31. package/{cjs → dist/lib/main}/index.d.ts +2 -2
  32. package/{cjs → dist/lib/main}/modules/attributeSender.d.ts +5 -2
  33. package/{lib → dist/lib/main}/modules/conditionsManager.d.ts +1 -1
  34. package/{lib → dist/lib/main}/modules/tagWatcher.d.ts +8 -4
  35. package/{cjs → dist/lib/main}/modules/userTesting/SignalManager.d.ts +2 -2
  36. package/{cjs → dist/lib/main}/utils.d.ts +4 -3
  37. package/package.json +29 -10
  38. package/.eslintignore +0 -11
  39. package/.nvmrc +0 -1
  40. package/.prettierignore +0 -1
  41. package/CHANGELOG.md +0 -297
  42. package/bun.lockb +0 -0
  43. package/cjs/app/canvas.js +0 -204
  44. package/cjs/app/guards.js +0 -37
  45. package/cjs/app/index.js +0 -1366
  46. package/cjs/app/logger.js +0 -37
  47. package/cjs/app/messages.gen.js +0 -702
  48. package/cjs/app/nodes.js +0 -110
  49. package/cjs/app/observer/iframe_observer.js +0 -35
  50. package/cjs/app/observer/iframe_offsets.js +0 -56
  51. package/cjs/app/observer/observer.js +0 -352
  52. package/cjs/app/observer/shadow_root_observer.js +0 -24
  53. package/cjs/app/observer/top_observer.js +0 -134
  54. package/cjs/app/sanitizer.js +0 -82
  55. package/cjs/app/session.js +0 -140
  56. package/cjs/app/ticker.js +0 -48
  57. package/cjs/common/interaction.js +0 -2
  58. package/cjs/common/messages.gen.js +0 -4
  59. package/cjs/modules/attributeSender.js +0 -51
  60. package/cjs/modules/axiosSpy.js +0 -122
  61. package/cjs/modules/conditionsManager.js +0 -343
  62. package/cjs/modules/connection.js +0 -15
  63. package/cjs/modules/console.js +0 -127
  64. package/cjs/modules/constructedStyleSheets.js +0 -138
  65. package/cjs/modules/cssrules.js +0 -99
  66. package/cjs/modules/exception.js +0 -85
  67. package/cjs/modules/featureFlags.js +0 -89
  68. package/cjs/modules/focus.js +0 -45
  69. package/cjs/modules/fonts.js +0 -57
  70. package/cjs/modules/img.js +0 -110
  71. package/cjs/modules/input.js +0 -203
  72. package/cjs/modules/mouse.js +0 -195
  73. package/cjs/modules/network.js +0 -244
  74. package/cjs/modules/performance.js +0 -53
  75. package/cjs/modules/scroll.js +0 -84
  76. package/cjs/modules/selection.js +0 -37
  77. package/cjs/modules/tabs.js +0 -13
  78. package/cjs/modules/tagWatcher.js +0 -76
  79. package/cjs/modules/timing.js +0 -173
  80. package/cjs/modules/userTesting/SignalManager.js +0 -83
  81. package/cjs/modules/userTesting/dnd.js +0 -40
  82. package/cjs/modules/userTesting/index.js +0 -464
  83. package/cjs/modules/userTesting/recorder.js +0 -101
  84. package/cjs/modules/userTesting/styles.js +0 -266
  85. package/cjs/modules/userTesting/utils.js +0 -87
  86. package/cjs/modules/viewport.js +0 -43
  87. package/cjs/package.json +0 -1
  88. package/cjs/utils.js +0 -230
  89. package/coverage/clover.xml +0 -4304
  90. package/coverage/coverage-final.json +0 -55
  91. package/coverage/lcov-report/base.css +0 -224
  92. package/coverage/lcov-report/block-navigation.js +0 -87
  93. package/coverage/lcov-report/favicon.png +0 -0
  94. package/coverage/lcov-report/index.html +0 -206
  95. package/coverage/lcov-report/main/app/canvas.ts.html +0 -712
  96. package/coverage/lcov-report/main/app/guards.ts.html +0 -232
  97. package/coverage/lcov-report/main/app/index.html +0 -236
  98. package/coverage/lcov-report/main/app/index.ts.html +0 -3955
  99. package/coverage/lcov-report/main/app/logger.ts.html +0 -211
  100. package/coverage/lcov-report/main/app/messages.gen.ts.html +0 -3034
  101. package/coverage/lcov-report/main/app/nodes.ts.html +0 -406
  102. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +0 -148
  103. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +0 -289
  104. package/coverage/lcov-report/main/app/observer/index.html +0 -161
  105. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +0 -142
  106. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +0 -541
  107. package/coverage/lcov-report/main/app/sanitizer.ts.html +0 -403
  108. package/coverage/lcov-report/main/app/session.ts.html +0 -622
  109. package/coverage/lcov-report/main/app/ticker.ts.html +0 -250
  110. package/coverage/lcov-report/main/index.html +0 -131
  111. package/coverage/lcov-report/main/index.ts.html +0 -1597
  112. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +0 -400
  113. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +0 -1075
  114. package/coverage/lcov-report/main/modules/Network/index.html +0 -191
  115. package/coverage/lcov-report/main/modules/Network/index.ts.html +0 -244
  116. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +0 -400
  117. package/coverage/lcov-report/main/modules/Network/utils.ts.html +0 -709
  118. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +0 -877
  119. package/coverage/lcov-report/main/modules/attributeSender.ts.html +0 -241
  120. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +0 -709
  121. package/coverage/lcov-report/main/modules/conditionsManager.ts.html +0 -1381
  122. package/coverage/lcov-report/main/modules/connection.ts.html +0 -160
  123. package/coverage/lcov-report/main/modules/console.ts.html +0 -541
  124. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +0 -571
  125. package/coverage/lcov-report/main/modules/cssrules.ts.html +0 -418
  126. package/coverage/lcov-report/main/modules/exception.ts.html +0 -385
  127. package/coverage/lcov-report/main/modules/featureFlags.ts.html +0 -415
  128. package/coverage/lcov-report/main/modules/focus.ts.html +0 -220
  129. package/coverage/lcov-report/main/modules/fonts.ts.html +0 -289
  130. package/coverage/lcov-report/main/modules/img.ts.html +0 -436
  131. package/coverage/lcov-report/main/modules/index.html +0 -431
  132. package/coverage/lcov-report/main/modules/input.ts.html +0 -826
  133. package/coverage/lcov-report/main/modules/mouse.ts.html +0 -826
  134. package/coverage/lcov-report/main/modules/network.ts.html +0 -1123
  135. package/coverage/lcov-report/main/modules/performance.ts.html +0 -367
  136. package/coverage/lcov-report/main/modules/scroll.ts.html +0 -364
  137. package/coverage/lcov-report/main/modules/selection.ts.html +0 -202
  138. package/coverage/lcov-report/main/modules/tabs.ts.html +0 -124
  139. package/coverage/lcov-report/main/modules/tagWatcher.ts.html +0 -337
  140. package/coverage/lcov-report/main/modules/timing.ts.html +0 -877
  141. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +0 -370
  142. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +0 -220
  143. package/coverage/lcov-report/main/modules/userTesting/index.html +0 -191
  144. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +0 -1909
  145. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +0 -430
  146. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +0 -937
  147. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +0 -364
  148. package/coverage/lcov-report/main/modules/viewport.ts.html +0 -250
  149. package/coverage/lcov-report/main/utils.ts.html +0 -814
  150. package/coverage/lcov-report/prettify.css +0 -1
  151. package/coverage/lcov-report/prettify.js +0 -2
  152. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  153. package/coverage/lcov-report/sorter.js +0 -196
  154. package/coverage/lcov-report/webworker/BatchWriter.ts.html +0 -499
  155. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +0 -1021
  156. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +0 -436
  157. package/coverage/lcov-report/webworker/QueueSender.ts.html +0 -547
  158. package/coverage/lcov-report/webworker/index.html +0 -176
  159. package/coverage/lcov-report/webworker/index.ts.html +0 -667
  160. package/coverage/lcov.info +0 -8425
  161. package/jest.config.js +0 -13
  162. package/lib/app/canvas.js +0 -202
  163. package/lib/app/guards.js +0 -26
  164. package/lib/app/index.js +0 -1336
  165. package/lib/app/logger.js +0 -33
  166. package/lib/app/messages.gen.js +0 -622
  167. package/lib/app/nodes.js +0 -107
  168. package/lib/app/observer/iframe_observer.js +0 -29
  169. package/lib/app/observer/iframe_offsets.js +0 -53
  170. package/lib/app/observer/observer.js +0 -349
  171. package/lib/app/observer/shadow_root_observer.js +0 -18
  172. package/lib/app/observer/top_observer.js +0 -128
  173. package/lib/app/sanitizer.js +0 -77
  174. package/lib/app/session.js +0 -137
  175. package/lib/app/ticker.js +0 -45
  176. package/lib/common/interaction.js +0 -1
  177. package/lib/common/messages.gen.js +0 -3
  178. package/lib/common/tsconfig.tsbuildinfo +0 -1
  179. package/lib/index.js +0 -423
  180. package/lib/modules/attributeSender.js +0 -46
  181. package/lib/modules/axiosSpy.js +0 -119
  182. package/lib/modules/conditionsManager.js +0 -340
  183. package/lib/modules/connection.js +0 -12
  184. package/lib/modules/console.js +0 -124
  185. package/lib/modules/constructedStyleSheets.js +0 -133
  186. package/lib/modules/cssrules.js +0 -97
  187. package/lib/modules/exception.js +0 -76
  188. package/lib/modules/featureFlags.js +0 -86
  189. package/lib/modules/focus.js +0 -42
  190. package/lib/modules/fonts.js +0 -54
  191. package/lib/modules/img.js +0 -107
  192. package/lib/modules/input.js +0 -198
  193. package/lib/modules/mouse.js +0 -192
  194. package/lib/modules/network.js +0 -238
  195. package/lib/modules/performance.js +0 -49
  196. package/lib/modules/scroll.js +0 -81
  197. package/lib/modules/selection.js +0 -35
  198. package/lib/modules/tabs.js +0 -10
  199. package/lib/modules/tagWatcher.js +0 -73
  200. package/lib/modules/timing.js +0 -170
  201. package/lib/modules/userTesting/SignalManager.js +0 -80
  202. package/lib/modules/userTesting/dnd.js +0 -37
  203. package/lib/modules/userTesting/index.js +0 -435
  204. package/lib/modules/userTesting/recorder.js +0 -97
  205. package/lib/modules/userTesting/styles.js +0 -263
  206. package/lib/modules/userTesting/utils.js +0 -79
  207. package/lib/modules/viewport.js +0 -40
  208. package/lib/utils.js +0 -211
  209. package/rollup.config.js +0 -12
  210. package/scripts/checkver.cjs +0 -7
  211. package/tsconfig-base.json +0 -16
  212. /package/{cjs → dist/cjs}/common/interaction.d.ts +0 -0
  213. /package/{cjs → dist/cjs}/common/messages.gen.d.ts +0 -0
  214. /package/{cjs → dist/cjs/main}/app/canvas.d.ts +0 -0
  215. /package/{cjs → dist/cjs/main}/app/guards.d.ts +0 -0
  216. /package/{cjs → dist/cjs/main}/app/logger.d.ts +0 -0
  217. /package/{cjs → dist/cjs/main}/app/observer/shadow_root_observer.d.ts +0 -0
  218. /package/{cjs → dist/cjs/main}/app/ticker.d.ts +0 -0
  219. /package/{cjs → dist/cjs/main}/modules/axiosSpy.d.ts +0 -0
  220. /package/{cjs → dist/cjs/main}/modules/connection.d.ts +0 -0
  221. /package/{cjs → dist/cjs/main}/modules/console.d.ts +0 -0
  222. /package/{cjs → dist/cjs/main}/modules/constructedStyleSheets.d.ts +0 -0
  223. /package/{cjs → dist/cjs/main}/modules/cssrules.d.ts +0 -0
  224. /package/{cjs → dist/cjs/main}/modules/exception.d.ts +0 -0
  225. /package/{cjs → dist/cjs/main}/modules/featureFlags.d.ts +0 -0
  226. /package/{cjs → dist/cjs/main}/modules/focus.d.ts +0 -0
  227. /package/{cjs → dist/cjs/main}/modules/fonts.d.ts +0 -0
  228. /package/{cjs → dist/cjs/main}/modules/img.d.ts +0 -0
  229. /package/{cjs → dist/cjs/main}/modules/input.d.ts +0 -0
  230. /package/{cjs → dist/cjs/main}/modules/mouse.d.ts +0 -0
  231. /package/{cjs → dist/cjs/main}/modules/network.d.ts +0 -0
  232. /package/{cjs → dist/cjs/main}/modules/performance.d.ts +0 -0
  233. /package/{cjs → dist/cjs/main}/modules/scroll.d.ts +0 -0
  234. /package/{cjs → dist/cjs/main}/modules/selection.d.ts +0 -0
  235. /package/{cjs → dist/cjs/main}/modules/tabs.d.ts +0 -0
  236. /package/{cjs → dist/cjs/main}/modules/timing.d.ts +0 -0
  237. /package/{cjs → dist/cjs/main}/modules/userTesting/dnd.d.ts +0 -0
  238. /package/{cjs → dist/cjs/main}/modules/userTesting/index.d.ts +0 -0
  239. /package/{cjs → dist/cjs/main}/modules/userTesting/recorder.d.ts +0 -0
  240. /package/{cjs → dist/cjs/main}/modules/userTesting/styles.d.ts +0 -0
  241. /package/{cjs → dist/cjs/main}/modules/userTesting/utils.d.ts +0 -0
  242. /package/{cjs → dist/cjs/main}/modules/viewport.d.ts +0 -0
  243. /package/{lib → dist/lib}/common/interaction.d.ts +0 -0
  244. /package/{lib → dist/lib}/common/messages.gen.d.ts +0 -0
  245. /package/{lib → dist/lib/main}/app/canvas.d.ts +0 -0
  246. /package/{lib → dist/lib/main}/app/guards.d.ts +0 -0
  247. /package/{lib → dist/lib/main}/app/logger.d.ts +0 -0
  248. /package/{lib → dist/lib/main}/app/observer/shadow_root_observer.d.ts +0 -0
  249. /package/{lib → dist/lib/main}/app/ticker.d.ts +0 -0
  250. /package/{lib → dist/lib/main}/modules/axiosSpy.d.ts +0 -0
  251. /package/{lib → dist/lib/main}/modules/connection.d.ts +0 -0
  252. /package/{lib → dist/lib/main}/modules/console.d.ts +0 -0
  253. /package/{lib → dist/lib/main}/modules/constructedStyleSheets.d.ts +0 -0
  254. /package/{lib → dist/lib/main}/modules/cssrules.d.ts +0 -0
  255. /package/{lib → dist/lib/main}/modules/exception.d.ts +0 -0
  256. /package/{lib → dist/lib/main}/modules/featureFlags.d.ts +0 -0
  257. /package/{lib → dist/lib/main}/modules/focus.d.ts +0 -0
  258. /package/{lib → dist/lib/main}/modules/fonts.d.ts +0 -0
  259. /package/{lib → dist/lib/main}/modules/img.d.ts +0 -0
  260. /package/{lib → dist/lib/main}/modules/input.d.ts +0 -0
  261. /package/{lib → dist/lib/main}/modules/mouse.d.ts +0 -0
  262. /package/{lib → dist/lib/main}/modules/network.d.ts +0 -0
  263. /package/{lib → dist/lib/main}/modules/performance.d.ts +0 -0
  264. /package/{lib → dist/lib/main}/modules/scroll.d.ts +0 -0
  265. /package/{lib → dist/lib/main}/modules/selection.d.ts +0 -0
  266. /package/{lib → dist/lib/main}/modules/tabs.d.ts +0 -0
  267. /package/{lib → dist/lib/main}/modules/timing.d.ts +0 -0
  268. /package/{lib → dist/lib/main}/modules/userTesting/dnd.d.ts +0 -0
  269. /package/{lib → dist/lib/main}/modules/userTesting/index.d.ts +0 -0
  270. /package/{lib → dist/lib/main}/modules/userTesting/recorder.d.ts +0 -0
  271. /package/{lib → dist/lib/main}/modules/userTesting/styles.d.ts +0 -0
  272. /package/{lib → dist/lib/main}/modules/userTesting/utils.d.ts +0 -0
  273. /package/{lib → dist/lib/main}/modules/viewport.d.ts +0 -0
package/CHANGELOG.md DELETED
@@ -1,297 +0,0 @@
1
- # 14.0.10
2
-
3
- - adjust timestamps for messages from tracker instances inside child iframes (if they were loaded later)
4
- - restart child trackers if parent tracker is restarted
5
- - fixes for general stability of crossdomain iframe tracking
6
-
7
- # 14.0.9
8
-
9
- - more stable crossdomain iframe tracking (refactored child/parent process discovery)
10
- - checks for bad start error
11
-
12
- # 14.0.8
13
-
14
- - use separate library to handle network requests ([@openreplay/network-proxy](https://www.npmjs.com/package/@openreplay/network-proxy))
15
- - fixes for window.message listeners
16
-
17
- # 14.0.7
18
-
19
- - check for stopping status during restarts
20
- - restart if token expired during canvas fetch
21
-
22
- # 14.0.6
23
-
24
- - support feature off toggle for feature flags and usability testing
25
- - additional checks for canvas snapshots
26
-
27
- # 14.0.5
28
-
29
- - remove canvas snapshot interval if canvas is gone
30
-
31
- # 14.0.4
32
-
33
- - remove reject from start
34
-
35
- # 14.0.3
36
-
37
- - send integer instead of float for normalizedX/Y coords (basically moving from 0-100 to 0-10000 range)
38
-
39
- # 14.0.2
40
-
41
- - fix logger check
42
-
43
- # 14.0.0 & .1
44
-
45
- - titles for tabs
46
- - new `MouseClick` message to introduce heatmaps instead of clickmaps
47
- - crossdomain iframe tracking functionality
48
- - updated graphql plugin and messages
49
-
50
- # 13.0.2
51
-
52
- - more file extensions for canvas
53
-
54
- # 13.0.1
55
-
56
- - moved canvas snapshots to webp, additional option to utilize useAnimationFrame method (for webgl)
57
- - simpler, faster canvas recording manager
58
-
59
- # 13.0.0
60
-
61
- - `assistOnly` flag for tracker options (EE only feature)
62
-
63
- # 12.0.12
64
-
65
- - fix for potential redux plugin issues after .11 ...
66
-
67
- # 12.0.11
68
-
69
- - better restart on unauth (new token assign for long sessions)
70
- - more safeguards around arraybuffer and dataview types for network proxy
71
-
72
- # 12.0.10
73
-
74
- - improved logs for node binding errors, full nodelist clear before start, getSessionInfo method
75
-
76
- # 12.0.9
77
-
78
- - moved logging to query
79
-
80
- # 12.0.8
81
-
82
- - better logging for network batches
83
-
84
- # 12.0.7
85
-
86
- - fixes for window.open reinit method
87
-
88
- # 12.0.6
89
-
90
- - allow network sanitizer to return null (will ignore network req)
91
-
92
- # 12.0.5
93
-
94
- - patch for img.ts srcset detector
95
-
96
- # 12.0.4
97
-
98
- - patch for email sanitizer (supports + now)
99
- - update fflate version for better compression
100
- - `disableCanvas` option to disable canvas capture
101
- - better check for adopted stylesheets in doc (old browser support)
102
-
103
- # 12.0.3
104
-
105
- - fixed scaling option for canvas (to ignore window.devicePixelRatio and always render the canvas as 1)
106
-
107
- # 12.0.2
108
-
109
- - fix for canvas snapshot check
110
-
111
- # 12.0.1
112
-
113
- - pause canvas snapshotting when its offscreen
114
-
115
- # 12.0.0
116
-
117
- - offline session recording and manual sending
118
- - conditional recording with 30s buffer
119
- - websockets tracking hook
120
-
121
- # 11.0.5
122
-
123
- - add method to restart canvas tracking (in case of context recreation)
124
- - scan dom tree for canvas els on tracker start
125
-
126
- # 11.0.4
127
-
128
- - some additional security for canvas capture (check if canvas el itself is obscured/ignored)
129
-
130
- # 11.0.3
131
-
132
- - move all logs under internal debugger
133
- - fix for XHR proxy ORSC 'abort' state
134
-
135
- # 11.0.1 & 11.0.2
136
-
137
- - minor fixes and refactoring
138
-
139
- # 11.0.0
140
-
141
- - canvas support
142
- - some safety guards for iframe components
143
- - user testing module
144
-
145
- # 10.0.2
146
-
147
- - fix default ignore headers
148
-
149
- # 10.0.1
150
-
151
- - network proxy api is now default turned on
152
-
153
- # 10.0.0
154
-
155
- - networkRequest message changed to include `TransferredBodySize`
156
- - tracker now attempts to create proxy for beacon api as well (if its in scope of the current env)
157
- - safe wrapper for angular apps
158
- - better browser lag handling (and some performance improvements as a bonus)
159
-
160
- # 9.0.11
161
-
162
- - new `resetTabOnWindowOpen` option to fix window.open issue with sessionStorage being inherited (replicating tabId bug), users still should use 'noopener=true' in window.open to prevent it in general...
163
- - do not create BC channel in iframe context, add regeneration of tabid incase of duplication
164
-
165
- # 9.0.10
166
-
167
- - added `excludedResourceUrls` to timings options to better sanitize network data
168
-
169
- # 9.0.9
170
-
171
- - Fix for `{disableStringDict: true}` behavior
172
-
173
- # 9.0.8
174
-
175
- - added slight delay to iframe handler (rapid updates of stacked frames used to break player)
176
-
177
- # 9.0.7
178
-
179
- - fix for `getSessionURL` method
180
-
181
- # 9.0.6
182
-
183
- - added `tokenUrlMatcher` option to network settings, allowing to ingest session token header to custom allowed urls
184
-
185
- # 9.0.5
186
-
187
- - same fixes but for fetch proxy
188
-
189
- # 9.0.2 & 9.0.3 & 9.0.4
190
-
191
- - fixes for "setSessionTokenHeader" method
192
-
193
- # 9.0.1
194
-
195
- - Warning about SSR mode
196
- - Prevent crashes due to network proxy in SSR
197
-
198
- # 9.0.0
199
-
200
- - Option to disable string dictionary `{disableStringDict: true}` in Tracker constructor
201
- - Introduced Feature flags api
202
- - Fixed input durations recorded on programmable autofill
203
- - change InputMode from enum to const Object
204
-
205
- # 8.1.2
206
-
207
- - option to disable string dictionary `{disableStringDict: true}` in Tracker constructor
208
-
209
- # 8.1.1
210
-
211
- [collective patch]
212
-
213
- - Console and network are now using proxy objects to capture calls (opt in for network), use ` { network: { useProxy: true } }` to enable it
214
- - Force disable Multitab feature for old browsers (2016 and older + safari 14)
215
-
216
- # 8.0.0
217
-
218
- - **[breaking]** support for multi-tab sessions
219
-
220
- # 7.0.4
221
-
222
- - option to disable string dictionary `{disableStringDict: true}` in Tracker constructor
223
-
224
- # 7.0.3
225
-
226
- - Prevent auto restart after manual stop
227
-
228
- # 7.0.2
229
-
230
- - fixed header sanitization for axios causing empty string in some cases
231
-
232
- # 7.0.1
233
-
234
- - fix time inputs capturing
235
- - add option `{ network: { captureInIframes: boolean } }` to disable network tracking inside iframes (default true)
236
- - added option `{ network: { axiosInstances: AxiosInstance[] } }` to include custom axios instances for better tracking
237
-
238
- # 7.0.0
239
-
240
- - **[breaking]** added gzip compression to large messages
241
- - fix email regexp to significantly improve performance
242
-
243
- # 6.0.2
244
-
245
- - fix network tracking for same domain iframes created by js code
246
-
247
- # 6.0.1
248
-
249
- - fix webworker writer re-init request
250
- - remove useless logs
251
- - tune mouse thrashing detection
252
- - fix iframe handling
253
- - optimise node counting for dom drop
254
-
255
- # 6.0.0
256
-
257
- **(Compatible with OpenReplay v1.11.0+ only)**
258
-
259
- - **[breaking]:** Capture mouse thrashing, input hesitation+duration, click hesitation
260
- - Capture DOM node drop event (>30% nodes removed)
261
- - Capture iframe network requests
262
- - Detect cached requests to img, css and js resources; send transferred size
263
- - added `{ mouse: { disableClickmaps: boolean } }` to disable calculating el. selectors
264
- - added `{ mouse: { minSelectorDepth?: number; nthThreshold?: number; maxOptimiseTries?: number }` for selector finding optimizations
265
-
266
- ## 5.0.2
267
-
268
- - fixed inline css loading in specific cases when assets gets around min flush size
269
-
270
- ## 5.0.1
271
-
272
- - Re-init worker after device sleep/hybernation
273
- - Default text input mode is now Obscured
274
- - Use `@medv/finder` instead of our own implementation of `getSelector` for better clickmaps experience
275
-
276
- ## 5.0.0
277
-
278
- **(Compatible with OpenReplay v1.10.0+ only)**
279
-
280
- - **[breaking]:** string dictionary to reduce session size
281
- - Added "tel" to supported input types
282
- - Added `{ withCurrentTime: true }` to `tracker.getSessionURL` method which will return sessionURL with current session's timestamp
283
- - Added Network module that captures fetch/xhr by default (with no plugin required)
284
- - Use `timeOrigin()` instead of `performance.timing.navigationStart` in ResourceTiming messages
285
- - Added app restart when service worker died after inactivity (mobile safari)
286
-
287
- ## 4.1.8
288
-
289
- - recalculate timeOrigin on start to prevent wrong timestamps on "sleeping" sessions
290
-
291
- ## 4.1.7
292
-
293
- - resend metadata on start
294
-
295
- ## 4.1.6
296
-
297
- - remove log that potentially caused crashed during slow initial render
package/bun.lockb DELETED
Binary file
package/cjs/app/canvas.js DELETED
@@ -1,204 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const guards_js_1 = require("./guards.js");
4
- const messages_gen_js_1 = require("./messages.gen.js");
5
- class CanvasRecorder {
6
- constructor(app, options) {
7
- this.app = app;
8
- this.options = options;
9
- this.snapshots = {};
10
- this.intervals = [];
11
- this.restartTracking = () => {
12
- this.clear();
13
- this.app.nodes.scanTree(this.captureCanvas);
14
- };
15
- this.captureCanvas = (node) => {
16
- const id = this.app.nodes.getID(node);
17
- if (!id || !(0, guards_js_1.hasTag)(node, 'canvas')) {
18
- return;
19
- }
20
- const isIgnored = this.app.sanitizer.isObscured(id) || this.app.sanitizer.isHidden(id);
21
- if (isIgnored || !(0, guards_js_1.hasTag)(node, 'canvas') || this.snapshots[id]) {
22
- return;
23
- }
24
- const observer = new IntersectionObserver((entries) => {
25
- entries.forEach((entry) => {
26
- if (entry.isIntersecting) {
27
- if (entry.target) {
28
- if (this.snapshots[id] && this.snapshots[id].createdAt) {
29
- this.snapshots[id].paused = false;
30
- }
31
- else {
32
- this.recordCanvas(entry.target, id);
33
- }
34
- /**
35
- * We can switch this to start observing when element is in the view
36
- * but otherwise right now we're just pausing when it's not
37
- * just to save some bandwidth and space on backend
38
- * */
39
- // observer.unobserve(entry.target)
40
- }
41
- else {
42
- if (this.snapshots[id]) {
43
- this.snapshots[id].paused = true;
44
- }
45
- }
46
- }
47
- });
48
- });
49
- observer.observe(node);
50
- };
51
- this.recordCanvas = (node, id) => {
52
- const ts = this.app.timestamp();
53
- this.snapshots[id] = {
54
- images: [],
55
- createdAt: ts,
56
- paused: false,
57
- dummy: document.createElement('canvas'),
58
- };
59
- const canvasMsg = (0, messages_gen_js_1.CanvasNode)(id.toString(), ts);
60
- this.app.send(canvasMsg);
61
- const captureFn = (canvas) => {
62
- captureSnapshot(canvas, this.options.quality, this.snapshots[id].dummy, this.options.fixedScaling, this.fileExt, (blob) => {
63
- if (!blob)
64
- return;
65
- if (!this.snapshots[id]) {
66
- return this.app.debug.warn('Canvas not present in snapshots after capture:', this.snapshots, id);
67
- }
68
- this.snapshots[id].images.push({ id: this.app.timestamp(), data: blob });
69
- if (this.snapshots[id].images.length > 9) {
70
- this.sendSnaps(this.snapshots[id].images, id, this.snapshots[id].createdAt);
71
- this.snapshots[id].images = [];
72
- }
73
- });
74
- };
75
- const int = setInterval(() => {
76
- const cid = this.app.nodes.getID(node);
77
- const canvas = cid ? this.app.nodes.getNode(cid) : undefined;
78
- if (!this.snapshots[id]) {
79
- this.app.debug.log('Canvas is not present in {snapshots}');
80
- clearInterval(int);
81
- return;
82
- }
83
- if (!canvas || !(0, guards_js_1.hasTag)(canvas, 'canvas') || canvas !== node) {
84
- this.app.debug.log('Canvas element not in sync', canvas, node);
85
- clearInterval(int);
86
- return;
87
- }
88
- else {
89
- if (!this.snapshots[id].paused) {
90
- if (this.options.useAnimationFrame) {
91
- requestAnimationFrame(() => {
92
- captureFn(canvas);
93
- });
94
- }
95
- else {
96
- captureFn(canvas);
97
- }
98
- }
99
- }
100
- }, this.interval);
101
- this.intervals.push(int);
102
- };
103
- this.fileExt = options.fileExt ?? 'webp';
104
- this.interval = 1000 / options.fps;
105
- }
106
- startTracking() {
107
- setTimeout(() => {
108
- this.app.nodes.scanTree(this.captureCanvas);
109
- this.app.nodes.attachNodeCallback(this.captureCanvas);
110
- }, 250);
111
- }
112
- sendSnaps(images, canvasId, createdAt) {
113
- if (Object.keys(this.snapshots).length === 0) {
114
- return;
115
- }
116
- const formData = new FormData();
117
- images.forEach((snapshot) => {
118
- const blob = snapshot.data;
119
- if (!blob)
120
- return;
121
- formData.append('snapshot', blob, `${createdAt}_${canvasId}_${snapshot.id}.${this.fileExt}`);
122
- if (this.options.isDebug) {
123
- saveImageData(blob, `${createdAt}_${canvasId}_${snapshot.id}.${this.fileExt}`);
124
- }
125
- });
126
- const initRestart = () => {
127
- this.app.debug.log('Restarting tracker; token expired');
128
- this.app.stop(false);
129
- setTimeout(() => {
130
- void this.app.start({}, true);
131
- }, 250);
132
- };
133
- fetch(this.app.options.ingestPoint + '/v1/web/images', {
134
- method: 'POST',
135
- headers: {
136
- Authorization: `Bearer ${this.app.session.getSessionToken() ?? ''}`,
137
- },
138
- body: formData,
139
- })
140
- .then((r) => {
141
- if (r.status === 401) {
142
- return initRestart();
143
- }
144
- return true;
145
- })
146
- .catch((e) => {
147
- this.app.debug.error('error saving canvas', e);
148
- });
149
- }
150
- clear() {
151
- this.intervals.forEach((int) => clearInterval(int));
152
- this.snapshots = {};
153
- }
154
- }
155
- const qualityInt = {
156
- low: 0.35,
157
- medium: 0.55,
158
- high: 0.8,
159
- };
160
- function captureSnapshot(canvas, quality = 'medium', dummy, fixedScaling = false, fileExt, onBlob) {
161
- const imageFormat = `image/${fileExt}`;
162
- if (fixedScaling) {
163
- const canvasScaleRatio = window.devicePixelRatio || 1;
164
- dummy.width = canvas.width / canvasScaleRatio;
165
- dummy.height = canvas.height / canvasScaleRatio;
166
- const ctx = dummy.getContext('2d');
167
- if (!ctx) {
168
- return '';
169
- }
170
- ctx.clearRect(0, 0, dummy.width, dummy.height);
171
- ctx.drawImage(canvas, 0, 0, dummy.width, dummy.height);
172
- dummy.toBlob(onBlob, imageFormat, qualityInt[quality]);
173
- }
174
- else {
175
- canvas.toBlob(onBlob, imageFormat, qualityInt[quality]);
176
- }
177
- }
178
- function saveImageData(imageDataBlob, name) {
179
- const imageDataUrl = URL.createObjectURL(imageDataBlob);
180
- const link = document.createElement('a');
181
- link.href = imageDataUrl;
182
- link.download = name;
183
- link.style.display = 'none';
184
- document.body.appendChild(link);
185
- link.click();
186
- document.body.removeChild(link);
187
- }
188
- function dataUrlToBlob(dataUrl) {
189
- const [header, base64] = dataUrl.split(',');
190
- if (!header || !base64)
191
- return null;
192
- const encParts = header.match(/:(.*?);/);
193
- if (!encParts)
194
- return null;
195
- const mime = encParts[1];
196
- const blobStr = atob(base64);
197
- let n = blobStr.length;
198
- const u8arr = new Uint8Array(n);
199
- while (n--) {
200
- u8arr[n] = blobStr.charCodeAt(n);
201
- }
202
- return [new Blob([u8arr], { type: mime }), u8arr];
203
- }
204
- exports.default = CanvasRecorder;
package/cjs/app/guards.js DELETED
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasTag = exports.isRootNode = exports.isDocument = exports.isTextNode = exports.isCommentNode = exports.isElementNode = exports.isSVGElement = exports.isNode = void 0;
4
- //@ts-ignore
5
- function isNode(sth) {
6
- return !!sth && sth.nodeType != null;
7
- }
8
- exports.isNode = isNode;
9
- function isSVGElement(node) {
10
- return node.namespaceURI === 'http://www.w3.org/2000/svg';
11
- }
12
- exports.isSVGElement = isSVGElement;
13
- function isElementNode(node) {
14
- return node.nodeType === Node.ELEMENT_NODE;
15
- }
16
- exports.isElementNode = isElementNode;
17
- function isCommentNode(node) {
18
- return node.nodeType === Node.COMMENT_NODE;
19
- }
20
- exports.isCommentNode = isCommentNode;
21
- function isTextNode(node) {
22
- return node.nodeType === Node.TEXT_NODE;
23
- }
24
- exports.isTextNode = isTextNode;
25
- function isDocument(node) {
26
- return node.nodeType === Node.DOCUMENT_NODE;
27
- }
28
- exports.isDocument = isDocument;
29
- function isRootNode(node) {
30
- return node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;
31
- }
32
- exports.isRootNode = isRootNode;
33
- function hasTag(el, tagName) {
34
- // @ts-ignore
35
- return el.localName === tagName;
36
- }
37
- exports.hasTag = hasTag;