Commit Graph

976 Commits

Author SHA1 Message Date
Yanzhen Yu
483c03cebe init repo 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fbe75532f4 Release 0.9.12 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fbfdafae34 remove child node before set default value 2026-04-01 12:00:00 +08:00
Yanzhen Yu
4dea29333a upgrade snapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
0a502e83ed update typings 2026-04-01 12:00:00 +08:00
Jarosław Salwa
ac25796753 Scroll replayer iframe on firstFullsnapshot (#451) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
daacbb1d07 Release 0.7.13 2026-04-01 12:00:00 +08:00
101arrowz
30026bb8f5 Update to fflate (#448)
* Update to fflate

* Update docs, bundler config
2026-04-01 12:00:00 +08:00
Yanzhen Yu
6457f9ff62 fix #14 fix innerText cap issue 2026-04-01 12:00:00 +08:00
Lucky Feng
79623734a1 Merge pull request #449 from fanixk/patch-1
Fix broken link to design docs
2026-04-01 12:00:00 +08:00
Yanzhen Yu
21e8affa2b Use css parser to add hover class name to selectors.
Previously we use a regexp to match all the CSS selectors and add
our hover class name to it, which has been proved not solid and
may be very slow in some situation.
Using a production ready css parser can handle this better and also
provide ability's to do more accurate things to the recorded
stylesheets.
2026-04-01 12:00:00 +08:00
Lucky Feng
bc36b505df fix: sometimes currentTime is smaller than the totalTime when player is finished (#445)
plus: fix the problem that sometimes return value of getCurrentTime() is negative
2026-04-01 12:00:00 +08:00
Fanis Katsimpas
266425d5ac Fix broken link to design docs 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c5b0f985da Release 0.7.12 2026-04-01 12:00:00 +08:00
dependabot[bot]
b0db4395ae Bump ini from 1.3.5 to 1.3.8 (#441)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 12:00:00 +08:00
Yanzhen Yu
6ecaaa2560 add mask all inputs option to snapshot 2026-04-01 12:00:00 +08:00
Aaditya S
464432e194 docs: fix typo (#440) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
06f1a28a0a Release 0.7.11 2026-04-01 12:00:00 +08:00
Krzysztof Grziwok
987d58ba35 Catch Security Errors in styleSheet rules (#437) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
1a3b17bae4 format code 2026-04-01 12:00:00 +08:00
Luck Feng
dba421d2c5 docs: add document for console recording and playback (#435)
* docs: add document for console recording and playback

* docs: adjust some sentences
2026-04-01 12:00:00 +08:00
Razvan Sandu
149c78802a Allow rendering image tags inside svgs during replay (#13) 2026-04-01 12:00:00 +08:00
Lucky Feng
9d2db86d5a feat: enable rrweb to record and replay log messages in console (#424)
* wip: working on rrweb logger

* wip: can record and replay some simple log

* wip: can record and replay log's stack

* wip: try to serialize object

* wip: record and replay console logger

hijack all of the console functions.
add listener to thrown errors

* wip: record and replay console logger
add limit to the max number of log records

* feat: enable rrweb to record and replay log messages in console

this is the implementation of new feature request(issue #234)

here are a few points of description.
1. users need to set recordLog option in rrweb.record's parameter to record log messages.  The log recorder is off by default.
2. support recording and replaying all kinds of console functions. But the reliability of them should be tested more
3. the stringify function in  stringify.ts needs improvement. e.g. robustness, handler for cyclical structures and better support for more kinds of object
4. we can replay the log messages in a simulated html console like LogRocket by implementing the interface "ReplayLogger" in the future

* improve: the stringify function

1. handle cyclical structures
2. add stringify option to limit the length of result
3. handle function type

* refactor: simplify the type definition of ReplayLogger
2026-04-01 12:00:00 +08:00
Benoît Zugmeyer
ad816f7b7f reuse serialized nodes ids (#12)
* reuse serialized nodes ids

With this patch, each DOM node keeps its id during its existence. This
allows to apply RRWeb events to previous snapshots if needed.

`resetId` has been removed because it loses its meaning: calling it
would not reset the existing nodes ids anymore, only the new ones.

Since we don't reset the id anymore, we may exhaust the available ids
quicker, but Number.MAX_SAFE_INTEGER (2 ** 53 - 1) is pretty large, so I
doubt this'll cause any problem.

* improv TS typing

The `nAsINode` variable was not very elegant.  Simplify this by removing
the cast, and make the INode interface compatible with Node.

* update typings
2026-04-01 12:00:00 +08:00
Yanzhen Yu
a47e3af343 Release 0.9.11 2026-04-01 12:00:00 +08:00
Yanzhen Yu
2c5bb90b2f Release 0.7.10 2026-04-01 12:00:00 +08:00
Yanzhen Yu
519aa8d424 pick #286 allow short cut for slim DOM options 2026-04-01 12:00:00 +08:00
Yanzhen Yu
cf5e17503d pass inline stylesheet option to iteratly 2026-04-01 12:00:00 +08:00
Yanzhen Yu
45f01da644 update test snapshot 2026-04-01 12:00:00 +08:00
Yanzhen Yu
75b0a39997 Release 0.7.9 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f7260da556 Release 0.9.10 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c4da047b9f add inline option which can bypass the inline stylesheet 2026-04-01 12:00:00 +08:00
Yanzhen Yu
ffa1fa2538 upgrade rrweb-snapshot 2026-04-01 12:00:00 +08:00
Whalefreezer
68b97e40a2 add support for css @import rules (#11) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
2628cee609 fix type error of slim DOM options 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fe59f07e9e Release 0.7.8 2026-04-01 12:00:00 +08:00
Yanzhen Yu
ec5b7a4635 pick #286, export slim DOM options 2026-04-01 12:00:00 +08:00
Yanzhen Yu
11f8a78f71 update typings 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e9a5aeed06 expose blockSelector as a public option 2026-04-01 12:00:00 +08:00
Yanzhen Yu
76ba992d06 Release 0.7.7 2026-04-01 12:00:00 +08:00
Yanzhen Yu
528b8373a0 upgrade to rrweb-snapshot v1.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b72e01c2fc accept RegExp type block class config 2026-04-01 12:00:00 +08:00
Lucky Feng
10f79eeba4 style: delete a useless constant 2026-04-01 12:00:00 +08:00
Yanzhen Yu
bd42510e23 update typescript and fix test cases 2026-04-01 12:00:00 +08:00
Lucky Feng
5ad550c0db fix: elements would lose some states like scroll position because of "virtual parent" optimization (#427)
* fix: elements would lose some state like scroll position because of "virtual parent" optimization

* refactor: the bugfix code

bug: elements would lose some state like scroll position because of "virtual parent" optimization

* fix: an error occured at applyMutation(remove nodes part)

error message:
Uncaught (in promise) DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node
2026-04-01 12:00:00 +08:00
Yanzhen Yu
005f7732ad Release 0.7.6 2026-04-01 12:00:00 +08:00
Lucky Feng
d7da4c289c feat: add an option to determine whether to pause CSS animation when playback is paused (#428)
set pauseAnimation to true by default
2026-04-01 12:00:00 +08:00
Yanzhen Yu
15dd46aadb add typings folder to npm files 2026-04-01 12:00:00 +08:00
Lucky Feng
14ed8ad1e6 fix: applyScroll function doesn't work in sync mode(play at a specific time) (#426)
applyScroll function should be called after all of new nodes mounted on dom
2026-04-01 12:00:00 +08:00
Yanzhen Yu
21f299a895 Release 0.7.5 2026-04-01 12:00:00 +08:00