rrdom
2.2.0 · 24 Oct 2026MIT3.7M / weekRepositoryHomepagenpmAtom feed
19 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 2.x · latest line
2.0.1 – 2.2.010 releases that only update dependenciesrrweb-snapshot 2.2.0Show each
- 2.2.024 Oct 2026rrweb-snapshot 2.2.0
- 2.1.72 Oct 2026rrweb-snapshot 2.1.7
- 2.1.618 Sep 2026rrweb-snapshot 2.1.6
- 2.1.517 Sep 2026rrweb-snapshot 2.1.5
- 2.1.48 Sep 2026rrweb-snapshot 2.1.4
- 2.1.38 Sep 2026rrweb-snapshot 2.1.3
- 2.1.28 Sep 2026rrweb-snapshot 2.1.2
- 2.1.121 Jul 2026rrweb-snapshot 2.1.1
- 2.1.027 Jun 2026rrweb-snapshot 2.1.0
- 2.0.13 Jun 2026rrweb-snapshot 2.0.1
2.0.0
1 Jun 2026- breaking
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/...orrrdom/es. However you runimport 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.cjsfiles instead. All.jsfiles 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.cjsand.umd.cjsfiles. The.umd.cjsfiles are CommonJS modules that bundle all files together to make it easy to ship one file to browser environments (similar to the previous.jsfiles). The.cjsfiles are CommonJS modules that can be used in older Node.js environments. Types should be better defined inpackage.jsonand if you need specific types they might be exported from new packages (for examplePlayerMachineStateandSpeedMachineStateare now exported from@rrweb/replay). Check thepackage.json'smainandexportsfield for the available files. - breaking
Improve performance by 80% in a super large benchmark case.
- breaking
Move shared rrweb event and recorder types into the new
@rrweb/typespackage.
Major Changes
- breaking
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/...orrrdom/es. However you runimport 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.cjsfiles instead. All.jsfiles 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.cjsand.umd.cjsfiles. The.umd.cjsfiles are CommonJS modules that bundle all files together to make it easy to ship one file to browser environments (similar to the previous.jsfiles). The.cjsfiles are CommonJS modules that can be used in older Node.js environments. Types should be better defined inpackage.jsonand if you need specific types they might be exported from new packages (for examplePlayerMachineStateandSpeedMachineStateare now exported from@rrweb/replay). Check thepackage.json'smainandexportsfield for the available files. - breaking
Improve performance by 80% in a super large benchmark case.
Refactor: change the data structure of childNodes from array to linked list
Improve the performance of the "contains" function. New algorithm will reduce the complexity from O(n) to O(logn)
- breaking
Move shared rrweb event and recorder types into the new
@rrweb/typespackage. - breaking
Move browser-only rrdom features into the new
rrdompackage.
Minor Changes
Support top-layer <dialog> components. Fixes #1381.
Add support for recording cross-origin iframes via
recordCrossOriginIframes.Add support for recording and replaying constructable
adoptedStyleSheets, including stylesheet mutations,replace/replaceSync, shadow roots, iframes, live mode, and virtual DOM replay.Add support for recording and replaying media
playbackRatechanges.Add the fast-forward virtual DOM optimization for replay.
Patch Changes
Ignore invalid DOM attributes when diffing
Rrdom bugs
Fix a bug in the diff algorithm.
Omit the 'srcdoc' attribute of iframes to avoid overwriting content.
Support
loopinRRMediaElementRefactor all suffix of bundled scripts with commonjs module from 'js' to cjs #1087.
If RRNode appends a single child twice, children of the node will become an infinite link list.
Improve rrdom robustness #1091.
NodeTypeenum was moved from rrweb-snapshot to @rrweb/types
The following types where moved from rrweb-snapshot to @rrweb/types:documentNode,documentTypeNode,legacyAttributes,textNode,cdataNode,commentNode,elementNode,serializedNode,serializedNodeWithId,serializedElementNodeWithId,serializedTextNodeWithId,IMirror,INode,mediaAttributes,attributesandDataURLOptionsScrolling may not be applied when fast-forwarding
Provide a /umd/ output folder alongside the /dist/ one so that we can serve UMD (Universal Module Definition) files with a .js extension, without upsetting expectations set by package.json that all .js files in /dist/ are modules
Fix replay of delayed inlined stylesheet links by updating the existing link/style node attributes instead of adding a child node, and preserve mirror metadata when replacing rrdom nodes.
Fix iframe reload and rrdom diff issues by handling negative and unserialized node ids correctly.
Fix fast-forward replay so canvas image data inside iframes is restored when rebuilding through the virtual DOM path.
Remove children from
Documentnodes even when the document is not in the mirror.Switch CSSOM usage to the rrweb-owned
rrweb-cssompackage.
- 0.1.x
0.1.7
16 Nov 2022Reading the note…
0.1.6
30 Sep 2022Reading the note…
0.1.5
22 Sep 2022Reading the note…
0.1.4
31 Jul 2022Reading the note…
0.1.3
10 Jul 2022Reading the note…
0.1.2
4 Apr 2022Reading the note…
0.1.1
26 Feb 2022Reading the note…
0.1.0
23 Jan 2022Reading the note…