-
Notifications
You must be signed in to change notification settings - Fork 1
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
Rrweb sync alpha 15 vite complete #43
Commits on Oct 17, 2024
-
Chore: Migrate build to vite (rrweb-io#1033)
* 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: https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/3729bc2a3ca2ef7dda5c22fef81f89e1abe5dacf/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: https://github.com/andrewbranch/example-subpath-exports-ts-compat/tree/1ffe3425b0a7ad8ecdf3c373f76f431ee341366b/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: https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/3729bc2a3ca2ef7dda5c22fef81f89e1abe5dacf/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: https://github.com/andrewbranch/example-subpath-exports-ts-compat/tree/1ffe3425b0a7ad8ecdf3c373f76f431ee341366b/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
Configuration menu - View commit details
-
Copy full SHA for 4fe0153 - Browse repository at this point
Copy the full SHA 4fe0153View commit details -
Configuration menu - View commit details
-
Copy full SHA for db91358 - Browse repository at this point
Copy the full SHA db91358View commit details
Commits on Oct 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ac683cf - Browse repository at this point
Copy the full SHA ac683cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 41a53cc - Browse repository at this point
Copy the full SHA 41a53ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68ee960 - Browse repository at this point
Copy the full SHA 68ee960View commit details -
Configuration menu - View commit details
-
Copy full SHA for a72a849 - Browse repository at this point
Copy the full SHA a72a849View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64b5ed3 - Browse repository at this point
Copy the full SHA 64b5ed3View commit details
Commits on Oct 22, 2024
-
fix: some nested cross-origin iframes can't be recorded (rrweb-io#1353)
* fix: some nested cross-origin iframes can't be recorded * fix building error in rrweb-player * add test case for this special case * Apply formatting changes --------- Co-authored-by: YunFeng0817 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f317df7 - Browse repository at this point
Copy the full SHA f317df7View commit details -
Added changesets for rrweb-io#1033 (rrweb-io#1497)
* Add extra changeset describing changes of rrweb-io#1033 * Apply formatting changes * chore: update changelog for PR 1033: Split plugins out of rrweb and move them into their own packages Split plugins out of rrweb and move them into their own packages: @rrweb/packer, @rrweb/rrweb-plugin-canvas-webrtc-record, @rrweb/rrweb-plugin-canvas-webrtc-replay, @rrweb/rrweb-plugin-sequential-id-record, @rrweb/rrweb-plugin-sequential-id-replay, @rrweb/rrweb-plugin-console-record, @rrweb/rrweb-plugin-console-replay. Check out the README of each package for more information or check out rrweb-io#1033 to see the changes. * docs: describe changes to distributed files * Fix snapshot for vitest * Apply formatting changes * Make changeset about new bundled files clearer
Configuration menu - View commit details
-
Copy full SHA for 0749d4c - Browse repository at this point
Copy the full SHA 0749d4cView commit details -
Chore: Ignore generated files from .svelte-kit for prettier & make vi…
…deo tests more stable (rrweb-io#1500) * Chore: Ignore generated files from .svelte-kit for prettier * Create serious-eggs-greet.md * Apply formatting changes * Trigger CI * Make video tests more stable * Apply formatting changes * Exclude ambient.d.ts from format as it isn't deterministic
Configuration menu - View commit details
-
Copy full SHA for 0eb478c - Browse repository at this point
Copy the full SHA 0eb478cView commit details -
Update styleguilde.md (rrweb-io#1498)
* Update styleguilde.md add a note not to say 'just' * Apply formatting changes * Rename styleguilde.md to styleguide.md * Apply formatting changes * Create slimy-eagles-grow.md --------- Co-authored-by: eoghanmurray <[email protected]> Co-authored-by: Justin Halsall <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c994a02 - Browse repository at this point
Copy the full SHA c994a02View commit details -
Chore: Fix yarn dev (rrweb-io#1501)
* Chore: upgrade turbo & fix yarn dev
Configuration menu - View commit details
-
Copy full SHA for 416d1b1 - Browse repository at this point
Copy the full SHA 416d1b1View commit details -
Chore: Delete unused lerna.json file (rrweb-io#1506)
* Chore: Delete unused lerna.json file * Chore: Remove lerna.json from turbo config * Create nasty-scissors-reply.md
Configuration menu - View commit details
-
Copy full SHA for 551b547 - Browse repository at this point
Copy the full SHA 551b547View commit details -
fix: extension doesn't work after vite bump (rrweb-io#1507)
* fix: extension doesn't work after vite bump
Configuration menu - View commit details
-
Copy full SHA for 5bb9c50 - Browse repository at this point
Copy the full SHA 5bb9c50View commit details -
Add option to block animation on <title> tag (rrweb-io#760)
* Add option to block animation on <title> tag which can generate massive recordings on some websites (think scrolling title tag) * Add new option to slimDOMOptions type with tsdoc as suggested by Justin
Configuration menu - View commit details
-
Copy full SHA for 4442d21 - Browse repository at this point
Copy the full SHA 4442d21View commit details -
Skip mask check on leaf elements (rrweb-io#1512)
* Minor fixup for rrweb-io#1349; the 'we can avoid the check on leaf elements' optimisation wasn't being applied as `n.childNodes` was always truthy even when there were no childNodes. Changing it to `n.childNodes.length` directly there (see rrweb-io#1402) actually caused a bug as during a mutation, we serialize the text node directly, and need to jump to the parentElement to do the check. This is why I've reimplemented this optimisation inside `needMaskingText` where we are already had an `isElement` test Thanks to @Paulhejia (https://github.com/Paulhejia/rrweb/) for spotting that `Boolean(n.childNodes)` is aways true.
Configuration menu - View commit details
-
Copy full SHA for 3ef1e70 - Browse repository at this point
Copy the full SHA 3ef1e70View commit details -
Assuming all jest should have been removed in rrweb-io#1033 (rrweb-io…
…#1511) * all references to jest should have been removed in rrweb-io#1033 * clarify that `cross-env` is used to ensure that environmental variables get applied on Windows (previous usage of cross-env was removed in rrweb-io#1033)
Configuration menu - View commit details
-
Copy full SHA for 7a50870 - Browse repository at this point
Copy the full SHA 7a50870View commit details -
Fix async assertions in test files (rrweb-io#1510)
* fix: await assertSnapshot in test files for async assertions
Configuration menu - View commit details
-
Copy full SHA for d814428 - Browse repository at this point
Copy the full SHA d814428View commit details -
Fix maskInputFn is ignored during the creation of the full snapshot (r…
…rweb-io#1386) Fix that the optional `maskInputFn` was being accidentally ignored during the creation of the full snapshot
Configuration menu - View commit details
-
Copy full SHA for becf687 - Browse repository at this point
Copy the full SHA becf687View commit details -
Improve development tooling (rrweb-io#1516)
- 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`
Configuration menu - View commit details
-
Copy full SHA for 3075dca - Browse repository at this point
Copy the full SHA 3075dcaView commit details -
Configuration menu - View commit details
-
Copy full SHA for fee67b5 - Browse repository at this point
Copy the full SHA fee67b5View commit details -
feat: add new css parser - postcss (rrweb-io#1458)
* feat: add new css parser * make selectors change * selectors and tests * media changes * remove old css references * better variable name * use postcss and port tests * fix media test * inline plugins * fix failing multiline selector * correct test result * move tests to correct file * cleanup all tests * remove unused css-tree * update bundle * cleanup dependencies * revert config files to master * remove d.ts files * update snapshot * reset rebuilt test * apply fuzzy css matching * remove extra test * Fix imports * Newer versions of nswapi break rrdom-nodejs tests. Example: FAIL test/document-nodejs.test.ts > RRDocument for nodejs environment > RRDocument API > querySelectorAll TypeError: e[api] is not a function ❯ byTag ../../node_modules/nwsapi/src/nwsapi.js:390:37 ❯ Array.<anonymous> ../../node_modules/nwsapi/src/nwsapi.js:327:113 ❯ collect ../../node_modules/nwsapi/src/nwsapi.js:1578:32 ❯ Object._querySelectorAll [as select] ../../node_modules/nwsapi/src/nwsapi.js:1533:36 ❯ RRDocument.querySelectorAll src/document-nodejs.ts:96:24 * Migrate from jest to vitest * Order of selectors has changed with postcss * Remove unused eslint --------- Co-authored-by: Justin Halsall <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b834f12 - Browse repository at this point
Copy the full SHA b834f12View commit details -
fix: console assert only logs when arg 0 is falsy (rrweb-io#1530)
* fix: console assert only logs when arg 0 is falsy
Configuration menu - View commit details
-
Copy full SHA for 586a9e1 - Browse repository at this point
Copy the full SHA 586a9e1View commit details -
[Feature] Include takeFullSnapshot function in rrweb (rrweb-io#1527)
* export takeFullSnapshot function in rrweb
Configuration menu - View commit details
-
Copy full SHA for 1dba10a - Browse repository at this point
Copy the full SHA 1dba10aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c63c427 - Browse repository at this point
Copy the full SHA c63c427View commit details -
fix: duplicate textContent for style element cause incremental style …
…mutation invalid (rrweb-io#1417) fix style element corner case - historically we have recorded duplicated css content in certain cases (demonstrated by the attached replayer test). This fix ensures that the replayer doesn't doubly add the content, which can cause problems when further mutations occur --------- Review and further tests contributed by: Eoghan Murray <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 178f1e6 - Browse repository at this point
Copy the full SHA 178f1e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8a0ecd - Browse repository at this point
Copy the full SHA e8a0ecdView commit details -
fix: nested stylesheets should have absolute URLs (rrweb-io#1533)
* Replace relative URLs with absolute URLs when stringifying stylesheets * Add test to show desired behavior for imported stylesheets from seperate directory * Rename `absoluteToStylesheet` to `absolutifyURLs` and call it once after stringifying imported stylesheet * Don't create the intermediary array of the spread operator * Formalize that `stringifyRule` should expect a sheet href * Ensure a <style> element can also import and gets it's url absolutized * Handle case where non imported stylesheet has relative urls that need to be absolutified * Clarify in test files where jpegs are expected to appear in absolutified urls * Move absolutifyURLs call for import rules out of trycatch * Add a benchmarking test for stringifyStylesheet * Avoid the duplication on how to fall back --------- Co-authored-by: Eoghan Murray <[email protected]> Co-authored-by: eoghanmurray <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6676611 - Browse repository at this point
Copy the full SHA 6676611View commit details -
Support top-layer <dialog> recording & replay (rrweb-io#1503)
* chore: its important to run `yarn build:all` before running `yarn dev` * feat: trigger showModal from rrdom and rrweb * feat: Add support for replaying modal and non modal dialog elements * chore: Update dev script to remove CLEAR_DIST_DIR flag * Get modal recording and replay working * DRY up dialog test and dedupe snapshot images * feat: Refactor dialog test to use updated attribute name * feat: Update dialog test to include rr_open attribute * chore: Add npm dependency [email protected] * Add more test cases for dialog * Clean up naming * Refactor dialog open code * Revert changed code that doesn't do anything * Add documentation for unimplemented type * chore: Remove unnecessary comments in dialog.test.ts * rename rr_open to rr_openMode * Replace todo with a skipped test * Add better logging for CI * Rename rr_openMode to rr_open_mode rrdom downcases all attribute names which made `rr_openMode` tricky to deal with * Remove unused images * Move after iframe append based on @YunFeng0817's comment rrweb-io#1503 (comment) * Remove redundant dialog handling from rrdom. rrdom already handles dialog element creation it's self * Rename variables for dialog handling in rrweb replay module * Update packages/rrdom/src/document.ts --------- Co-authored-by: Eoghan Murray <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3ae57a6 - Browse repository at this point
Copy the full SHA 3ae57a6View commit details -
Added session downloader for chrome extension (rrweb-io#1522)
* Added session downloader for chrome extension - The session list now has a button to download sessions as .json files for use with rrweb-player - Improved styling for the delete and download buttons
Configuration menu - View commit details
-
Copy full SHA for c3d79a6 - Browse repository at this point
Copy the full SHA c3d79a6View commit details -
Reverse monkey patch built in methods to support LWC (rrweb-io#1509)
* Get around monkey patched Nodes * inlineImages: Setting of `image.crossOrigin` is not always necessary (rrweb-io#1468) Setting of the `crossorigin` attribute is not necessary for same-origin images, and causes an immediate image reload (albeit from cache) necessitating the use of a load event listener which subsequently mutates the snapshot. This change allows us to avoid the mutation of the snapshot for the same-origin case. * Modify inlineImages test to remove delay and show that we can inline images without mutation * Add an explicit test for when the `image.crossOrigin = 'anonymous';` method is necessary. Uses a combination of about:blank and our test server to simulate a cross-origin context * Other test changes: there were some spurious rrweb mutations being generated by the addition of the crossorigin attribute that are now elimnated from the rrweb/__snapshots__/integration.test.ts.snap after this PR - this is good * Move `childNodes` to @rrweb/utils * Use non-monkey patched versions of the `childNodes`, `parentNode` `parentElement` `textContent` accessors * Add getRootNode and contains, and add comprehensive todo list * chore: Update turbo.json tasks for better build process * Update caniuse-lite * chore: Update eslint-plugin-compat to version 5.0.0 * chore: Bump @rrweb/utils version to 2.0.0-alpha.15 * delete unused yarn.lock files * Set correct @rrweb/utils version in package.json * Migrate over some accessors to reverse-monkey-patched version * Add missing functions * Fix illegal invocation error * Revert closer to what it was. This feels incorrect to me (Justin Halsall), but some of the tests break without it so I'm restoring this to be closer to its original here: https://github.com/rrweb-io/rrweb/blame/cfd686d488a9b88dba6b6f8880b5e4375dd8062c/packages/rrweb-snapshot/src/snapshot.ts#L1011 * Reverse monkey patch all methods LWC hijacks * Make tests more stable * Safely handle rrdom nodes in hasShadowRoot * Remove duplicated test * Use variable `serverURL` in test * Use monorepo default browserlist * Fix typing issue for new typescript * Remove unused package * Remove unused code * Add prefix to reverse-monkey-patched methods to make them more explicit * Add default exports to @rrweb/utils --------- Co-authored-by: Eoghan Murray <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9e9226f - Browse repository at this point
Copy the full SHA 9e9226fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a054e1f - Browse repository at this point
Copy the full SHA a054e1fView commit details -
Configuration menu - View commit details
-
Copy full SHA for fc69d50 - Browse repository at this point
Copy the full SHA fc69d50View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e4f5b3 - Browse repository at this point
Copy the full SHA 4e4f5b3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64c762e - Browse repository at this point
Copy the full SHA 64c762eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 282e8b4 - Browse repository at this point
Copy the full SHA 282e8b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf57d6f - Browse repository at this point
Copy the full SHA cf57d6fView commit details -
Configuration menu - View commit details
-
Copy full SHA for ec36208 - Browse repository at this point
Copy the full SHA ec36208View commit details -
Configuration menu - View commit details
-
Copy full SHA for c2eefdc - Browse repository at this point
Copy the full SHA c2eefdcView commit details