github rrweb-io/rrweb rrweb@2.0.0

6 hours ago

Major Changes

  • #1497 2606a2a Thanks @Juice10! - Split plugins out of rrweb and move them into their own packages: @rrweb/packer, @rrweb/rrweb-plugin-canvas-webrtc-record, @rrweb/rrweb-plugin-canvas-webrtc-replay, @rrweb/rrweb-plugin-sequential-id-record, @rrweb/rrweb-plugin-sequential-id-replay, @rrweb/rrweb-plugin-console-record, @rrweb/rrweb-plugin-console-replay. Check out the README of each package for more information or check out #1033 to see the changes.

  • #1497 2606a2a Thanks @Juice10! - Distributed files have new filenames, paths and extensions. Important: If you reference distributed files or types directly, you might have to update your paths/filenames. E.g. you import from rrweb/typings/... or rrdom/es. However you run import rrweb from 'rrweb' you won't notice a difference with this change. If you include rrweb files directly in a script tag, you might have to update that path to include a the .umd.cjs files instead. All .js files now use ES modules which can be used in modern browsers, node.js and bundlers that support ES modules. All npm packages now also ship .cjs and .umd.cjs files. The .umd.cjs files are CommonJS modules that bundle all files together to make it easy to ship one file to browser environments (similar to the previous .js files). The .cjs files are CommonJS modules that can be used in older Node.js environments. Types should be better defined in package.json and if you need specific types they might be exported from new packages (for example PlayerMachineState and SpeedMachineState are now exported from @rrweb/replay). Check the package.json's main and exports field for the available files.

  • #1497 2606a2a Thanks @Juice10! - Remove the rrweb-all.js, rrweb-record.js, and rrweb-replay.js files from rrweb package. Now you can use @rrweb/all, @rrweb/record, and @rrweb/replay packages instead. Check out the README of each package for more information or check out PR #1033 to see the changes.

  • #1031 ad9bc3e Thanks @Juice10! - Move shared rrweb event and recorder types into the new @rrweb/types package.

  • #868 e4f680e Thanks @Juice10! - Remove INode / node.__sn usage and use Mirror as the source of truth.

  • #913 74f553a Thanks @Yuyz0112! - Move browser-only rrdom features into the new rrdom package.

Minor Changes

  • #1129 979d2b1 Thanks @eoghanmurray! - click events now include a .pointerType attribute which distinguishes between 'pen', 'mouse' and 'touch' events. There is no new PenDown/PenUp events, but these can be detected with a MouseDown/MouseUp + pointerType=pen

  • #1432 123a81e Thanks @Juice10! - Full overhawl of video and audio element playback. More robust and fixes lots of bugs related to pausing/playing/skipping/muting/playbackRate etc.

  • #1188 bc84246 Thanks @benjackwhite! - feat: Extends maskInputFn to pass the HTMLElement to the deciding function

  • #1170 d2582e9 Thanks @mydea! - feat: Ensure password inputs remain masked when switching input type

  • #1107 a225d8e Thanks @mydea! - feat: Allow to pass errorHandler as record option

  • #1503 335639a Thanks @Juice10! - Support top-layer components. Fixes #1381.

  • #1310 7c0dc9d Thanks @benjackwhite! - Extends maskTextFn to pass the HTMLElement to the deciding function

  • #1543 53b83bb Thanks @JonasBa! - Optimize isParentRemoved check

  • #1035 2a80949 Thanks @Juice10! - Add support for recording cross-origin iframes via recordCrossOriginIframes.

  • #989 3809060 Thanks @YunFeng0817! - Add support for recording and replaying constructable adoptedStyleSheets, including stylesheet mutations, replace/replaceSync, shadow roots, iframes, live mode, and virtual DOM replay.

  • #936 b2d5689 Thanks @0jinxing! - Add recording and replay support for text selection events.

  • #953 5f59f91 Thanks @YunFeng0817! - Add a destroy() method to fully remove a replayer instance and emit a destroy event.

  • #976 a8478f1 Thanks @Juice10! - Add canvas WebRTC record and replay plugins for live-streaming canvas contents.

  • #1000 ce6019d Thanks @wfk007! - Add support for recording and replaying media playbackRate changes.

  • #967 bac1d7b Thanks @QxQstar! - Add dataURLOptions to control canvas snapshot image format and quality.

  • #894 5ba933c Thanks @dbseel! - Add ignoreCSSAttributes and apply blockSelector checks consistently across recorder observers.

  • #859 e238462 Thanks @Juice10! - Add support for recording canvas snapshots at a configured FPS.

  • #895 de755ae Thanks @Juice10! - Add the fast-forward virtual DOM optimization for replay.

Patch Changes

Don't miss a new rrweb release

NewReleases is sending notifications on new releases.