Releases: QwikDev/partytown
Release list
v0.14.3
Patch Changes
-
🐞🩹 large non-blocking DOM operation batches now yield the main thread every ~40ms, keeping tasks under the 50ms long-task threshold and reducing reported TBT (by @gioboa in #756)
-
✨ automatically execute partytown scripts added to the page after initialization, e.g. on client-side route transitions, without needing to dispatch a
ptupdateevent (by @gioboa in #746) -
✨ GTM's Tag Assistant preview now connects to pages running GTM inside Partytown: scripts the worker can't read (no CORS headers, like the debug bootstrap) fall back to the main thread, the container's debug queue is bridged during
gtm_debugsessions, andwindow.opener/ messageevent.sourcework from the worker (by @gioboa in #753) -
✨ CSP Trusted Types support: Partytown now works on pages enforcing
require-trusted-types-for 'script'— addpartytownto thetrusted-typesdirective to allow its policy (by @gioboa in #754) -
🐞🩹 load cross-origin iframes natively when their content can't be fetched, so widgets like the reCAPTCHA badge work instead of crashing with a NetworkError (by @gioboa in #749)
-
🐞🩹 partytown scripts added after the main thread fallback ran, e.g. gtm.js injected by the GTM snippet, now fall back too — previously they were silently dropped in webviews without service worker support (by @gioboa in #751)
-
🐞🩹 ship
partytown-sandbox-sw.htmlas a real library file, so requests that bypass the service worker (crawlers, private browsing, encoded urls) get a 200 instead of a 404 (by @gioboa in #750) -
🐞🩹 methods called unbound by scripts (e.g.
var f = win.fn; f()) no longer crash the worker proxy, fixing Google Publisher Tag ad serving (by @gioboa in #755)
v0.14.2
Patch Changes
-
🧹 remove the unused dotenv dependency, the package has zero runtime dependencies again (by @gioboa in #742)
-
✨
fallbackTimeout: 0disables the main thread fallback entirely (by @gioboa in #741) -
🐞🩹 don't throw when the snippet runs in an iframe with a cross-origin top, run Partytown in the iframe itself instead (by @gioboa in #735)
-
🐞🩹 support
document.createRange().createContextualFragment()anddocument.fonts(load/check/ready) in the worker (by @gioboa in #731) -
🐞🩹 the main thread fallback now loads external scripts through their
src, previously only inline content was copied (by @gioboa in #739) -
🐞🩹 keep forwarded globals (e.g. dataLayer) local to the worker instead of sync-proxying them to the main thread, forward items already pushed before Partytown loads, and stop dropping forwarded events when the worker global doesn't exist yet (by @gioboa in #721)
-
🐞🩹 don't crash initialization when a Proxy global (e.g. vinxi's
MANIFEST) returns unclonable objects during the window snapshot (by @gioboa in #737) -
🐞🩹 run
navigator.sendBeaconand iframecontentWindow.fetchurls throughresolveUrl, so analytics requests like GA4's/g/collectcan be proxied (by @gioboa in #740) -
🐞🩹 allocate the atomics SharedArrayBuffer small and grow it on demand instead of eagerly reserving 1GB, which newer Chrome versions can refuse (by @gioboa in #729)
-
🐞🩹 add a noindex robots meta to the sandbox html so crawlers stop reporting 404s for it in Search Console (by @gioboa in #738)
-
🐞🩹 stop rewriting
thisinside string literals, template literal text and comments when preparing scripts for the worker (by @gioboa in #730) -
🐞🩹 serialize underscore-prefixed object members for the worker (e.g.
wp.i18n.__), excluding only partytown internals (by @gioboa in #736) -
🐞🩹 only treat digit property names as window frame indexes, so globals like
Infinityresolve correctly in the worker (by @gioboa in #732)
v0.14.1
Patch Changes
-
🐞🩹 don't throw when a script assigns an invalid value to
a.href, e.g.http://(by @gioboa in #725) -
🐞🩹 allow
resolveUrlto return aReadonly<URL>(by @gioboa in #726) -
🐞🩹 match
<script>tags case-insensitively when rewriting iframe srcdoc HTML, so<SCRIPT>variants can't bypass the rewrite (by @gioboa in #724) -
🐞🩹 wrap the snippet in an IIFE so top-level helpers no longer leak
t,e,ninto the page's global scope and break other classic scripts (by @gioboa in #727)
v0.14.0
Minor Changes
- ✨ add
logForwardedEventsconfig flag to enable debug logging for forwarded events and triggers (by @mws19901118 in #704)
Patch Changes
v0.13.2
Patch Changes
- 🐞🩹 update repository metadata to QwikDev/partytown and bump Node to 24.x for OIDC trusted publishing (by @thejackshelton in
1b34fe1)
v0.11.2
Patch Changes
-
✨ Implement full attribute methods for HTMLImageElement (by @mws19901118 in #681)
Implemented complete attribute handling for HTMLImageElement class including getAttribute(), setAttribute(), hasAttribute(), removeAttribute(), and toggleAttribute() methods. Added attributes Map to store element attributes and enhanced setAttribute() to properly handle src attribute. Includes comprehensive unit tests covering all attribute methods.
v0.11.1
Patch Changes
- Add adoptedStyleSheets.get() to patched
documentin worker. (by @leeroybrun in #674)
v0.11.0
Minor Changes
-
Bunch of fixes and a new release system.. (by @shairez in #652)
Here's a list of the changes:
FEATURES
- add config fallback timeout (#620)
FIXES
- Same-origin iframe set/get cookie/localStorage bug (#600)
- make sure unknown is mapped to HTMLUnknownElement cstr (#606)
DOCS
- making install commands consistent (#638)
- Add example reverse proxy handler for Facebook Pixel (#648)
- add integration module for Magento 2 (#594)
- add clarification that the worker strategy is not supported with app directory (#625)
- use dummy web property ID (#621)
- revert recent incorrect change to SvelteKit destination (#622)
v0.10.2
v0.10.1
- test: multiple page tests for #492 (#493) 4a48810
- fix: service worker communicates with the latest client only (#573) 81b2f0d
- fix: update worker-script innerHTML implementation (#572) d72574b
- docs(SvelteKit): fix Google Tag Manager example (#570) 0258d26
- docs: add new PartytownConfig props (#565) 67b2829