From b656b66ed24fd0b1870c05af8a32d34d5e1b1323 Mon Sep 17 00:00:00 2001 From: Sigrid Huemer <32902192+s1gr1d@users.noreply.github.com> Date: Wed, 5 Mar 2025 12:37:25 +0100 Subject: [PATCH 1/2] fix(vue): Attach Pinia state only once per event (#15588) Each Pinia store will run through the event processor but the Pinia state should only be attached once. closes https://github.com/getsentry/sentry-javascript/issues/15587 --- packages/vue/src/pinia.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/vue/src/pinia.ts b/packages/vue/src/pinia.ts index 2448a30c4f08..c7448deaeed1 100644 --- a/packages/vue/src/pinia.ts +++ b/packages/vue/src/pinia.ts @@ -45,13 +45,20 @@ export const createSentryPiniaPlugin: (options?: SentryPiniaPluginOptions) => Pi const timestamp = new Date().toTimeString().split(' ')[0]; const filename = `pinia_state_all_stores_${timestamp}.json`; - hint.attachments = [ - ...(hint.attachments || []), - { - filename, - data: JSON.stringify(getAllStoreStates()), - }, - ]; + // event processor runs for each pinia store - attachment should only be added once per event + const hasExistingPiniaStateAttachment = hint.attachments?.some(attachment => + attachment.filename.startsWith('pinia_state_all_stores_'), + ); + + if (!hasExistingPiniaStateAttachment) { + hint.attachments = [ + ...(hint.attachments || []), + { + filename, + data: JSON.stringify(getAllStoreStates()), + }, + ]; + } } catch (_) { // empty } From fa6590b7ccc5d766a3c48c0bc2ca36b19e3e8241 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 5 Mar 2025 07:18:01 -0500 Subject: [PATCH 2/2] feat(replay): Bump rrweb to 2.34.0 (#15580) --- .../browser-integration-tests/package.json | 2 +- packages/replay-canvas/package.json | 2 +- packages/replay-internal/package.json | 4 +- yarn.lock | 42 +++++++++---------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/dev-packages/browser-integration-tests/package.json b/dev-packages/browser-integration-tests/package.json index f59ec9f94c42..396f48dbf87b 100644 --- a/dev-packages/browser-integration-tests/package.json +++ b/dev-packages/browser-integration-tests/package.json @@ -41,7 +41,7 @@ "dependencies": { "@babel/preset-typescript": "^7.16.7", "@playwright/test": "~1.50.0", - "@sentry-internal/rrweb": "2.33.0", + "@sentry-internal/rrweb": "2.34.0", "@sentry/browser": "9.3.0", "axios": "1.7.7", "babel-loader": "^8.2.2", diff --git a/packages/replay-canvas/package.json b/packages/replay-canvas/package.json index 39fae595cb92..5fb03d245af0 100644 --- a/packages/replay-canvas/package.json +++ b/packages/replay-canvas/package.json @@ -65,7 +65,7 @@ }, "homepage": "https://docs.sentry.io/platforms/javascript/session-replay/", "devDependencies": { - "@sentry-internal/rrweb": "2.33.0" + "@sentry-internal/rrweb": "2.34.0" }, "dependencies": { "@sentry-internal/replay": "9.3.0", diff --git a/packages/replay-internal/package.json b/packages/replay-internal/package.json index d8319d1847e8..b88afdd108aa 100644 --- a/packages/replay-internal/package.json +++ b/packages/replay-internal/package.json @@ -71,8 +71,8 @@ "devDependencies": { "@babel/core": "^7.17.5", "@sentry-internal/replay-worker": "9.3.0", - "@sentry-internal/rrweb": "2.33.0", - "@sentry-internal/rrweb-snapshot": "2.33.0", + "@sentry-internal/rrweb": "2.34.0", + "@sentry-internal/rrweb-snapshot": "2.34.0", "fflate": "0.8.2", "jest-matcher-utils": "^29.0.0", "jsdom-worker": "^0.2.1" diff --git a/yarn.lock b/yarn.lock index b384f605f637..b4f8c171dd4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6959,34 +6959,34 @@ detect-libc "^2.0.2" node-abi "^3.61.0" -"@sentry-internal/rrdom@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/rrdom/-/rrdom-2.33.0.tgz#16231b907e7d8a30d2c8a4de247bf87f272ded02" - integrity sha512-amTHYKq0u1FBC3lu6MM2Jnx04xIyDpsPcCJ8Pvi1sTyA/+mkDvGYXHWyjxVVWvhIOT6dVhuvWD82KW1gksrJcg== +"@sentry-internal/rrdom@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/rrdom/-/rrdom-2.34.0.tgz#fccc9fe211c3995d4200abafbe8d75b671961ee9" + integrity sha512-NFGNzI9iGYpJ1D7j8qLu4pFMGDMumQzM9/wMPQpmDQTCZYV25To5lxT7z5K1huPAIyh5NLW+hQlMx/hXxXwJ6w== dependencies: - "@sentry-internal/rrweb-snapshot" "2.33.0" + "@sentry-internal/rrweb-snapshot" "2.34.0" -"@sentry-internal/rrweb-snapshot@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-snapshot/-/rrweb-snapshot-2.33.0.tgz#2b984757bd44e1d89022875f79ae16162cea78a6" - integrity sha512-sDg+i4QQ/nq97S4dyzMG0kbcQDbhHWFaoT8UXDODle9HpfeyoKuLF9d+JcHRZq0PID3/EIsWztTKw/xk96H8wQ== +"@sentry-internal/rrweb-snapshot@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-snapshot/-/rrweb-snapshot-2.34.0.tgz#79c2049b6c887e3c128d5fa80d6f745a61dd0e68" + integrity sha512-9Tb8jwVufn5GLV0d/CTuoZWo2O06ZB+xWeTJdEkbtJ6PAmO/Q7GQI3uNIx0pfFEnXP+0Km8CKKxpwkEM0z2m6w== -"@sentry-internal/rrweb-types@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-types/-/rrweb-types-2.33.0.tgz#10593725dac929a9e19b6071c516faff4c0a20d8" - integrity sha512-lxwBh+bqnKf2gOj2tX2fbgVk/njlNIQuM19FsRSqi+KIHY7F9RLEC/N7chtCMFbckex6kljKM4RIa4DfKLkHDA== +"@sentry-internal/rrweb-types@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-types/-/rrweb-types-2.34.0.tgz#32b853d93d1d9a1ae1888b17d84b24e674fadee0" + integrity sha512-6g5TN8YjqxrZOSQZGMLeZ2XYXdmqaKzPdIzKRySK+rKT/1fJE2gcefJEPDxiix0z/6/v5hGu/Ia8+wbJ7ACHwQ== dependencies: - "@sentry-internal/rrweb-snapshot" "2.33.0" + "@sentry-internal/rrweb-snapshot" "2.34.0" "@types/css-font-loading-module" "0.0.7" -"@sentry-internal/rrweb@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb/-/rrweb-2.33.0.tgz#f1de2a7aca1a739acdfe91983b679c3bc3a448af" - integrity sha512-vjc+duxt3dxz6KVR6p+/kNl9AukMXmb7i6MMUZDn1TKfdeP9tGJprWl9fTkAmwkyQjm8VEWULs/3JK/u9dou5g== +"@sentry-internal/rrweb@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb/-/rrweb-2.34.0.tgz#a32945504f1ba2ba60f2ebd7a17d2df5e1aa010d" + integrity sha512-NAzpnMOvsIV8o6rEvJ7SDs/TwuHXSrRmuAYYedrOQyJoLq00HF+6wQGe6SAyXv/bkumXmQfjyJ6bv4XNtC4S6g== dependencies: - "@sentry-internal/rrdom" "2.33.0" - "@sentry-internal/rrweb-snapshot" "2.33.0" - "@sentry-internal/rrweb-types" "2.33.0" + "@sentry-internal/rrdom" "2.34.0" + "@sentry-internal/rrweb-snapshot" "2.34.0" + "@sentry-internal/rrweb-types" "2.34.0" "@types/css-font-loading-module" "0.0.7" "@xstate/fsm" "^1.4.0" base64-arraybuffer "^1.0.1"