Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chore: Migrate build to vite #1033

Open
wants to merge 167 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
ceda3aa
Chore: Add move most types from rrweb to @rrweb/types package
Juice10 Oct 20, 2022
bab2941
Split off type imports
Juice10 Oct 20, 2022
d571ea3
Split off type import to its own line
Juice10 Oct 20, 2022
b3ead33
Get vite to generate type definitions
Juice10 Oct 21, 2022
cc47ee3
Apply formatting changes
Juice10 Oct 21, 2022
b9f43b8
noEmit not allowed in tsconfig, moved it to build step
Juice10 Oct 21, 2022
0c41ba3
Merge branch '@juice10/@rrweb/types' of https://github.com/rrweb-io/r…
Juice10 Oct 21, 2022
0dfad95
Migrate rrdom-nodejs build to vite
Juice10 Oct 21, 2022
2728f8f
Apply formatting changes
Juice10 Oct 21, 2022
4c2f310
Migrate rrweb-snapshot to vite
Juice10 Oct 22, 2022
d57d780
Unify configs
Juice10 Oct 22, 2022
040c2ce
Chore: Migrate rrdom to vite
Juice10 Oct 22, 2022
9182fa2
Chore: Migrate rrweb to vite WIP
Juice10 Oct 23, 2022
369db3a
build:browser was removed (for now)
Juice10 Oct 23, 2022
3e28ecf
BREAKING: moved rrweb-plugin-console to its own npm module
Juice10 Oct 23, 2022
ff02234
Support cjs files in startServer
Juice10 Oct 23, 2022
77a4c6d
Move canvas-webrtc plugin to its own package
Juice10 Oct 23, 2022
193608e
Chore: move sequential-id plugin to its own package
Juice10 Oct 23, 2022
544e774
Chore: Configure rrweb's vite bundling
Juice10 Oct 23, 2022
98d6896
`Id` had lowercase `d` before, making it lowercase again
Juice10 Oct 23, 2022
45ea94e
Test: Move console tests to their own package
Juice10 Oct 24, 2022
54728a0
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 Nov 10, 2022
62c4d8f
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 Apr 8, 2024
2b5011f
remove unused utils from rrdom
Juice10 Apr 8, 2024
2d95102
pull in latest version of master
Juice10 Apr 8, 2024
eec0d64
Fix type casting issue in diff.ts
Juice10 Apr 8, 2024
0a68b47
Fix typo
Juice10 Apr 8, 2024
726c292
Fix duplicate entries in package.json and tsconfig.json
Juice10 Apr 8, 2024
876084c
Apply formatting changes
Juice10 Apr 8, 2024
48e29a7
Update dependencies in package.json files
Juice10 Apr 8, 2024
79e02c3
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 8, 2024
85c389c
Update dependencies to use Vite 5.2.8 in package.json files
Juice10 Apr 8, 2024
fc59ddd
Get tests passing for rrdom
Juice10 Apr 8, 2024
acaaf10
Fix image loading issue in integration tests
Juice10 Apr 8, 2024
a5001e1
Move pack/unpack to its own @rrweb/packer module
Juice10 Apr 9, 2024
71450e2
Get tests to work in rrdom-nodejs
Juice10 Apr 9, 2024
b10c833
Port tests in rrweb-snapshot to vitest and fix them
Juice10 Apr 9, 2024
c68fa98
Fix tests for rrweb-plugin-console-record
Juice10 Apr 9, 2024
02689e4
Add @rrweb/all package
Juice10 Apr 10, 2024
ad5563c
Fix publint and attw errors for rrdom and @rrweb/types
Juice10 Apr 10, 2024
6fde13e
Use shared vitest.config.ts in rrweb-snapshot package
Juice10 Apr 10, 2024
41cc89a
Fix publint and attw issues for rrweb-snapshot
Juice10 Apr 10, 2024
799310d
Export `ReplayPlugin` type directly from rrweb
Juice10 Apr 10, 2024
e46a951
Fix publint and attw issues for packages
Juice10 Apr 10, 2024
af3bc45
Fix publint & attw issue.
Juice10 Apr 10, 2024
1cce02e
Fix publint & attw issue.
Juice10 Apr 10, 2024
439f363
move some rrdom tests that require rrweb to rrweb package
Juice10 Apr 10, 2024
34a2ee1
Use pre-jest 29 syntax for snapshotting
Juice10 Apr 10, 2024
dc91e30
get rrweb passing publint and attw
Juice10 Apr 10, 2024
4a9dd49
const enum does not work with isolated modules flag
Juice10 Apr 10, 2024
b93b687
Fix script tag type in webgl.test.ts.snap and update rrweb.umd.cjs pa…
Juice10 Apr 10, 2024
deadccb
Fix paths
Juice10 Apr 10, 2024
b9cb10b
Move tests for console record plugin and fix bundle path
Juice10 Apr 10, 2024
990cbe0
Fix tests for rrweb
Juice10 Apr 10, 2024
3188bba
pack integration tests were moved to @rrweb/all
Juice10 Apr 10, 2024
901fc12
Update rrweb bundle path in test files
Juice10 Apr 10, 2024
4a007df
Fix flaky scroll emit from test
Juice10 Apr 11, 2024
4deee29
Migrate rrweb's tests over to vitest and make them pass
Juice10 Apr 11, 2024
09bd4bf
Make sure benchmarks & updating tests work
Juice10 Apr 11, 2024
ef0643b
Remove jest from rrweb
Juice10 Apr 11, 2024
c3709c4
Fix paths
Juice10 Apr 11, 2024
8e0abd7
always use rrweb's own cssom
Juice10 Apr 11, 2024
f689436
Update tsconfig.json for rrweb-plugin-sequential-id-record
Juice10 Apr 11, 2024
5fc5615
Add tsbuildinfo config to extended tsconfig files
Juice10 Apr 11, 2024
0c1abe2
Move rrdom over to vitest
Juice10 Apr 11, 2024
c2266a7
Apply formatting changes
Juice10 Apr 11, 2024
6218b6e
Update rrweb imports to use the new package structure
Juice10 Apr 11, 2024
68fe9e4
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 11, 2024
9eda12e
extend rrweb-snapshot's tsconfig from monorepo base config
Juice10 Apr 11, 2024
a2876a1
extend @rrweb/types's tsconfig from monorepo base config
Juice10 Apr 11, 2024
ac79f63
extend rrdom's tsconfig from monorepo base config
Juice10 Apr 11, 2024
993573d
extend rrdom-nodejs's tsconfig from monorepo base config
Juice10 Apr 11, 2024
be097cf
extend web-extension's tsconfig from monorepo base config
Juice10 Apr 11, 2024
296ac55
unify tsconfigs
Juice10 Apr 11, 2024
5083fc2
Continue when tests fail
Juice10 Apr 11, 2024
17d707f
Add stricter type checking
Juice10 Apr 11, 2024
01533bf
Add check-types global command
Juice10 Apr 11, 2024
ac54452
remove jest
Juice10 Apr 11, 2024
e0f4b5d
Remove unused code
Juice10 Apr 11, 2024
a9ed119
Add check-types command to build script
Juice10 Apr 11, 2024
1d09c23
Fix linting issues
Juice10 Apr 11, 2024
31a93fb
Add setup Chrome action for CI/CD workflow
Juice10 Apr 11, 2024
f9447fe
Update puppeteer version in package.json for rrweb
Juice10 Apr 11, 2024
9fa2d1c
Update Chrome setup in CI/CD workflow
Juice10 Apr 11, 2024
551eeb2
Update Chrome setup in CI/CD workflow
Juice10 Apr 11, 2024
b346a8c
Add Chrome setup and test cache location
Juice10 Apr 11, 2024
db05651
Update CI/CD workflow to test chrome cache location
Juice10 Apr 11, 2024
66252be
Add chrome installation step to CI/CD workflow
Juice10 Apr 11, 2024
9870805
Update Puppeteer configuration for headless testing
Juice10 Apr 11, 2024
bb1c36d
Update dependencies and workflow configuration
Juice10 Apr 11, 2024
7dd0d6d
Use same version of chrome on CI as is run locally
Juice10 Apr 12, 2024
336b4b2
Use version of chrome that seems to work with rrdom tests
Juice10 Apr 12, 2024
a59001f
Try using puppeteerrc to define chrome version
Juice10 Apr 12, 2024
0bd230f
Add .cache directory to .gitignore
Juice10 Apr 12, 2024
55547d6
Move global flag to vitest config
Juice10 Apr 12, 2024
106b39a
Update puppeteer version to 20.9.0
Juice10 Apr 12, 2024
9332204
Update console log messages in rrweb-plugin-console-record for new pu…
Juice10 Apr 12, 2024
c5da6a4
Remove redundant Chrome setup from CI/CD workflow
Juice10 Apr 12, 2024
324a7cf
Add minification and umd for all built files
Juice10 Apr 12, 2024
19db415
Update import paths for rrweb dist files
Juice10 Apr 12, 2024
33d5380
Add @rrweb/replay and @rrweb/record
Juice10 Apr 14, 2024
cd71e93
Add script to lint packages
Juice10 Apr 14, 2024
9111005
Apply formatting changes
Juice10 Apr 14, 2024
43ea92c
exclude styles export from typescript package type checking
Juice10 Apr 14, 2024
e8dfe8d
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 14, 2024
da29752
WIP Move rrweb-player over to vite
Juice10 Apr 15, 2024
74bb7ff
Apply formatting changes
Juice10 Apr 16, 2024
db2ac5a
chore: Update rrweb plugin import paths
Juice10 Apr 16, 2024
6c6bb8f
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
f91fa48
Remove rollup from rrweb-player
Juice10 Apr 16, 2024
bbb4e30
Fix typing issues
Juice10 Apr 16, 2024
16cdd2f
Fix typing issues
Juice10 Apr 16, 2024
4aced12
chore: Update rrweb-player to use vite for build process
Juice10 Apr 16, 2024
4e7d0b3
Apply formatting changes
Juice10 Apr 16, 2024
8f62f62
chore: Export Player class in rrweb-player/src/main.ts
Juice10 Apr 16, 2024
1d79e67
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
4823f9b
Apply formatting changes
Juice10 Apr 16, 2024
7e4b77f
Gets wiped by yarn workspaces-to-typescript-project-references
Juice10 Apr 16, 2024
5158760
Add .eslintignore and .eslintrc.cjs files for rrweb-player package
Juice10 Apr 16, 2024
8633a55
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
a48b240
Apply formatting changes
Juice10 Apr 16, 2024
fec731f
Update dependencies in rrweb-player/package.json
Juice10 Apr 16, 2024
79c6129
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
99b889e
Apply formatting changes
Juice10 Apr 16, 2024
92a9404
chore: Update eslint configuration for rrweb-player package
Juice10 Apr 16, 2024
5ae5fda
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
14f9f2d
Apply formatting changes
Juice10 Apr 16, 2024
7075e57
chore: Remove unused files from rrweb-player package
Juice10 Apr 16, 2024
e36125f
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 Apr 16, 2024
4b2491f
Apply formatting changes
Juice10 Apr 16, 2024
bda50b2
chore: Update rrweb-player import path to use rrweb-player.cjs
Juice10 Apr 16, 2024
0567785
chore: Update addEventListener signature in rrweb-player
Juice10 Apr 16, 2024
a6c933a
Apply formatting changes
Juice10 Apr 16, 2024
d73021b
Add .eslintignore and update .gitignore files for to root
Juice10 Apr 17, 2024
a061d4b
Apply formatting changes
Juice10 Apr 17, 2024
c45a8fd
Update documentation
Juice10 Apr 17, 2024
e1caee8
Update @rrweb/types package description
Juice10 Apr 17, 2024
285f600
Apply formatting changes
Juice10 Apr 17, 2024
df23897
Update build and run commands in CONTRIBUTING.md
Juice10 Apr 17, 2024
9615169
Apply formatting changes
Juice10 Apr 17, 2024
9521682
Merge branch 'master' into @juice10/vite
Juice10 Apr 18, 2024
e6d33d7
Update package versions to 2.0.0-alpha.13
Juice10 Apr 18, 2024
eae4336
Apply formatting changes
Juice10 Apr 18, 2024
26d56ff
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 Apr 18, 2024
fdb8d39
Apply formatting changes
Juice10 Apr 18, 2024
8ee563c
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 May 1, 2024
5fd8bd2
Fix import statement in media/index.ts
Juice10 May 1, 2024
6f446ff
Apply formatting changes
Juice10 May 1, 2024
e0f749c
chore: Update .gitignore to exclude build and dist directories
Juice10 May 14, 2024
f61dce8
Merge branch 'master' into @juice10/vite
Juice10 May 14, 2024
2685dd8
Apply formatting changes
Juice10 May 14, 2024
397bd94
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 May 14, 2024
91fdce9
Merge branch '@juice10/vite' of https://github.com/rrweb-io/rrweb int…
Juice10 May 14, 2024
69788d9
Merge branch 'master' into @juice10/vite
Juice10 May 22, 2024
fd0b2f9
Apply formatting changes
Juice10 May 22, 2024
dd82a7e
Migrate setTimeout to vitest
Juice10 May 22, 2024
4c6bfc9
Apply formatting changes
Juice10 May 22, 2024
73f6b0b
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 May 22, 2024
282bf0d
Apply formatting changes
Juice10 May 22, 2024
5420de4
Fix isNativeShadowDom function signature in utils.ts
Juice10 May 28, 2024
0cae083
try out jsr
Juice10 May 28, 2024
02d12bc
Apply formatting changes
Juice10 May 28, 2024
88b9629
Merge branch 'master' of https://github.com/rrweb-io/rrweb into @juic…
Juice10 May 28, 2024
04a9bc3
Update package versions to 2.0.0-alpha.14
Juice10 May 28, 2024
e27ec75
Apply formatting changes
Juice10 May 28, 2024
4bfcbd6
Fix name of rrwebSnapshot object
Juice10 May 28, 2024
a47f5df
Apply formatting changes
Juice10 May 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Empty file added .cache/.gitkeep
Empty file.
8 changes: 8 additions & 0 deletions .changeset/eighty-teachers-smash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@rrweb/rrweb-plugin-canvas-webrtc-replay": patch
"@rrweb/rrweb-plugin-sequential-id-replay": patch
"@rrweb/rrweb-plugin-console-replay": patch
"rrweb": patch
---

Export `ReplayPlugin` from rrweb directly. Previously we had to do `import type { ReplayPlugin } from 'rrweb/dist/types';` now we can do `import type { ReplayPlugin } from 'rrweb';`
13 changes: 13 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/dist
/package
.env
.env.*
!.env.example

# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
3 changes: 2 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// TODO: add .eslintignore. More info: https://bobbyhadz.com/blog/typescript-parseroptions-project-has-been-set-for
module.exports = {
env: {
browser: true,
Expand All @@ -16,7 +17,7 @@ module.exports = {
ecmaVersion: 'latest',
sourceType: 'module',
tsconfigRootDir: __dirname,
project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'],
project: ['./tsconfig.eslint.json', './packages/**/tsconfig.json'],
},
plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc', 'jest', 'compat'],
rules: {
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: lts/*

- name: Install Dependencies
run: yarn install --frozen-lockfile

- name: Build Project
run: NODE_OPTIONS='--max-old-space-size=4096' yarn build:all

- name: Check types
run: yarn turbo run check-types
run: yarn check-types

- name: Run tests
# run: PUPPETEER_EXECUTABLE_PATH=${{ steps.setup-chrome.outputs.chrome-path }} PUPPETEER_HEADLESS=true xvfb-run --server-args="-screen 0 1920x1080x24" yarn test
run: PUPPETEER_HEADLESS=true xvfb-run --server-args="-screen 0 1920x1080x24" yarn test

- name: Upload diff images to GitHub
Expand Down
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,25 @@ temp

.DS_Store

# output of `yarn build`
build
dist

# turbo cache
.turbo

# needed to store puppeteer binaries
.cache/*
!.gitkeep

# emacs working files end in a tilde
*~

# `.yarn/install-state.gz` is an optimization file that you shouldn't ever have to commit.
# It simply stores the exact state of your project so that the next commands can boot without having to resolve your workspaces all over again.
.yarn/install-state.gz
.yarn/install-state.gz


# for vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
10 changes: 10 additions & 0 deletions .puppeteerrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const { join } = require('path');

/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
// Changes the cache location for Puppeteer.
cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
browserRevision: '115.0.5763.0',
};
62 changes: 60 additions & 2 deletions .vscode/rrweb-monorepo.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,76 @@
"name": "rrweb-snapshot (package)",
"path": "../packages/rrweb-snapshot"
},
{
"name": "@rrweb/all",
"path": "../packages/all"
},
{
"name": "@rrweb/record",
"path": "../packages/record"
},
{
"name": "@rrweb/replay",
"path": "../packages/replay"
},
{
"name": "@rrweb/types",
"path": "../packages/types"
},
{
"name": "@rrweb/packer",
"path": "../packages/packer"
},
{
"name": "web-extension (package)",
"path": "../packages/web-extension"
},
{ "name": "rrvideo (package)", "path": "../packages/rrvideo" },
{ "name": "@rrweb/types", "path": "../packages/types" }
{
"name": "@rrweb/rrweb-plugin-console-record",
"path": "../packages/plugins/rrweb-plugin-console-record"
},
{
"name": "@rrweb/rrweb-plugin-console-replay",
"path": "../packages/plugins/rrweb-plugin-console-replay"
},
{
"name": "@rrweb/rrweb-plugin-sequential-id-record",
"path": "../packages/plugins/rrweb-plugin-sequential-id-record"
},
{
"name": "@rrweb/rrweb-plugin-sequential-id-replay",
"path": "../packages/plugins/rrweb-plugin-sequential-id-replay"
},
{
"name": "@rrweb/rrweb-plugin-canvas-webrtc-record",
"path": "../packages/plugins/rrweb-plugin-canvas-webrtc-record"
},
{
"name": "@rrweb/rrweb-plugin-canvas-webrtc-replay",
"path": "../packages/plugins/rrweb-plugin-canvas-webrtc-replay"
}
],
"settings": {
"vitest.workspaceConfig": "../vitest.workspace.ts",
"vitest.commandLine": "yarn vitest",
"jest.disabledWorkspaceFolders": [
" rrweb monorepo",
"rrweb (package)",
"rrweb-player (package)",
"@rrweb/types"
"rrweb-snapshot (package)",
"rrdom (package)",
"rrdom-nodejs (package)",
"@rrweb/all",
"@rrweb/record",
"@rrweb/replay",
"@rrweb/types",
"@rrweb/packer",
"@rrweb/rrweb-plugin-console-record",
"@rrweb/rrweb-plugin-console-replay",
"@rrweb/rrweb-plugin-sequential-id",
"@rrweb/rrweb-plugin-canvas-webrtc-record",
"@rrweb/rrweb-plugin-canvas-webrtc-replay"
]
}
}
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ clear and has sufficient instructions to be able to reproduce the issue.
## Run locally

- Install dependencies: `yarn`
- Run recorder on a website: `yarn repl`
- Run a cobrowsing/mirroring session locally: `yarn live-stream`
- Build all packages: (in `/`) `yarn build:all` or `yarn dev`
- Run recorder on a website: (in `/packages/rrweb`) `yarn repl`
- Run a cobrowsing/mirroring session locally: (in `/packages/rrweb`) `yarn live-stream`
- Build individual packages: `yarn build` or `yarn dev`
- Test: `yarn test` or `yarn test:watch`
- Lint: `yarn lint`
- Rewrite files with prettier: `yarn format` or `yarn format:head`
Expand Down
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

[![Join the chat at slack](https://img.shields.io/badge/slack-@rrweb-teal.svg?logo=slack)](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)
[![Twitter Follow](https://img.shields.io/badge/twitter-@rrweb__io-teal.svg?logo=twitter)](https://twitter.com/rrweb_io)
![total gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js?compression=gzip&label=total%20gzip%20size)
![recorder gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.js?compression=gzip&label=recorder%20gzip%20size)
![total gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.cjs?compression=gzip&label=total%20gzip%20size)
![recorder gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.cjs?compression=gzip&label=recorder%20gzip%20size)
[![](https://data.jsdelivr.com/v1/package/npm/rrweb/badge)](https://www.jsdelivr.com/package/npm/rrweb)

[中文文档](./README.zh_CN.md)
Expand All @@ -39,9 +39,7 @@ rrweb is mainly composed of 3 parts:

## Roadmap

- rrdom: an ad-hoc DOM for rrweb session data [#419](https://github.com/rrweb-io/rrweb/issues/419)
- storage engine: do deduplication on a large number of rrweb sessions
- more end-to-end tests
- compact mutation data in common patterns
- provide plugins via the new plugin API, including:
- XHR plugin
Expand Down Expand Up @@ -199,15 +197,15 @@ In addition to adding integration tests and unit tests, rrweb also provides a RE
</a>
</td>
<td align="center">
<a href="https://cux.io" target="_blank">
<img style="padding: 8px" alt="The first ever UX automation tool" width="195px" src="https://cux.io/cux-logo.svg">
<a href="https://recordonce.com/" target="_blank">
<img width="195px" alt="Smart screen recording for SaaS" src="https://uploads-ssl.webflow.com/5f3d133183156245630d4446/5f3d1940abe8db8612c23521_Record-Once-logo-554x80px.svg">
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://recordonce.com/" target="_blank">
<img width="195px" alt="Smart screen recording for SaaS" src="https://uploads-ssl.webflow.com/5f3d133183156245630d4446/5f3d1940abe8db8612c23521_Record-Once-logo-554x80px.svg">
<a href="https://cux.io" target="_blank">
<img style="padding: 8px" alt="The first ever UX automation tool" width="195px" src="https://cux.io/cux-logo.svg">
</a>
</td>
<td align="center">
Expand Down
86 changes: 75 additions & 11 deletions README.zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
**[rrweb 纪录片(中文)](https://www.bilibili.com/video/BV1wL4y1B7wN?share_source=copy_web)**

[![Join the chat at slack](https://img.shields.io/badge/slack-@rrweb-teal.svg?logo=slack)](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)
![total gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js?compression=gzip&label=total%20gzip%20size)
![recorder gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.js?compression=gzip&label=recorder%20gzip%20size)
![total gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.cjs?compression=gzip&label=total%20gzip%20size)
![recorder gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.cjs?compression=gzip&label=recorder%20gzip%20size)
[![](https://data.jsdelivr.com/v1/package/npm/rrweb/badge)](https://www.jsdelivr.com/package/npm/rrweb)

> 我已开通 Github Sponsor, 您可以通过赞助的形式帮助 rrweb 的开发。
Expand All @@ -34,9 +34,7 @@ rrweb 主要由 3 部分组成:

## Roadmap

- rrdom: rrweb 数据专用的 DOM 实现 [#419](https://github.com/rrweb-io/rrweb/issues/419)
- storage engine: 对大规模 rrweb 数据进行去重
- 更多的 E2E 测试
- 在常见场景下对 mutation 数据进行压缩
- 基于新的插件 API 提供更多插件,包括:
- XHR 插件
Expand Down Expand Up @@ -66,6 +64,58 @@ rrweb 主要由 3 部分组成:

[使用 REPL 工具](./guide.zh_CN.md#REPL-工具)

## Sponsors

[Become a sponsor](https://opencollective.com/rrweb#sponsor) and get your logo on our README on Github with a link to your site.

### Gold Sponsors 🥇

<div dir="auto">

<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/0/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/1/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/2/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/3/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/4/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/5/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/gold-sponsor/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/gold-sponsor/6/avatar.svg?requireActive=false&avatarHeight=225" alt="sponsor"></a>

</div>

### Silver Sponsors 🥈

<div dir="auto">

<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/0/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/1/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/2/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/3/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/4/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/5/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/silver-sponsor/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/silver-sponsor/6/avatar.svg?requireActive=false&avatarHeight=158" alt="sponsor"></a>

</div>

### Bronze Sponsors 🥉

<div dir="auto">

<a href="https://opencollective.com/rrweb/tiers/sponsors/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/0/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/1/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/2/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/3/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/4/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/5/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/6/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/7/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>
<a href="https://opencollective.com/rrweb/tiers/sponsors/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/rrweb/tiers/sponsors/8/avatar.svg?requireActive=false&avatarHeight=70" alt="sponsor"></a>

</div>

### Backers

<a href="https://opencollective.com/rrweb#sponsor" rel="nofollow"><img src="https://opencollective.com/rrweb/tiers/backers.svg?avatarHeight=36"></a>

## Core Team Members

<table>
Expand All @@ -78,16 +128,18 @@ rrweb 主要由 3 部分组成:
alt=""
/>
<br /><sub><b>Yuyz0112</b></sub>
<br /><br />
</a>
</td>
<td align="center">
<a href="https://github.com/Mark-Fenng">
<a href="https://github.com/YunFeng0817">
<img
src="https://avatars.githubusercontent.com/u/27533910?s=100"
width="100px;"
alt=""
/>
<br /><sub><b>Mark-Fenng</b></sub>
<br /><sub><b>Yun Feng</b></sub>
<br /><br />
</a>
</td>
<td align="center">
Expand All @@ -98,6 +150,7 @@ rrweb 主要由 3 部分组成:
alt=""
/>
<br /><sub><b>eoghanmurray</b></sub>
<br /><br />
</a>
</td>
<td align="center">
Expand All @@ -108,12 +161,13 @@ rrweb 主要由 3 部分组成:
alt=""
/>
<br /><sub><b>Juice10</b></sub>
<br /><sub>open for rrweb consulting</sub>
</a>
</td>
</tr>
</table>

## Who's using rrweb
## Who's using rrweb?

<table>
<tr>
Expand All @@ -133,15 +187,15 @@ rrweb 主要由 3 部分组成:
</a>
</td>
<td align="center">
<a href="https://cux.io" target="_blank">
<img style="padding: 8px" alt="The first ever UX automation tool" width="195px" src="https://cux.io/cux-logo.svg">
<a href="https://recordonce.com/" target="_blank">
<img width="195px" alt="Smart screen recording for SaaS" src="https://uploads-ssl.webflow.com/5f3d133183156245630d4446/5f3d1940abe8db8612c23521_Record-Once-logo-554x80px.svg">
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://recordonce.com/" target="_blank">
<img width="195px" alt="Smart screen recording for SaaS" src="https://uploads-ssl.webflow.com/5f3d133183156245630d4446/5f3d1940abe8db8612c23521_Record-Once-logo-554x80px.svg">
<a href="https://cux.io" target="_blank">
<img style="padding: 8px" alt="The first ever UX automation tool" width="195px" src="https://cux.io/cux-logo.svg">
</a>
</td>
<td align="center">
Expand All @@ -166,10 +220,20 @@ rrweb 主要由 3 部分组成:
<img style="padding: 8px" alt="Intercept, Modify, Record & Replay HTTP Requests." width="195px" src="https://github.com/requestly/requestly/assets/16779465/652552db-c867-44cb-9bb5-94a2026e04ca">
</a>
</td>
<td align="center">
<a href="https://gleap.io" target="_blank">
<img style="padding: 8px" alt="In-app bug reporting & customer feedback platform." width="195px" src="https://assets-global.website-files.com/6506f3f29c68b1724807619d/6506f56010237164c6306591_GleapLogo.svg">
</a>
</td>
<td align="center">
<a href="https://uxwizz.com" target="_blank">
<img style="padding: 8px" alt="Self-hosted website analytics with heatmaps and session recordings." width="195px" src="https://github.com/UXWizz/public-files/raw/main/assets/logo.png">
</a>
</td>
<td align="center">
<a href="https://www.howdygo.com" target="_blank">
<img style="padding: 8px" alt="Interactive product demos for small marketing teams" width="195px" src="https://assets-global.website-files.com/650afb446f1dd5bd410f00cc/650b2cec6188ff54dd9b01e1_Logo.svg">
</a>
</td>
</tr>
</table>