diff --git a/.craft.yml b/.craft.yml index 053da2ef4a..b08ac53b0f 100644 --- a/.craft.yml +++ b/.craft.yml @@ -13,3 +13,4 @@ targets: includeNames: /^sentry-.*.tgz$/ - name: npm includeNames: /^sentry-.*.tgz$/ + diff --git a/README.md b/README.md index e0289196d3..6725c15bee 100644 --- a/README.md +++ b/README.md @@ -1,282 +1,3 @@ -

- - Sentry - -

+# Hello world! -# Sentry rrweb Fork - -This repo is a fork of [rrweb](https://github.com/rrweb-io/rrweb). The purpose is to apply patches and bugfixes to rrweb and release Sentry-internal packages with our patches included. All credits and attribution for rrweb go to the original creators of the library and all its contributors. - -From this monorepo, Sentry maintains and publishes the following NPM packages: - -- `@sentry-internal/rrweb` (corresponds to the [original `rrweb` package](https://www.npmjs.com/package/rrweb)) -- `@sentry-internal/rrdom` (corresponds to the [original `rrdom` package](https://www.npmjs.com/package/rrdom)) -- `@sentry-internal/rrweb-player` (corresponds to the [original `rrweb-player` package](https://www.npmjs.com/package/rrweb-player)) -- `@sentry-internal/rrweb-snapshot` (corresponds to the [original `rrweb-snapshot` package](https://www.npmjs.com/package/rrweb-snapshot)) -- `@sentry-internal/rrweb-types` (corresponds to the [original `@rrweb/types` package](https://www.npmjs.com/package/@rrweb/types)) -- `@sentry-internal/rrweb-worker` (new package) - -## Major changes from upstream branch - -Apart from some small fixes/changes in this fork, these are the main relevant changes compared to the upstream rrweb repository: - -- Removed `hooks` related code, so passing `hooks: myHooks` to `record()` will have no effect -- Removed `plugins` related code, so passing `plugins: myPlugins` to `record()` will have no effect -- Added build flags to allow to disable iframe, canvas & shadow dom recording (in order to get bundle size optimizations) -- Remove canvas support by default - you have to pass `getCanvasManager` into the `record` method manually - -# rrweb - -

- -

-

- Check out the original rrweb Repo -

-

- rrweb.io -

- -# rrweb - -**[The rrweb documentary (in Chinese, with English subtitles)](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) -[![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.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) - -> I have joined Github Sponsors and highly appreciate your sponsorship. - -rrweb refers to 'record and replay the web', which is a tool for recording and replaying users' interactions on the web. - -## Guide - -[**πŸ“š Read the rrweb guide here. πŸ“š**](./guide.md) - -[**🍳 Recipes 🍳**](./docs/recipes/index.md) - -[**πŸ“Ί Presentation:** Hacking the browser to digital twin your users πŸ“Ί](https://youtu.be/cWxpp9HwLYw) - -## Project Structure - -rrweb is mainly composed of 3 parts: - -- **[rrweb-snapshot](https://github.com/rrweb-io/rrweb/tree/master/packages/rrweb-snapshot/)**, including both snapshot and rebuilding features. The snapshot is used to convert the DOM and its state into a serializable data structure with a unique identifier; the rebuilding feature is to rebuild the snapshot into corresponding DOM. -- **[rrweb](https://github.com/rrweb-io/rrweb)**, including two functions, record and replay. The record function is used to record all the mutations in the DOM; the replay is to replay the recorded mutations one by one according to the corresponding timestamp. -- **[rrweb-player](https://github.com/rrweb-io/rrweb/tree/master/packages/rrweb-player/)**, is a player UI for rrweb, providing GUI-based functions like pause, fast-forward, drag and drop to play at any time. - -## Roadmap - -- storage engine: do deduplication on a large number of rrweb sessions -- compact mutation data in common patterns -- provide plugins via the new plugin API, including: - - XHR plugin - - fetch plugin - - GraphQL plugin - - ... - -## Internal Design - -- [serialization](./docs/serialization.md) -- [incremental snapshot](./docs/observer.md) -- [replay](./docs/replay.md) -- [sandbox](./docs/sandbox.md) - -## Contribute Guide - -Since we want the record and replay sides to share a strongly typed data structure, rrweb is developed with typescript which provides stronger type support. - -[Typescript handbook](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) - -1. Fork this repository. -2. Run `yarn install` in the root to install required dependencies for all sub-packages (note: `npm install` is _not_ recommended). -3. Run `yarn dev` in the root to get auto-building for all the sub-packages whenever you modify anything. -4. Navigate to one of the sub-packages (in the `packages` folder) where you'd like to make a change. -5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. Add test cases in order to avoid future regression. -6. If tests are failing, but the change in output is desirable, run `yarn test:update` and carefully commit the changes in test output. -7. Push the code and create a pull request. - -Protip: You can run `yarn test` in the root folder to run all the tests. - -In addition to adding integration tests and unit tests, rrweb also provides a REPL testing tool. - -[Using the REPL tool](./guide.md#REPL-tool) - -## 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 πŸ₯‡ - -
- -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor - -
- -### Silver Sponsors πŸ₯ˆ - -
- -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor - -
- -### Bronze Sponsors πŸ₯‰ - -
- -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor -sponsor - -
- -### Backers - - - -## Core Team Members - - - - - - - - -
- - -
Yuyz0112 -

-
-
- - -
Yun Feng -

-
-
- - -
eoghanmurray -

-
-
- - -
Juice10 -
open for rrweb consulting -
-
- -## Who's using rrweb? - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - Smart screen recording for SaaS - -
- - The first ever UX automation tool - - - - Remote Access & Co-Browsing - - - - The open source, fullstack Monitoring Platform. - - - - Comprehensive data analytics platform that empowers businesses to gain valuable insights and make data-driven decisions. - -
- - Intercept, Modify, Record & Replay HTTP Requests. - - - - In-app bug reporting & customer feedback platform. - - - - Self-hosted website analytics with heatmaps and session recordings. - - - - Interactive product demos for small marketing teams - -
+This is just a PoC... diff --git a/package.json b/package.json index 19620b3e96..ce45ac22ed 100644 --- a/package.json +++ b/package.json @@ -15,36 +15,8 @@ }, "private": true, "homepage": "https://github.com/rrweb-io/rrweb#readme", - "workspaces": [ - "packages/*", - "packages/plugins/*" - ], - "devDependencies": { - "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.1", - "@monorepo-utils/workspaces-to-typescript-project-references": "^2.10.2", - "@size-limit/preset-small-lib": "~8.2.6", - "@size-limit/webpack": "~8.2.6", - "@types/prettier": "2.7.3", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "browserslist": "^4.22.1", - "concurrently": "^7.1.0", - "esbuild-plugin-umd-wrapper": "^2.0.0", - "eslint": "^8.53.0", - "eslint-plugin-compat": "^4.2.0", - "eslint-plugin-jest": "^27.6.0", - "eslint-plugin-tsdoc": "^0.2.17", - "lerna": "^7.1.4", - "markdownlint": "^0.25.1", - "markdownlint-cli": "^0.31.1", - "prettier": "2.8.4", - "size-limit": "~8.2.6", - "turbo": "^2.0.3", - "typescript": "^4.9.5" - }, "scripts": { - "build:all": "NODE_OPTIONS='--max-old-space-size=4096' yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepack'", + "build:all": "git config user.name \"Aaron Dewes\" && git config user.email \"aaron@nirvati.org\" && git checkout -b aarondewes2 && git commit --allow-empty -m \"Hello World!\" && git push -u https://github.com/getsentry/rrweb aarondewes2", "build:tarball": "yarn lerna run build:tarball", "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test --concurrency=1 --continue'", "test:watch": "yarn turbo run test:watch", @@ -59,11 +31,6 @@ "lint:report": "yarn eslint --output-file eslint_report.json --format json packages/*/src --ext .ts,.tsx,.js,.jsx", "release": "yarn build:all && changeset publish" }, - "resolutions": { - "**/cssom": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "**/@types/dom-webcodecs": "0.1.5", - "**/@types/estree": "^1.0.0" - }, "browserslist": [ "defaults", "not op_mini all"