* fix: remove the permission not needed and update the player style link
* fix: change the way of importing worker script
* improve the extension version
* build: add process env to disable inline worker import
* improve style file
* upgrade svelte2tsx
* disable eslint check for that line
* merge the extension-release action into release action
---------
Co-authored-by: YunFeng0817 <YunFeng0817@users.noreply.github.com>
- Running `yarn build` in a `packages/*/` directory will trigger build of all dependencies too, and cache them if possible.
- Fix for `yarn dev` breaking for `rrweb` package whenever changing files in `rrweb` package
- Update typescript, turbo, vite and vite-plugin-dts
- Require `workspaces-to-typescript-project-references` from `prepublish`
* Chore: Add move most types from rrweb to @rrweb/types package
* Split off type imports
* Split off type import to its own line
* Get vite to generate type definitions
* Apply formatting changes
* noEmit not allowed in tsconfig, moved it to build step
* Migrate rrdom-nodejs build to vite
* Apply formatting changes
* Migrate rrweb-snapshot to vite
* Unify configs
* Chore: Migrate rrdom to vite
Turns out what we where doing by overwriting `public textContent: string | undefined` as a getter in a subclass is something that isn't allowed in typescript. Because we where using `// @ts-ignore` to hide this error our bundler chose to allow the overwrite. Vite choses to disallow the overwrite making all subclasses' `textContent` undefined.
To mitigate this we're using an abstract class, which does allow sub classes to decide if they wan't to use getters or not.
* Chore: Migrate rrweb to vite WIP
* build:browser was removed (for now)
* BREAKING: moved rrweb-plugin-console to its own npm module
This removes console from rrweb-all.js
* Support cjs files in startServer
* Move canvas-webrtc plugin to its own package
* Chore: move sequential-id plugin to its own package
* Chore: Configure rrweb's vite bundling
* `Id` had lowercase `d` before, making it lowercase again
* Test: Move console tests to their own package
* remove unused utils from rrdom
* pull in latest version of master
something when wrong earlier when resolving merge conflicts, this should be correct
* Fix type casting issue in diff.ts
* Fix typo
* Fix duplicate entries in package.json and tsconfig.json
* Apply formatting changes
* Update dependencies in package.json files
* Update dependencies to use Vite 5.2.8 in package.json files
* Get tests passing for rrdom
`apply virtual style rules to node` tests need to be moved to rrweb to avoid circular dependencies
* Fix image loading issue in integration tests
* Move pack/unpack to its own @rrweb/packer module
* Get tests to work in rrdom-nodejs
* Port tests in rrweb-snapshot to vitest and fix them
* Fix tests for rrweb-plugin-console-record
* Add @rrweb/all package
* Fix publint and attw errors for rrdom and @rrweb/types
* Use shared vitest.config.ts in rrweb-snapshot package
* Fix publint and attw issues for rrweb-snapshot
* Export `ReplayPlugin` type directly from rrweb
* Fix publint and attw issues for packages
* Fix publint & attw issue.
I was bumping into this issue: 3729bc2a3c/docs/problems/NoResolution.md
And had to choose one of these three methods described here:
https://github.com/andrewbranch/example-subpath-exports-ts-compat?tab=readme-ov-file#typescript-friendly-strategies-for-packagejson-subpath-exports-compatibility
And I ended up going for the method described here:
1ffe3425b0/examples/node_modules/package-json-redirects (package-json-redirects)
The redirect method seemed the least invasive and most effective.
* Fix publint & attw issue.
I was bumping into this issue: 3729bc2a3c/docs/problems/NoResolution.md
And had to choose one of these three methods described here:
https://github.com/andrewbranch/example-subpath-exports-ts-compat?tab=readme-ov-file#typescript-friendly-strategies-for-packagejson-subpath-exports-compatibility
And I ended up going for the method described here:
1ffe3425b0/examples/node_modules/package-json-redirects (package-json-redirects)
The redirect method seemed the least invasive and most effective.
* move some rrdom tests that require rrweb to rrweb package
* Use pre-jest 29 syntax for snapshotting
* get rrweb passing publint and attw
* const enum does not work with isolated modules flag
* Fix script tag type in webgl.test.ts.snap and update rrweb.umd.cjs path in webgl.test.ts
* Fix paths
* Move tests for console record plugin and fix bundle path
* Fix tests for rrweb
* pack integration tests were moved to @rrweb/all
* Update rrweb bundle path in test files
* Fix flaky scroll emit from test
* Migrate rrweb's tests over to vitest and make them pass
* Make sure benchmarks & updating tests work
* Remove jest from rrweb
* Fix paths
* always use rrweb's own cssom
* Update tsconfig.json for rrweb-plugin-sequential-id-record
Fixes this error:
Error: @rrweb/rrweb-plugin-sequential-id-record:prepublish: tsconfig.json(9,5): error TS6377: Cannot write file '/home/runner/work/rrweb/rrweb/tsconfig.tsbuildinfo' because it will overwrite '.tsbuildinfo' file generated by referenced project '/home/runner/work/rrweb/rrweb/packages/rrweb'
* Add tsbuildinfo config to extended tsconfig files
* Move rrdom over to vitest
* Apply formatting changes
* Update rrweb imports to use the new package structure
* extend rrweb-snapshot's tsconfig from monorepo base config
* extend @rrweb/types's tsconfig from monorepo base config
* extend rrdom's tsconfig from monorepo base config
* extend rrdom-nodejs's tsconfig from monorepo base config
* extend web-extension's tsconfig from monorepo base config
* unify tsconfigs
* Continue when tests fail
* Add stricter type checking
* Add check-types global command
* remove jest
* Remove unused code
* Add check-types command to build script
* Fix linting issues
* Add setup Chrome action for CI/CD workflow
* Update puppeteer version in package.json for rrweb
* Update Chrome setup in CI/CD workflow
* Update Chrome setup in CI/CD workflow
* Add Chrome setup and test cache location
* Update CI/CD workflow to test chrome cache location
* Add chrome installation step to CI/CD workflow
* Update Puppeteer configuration for headless testing
* Update dependencies and workflow configuration
* Use same version of chrome on CI as is run locally
* Use version of chrome that seems to work with rrdom tests
* Try using puppeteerrc to define chrome version
* Add .cache directory to .gitignore
* Move global flag to vitest config
* Update puppeteer version to 20.9.0
* Update console log messages in rrweb-plugin-console-record for new puppeteer version
* Remove redundant Chrome setup from CI/CD workflow
* Add minification and umd for all built files
* Update import paths for rrweb dist files
* Add @rrweb/replay and @rrweb/record
* Add script to lint packages
* Apply formatting changes
* exclude styles export from typescript package type checking
* WIP Move rrweb-player over to vite
* Apply formatting changes
* chore: Update rrweb plugin import paths
* Remove rollup from rrweb-player
* Fix typing issues
* Fix typing issues
* chore: Update rrweb-player to use vite for build process
* Apply formatting changes
* chore: Export Player class in rrweb-player/src/main.ts
Makes attw happy
* Apply formatting changes
* Gets wiped by yarn workspaces-to-typescript-project-references
* Add .eslintignore and .eslintrc.cjs files for rrweb-player package
* Apply formatting changes
* Update dependencies in rrweb-player/package.json
* Apply formatting changes
* chore: Update eslint configuration for rrweb-player package
* Apply formatting changes
* chore: Remove unused files from rrweb-player package
* Apply formatting changes
* chore: Update rrweb-player import path to use rrweb-player.cjs
* chore: Update addEventListener signature in rrweb-player
* Apply formatting changes
* Add .eslintignore and update .gitignore files for to root
* Apply formatting changes
* Update documentation
* Update @rrweb/types package description
* Apply formatting changes
* Update build and run commands in CONTRIBUTING.md
* Apply formatting changes
* Update package versions to 2.0.0-alpha.13
* Apply formatting changes
* Apply formatting changes
* Fix import statement in media/index.ts
* Apply formatting changes
* chore: Update .gitignore to exclude build and dist directories
* Apply formatting changes
* Apply formatting changes
* Migrate setTimeout to vitest
* Apply formatting changes
* Apply formatting changes
* Fix isNativeShadowDom function signature in utils.ts
* try out jsr
* Apply formatting changes
* Update package versions to 2.0.0-alpha.14
* Apply formatting changes
* Fix name of rrwebSnapshot object
* Apply formatting changes
* Remove unused lock files
* Apply formatting changes
* Update rrweb bundle path to use umd.cjs format
* Apply formatting changes
* Trigger tests to run again
* Rename snapshots for vitest
* Apply formatting changes
* Ping CI
* Apply formatting changes
* Ping CI
* Apply formatting changes
* Ignore files generated by svelte-kit for prettier
* Correct Player object
* first commit
* rrvideo v0.1.0
First version of rrvideo.
1. Use as a Node.JS lib.
2. Use as a CLI.
Features are implemented via puppeteer, ffmpeg and rrweb-player.
* add readme
* update publish script
* add node env in cli file and change package.json bin to same like README (#4)
Co-authored-by: Xu Yinjie <xuyinjie@xiaobangtouzi.com>
* release 0.2.0
* fix#6 avoid assign undefined to config
* Fix: Solve the inconsistency between rrvideo and the real recorded page rendering when rendering the page with a headless browser (https://github.com/rrweb-io/rrvideo/pull/26)
Author: xujiujiu <906784584@qq.com>
---------
Co-authored-by: xujiujiu <906784584@qq.com>
* refactor rrvideo
1. refactor code
2. change monorepo config
3. remove separate TS dependencies
* add changeset
* fix: eslint errors
---------
Co-authored-by: Yanzhen Yu <yanzhen@smartx.com>
Co-authored-by: xyj <593500664@qq.com>
Co-authored-by: Xu Yinjie <xuyinjie@xiaobangtouzi.com>
Co-authored-by: xujiujiu <906784584@qq.com>
* fix: module error
refactor all suffix of bundled scripts with commonjs module from 'js' to cjs
error:
ReferenceError: exports is not defined in ES module scope
This file is being treated as an ES module because it has a '.js' file extension and '.../rrweb/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
* update jest config files
* Chore: Add move most types from rrweb to @rrweb/types package
* Split off type imports
* Split off type import to its own line
* Get vite to generate type definitions
* Apply formatting changes
* noEmit not allowed in tsconfig, moved it to build step
* Align version of @rrweb/types with main rrweb package
Based on @mark-fenng's comments https://github.com/rrweb-io/rrweb/pull/1031/files#r1002298176
* Move up keywords
* rrdom: add a diff function for properties
* implement diffChildren function and unit tests
* finish basic functions of diff algorithm
* fix several bugs in the diff algorithm
* replace the virtual parent optimization in applyMutation()
* fix: moveAndHover after the diff algorithm is executed
* replace virtual style map with rrdom
cssom version has to be above 0.5.0 to pass virtual style tests
* fix: failed virtual style tests in replayer.test.ts
* fix: failed polyfill tests caused by nodejs compatibility of different versions
* fix: svg viewBox attribute doesn't work
Cause the attribute viewBox is case sensitive, set value for viewbox doesn't work
* feat: replace treeIndex optimization with rrdom
* fix bug of diffProps and disable smooth scrolling animation in fast-forward mode
* feat: add iframe support
* fix: @rollup/plugin-typescript build errors in rrweb-player
Error: @rollup/plugin-typescript TS1371: This import is never used as a value and must use 'import type' because the 'importsNotUsedAsValues' is set to 'error'
* fix: bug when fast-forward input events and add test for it
* add test for fast-forward scroll events
* fix: custom style rules don't get inserted into some iframe elements
* code style tweak
* fix: enable to diff iframe elements
* fix the jest error "Unexpected token 'export'"
* try to fix build error of rrweb-player
* correct the attributes definition in rrdom
* fix: custom style rules are not inserted in some iframes
* add support for shadow dom
* add support for MediaInteraction
* add canvas support
* fix unit test error in rrdom
* add support for Text, Comment
* try to refactor RRDom
* refactor RRDom to reduce duplicate code
* rename document-browser to virtual-dom
* increase the test coverage for document.ts and add ownerDocument for it
* Merge branch 'master' into virtual-dom
* add more test for virtual-dom.ts
* use cssstyle in document-nodejs
* fix: bundle error
* improve document-nodejs
* enable to diff scroll positions of an element
* rename rrdom to virtualDom for more readability and make the tree public
* revert unknown change
* improve the css style parser for comments
* improve code style
* update typings
* add handling for the case where legacy_missingNodeRetryMap is not empty
* only import types from rrweb into rrdom
* Apply suggestions from code review
Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
* Apply suggestions from code review
* fix building error in rrweb
* add a method setDefaultSN to set a default value for a RRNode's __sn
* fix rrweb test error and bump up other packages
* add support for custom property of css styles
* add a switch for virtual-dom optimization
* Apply suggestions from code review
1. add an enum type for NodeType
2. rename nodeType from rrweb-snapshot to RRNodeType
3. rename notSerializedId to unserializedId
4. add comments for some confusing variables
* adapt changes of #865 to virtual-dom and improve the test case for more coverage
* apply review suggestions
https://github.com/rrweb-io/rrweb/pull/853#pullrequestreview-922474953
* tweak the diff algorithm
* add description of the flag useVirtualDom and remove outdated logConfig
* Remove console.log
* Contain changes to document
* Upgrade rollup to 2.70.2
* Revert "Upgrade rollup to 2.70.2"
This reverts commit b1be81a2a76565935c9dc391f31beb7f64d25956.
* Fix type checking rrdom
* Fix typing error while bundling
* Fix tslib error on build
Rollup would output the following error:
`semantic error TS2343: This syntax requires an imported helper named '__spreadArray' which does not exist in 'tslib'. Consider upgrading your version of 'tslib'.`
* Increase memory limit for rollup
* Use esbuild for bundling
Speeds up bundling significantly
* Avoid circular dependencies and import un-bundled rrdom
* Fix imports
* Revert back to pre-esbuild
This reverts the following commits:
b7b3c8dbaa551a0129da1477136b1baaad28e6e1
72e23b8e27f9030d911358d3a17fe5ad1b3b5d4f
85d600a20c56cfa764cf1f858932ba14e67b1d23
61e1a5d323212ca8fbe0569e0b3062ddd53fc612
* Set node to lts (12 is no longer supported)
* Speed up bundling and use less memory
This fixes the out of memory errors happening while bundling
* remove __sn from rrdom
* fix typo
* test: add a test case for StyleSheet mutation exceptions while fast-forwarding
* rename Array.prototype.slice.call() to Array.from()
* improve test cases
* fix: PR #887 in 'virtual-dom' branch
* apply justin's suggestion on 'Array.from' refactor
related commit 0f6729d27a323260b36fbe79485a86715c0bc98a
* improve import code structure
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
* Only record canvas when recordCanvas is true
* All should be compiled first
Makes recompiling+debugging a lot faster
* Add support for compiling web workes
Replaces @rollup/plugin-typescript for rollup-plugin-typescript2 as the former is incompatible with rollup-plugin-web-worker-loader
* Update yarn.lock
* Upgrade to typescript 4.5.5
* add support for replay of ImageBitmap in 2d canvas
* Snapshot canvases in a web-worker on FPS basis
* Fix performance of canvas recording and playback
* Wait for all images to be preloaded before checking results
* flatten base64 strings, as encoding isn't consistent
* Cleanup
* Add serializing to 2d canvases as well
* Disable blob serialize test
We don't have any code for it yet
* Upgrade @rollup/plugin-commonjs to 21.0.2
Fixes
https://linguinecode.com/post/import-export-appear-at-the-top-level
* Move canvas recording options to `sampling`
Based on: https://github.com/rrweb-io/rrweb/pull/859#discussion_r846582146