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 #234

Draft
wants to merge 39 commits into
base: sentry-v2
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
c419117
Chore: Migrate build to vite (#1033)
Juice10 Jun 7, 2024
acd41e0
ref: tweaks to tasks to get builds/pkg names working
billyvg Dec 20, 2024
0b4a538
idk tsconfig updates
billyvg Dec 20, 2024
46bbf2d
fix lint
billyvg Dec 20, 2024
163e073
add config for rrweb-worker
billyvg Jan 8, 2025
88798cc
update rrdom imports
billyvg Jan 8, 2025
40d2ded
Chore: Ignore generated files from .svelte-kit for prettier & make vi…
Juice10 Jun 10, 2024
a4ae0b6
Chore: Fix yarn dev (#1501)
Juice10 Jun 10, 2024
31e42b4
missed some changes
billyvg Jan 8, 2025
24f04fc
build fixes
billyvg Jan 8, 2025
61efe05
Chore: Delete unused lerna.json file (#1506)
Juice10 Jun 12, 2024
6f66ff4
update plugin deps to point to internal package
billyvg Jan 8, 2025
832cb06
more imports
billyvg Jan 8, 2025
071e325
replay package import
billyvg Jan 8, 2025
03b3ec0
..
billyvg Jan 8, 2025
41fe075
..
billyvg Jan 8, 2025
8a0d876
remove check types from web extension
billyvg Jan 8, 2025
0bfde07
remove sentry-internal from packages we wont publish
billyvg Jan 8, 2025
b7c1c96
more
billyvg Jan 8, 2025
36b39bc
rrweb-replay
billyvg Jan 9, 2025
61d762b
try manual yarn cache
billyvg Jan 9, 2025
c6ba073
missing inactiveColor
billyvg Jan 9, 2025
a886117
fix replay dep
billyvg Jan 9, 2025
9648d78
jest -> vi
billyvg Jan 9, 2025
308d7f9
yarn
billyvg Jan 9, 2025
d8068b2
fix imports in test
billyvg Jan 9, 2025
89f204b
fix tests
billyvg Jan 9, 2025
f2d6bde
test fixes
billyvg Jan 9, 2025
acbf29b
no sandbox
billyvg Jan 9, 2025
b6e94df
more sandbox
billyvg Jan 9, 2025
4e13acb
fix worker script
billyvg Jan 9, 2025
58f6266
yarn
billyvg Jan 9, 2025
79f358f
update snaps
billyvg Jan 9, 2025
58c5a03
package.json
billyvg Jan 9, 2025
b183af5
use promise instead of waitForTimeout
billyvg Jan 9, 2025
d588e17
types/react
billyvg Jan 10, 2025
3630798
eslint fix
billyvg Jan 10, 2025
9899c2f
remove size check
billyvg Jan 10, 2025
49e5608
Apply formatting changes
billyvg Jan 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
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';`
2 changes: 2 additions & 0 deletions .changeset/eleven-toys-vanish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/nasty-scissors-reply.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/serious-eggs-greet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
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
18 changes: 15 additions & 3 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,18 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: lts/*
cache: 'yarn'

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

- uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: Install Dependencies
run: yarn install --frozen-lockfile
Expand All @@ -33,9 +44,10 @@ jobs:
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 Expand Up @@ -70,7 +82,7 @@ jobs:

- name: Build Tarballs
env:
NODE_OPTIONS: "--max_old_space_size=4096"
NODE_OPTIONS: '--max_old_space_size=4096'
run: yarn build:tarball

- name: Upload Artifacts
Expand Down
39 changes: 0 additions & 39 deletions .github/workflows/size-check.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/style-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
name: ESLint Check and Report Upload

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
Expand Down Expand Up @@ -93,3 +93,4 @@ jobs:
with:
commit_message: Apply formatting changes
branch: ${{ github.head_ref }}
file_pattern: ':!packages/rrweb-player/.svelte-kit/ambient.d.ts'
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,29 @@ 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

# TBD if we need these still, probably for 3.8
typings
typings-ts3.8
dist-ts3.8

# for vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
5 changes: 5 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,8 @@
.changeset/witty-kids-talk.md
.changeset/yellow-mails-cheat.md
.changeset/young-timers-grow.md

# files generated by svelte-kit
packages/rrweb-player/.svelte-kit/generated/*
packages/rrweb-player/.svelte-kit/ambient.d.ts
packages/rrweb-player/.svelte-kit/non-ambient.d.ts
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
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ Apart from some small fixes/changes in this fork, these are the main relevant ch

[![Join the chat at slack](https://img.shields.io/badge/[email protected]?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 @@ -70,9 +70,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 @@ -197,7 +195,7 @@ In addition to adding integration tests and unit tests, rrweb also provides a RE
</a>
</td>
<td align="center">
<a href="https://github.com/Juice10">
<a href="https://github.com/juice10">
<img
src="https://avatars.githubusercontent.com/u/4106?s=100"
width="100px;"
Expand Down Expand Up @@ -230,15 +228,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
Loading
Loading