From c885ce799ab819ce5cee3b053a09ff75af279900 Mon Sep 17 00:00:00 2001 From: Simon Kepplinger Date: Mon, 26 Jan 2026 12:21:10 +0100 Subject: [PATCH] Fix decode issue for partner fields `trackClick` stores `partner.name` / `partner.image` URL-encoded in the cookie, so we should decode those fields when hydrating from it in `init`. Otherwise `DubAnalytics.partner` can end up containing URL-encoded name/image values. --- packages/script/src/base.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/script/src/base.js b/packages/script/src/base.js index 138fa36..9e0b5b7 100644 --- a/packages/script/src/base.js +++ b/packages/script/src/base.js @@ -277,6 +277,17 @@ try { const partnerData = JSON.parse(partnerCookie); + if (partnerData.partner?.name) { + partnerData.partner.name = safeDecodeURIComponent( + partnerData.partner.name, + ); + } + if (partnerData.partner?.image) { + partnerData.partner.image = safeDecodeURIComponent( + partnerData.partner.image, + ); + } + DubAnalytics.partner = partnerData.partner; DubAnalytics.discount = partnerData.discount; } catch (e) { @@ -285,6 +296,14 @@ } } + function safeDecodeURIComponent(value) { + try { + return decodeURIComponent(value); + } catch { + return value; + } + } + // Export minimal API with minified names window._dubAnalytics = { c: cookieManager,