diff --git a/package.json b/package.json index 1311e0d4..6b6c462b 100644 --- a/package.json +++ b/package.json @@ -34,12 +34,11 @@ "eslint-plugin-compat": "^5.0.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-tsdoc": "^0.2.17", - "happy-dom": "^14.12.0", "markdownlint": "^0.25.1", "markdownlint-cli": "^0.31.1", "prettier": "2.8.4", "rollup-plugin-visualizer": "^5.12.0", - "turbo": "2.8.7", + "turbo": "^2.9.14", "typescript": "^5.4.5" }, "scripts": { diff --git a/packages/all/package.json b/packages/all/package.json index 9e510436..fdc1b2d3 100644 --- a/packages/all/package.json +++ b/packages/all/package.json @@ -59,9 +59,9 @@ "devDependencies": { "puppeteer": "^20.9.0", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/all/test/cross-origin-iframe-packer.test.ts b/packages/all/test/cross-origin-iframe-packer.test.ts index f299581f..349b7c1f 100644 --- a/packages/all/test/cross-origin-iframe-packer.test.ts +++ b/packages/all/test/cross-origin-iframe-packer.test.ts @@ -100,6 +100,9 @@ const setup = function ( await ctx.page.goto('about:blank'); await ctx.page.setContent( content.replace(/\{SERVER_URL\}/g, ctx.serverURL), + // wait for the cross-origin iframe to finish loading so the recorded + // full snapshot deterministically captures the loaded document + { waitUntil: 'networkidle0' }, ); ctx.events = []; await ctx.page.exposeFunction('emit', (e: eventWithTime) => { diff --git a/packages/browser-client/package.json b/packages/browser-client/package.json index 4aae99b1..bc809ae3 100644 --- a/packages/browser-client/package.json +++ b/packages/browser-client/package.json @@ -62,11 +62,12 @@ ], "devDependencies": { "cross-env": "^7.0.3", + "happy-dom": "^20.8.9", "puppeteer": "^20.9.0", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/browser-client/test/load-diagnostics.test.ts b/packages/browser-client/test/load-diagnostics.test.ts index 1cc0deb1..145a26ac 100644 --- a/packages/browser-client/test/load-diagnostics.test.ts +++ b/packages/browser-client/test/load-diagnostics.test.ts @@ -162,7 +162,8 @@ beforeEach(() => { sessionStorage.clear(); document.body.innerHTML = ''; setCurrentScript(null); - window.history.replaceState({}, '', 'http://localhost/'); + // happy-dom >= 20 enforces same-origin history URLs; use a relative path + window.history.replaceState({}, '', '/'); }); afterEach(() => { diff --git a/packages/packer/package.json b/packages/packer/package.json index 952e221f..a22d17b3 100644 --- a/packages/packer/package.json +++ b/packages/packer/package.json @@ -76,9 +76,9 @@ ], "devDependencies": { "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb-types": "workspace:*", diff --git a/packages/packer/test/packer.test.ts b/packages/packer/test/packer.test.ts index ffbf4fda..23089e5b 100644 --- a/packages/packer/test/packer.test.ts +++ b/packages/packer/test/packer.test.ts @@ -30,7 +30,7 @@ describe('unpack', () => { it('stop on unknown data format', () => { const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {}); - expect(() => unpack('[""]')).toThrow(''); + expect(() => unpack('[""]')).toThrow('Unknown data format'); expect(consoleSpy).toHaveBeenCalled(); vi.resetAllMocks(); diff --git a/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json b/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json index 134a2df6..c0db9317 100644 --- a/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json +++ b/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json @@ -50,7 +50,7 @@ "devDependencies": { "@highlight-run/rrweb": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json b/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json index 43bf7caf..8671865d 100644 --- a/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json +++ b/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json @@ -50,7 +50,7 @@ "devDependencies": { "@highlight-run/rrweb": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/plugins/rrweb-plugin-console-record/package.json b/packages/plugins/rrweb-plugin-console-record/package.json index c27bd57d..c0894e0a 100644 --- a/packages/plugins/rrweb-plugin-console-record/package.json +++ b/packages/plugins/rrweb-plugin-console-record/package.json @@ -54,9 +54,9 @@ "@highlight-run/rrweb": "workspace:*", "puppeteer": "^20.9.0", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "peerDependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/plugins/rrweb-plugin-console-replay/package.json b/packages/plugins/rrweb-plugin-console-replay/package.json index 07252b40..2101c515 100644 --- a/packages/plugins/rrweb-plugin-console-replay/package.json +++ b/packages/plugins/rrweb-plugin-console-replay/package.json @@ -51,7 +51,7 @@ "@highlight-run/rrweb": "workspace:*", "@highlight-run/rrweb-rrweb-plugin-console-record": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/plugins/rrweb-plugin-network-record/package.json b/packages/plugins/rrweb-plugin-network-record/package.json index e772de80..b0a96e2c 100644 --- a/packages/plugins/rrweb-plugin-network-record/package.json +++ b/packages/plugins/rrweb-plugin-network-record/package.json @@ -52,9 +52,9 @@ "@highlight-run/rrweb-types": "workspace:*", "@highlight-run/rrweb-utils": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "peerDependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/plugins/rrweb-plugin-network-replay/package.json b/packages/plugins/rrweb-plugin-network-replay/package.json index 5be6fc86..41c49b6a 100644 --- a/packages/plugins/rrweb-plugin-network-replay/package.json +++ b/packages/plugins/rrweb-plugin-network-replay/package.json @@ -49,7 +49,7 @@ "@highlight-run/rrweb-rrweb-plugin-network-record": "workspace:*", "@highlight-run/rrweb-types": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/plugins/rrweb-plugin-sequential-id-record/package.json b/packages/plugins/rrweb-plugin-sequential-id-record/package.json index c67ea8db..1b630df4 100644 --- a/packages/plugins/rrweb-plugin-sequential-id-record/package.json +++ b/packages/plugins/rrweb-plugin-sequential-id-record/package.json @@ -50,7 +50,7 @@ "devDependencies": { "@highlight-run/rrweb": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/plugins/rrweb-plugin-sequential-id-replay/package.json b/packages/plugins/rrweb-plugin-sequential-id-replay/package.json index b77ed6cd..1ba173a7 100644 --- a/packages/plugins/rrweb-plugin-sequential-id-replay/package.json +++ b/packages/plugins/rrweb-plugin-sequential-id-replay/package.json @@ -51,7 +51,7 @@ "@highlight-run/rrweb": "workspace:*", "@highlight-run/rrweb-rrweb-plugin-sequential-id-record": "workspace:*", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "peerDependencies": { diff --git a/packages/record/package.json b/packages/record/package.json index 4050e738..c619e30e 100644 --- a/packages/record/package.json +++ b/packages/record/package.json @@ -57,9 +57,9 @@ "devDependencies": { "puppeteer": "^20.9.0", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/replay/package.json b/packages/replay/package.json index 01b2ff3b..2264df7a 100644 --- a/packages/replay/package.json +++ b/packages/replay/package.json @@ -58,9 +58,9 @@ "devDependencies": { "puppeteer": "^20.9.0", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb": "workspace:*", diff --git a/packages/rrdom-nodejs/package.json b/packages/rrdom-nodejs/package.json index 4d3cffd4..900b6791 100644 --- a/packages/rrdom-nodejs/package.json +++ b/packages/rrdom-nodejs/package.json @@ -57,9 +57,9 @@ "eslint": "^8.15.0", "puppeteer": "^9.1.1", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrdom": "workspace:*", diff --git a/packages/rrdom/package.json b/packages/rrdom/package.json index 622c184b..89422699 100644 --- a/packages/rrdom/package.json +++ b/packages/rrdom/package.json @@ -49,11 +49,12 @@ "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.23.0", "eslint": "^8.15.0", + "happy-dom": "^20.8.9", "puppeteer": "^17.1.3", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrweb-snapshot": "workspace:*" diff --git a/packages/rrweb-player/package.json b/packages/rrweb-player/package.json index cda60862..85884a28 100644 --- a/packages/rrweb-player/package.json +++ b/packages/rrweb-player/package.json @@ -16,7 +16,7 @@ "svelte-preprocess": "^5.0.3", "svelte2tsx": "^0.7.30", "tslib": "^2.0.0", - "vite": "^6.0.1" + "vite": "^6.4.2" }, "dependencies": { "@highlight-run/rrweb-packer": "workspace:*", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index da4ef6a1..9d376b8c 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -66,14 +66,15 @@ "@types/jsdom": "^20.0.0", "@types/node": "^18.15.11", "@types/puppeteer": "^5.4.4", + "happy-dom": "^20.8.9", "playwright": "^1.60.0", "puppeteer": "^17.1.3", "ts-node": "^7.0.1", "tslib": "^1.9.3", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "postcss": "^8.4.38" diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 2854ce6f..dedcd04a 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -85,9 +85,9 @@ "ts-node": "^10.9.1", "tslib": "^2.3.1", "typescript": "^5.4.5", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1", - "vitest": "^1.4.0" + "vitest": "^3.2.6" }, "dependencies": { "@highlight-run/rrdom": "workspace:*", diff --git a/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-image-1-snap.png b/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-image-1-snap.png new file mode 100644 index 00000000..26ab2fb5 Binary files /dev/null and b/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-image-1-snap.png differ diff --git a/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-square-1-snap.png b/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-square-1-snap.png new file mode 100644 index 00000000..63188d97 Binary files /dev/null and b/packages/rrweb/test/e2e/__image_snapshots__/webgl-test-ts-e-2-e-webgl-will-record-and-replay-a-webgl-square-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/dialog-test-ts-dialog-closed-dialogs-show-nothing-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/dialog-test-ts-dialog-closed-dialogs-show-nothing-1-snap.png new file mode 100644 index 00000000..26ab2fb5 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/dialog-test-ts-dialog-closed-dialogs-show-nothing-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/hover-test-ts-replayer-hover-should-trigger-hover-on-mouse-down-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/hover-test-ts-replayer-hover-should-trigger-hover-on-mouse-down-1-snap.png new file mode 100644 index 00000000..5faf6482 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/hover-test-ts-replayer-hover-should-trigger-hover-on-mouse-down-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-be-paused-when-the-player-wasnt-started-yet-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-be-paused-when-the-player-wasnt-started-yet-1-snap.png new file mode 100644 index 00000000..575ceaf8 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-be-paused-when-the-player-wasnt-started-yet-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-play-from-the-correct-moment-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-play-from-the-correct-moment-1-snap.png new file mode 100644 index 00000000..c97b2112 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-play-from-the-correct-moment-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-1-snap.png new file mode 100644 index 00000000..e8a270bf Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-without-media-interaction-events-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-without-media-interaction-events-1-snap.png new file mode 100644 index 00000000..8fff13f4 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/video-test-ts-video-will-seek-to-the-correct-moment-without-media-interaction-events-1-snap.png differ diff --git a/packages/rrweb/test/replay/__image_snapshots__/webgl-test-ts-replayer-webgl-should-output-simple-webgl-object-1-snap.png b/packages/rrweb/test/replay/__image_snapshots__/webgl-test-ts-replayer-webgl-should-output-simple-webgl-object-1-snap.png new file mode 100644 index 00000000..dea737b0 Binary files /dev/null and b/packages/rrweb/test/replay/__image_snapshots__/webgl-test-ts-replayer-webgl-should-output-simple-webgl-object-1-snap.png differ diff --git a/packages/types/package.json b/packages/types/package.json index 51b43ef6..1d8fd268 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -51,7 +51,7 @@ "package.json" ], "devDependencies": { - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.9.1" }, "browserslist": [ diff --git a/packages/utils/package.json b/packages/utils/package.json index 6b9fc877..2b550d8c 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -51,7 +51,7 @@ "package.json" ], "devDependencies": { - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-dts": "^3.8.1" } } diff --git a/packages/web-extension/package.json b/packages/web-extension/package.json index cf78fd1c..cfba03e5 100644 --- a/packages/web-extension/package.json +++ b/packages/web-extension/package.json @@ -28,7 +28,7 @@ "cross-env": "^7.0.3", "semver": "^7.6.3", "type-fest": "^2.19.0", - "vite": "^6.0.1", + "vite": "^6.4.2", "vite-plugin-web-extension": "^4.1.3", "vite-plugin-zip-pack": "^1.2.2", "webextension-polyfill": "^0.10.0"