Commit Graph

85 Commits

Author SHA1 Message Date
Yanzhen Yu
be0084a082 init chinese guide 2026-04-01 12:00:00 +08:00
Yanzhen Yu
564b54bb35 rename record only bundle iife name 2026-04-01 12:00:00 +08:00
Yanzhen Yu
31e8c17b0e add README in English 2026-04-01 12:00:00 +08:00
Yanzhen Yu
51734e3e20 Release 0.6.7 2026-04-01 12:00:00 +08:00
Yanzhen Yu
e5928fc311 fix resume to move baseline time by time offset 2026-04-01 12:00:00 +08:00
Yanzhen Yu
6f06b5e1e7 only add click animation when cast is not sync 2026-04-01 12:00:00 +08:00
Yanzhen Yu
781d6ebd10 Release 0.6.6 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a3757fc8cf fix timer requestAnimationFrame call may not stop after clear
Before this patch, the checker in the timer will stop only when
actions array is empty.
When we call play more than once, it will clear the timer first,
then  push filtered new actions and start the timer again. If
all of this happened in a frame, the checker which should be
cleared may found actions array is not empty and keep check.
So this patch we use timer.raf to hold raf's handle and cancel
it when clear was called.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
97f1c30a37 add some unit tests to replayer 2026-04-01 12:00:00 +08:00
Yanzhen Yu
7938b3231c Release 0.6.5 2026-04-01 12:00:00 +08:00
Yanzhen Yu
5f28a8d534 prevent scroll when dispatch focus 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b2806d6f81 emit pause and resume events 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f4596f5cea fix mouse move time offset may be mutated multiple times 2026-04-01 12:00:00 +08:00
Yanzhen Yu
9a4640fa98 update puppeteer to use setContent with wait and housekeeping the declaration files 2026-04-01 12:00:00 +08:00
Yanzhen Yu
270c9e48aa Release 0.6.4 2026-04-01 12:00:00 +08:00
Yanzhen Yu
86beabd2bb resolve #1 add ignore and block strategy for privacy purpose 2026-04-01 12:00:00 +08:00
Yanzhen Yu
09f30d2a81 return stopper function as the result of record 2026-04-01 12:00:00 +08:00
Yanzhen Yu
efa7a8fa1b new sandbox strategy
In this commit we switched the sandbox strategy to use iframe's
sandbox attribute. Indeed we do not need delegate event anymore,
but need to add some styles into the iframe.
The details were documented in the sandbox part of internal design.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
df990cd731 fix script tag in repl mode 2026-04-01 12:00:00 +08:00
Yanzhen Yu
01bd1d26c1 Release 0.6.3 2026-04-01 12:00:00 +08:00
Yanzhen Yu
a98a652b78 add release-it config 2026-04-01 12:00:00 +08:00
Yanzhen Yu
0995b7a6d3 basic impl of wait for stylesheet loaded 2026-04-01 12:00:00 +08:00
Yanzhen Yu
bed55d93bf Release 0.6.2 2026-04-01 12:00:00 +08:00
Yanzhen Yu
142c38e5a5 update dependency 2026-04-01 12:00:00 +08:00
Yanzhen Yu
9a7f98402c check interaction target before apply 2026-04-01 12:00:00 +08:00
Yanzhen Yu
9ed7e09213 check parentNode when calling insertBefore
When add new nodes, we may use insertBefore API to insert node before
its next sibling. But the sibling may not in the DOM tree at that
moment if it was in the missing node map.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
20f27a3822 improve prevent default event when replay 2026-04-01 12:00:00 +08:00
Yanzhen Yu
3e1ef6825e add sourcemap for terser bundles 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b065b22f09 refactor the repl tool to support multipage apps and better dev 2026-04-01 12:00:00 +08:00
Yanzhen Yu
4e636e1b6e fix timer clear method with do not reassign actions pointer 2026-04-01 12:00:00 +08:00
Yanzhen Yu
72ed0ebc9f do not auto inject stylesheet 2026-04-01 12:00:00 +08:00
edwardwu
05530551df resolve #4 Improve timer's performance by storing all callbacks in an array (#5) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
92faf502d0 add bundle watch 2026-04-01 12:00:00 +08:00
Yanzhen Yu
3cfe0c56b8 ignore href in integration test to avoid fail when code changed 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c30cc04548 fix repl rollup config 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b6d8a7dc95 extract css by rollup plugin 2026-04-01 12:00:00 +08:00
Yanzhen Yu
d1baeff34f Release 0.6.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
c97590edc7 update bundle config 2026-04-01 12:00:00 +08:00
Yanzhen Yu
adffe1e9ad bump 0.6.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
632c6de677 update test command 2026-04-01 12:00:00 +08:00
Yanzhen Yu
fdcf1d0bb2 update dependencies
In this commit, we updated rrweb-snapshot to 0.6.0 which including
a breaking change in data structure.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
8567114688 fix file link 2026-04-01 12:00:00 +08:00
Yanzhen Yu
824e165ede add internal design docs 2026-04-01 12:00:00 +08:00
Yanzhen Yu
68daa2d029 prevent form and a tag default behaviour 2026-04-01 12:00:00 +08:00
Yanzhen Yu
500f89b1d0 add a repl mode for quick test 2026-04-01 12:00:00 +08:00
Yanzhen Yu
430e84811a add chinese README 2026-04-01 12:00:00 +08:00
Yanzhen Yu
cbe80dbd2e also resolve missing previous node 2026-04-01 12:00:00 +08:00
Yanzhen Yu
00df74fd3f bump 0.5.1 2026-04-01 12:00:00 +08:00
Yanzhen Yu
b7bf5f5fe3 Fix add node logic with missingNextNodeMap
This patch include a breaking change to the recorder's event data.

We used to consider mirror.getId will always return the id of the
target node because we keep serialize every node. But if we call
mirror.getId before serialization then bug happened. This could
happen when we get nextId of newly added nodes if its next sibling
was also newly added.
So we have to return -1 as the id of node which was not serialized
and when we building added nodes in the replayer we should handle
this.

For example, nodes el1, el2 were added together and el1's nextId
will be -1 since el2 was not serialized at that moment. Now we
call el1 as a 'missing next node' and not append it into the DOM
tree after building, instead we store it in a missingNextNodeMap.
After a added node in the same mutation was successfully appened
we will check whether it has a previous id and the id was pointed
to some nodes in the map, if so, we will insert that node before
it and delete the node from map.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
4c0ced2ba1 fix the add node condition 2026-04-01 12:00:00 +08:00