@builder.io/partytown
Advanced tools
Comparing version 0.0.24 to 0.0.25
@@ -8,3 +8,3 @@ /** | ||
*/ | ||
export declare const appendForward: (forward: PartytownForwardProperty) => string; | ||
export declare const appendForwardConfig: (forward: PartytownForwardProperty) => string; | ||
@@ -159,40 +159,15 @@ /** | ||
*/ | ||
declare type PartytownForwardProperty = [ | ||
PartytownForwardPropertyName, | ||
PartytownForwardPropertyType? | ||
]; | ||
declare type PartytownForwardProperty = string; | ||
/** | ||
* Sets the forward property as an array. | ||
* The property to patch on `window`, such as `dataLayer` for Google Tag Manager, | ||
* or `fbq` for Facebook Pixel. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyArrayType = 1; | ||
/** | ||
* Default foward property type, which sets the property as a function. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyFunctionType = undefined; | ||
/** | ||
* The property to patch on `window`, such as `dataLayer` for Google Tag Manager. | ||
* | ||
* @public | ||
*/ | ||
export declare type PartytownForwardPropertyName = string; | ||
/** | ||
* The type of property which is patched on `window`. For example, Google Tag Manager's | ||
* `dataLayer` is an array, so it's type should be `1`. The default, which is `undefined`, | ||
* treats the property as a function. | ||
* | ||
* @public | ||
*/ | ||
export declare type PartytownForwardPropertyType = PartytownForwardPropertyArrayType | PartytownForwardPropertyFunctionType; | ||
/** | ||
* @public | ||
*/ | ||
export declare const partytownSnippet: (config: PartytownConfig) => string; | ||
@@ -199,0 +174,0 @@ |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"private": true | ||
} |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
const isPromise = v => "object" == typeof v && v && v.then; | ||
@@ -334,14 +334,21 @@ | ||
((worker, $winId$, win) => { | ||
let existingTriggers = win._ptf; | ||
let forwardTriggers = win._ptf = []; | ||
let i = 0; | ||
forwardTriggers.push = ($forward$, $args$) => worker.postMessage([ 8, { | ||
let queuedForwardCalls = win._ptf; | ||
let forwards = (win.partytown || {}).forward || []; | ||
let i; | ||
let mainForwardFn; | ||
let forwardCall = ($forward$, args) => worker.postMessage([ 8, { | ||
$winId$: $winId$, | ||
$instanceId$: 0, | ||
$forward$: $forward$, | ||
$args$: serializeForWorker($winId$, Array.from($args$)) | ||
$args$: serializeForWorker($winId$, Array.from(args)) | ||
} ]); | ||
if (existingTriggers) { | ||
for (;i < len(existingTriggers); i += 2) { | ||
forwardTriggers.push(existingTriggers[i], existingTriggers[i + 1]); | ||
win._ptf = void 0; | ||
forwards.map((forwardProps => { | ||
mainForwardFn = win; | ||
forwardProps.split(".").map(((_, i, arr) => { | ||
mainForwardFn = mainForwardFn[arr[i]] = i + 1 < len(arr) ? mainForwardFn[arr[i]] || ("push" === arr[i + 1] ? [] : {}) : (...args) => forwardCall(arr, args); | ||
})); | ||
})); | ||
if (queuedForwardCalls) { | ||
for (i = 0; i < len(queuedForwardCalls); i += 2) { | ||
forwardCall(queuedForwardCalls[i], queuedForwardCalls[i + 1]); | ||
} | ||
@@ -348,0 +355,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
(window => { | ||
@@ -305,14 +305,21 @@ const isPromise = v => "object" == typeof v && v && v.then; | ||
((worker, $winId$, win) => { | ||
let existingTriggers = win._ptf; | ||
let forwardTriggers = win._ptf = []; | ||
let i = 0; | ||
forwardTriggers.push = ($forward$, $args$) => worker.postMessage([ 8, { | ||
let queuedForwardCalls = win._ptf; | ||
let forwards = (win.partytown || {}).forward || []; | ||
let i; | ||
let mainForwardFn; | ||
let forwardCall = ($forward$, args) => worker.postMessage([ 8, { | ||
$winId$: $winId$, | ||
$instanceId$: 0, | ||
$forward$: $forward$, | ||
$args$: serializeForWorker($winId$, Array.from($args$)) | ||
$args$: serializeForWorker($winId$, Array.from(args)) | ||
} ]); | ||
if (existingTriggers) { | ||
for (;i < len(existingTriggers); i += 2) { | ||
forwardTriggers.push(existingTriggers[i], existingTriggers[i + 1]); | ||
win._ptf = void 0; | ||
forwards.map((forwardProps => { | ||
mainForwardFn = win; | ||
forwardProps.split(".").map(((_, i, arr) => { | ||
mainForwardFn = mainForwardFn[arr[i]] = i + 1 < len(arr) ? mainForwardFn[arr[i]] || ("push" === arr[i + 1] ? [] : {}) : (...args) => forwardCall(arr, args); | ||
})); | ||
})); | ||
if (queuedForwardCalls) { | ||
for (i = 0; i < len(queuedForwardCalls); i += 2) { | ||
forwardCall(queuedForwardCalls[i], queuedForwardCalls[i + 1]); | ||
} | ||
@@ -319,0 +326,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
const resolves = new Map; | ||
@@ -3,0 +3,0 @@ |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
(self => { | ||
@@ -1375,9 +1375,10 @@ const WinIdKey = Symbol(); | ||
} else if (8 === msgType) { | ||
(({$winId$: $winId$, $instanceId$: $instanceId$, $forward$: $forward$, $args$: $args$}) => { | ||
(({$winId$: $winId$, $forward$: $forward$, $args$: $args$}) => { | ||
try { | ||
const win = environments[$winId$].$window$; | ||
const target = $forward$[0] in win ? win : $forward$[0] in self ? self : {}; | ||
const args = deserializeFromMain($instanceId$, [], $args$); | ||
const globalProperty = target[$forward$[0]]; | ||
Array.isArray(globalProperty) ? globalProperty.push(...args) : "function" == typeof globalProperty && globalProperty.apply(target, args); | ||
let target = environments[$winId$].$window$; | ||
let i = 0; | ||
let l = len($forward$); | ||
for (;i < l; i++) { | ||
i + 1 < l ? target = target[$forward$[i]] : target[$forward$[i]].apply(target, deserializeFromMain(0, [], $args$)); | ||
} | ||
} catch (e) { | ||
@@ -1384,0 +1385,0 @@ console.error(e); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
(self => { | ||
@@ -1368,9 +1368,10 @@ const WinIdKey = Symbol(); | ||
} else if (8 === msgType) { | ||
(({$winId$: $winId$, $instanceId$: $instanceId$, $forward$: $forward$, $args$: $args$}) => { | ||
(({$winId$: $winId$, $forward$: $forward$, $args$: $args$}) => { | ||
try { | ||
const win = environments[$winId$].$window$; | ||
const target = $forward$[0] in win ? win : $forward$[0] in self ? self : {}; | ||
const args = deserializeFromMain($instanceId$, [], $args$); | ||
const globalProperty = target[$forward$[0]]; | ||
Array.isArray(globalProperty) ? globalProperty.push(...args) : "function" == typeof globalProperty && globalProperty.apply(target, args); | ||
let target = environments[$winId$].$window$; | ||
let i = 0; | ||
let l = len($forward$); | ||
for (;i < l; i++) { | ||
i + 1 < l ? target = target[$forward$[i]] : target[$forward$[i]].apply(target, deserializeFromMain(0, [], $args$)); | ||
} | ||
} catch (e) { | ||
@@ -1377,0 +1378,0 @@ console.error(e); |
@@ -1,26 +0,7 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
!function(win, doc, nav, libPath, sandbox, scripts, timeout) { | ||
function loadSandbox(msgType) { | ||
if (!sandbox) { | ||
(sandbox = doc.createElement("iframe")).dataset.partytown = "sandbox"; | ||
sandbox.setAttribute("style", "display:block;width:0;height:0;border:0;visibility:hidden"); | ||
sandbox.setAttribute("aria-hidden", "true"); | ||
sandbox.src = libPath + "partytown-sandbox-" + msgType + ".html?" + Date.now(); | ||
doc.body.appendChild(sandbox); | ||
} | ||
} | ||
function fallback(i, script) { | ||
console.warn("Partytown script fallback"); | ||
clearTimeout(timeout); | ||
sandbox = 1; | ||
for (i = 0; i < scripts.length; i++) { | ||
(script = doc.createElement("script")).innerHTML = scripts[i].innerHTML; | ||
doc.body.appendChild(script); | ||
} | ||
} | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
!function(win, doc, nav, top, crossOriginIsolated, config, libPath, timeout, scripts, sandbox, mainForwardFn, useAtomics) { | ||
function ready() { | ||
libPath = (win.partytown || {}).lib || "/~partytown/"; | ||
libPath += "debug/"; | ||
libPath = (config.lib || "/~partytown/") + (config.debug ? "debug/" : ""); | ||
scripts = doc.querySelectorAll('script[type="text/partytown"]'); | ||
if (top !== win) { | ||
if (top != win) { | ||
top.dispatchEvent(new CustomEvent("pt1", { | ||
@@ -31,26 +12,47 @@ detail: win | ||
timeout = setTimeout(fallback, 6e4); | ||
doc.addEventListener("pt0", (function() { | ||
clearTimeout(timeout); | ||
})); | ||
let useAtomics = win.crossOriginIsolated; | ||
useAtomics && (useAtomics = !window.location.search.includes("forceServiceWorker")); | ||
if (useAtomics) { | ||
loadSandbox("atomics"); | ||
} else if ("serviceWorker" in nav) { | ||
const isolatedQuery = win.crossOriginIsolated ? "?isolated" : ""; | ||
nav.serviceWorker.register(libPath + "partytown-sw.js" + isolatedQuery, { | ||
scope: libPath | ||
}).then((function(swRegistration) { | ||
swRegistration.active ? loadSandbox("sw") : swRegistration.installing ? swRegistration.installing.addEventListener("statechange", (function(ev) { | ||
"activated" === ev.target.state && loadSandbox("sw"); | ||
})) : console.warn(swRegistration); | ||
}), (function(e) { | ||
console.error(e); | ||
})); | ||
} else { | ||
fallback(); | ||
} | ||
doc.addEventListener("pt0", clearFallback); | ||
(useAtomics = crossOriginIsolated) && (useAtomics = !win.location.search.includes("forceServiceWorker")); | ||
useAtomics ? loadSandbox("atomics") : nav.serviceWorker ? nav.serviceWorker.register(libPath + "partytown-sw.js" + (crossOriginIsolated ? "?isolated" : ""), { | ||
scope: libPath | ||
}).then((function(swRegistration) { | ||
if (swRegistration.active) { | ||
loadSandbox("sw"); | ||
} else if (swRegistration.installing) { | ||
swRegistration.installing.addEventListener("statechange", (function(ev) { | ||
"activated" == ev.target.state && loadSandbox("sw"); | ||
})); | ||
} else { | ||
console.warn(swRegistration); | ||
} | ||
}), console.error) : fallback(); | ||
} | ||
} | ||
"complete" === doc.readyState ? ready() : window.addEventListener("load", ready); | ||
}(window, document, navigator); | ||
function loadSandbox(msgType) { | ||
(sandbox = doc.createElement("iframe")).setAttribute("style", "display:block;width:0;height:0;border:0;visibility:hidden"); | ||
sandbox.setAttribute("aria-hidden", !0); | ||
sandbox.src = libPath + "partytown-sandbox-" + msgType + ".html?" + Date.now(); | ||
doc.body.appendChild(sandbox); | ||
} | ||
function fallback(i, script) { | ||
console.warn("Partytown script fallback"); | ||
clearFallback(); | ||
for (i = 0; i < scripts.length; i++) { | ||
(script = doc.createElement("script")).innerHTML = scripts[i].innerHTML; | ||
doc.head.appendChild(script); | ||
} | ||
} | ||
function clearFallback() { | ||
clearTimeout(timeout); | ||
} | ||
config = win.partytown || {}; | ||
crossOriginIsolated = win.crossOriginIsolated; | ||
top == win && (config.forward || []).map((function(forwardProps) { | ||
mainForwardFn = win; | ||
forwardProps.split(".").map((function(_, i, forwardPropsArr) { | ||
mainForwardFn = mainForwardFn[forwardPropsArr[i]] = i + 1 < forwardPropsArr.length ? "push" == forwardPropsArr[i + 1] ? [] : {} : function() { | ||
(win._ptf = win._ptf || []).push(forwardPropsArr, arguments); | ||
}; | ||
})); | ||
})); | ||
"complete" == doc.readyState ? ready() : win.addEventListener("load", ready); | ||
}(window, document, navigator, top, top.crossOriginIsolated); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
const e=new Map,t=(e,t)=>({D:e.D,l:t}),r=(e,t,r)=>{const n={"content-type":r||"text/html","Cache-Control":"no-store"};return t&&(n["Cross-Origin-Embedder-Policy"]="require-corp"),new Response(e,{headers:n})};self.oninstall=()=>self.skipWaiting(),self.onactivate=()=>self.clients.claim(),self.onmessage=t=>{const r=t.data,n=e.get(r.D);n&&(e.delete(r.D),clearTimeout(n[1]),n[0](r))},self.onfetch=n=>{const s=n.request,o=new URL(s.url).pathname;o.endsWith("partytown-sandbox-sw.html")?n.respondWith(r('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="module">/* Partytown 0.0.24 - MIT builder.io */\n(e=>{const t=()=>!0,r=e=>e.length,n=e=>{try{return e.constructor.name}catch(e){}return""},s=(e,t)=>e.startsWith(t),o=e=>!(s(e,"webkit")||s(e,"toJSON")||s(e,"constructor")||s(e,"toString")||s(e,"_")),i=()=>Math.round(9999999999*Math.random()+4),a=new WeakMap,c=new Map,l=new Map,u={},h=new WeakMap,p=(e,t,r)=>e?e===e.window?0:"#document"===(r=e.nodeName)?1:"HTML"===r?2:"HEAD"===r?3:"BODY"===r?4:("number"!=typeof(t=a.get(e))&&m(e,t=i()),t):-1,d=(e,t,r,n,s)=>{if((r=u[e])&&(n=r.O))return s=n.document,0===t?n:1===t?s:2===t?s.documentElement:3===t?s.head:4===t?s.body:c.get(t)},m=(e,t)=>{e&&(c.set(t,e),a.set(e,t),g++,g>99999&&(c.forEach(((e,t)=>{e.nodeType&&!e.isConnected&&c.delete(t)})),g=0))};let g=0;const f=(e,t,r,o,i)=>{if(void 0!==t){if("string"==(o=typeof t)||"number"===o||"boolean"===o||null==t)return[9,t];if("function"===o)return[5];if(r=r||new Set,Array.isArray(t))return r.has(t)?[0,[]]:(r.add(t),[0,t.map((t=>f(e,t,r)))]);if("object"===o)return""===(i=n(t))?[8,{}]:"Window"===i?[6,{R:e,t:0}]:"HTMLCollection"===i||"NodeList"===i?[7,Array.from(t).map((t=>f(e,t,r)[1]))]:"Event"===i?[4,y(e,t,r)]:"CSSRuleList"===i?[3,Array.from(t).map(w)]:s(i,"CSS")&&i.endsWith("Rule")?[2,w(t)]:"CSSStyleDeclaration"===i?[8,y(e,t,r)]:"Attr"===i?[1,[t.name,t.value]]:t.nodeType?[6,{R:e,t:p(t),E:t.nodeName}]:[8,y(e,t,r,!0,!0)]}},y=(e,t,r,n,s,i,a,c)=>{if(i={},!r.has(t))for(a in r.add(t),t)o(a)&&(c=t[a],(n||"function"!=typeof c)&&(s||""!==c)&&(i[a]=f(e,c,r)));return i},w=e=>{let t,r={};for(t in e)T.includes(t)&&(r[t]=e[t]);return r},$=(e,t,r,n)=>{if(t){if(r=t[0],n=t[1],9===r)return n;if(10===r)return v(e,n);if(0===r)return n.map((t=>$(e,t)));if(6===r)return d(n.R,n.t);if(4===r)return b(S(e,n));if(8===r)return S(e,n)}},v=(e,{R:t,t:r,H:n})=>{let s=l.get(n);return s||(s=function(...s){const o={t:r,H:n,M:f(t,this),b:f(t,s)};e.postMessage([7,o])},l.set(n,s)),s},b=e=>new("detail"in e?CustomEvent:Event)(e.type,e),S=(e,t,r,n)=>{for(n in r={},t)r[n]=$(e,t[n]);return r},T="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),E=async(e,t)=>{const n={D:t.D},s=r(t.L);for(let r=0;r<s;r++)try{let s,i,a=t.L[r],c=a.R,l=a.t,h=a.a;if(u[c]||await new Promise((e=>{let t=0,r=()=>{u[c]||t++>999?e():setTimeout(r,9)};r()})),1===h[0]&&h[1]in u[c].O){const t=new u[c].O[h[1]](...$(e,h[2]));m(t,l)}else s=d(c,l),s?(i=L(e,s,h,a.o),a.c&&m(i,a.c),"object"==typeof(o=i)&&o&&o.then&&(i=await i,n.w=!0),n.I=f(c,i)):n.l=l+" not found"}catch(e){r===s-1?n.l=String(e.stack||e):console.error(e)}var o;return n},L=(e,t,n,s)=>{let o,i,a,c,l=0,u=r(n);for(;l<u;l++){i=n[l],o=n[l+1],a=n[l-1];try{if(!Array.isArray(o))if("string"==typeof i||"number"==typeof i){if(l+1===u&&s){const e={};return s.map((r=>e[r]=t[r])),e}t=t[i]}else{if(0===o)return void(t[a]=$(e,i));"function"==typeof t[a]&&(c=$(e,i),"insertRule"===a&&c[1]>r(t.cssRules)&&(c[1]=r(t.cssRules)),t=t[a].apply(t,c))}}catch(e){console.warn(e)}}return t},N=(e,t,r)=>{if(!h.has(r)){h.set(r,t);const n=r.document,s=r.history,o={R:t,F:h.get(r.parent),N:n.baseURI},i=()=>e.postMessage([3,o]),a=s.pushState.bind(s),c=s.replaceState.bind(s),l=()=>setTimeout((()=>e.postMessage([11,t,n.baseURI])));s.pushState=(e,t,r)=>{a(e,t,r),l()},s.replaceState=(e,t,r)=>{c(e,t,r),l()},r.addEventListener("popstate",l),r.addEventListener("hashchange",l),u[t]={R:t,O:r},"complete"===n.readyState?i():r.addEventListener("load",i)}},I=(e,t)=>{let n,s,o=t.R,i=t.O,a=i.document,c=a.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])\');c||(c=a.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror])\')),c?(c.dataset.ptid=n=p(c,o),s={R:o,t:n},c.src?s.N=c.src:s.f=c.innerHTML,e.postMessage([6,s])):t.v||(t.v=1,((e,t,n)=>{let s=n._ptf,o=n._ptf=[],i=0;if(o.push=(r,n)=>e.postMessage([8,{R:t,t:0,m:r,b:f(t,Array.from(n))}]),s)for(;i<r(s);i+=2)o.push(s[i],s[i+1])})(e,o,i),a.dispatchEvent(new CustomEvent("pt0")),e.postMessage([4,o]))},O=e=>{const r=e.document.implementation.createHTMLDocument(),n=r.createTextNode(""),s=r.createComment(""),o=r.createDocumentFragment(),i=r.createElement("i"),a=r.createElementNS("http://www.w3.org/2000/svg","svg"),c=r.createElement("canvas").getContext("2d"),l=new MutationObserver(t),u=new ResizeObserver(t),h=Object.getOwnPropertyNames(e).filter((e=>/^HTML.+Element$/.test(e))).map((e=>{const t=D(e);return[r.createElement(t)]})),p=[[e.history],[e.screen],[e.screen.orientation],[l,12],[u,12],[n],[s],[o],[i],[i.attributes],[i.classList],[i.dataset],[i.style],[a],[r],[r.doctype],[c],...h].filter((e=>e[0])).map((t=>{const r=t[0],n=t[1],s=r.constructor.name;return[s,e[s].prototype,r,n]})),d=[R("Window",e),R("Node",n)],m=e.partytown||{},g=(m.lib||"/~partytown/")+"",f={e:JSON.stringify(m,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),z:new URL(g,e.location)+"",s:d,A:A(e,"localStorage"),K:A(e,"sessionStorage")};return p.map((([e,t,r,n])=>M(d,e,t,r,n))),f},R=(e,t)=>{const r=[],n=[e,"Object",r];for(const e in t)x(r,t,e);return n},M=(e,t,r,n,s)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const o=Object.getPrototypeOf(r),i=o.constructor.name,a=[];M(e,i,o,n,s),Object.keys(Object.getOwnPropertyDescriptors(r)).map((e=>x(a,n,e))),e.push([t,i,a,s,n.nodeName])}},x=(t,r,s,i,a,c)=>{try{o(s)&&isNaN(s[0])&&("function"==(a=typeof(i=r[s]))?(String(i).includes("[native")||Object.getPrototypeOf(r)[s])&&t.push([s,5]):"object"===a&&null!=i?"Object"!==(c=n(i))&&e[c]&&t.push([s,i.nodeType||c]):"symbol"!==a&&(s.toUpperCase()===s?t.push([s,6,i]):t.push([s,6])))}catch(e){console.warn(e)}},C={Anchor:"A",DList:"DL",Image:"IMG",OList:"OL",Paragraph:"P",TableCaption:"CAPTION",TableCell:"TD",TableCol:"COLGROUP",TableRow:"TR",TableSection:"TBODY",UList:"UL"},D=e=>(e=e.substr(4).replace("Element",""),C[e]||e),A=(e,t)=>{let n,s=[],o=0,i=r(e[t]);for(;o<i;o++)n=e[t].key(o),s.push([n,e[t].getItem(n)]);return s};(async e=>{let t;const r=e.parent,n=await(async(e,r)=>{const n=e.navigator.serviceWorker,s=await n.getRegistration();return n.addEventListener("message",(e=>{return r=e.data,n=e=>s.active&&s.active.postMessage(e),E(t,r).then(n);var r,n})),s?(e,t,r)=>{0===r[0]?e.postMessage([1,O(t)]):((e,t,r)=>{const n=r[0];if(2===n)N(e,i(),t);else{const t=r[1],s=u[t];s&&(6===n?I(e,s):5===n&&((e,t,r,n,s)=>{(s=t.O.document.querySelector(`[data-ptid="${r}"]`))&&(n?s.dataset.pterror=n:s.type+="-x"),I(e,t)})(e,s,r[2],r[3]))}})(e,t,r)}:null})(e);n&&(t=new Worker(URL.createObjectURL(new Blob([\'/* Partytown 0.0.24 - MIT builder.io */\\n(e=>{const t=Symbol(),r=Symbol(),n=Symbol(),s=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),c=Symbol(),l=new Map,u={},h=new WeakMap,$={},d={},p={},g={},m=new Map,f=new Map,y="getClientRects,getBoundingClientRect".split(","),w="innerHeight,innerWidth,outerHeight,outerWidth,clientHeight,clientWidth,clientTop,clientLeft,scrollHeight,scrollWidth,scrollTop,scrollLeft,offsetHeight,offsetWidth,offsetTop,offsetLeft".split(","),I="childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling",v=()=>!0,S=e=>e.length,b=(e,t)=>Object.defineProperty(e,"name",{value:t}),E=[],T=()=>Math.round(9999999999*Math.random()+4),N="text/partytown",M=(e,t,r)=>Object.defineProperty(e,t,{...r,configurable:!0}),x=(e,t,r)=>M(e.prototype,t,r),L=(e,t)=>Object.defineProperties(e.prototype,t),C=(e,t,r)=>x(e,t,{value:r,writable:!0}),R=[];let W=0;const H=(e,n,s,o,a)=>{const c=e[r];if(R.push({R:e[t],t:c,a:[...e[i],...n],c:o,o:a}),!s)return P(!0);W=setTimeout(P,30)},P=e=>{if(clearTimeout(W),S(R)){const t=R[S(R)-1],r={D:T(),L:R.slice()};if(R.length=0,e){const e=((e,t)=>{const r=new XMLHttpRequest,n=e.z+"proxytown";return r.open("POST",n,!1),r.send(JSON.stringify(t)),JSON.parse(r.responseText)})(p,r),n=e.w,s=he(t.t,t.a,e.I);if(e.l){if(n)return Promise.reject(e.l);throw new Error(e.l)}return n?Promise.resolve(s):s}p.G([10,r])}},A=(e,t,r)=>{let n;return p.e.get&&(n=p.e.get(k(e,t)),n!==a)||(n=H(e,t,!1,void 0,r)),n},O=(e,t,r)=>{if(p.e.set){const n=p.e.set({value:r,prevent:c,...k(e,t)});if(n===c)return;n!==a&&(r=n)}const n=ue(e,r),s=[...t,n,0];H(e,s,!0)},D=(e,t,r,n)=>{let s;if(p.e.apply&&(s=p.e.apply({args:r,...k(e,t)}),s!==a))return s;const i=t[S(t)-1],o=j.includes(i),c=[...t,ue(e,r)];return s=H(e,c,o,n),o||y.includes(i)||m.clear(),s},k=(e,t)=>({name:t.join("."),continue:a,nodeName:e[n],constructor:e.constructor&&e.constructor.name}),j="addEventListener,removeEventListener,createElement,createTextNode,insertBefore,insertRule,deleteRule,setAttribute,setItem,removeItem,classList.add,classList.remove,classList.toggle".split(","),B=(e,t,r)=>{const n=e=>r.findIndex((t=>t[F]===e)),s={getItem(e){const t=n(e);return t>-1?r[t][U]:null},setItem(s,i){const o=n(s);o>-1?r[o][U]=i:r.push([s,i]),D(e,[t,"setItem"],[s,i])},removeItem(s){const i=n(s);i>-1&&r.splice(i,1),D(e,[t,"removeItem"],[s])},key(e){const t=r[e];return t?t[F]:null},clear(){r.length=0,D(e,[t,"clear"],E)},get length(){return r.length}};e[t]=s},F=0,U=1,_=(e,t,r,n)=>{let s=l.get(t);return s||(s=J(e,t,r,n),l.set(t,s)),s},J=(t,r,n,s)=>new($[n]?$[n]:n.includes("-")?$.UNKNOWN:e.HTMLElement)(t,r,[],n,s),q=(e,t)=>t in e[o],z=(e,t)=>e[o][t],G=(e,t,r)=>e[o][t]=r,V=(e,t,r,n)=>{let s="";try{e.g=t,X(e,r)}catch(e){console.error(r,e),s=String(e.stack||e)+""}return e.g=-1,s},X=(e,t)=>{new Function(`with(this){${t}}`).apply(e.O)},Y=(e,t,r)=>{(r=z(e,t))&&setTimeout((()=>r.map((e=>e({type:t})))),undefined)},K=(e,t,r)=>{for(r=e.B;!r.host&&(r=(e=g[e.F]).B,e.R!==e.F););const n=new URL(t||"",r);if(p.e.resolveUrl){const e=p.e.resolveUrl(n,r);if(e)return e}return n},Q=(e,t)=>K(e,t)+"",Z=e=>K(oe(e),z(e,4)),ee=()=>`<script src=${JSON.stringify(p.z+"partytown.js")} async defer><\\\\/script>`,te=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(Q(e,t),{mode:"no-cors",keepalive:!0}).then((e=>{e.ok||0===e.status?this.l.map((e=>e({type:"load"}))):this.e.map((e=>e({type:"error"})))}),(()=>this.e.forEach((e=>e({type:"error"})))))}addEventListener(e,t){"load"===e&&this.l.push(t),"error"===e&&this.e.push(t)}get onload(){return this.l[0]}set onload(e){this.l=[e]}get onerror(){return this.e[0]}set onerror(e){this.e=[e]}};class re extends URL{assign(){}reload(){}replace(){}}class ne{constructor(e,a,c,l,u){this[t]=e,this[r]=a,this[i]=c||[],this[n]=l,this[o]={},u&&(this[s]=u)}}class se extends ne{constructor(e,t,r,n){return super(e,t,r,n),new Proxy(this,{get:(e,t)=>A(e,[t]),set:(e,t,r)=>(O(e,[t],r),!0)})}}class Window extends ne{constructor(t,r,n){super(t,0);for(const t in e)if(!(t in this)&&"onmessage"!==t){const r=e[t];if(null!=r){const n="function"==typeof r&&!r.toString().startsWith("class");this[t]=n?r.bind(e):r}}Object.getOwnPropertyNames(e).map((t=>{t in this||(this[t]=e[t])}));for(const e in d)this[e]=b(class{constructor(...r){const n=new(0,d[e])(t,T()),s=ue(n,r);return H(n,[1,e,s]),n}},e);const s=new Proxy(this,{has:()=>!0});return g[t]={R:t,F:r,O:s,j:J(t,1,"#document"),k:J(t,2,"HTML"),p:J(t,3,"HEAD"),d:J(t,4,"BODY"),B:new re(n)},this.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),this.cancelAnimationFrame=e=>clearTimeout(e),this.requestIdleCallback=e=>{const t=Date.now();return setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)},this.cancelIdleCallback=e=>clearTimeout(e),B(this,"localStorage",p.A),B(this,"sessionStorage",p.K),M(this.performance,"timing",{get:()=>{const e=A(this,["performance","timing"]);return e?{...e,toJSON:()=>e}:void 0}}),s}get Audio(){return e=oe(this),class{constructor(t){const r=e.j.createElement("audio");return r.src=t,r}};var e}get body(){return oe(this).d}get document(){return oe(this).j}get documentElement(){return oe(this).k}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(Q(oe(this),e),t)}get frameElement(){const e=oe(this),t=e.F,r=e.R;return r===t?null:_(t,r,"IFRAME")}get globalThis(){return this}get head(){return oe(this).p}get location(){return oe(this).B}set location(e){oe(this).B.href=e+""}get Image(){return te(oe(this))}get name(){const e=this[t];return name+e}get navigator(){return(t=>{const r=e.navigator;return r.sendBeacon=(e,r)=>{try{return fetch(Q(t,e),{method:"POST",body:r,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}},r})(oe(this))}get origin(){return oe(this).B.origin}get parent(){return g[oe(this).F].O}get self(){return this}get top(){for(const e in g)if(g[e].R===g[e].F)return g[e].O}get window(){return this}}const ie=({R:e,F:t,N:r})=>{g[e]?g[e].B.href=r:new Window(e,t,r),p.G([6,e])},oe=e=>g[e[t]];class Node extends ne{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,s){const i=e[t]=this[t],o=e[r],a=e[n],c="SCRIPT"===a,l="IFRAME"===a;if(c){const t=z(e,3);if(t){const r=V(oe(e),o,t),n=r?"pterror":"ptid",s=r||o;O(e,["type"],N+"-x"),O(e,["dataset",n],s),O(e,["innerHTML"],t)}}return D(this,["insertBefore"],[e,s]),l&&(e=>{let t=0;const n=e[r],s=()=>{if(g[n]&&g[n].v){let t=z(e,1)?"error":"load",r=z(e,t);r&&r.map((e=>e({type:t})))}else if(t++>2e3){let t=z(e,"error");t&&t.map((e=>e({type:"error"}))),console.error("Timeout")}else setTimeout(s,9)};s()})(e),c&&(P(!0),p.G([6,i])),e}get nodeName(){return this[n]}get nodeType(){return 3}get ownerDocument(){return oe(this).j}}class ae{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}}class NodeList{constructor(e){(this._=e).map(((e,t)=>this[t]=e))}entries(){return this._.entries()}forEach(e,t){this._.map(e,t)}item(e){return this[e]}keys(){return this._.keys()}get length(){return S(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}}const ce=(e,n,s,i)=>{if(void 0!==s){let c=typeof s;if("string"===c||"boolean"===c||"number"===c||null==s)return[9,s];if("function"===c)return[10,{R:e,t:n,H:(o=s,(a=h.get(o))||(h.set(o,a=T()),u[a]=o),a)}];if(i=i||new Set,Array.isArray(s))return i.has(s)?[0,[]]:[0,s.map((t=>ce(e,n,t,i)))];if("object"===c)return"number"==typeof s[r]?[6,{R:s[t],t:s[r]}]:s instanceof Event?[4,le(e,n,s,!1,i)]:[8,le(e,n,s,!0,i)]}var o,a},le=(e,t,r,n,s,i,o,a)=>{if(i={},!s.has(r))for(o in s.add(r),r)a=r[o],(n||"function"!=typeof a)&&(i[o]=ce(e,t,a,s));return i},ue=(e,n)=>e?ce(e[t],e[r],n):[9,n],he=(e,t,r,n,s)=>{if(r){if(n=r[0],s=r[1],9===n||2===n||3===n)return s;if(10===n)return ge(t,s);if(6===n)return de(s);if(7===n)return new NodeList(s.map(de));if(1===n)return new ae(s);if(0===n)return s.map((r=>he(e,t,r)));if(4===n)return i=$e(e,t,s),new Proxy(new Event(i.type,i),{get:(e,t)=>t in i?i[t]:e[String(t)]});if(8===n)return $e(e,t,s)}var i},$e=(e,t,r,n,s)=>{for(s in n={},r)n[s]=he(e,[...t,s],r[s]);return n},de=({R:e,t:t,E:r})=>pe(e,t)||_(e,t,r),pe=(e,t)=>{const r=g[e];return 0===t?r.O:1===t?r.j:2===t?r.k:3===t?r.p:4===t?r.d:void 0},ge=(e,{R:t,t:r,E:n,H:s})=>(u[s]||h.set(u[s]=function(...s){const i=_(t,r,n);return D(i,e,s)},s),u[s]),me={sheet:{get(){return new fe(this)}}};class fe{constructor(e){this.ownerNode=e}get cssRules(){const e=this.ownerNode;return new Proxy({},{get(t,r){const n=String(r);return"item"===n?t=>we(e,t):"length"===n?ye(e).length:isNaN(n)?t[r]:we(e,n)}})}insertRule(e,t){const r=ye(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=r.length&&(D(this.ownerNode,["sheet","insertRule"],[e,t]),r.splice(t,0,0)),t}deleteRule(e){D(this.ownerNode,["sheet","deleteRule"],[e]),ye(this.ownerNode).splice(e,1)}}const ye=e=>{let t=z(e,2);return t||(t=A(e,["sheet","cssRules"]),G(e,2,t)),t},we=(e,t)=>{let r=ye(e);return 0===r[t]&&(r[t]=A(e,["sheet","cssRules",parseInt(t,10)])),r[t]},Ie={body:{get(){return oe(this).d}},createElement:{value(e){e=e.toUpperCase();const r=this[t],n=T(),s=_(r,n,e);return D(this,["createElement"],[e],n),"IFRAME"===e?(ie({R:n,F:r,N:"about:blank"}),O(s,["srcdoc"],ee())):"SCRIPT"===e&&O(s,["type"],N),s}},createElementNS:{value(e,r){r=r.toLowerCase();const n=this[t],s=T(),i=_(n,s,r,e);return D(this,["createElementNS"],[e,r],s),i}},createTextNode:{value(e){const r=this[t],n=T(),s=_(r,n,"#text");return D(this,["createTextNode"],[e],n),s}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],r=oe(this).g;return r>0?_(e,r,"SCRIPT"):null}},defaultView:{get(){return oe(this).O}},documentElement:{get(){return oe(this).k}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[oe(this).d]:"HEAD"===e?[oe(this).p]:D(this,["getElementsByTagName"],[e])}},head:{get(){return oe(this).p}},implementation:{value:{hasFeature:v}},location:{get(){return oe(this).B},set(e){oe(this).B.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}},ve={parentElement:{get(){return this.parentNode}},parentNode:{get(){return oe(this).k}}},Se={parentElement:{value:null},parentNode:{get(){return oe(this).j}}},be={localName:{get(){return this[n].toLowerCase()}},namespaceURI:{get(){return this[s]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[n]}}},Ee={hash:{get(){return Z(this).hash}},host:{get(){return Z(this).host}},hostname:{get(){return Z(this).hostname}},href:{get(){return Z(this).href},set(e){G(this,4,e+=""),O(this,["href"],e)}},origin:{get(){return Z(this).origin}},pathname:{get(){return Z(this).pathname}},port:{get(){return Z(this).port}},protocol:{get(){return Z(this).protocol}},search:{get(){return Z(this).search}}},Te={getContext:{value(...n){const s=["getContext",ue(this,n)];return new e.CanvasRenderingContext2D(this[t],this[r],s)}}},Ne={addEventListener:{value(...e){const t=e[0],r=z(this,t)||[];r.push(e[1]),G(this,t,r)}},async:{get:v,set:v},defer:{get:v,set:v},onload:{get(){let e=z(this,"load");return e&&e[0]||null},set(e){G(this,"load",e?[e]:null)}},onerror:{get(){let e=z(this,"error");return e&&e[0]||null},set(e){G(this,"error",e?[e]:null)}}},Me={contentDocument:{get(){return this.contentWindow.document}},contentWindow:{get(){const e=this[r];return g[e].O}},src:{get(){return z(this,4)||""},set(e){let t,r=new XMLHttpRequest;e=Q(oe(this),e),G(this,1,void 0),G(this,4,e),r.open("GET",e,!1),r.send(),t=r.status,t>199&&t<300?O(this,["srcdoc"],((e,t)=>`<base href="${e}">`+t.replace(/<script>/g,\\\'<script type="text/partytown">\\\').replace(/<script /g,\\\'<script type="text/partytown" \\\').replace(/text\\\\/javascript/g,N)+ee())(e,r.responseText)):G(this,1,t)}},...Ne},xe={get(){return z(this,3)||""},set(e){G(this,3,e)}},Le={innerHTML:xe,innerText:xe,src:{get(){return z(this,4)||""},set(e){e=Q(oe(this),e),G(this,4,e),O(this,["src"],e)}},getAttribute:{value(e){return"src"===e?this.src:D(this,["getAttribute"],[e])}},setAttribute:{value(e,t){"src"===e?this.src=t:D(this,["setAttribute"],[e,t])}},textContent:xe,type:{get(){return A(this,["type"])},set(e){"text/javascript"!==e&&O(this,["type"],e)}},...Ne},Ce=([s,o,a,c,l])=>{const u=Re[s]?se:"Object"===o||"EventTarget"===o?ne:e[o],h=e[s]=b(e[s]||class extends u{},s);12===c&&(d[s]=h),l&&($[l]=h),a.map((([s,o,a])=>{s in h.prototype||s in u.prototype||("string"==typeof o?x(h,s,{get(){if(!q(this,s)){const a=this[t],c=this[r],l=[...this[i],s],u=this[n],h=e[o];G(this,s,new h(a,c,l,u))}return z(this,s)},set(e){G(this,s,e)}}):5===o?C(h,s,(function(...e){return D(this,[s],e)})):o>0&&(void 0!==a?C(h,s,a):x(h,s,{get(){return A(this,[s])},set(e){return O(this,[s],e)}})))}))},Re={CSSStyleDeclaration:1,DOMStringMap:1,NamedNodeMap:1},We=(e,t)=>C(e,"nodeType",t),He=(e,t)=>t.split(",").map((t=>x(e,t,{get(){let e=Pe(this,t),r=f.get(e);return r||(r=A(this,[t]),f.set(e,r)),r}}))),Pe=(e,n)=>e[t]+"."+e[r]+"."+n,Ae=(e,t)=>t.split(",").map((t=>x(e,t,{get(){return q(this,t)||G(this,t,A(this,[t])),z(this,t)},set(e){G(this,t,e)}}))),Oe=(e,t)=>Object.keys(t).map((r=>C(e,r,t[r]))),De=e=>w.map((t=>x(e,t,{get(){const e=m.get(Pe(this,t));if("number"==typeof e)return e;const r=A(this,[t],w);return r&&"object"==typeof r?(Object.entries(r).map((([e,t])=>{m.set(Pe(this,e),t)})),r[t]):r}}))),ke=e=>y.map((t=>{e.prototype[t]=function(){let e=Pe(this,t),r=m.get(e);return r||(r=D(this,[t],E),m.set(e,r)),r}})),je=[],Be=t=>{const r=t.data,n=r[0];p.v?6===n?(async t=>{let r,n,s=t.R,i=t.t,o=_(s,i,"SCRIPT"),a=t.f,c=t.N,l="",u=g[s];if(c)try{n=K(u,c),c=n+"",G(o,4,c),r=await e.fetch(c),r.ok?(a=await r.text(),u.g=i,X(u,a),Y(o,"load")):(console.error(r.status,"url:",c),l=r.statusText,Y(o,"error"))}catch(e){console.error("url:",c,e),l=String(e.stack||e)+"",Y(o,"error")}else a&&(l=V(u,i,a));u.g=-1,p.G([5,s,i,l])})(r[1]):7===n?(({t:e,H:t,M:r,b:n})=>{if(u[t])try{const s=he(e,[],r),i=he(e,[],n);u[t].apply(s,i)}catch(e){console.error(e)}})(r[1]):8===n?(({R:t,t:r,m:n,b:s})=>{try{const i=g[t].O,o=n[0]in i?i:n[0]in e?e:{},a=he(r,[],s),c=o[n[0]];Array.isArray(c)?c.push(...a):"function"==typeof c&&c.apply(o,a)}catch(e){console.error(e)}})(r[1]):3===n?ie(r[1]):4===n?g[r[1]].v=1:11===n&&(g[r[1]].B.href=r[2]):1===n?((t=>{const r=p.e=JSON.parse(t.e);["resolveUrl","get","set","apply"].map((e=>{r[e]&&(r[e]=new Function("return "+r[e])())})),p.z=t.z,p.A=t.A,p.K=t.K,p.n=(r.forward||E).map((e=>e[0])),p.G=postMessage.bind(e),p.$sharedDataBuffer$=t.$sharedDataBuffer$,e.postMessage=e.importScripts=void 0,e.Node=Node,e.Window=Window,e.CSSStyleSheet=fe,t.s.map(Ce),(()=>{const t=e.Document,r=e.DocumentFragment,n=e.Element;"atob,btoa,crypto,indexedDB,performance,setTimeout,setInterval,clearTimeout,clearInterval".split(",").map((e=>delete Window.prototype[e])),L(n,be),L(t,Ie),L(e.HTMLAnchorElement,Ee),L(e.HTMLCanvasElement,Te),L(e.HTMLIFrameElement,Me),L(e.HTMLScriptElement,Le),L(e.HTMLStyleElement,me),L(e.HTMLHeadElement,ve),L(e.HTMLBodyElement,ve),L(e.HTMLHtmlElement,Se),Oe(fe,{type:"text/css"}),We(e.Comment,8),We(e.DocumentType,10),We(r,11),He(Node,"childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling"),He(n,I),He(r,I),De(n),De(Window),ke(n),Ae(t,"compatMode,referrer")})(),p.v=1})(r[1]),p.G([2]),je.slice().forEach(Be),je.length=0):je.push(t)};e.onmessage=Be,postMessage([0])})(self);\\n\'],{type:"text/javascript"})),{name:"Partytown 🎉"}),t.onmessage=e=>{const s=e.data;10===s[0]?E(t,s[1]):n(t,r,s)},r.addEventListener("pt1",(e=>{const r=e.detail,n=p(r.frameElement);N(t,n,r)})))})(e)})(window);\n<\/script></head></html>',false)):o.endsWith("proxytown")&&n.respondWith(((n,s)=>new Promise((async o=>{const i=await n.clone().json(),a=await(r=>new Promise((async n=>{const s=[...await self.clients.matchAll()].sort(((e,t)=>e.url>t.url?-1:e.url<t.url?1:0))[0];if(s){const o=[n,setTimeout((()=>{e.delete(r.D),n(t(r,"Timeout"))}),1e4)];e.set(r.D,o),s.postMessage(r)}else n(t(r,"No Party"))})))(i);o(r(JSON.stringify(a),s,"application/json"))})))(s,false))}; | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
const e=new Map,t=(e,t)=>({D:e.D,l:t}),r=(e,t,r)=>{const n={"content-type":r||"text/html","Cache-Control":"no-store"};return t&&(n["Cross-Origin-Embedder-Policy"]="require-corp"),new Response(e,{headers:n})};self.oninstall=()=>self.skipWaiting(),self.onactivate=()=>self.clients.claim(),self.onmessage=t=>{const r=t.data,n=e.get(r.D);n&&(e.delete(r.D),clearTimeout(n[1]),n[0](r))},self.onfetch=n=>{const s=n.request,o=new URL(s.url).pathname;o.endsWith("partytown-sandbox-sw.html")?n.respondWith(r('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="module">/* Partytown 0.0.25 - MIT builder.io */\n(e=>{const t=()=>!0,r=e=>e.length,n=e=>{try{return e.constructor.name}catch(e){}return""},s=(e,t)=>e.startsWith(t),o=e=>!(s(e,"webkit")||s(e,"toJSON")||s(e,"constructor")||s(e,"toString")||s(e,"_")),i=()=>Math.round(9999999999*Math.random()+4),a=new WeakMap,c=new Map,l=new Map,u={},h=new WeakMap,p=(e,t,r)=>e?e===e.window?0:"#document"===(r=e.nodeName)?1:"HTML"===r?2:"HEAD"===r?3:"BODY"===r?4:("number"!=typeof(t=a.get(e))&&m(e,t=i()),t):-1,d=(e,t,r,n,s)=>{if((r=u[e])&&(n=r.O))return s=n.document,0===t?n:1===t?s:2===t?s.documentElement:3===t?s.head:4===t?s.body:c.get(t)},m=(e,t)=>{e&&(c.set(t,e),a.set(e,t),g++,g>99999&&(c.forEach(((e,t)=>{e.nodeType&&!e.isConnected&&c.delete(t)})),g=0))};let g=0;const f=(e,t,r,o,i)=>{if(void 0!==t){if("string"==(o=typeof t)||"number"===o||"boolean"===o||null==t)return[9,t];if("function"===o)return[5];if(r=r||new Set,Array.isArray(t))return r.has(t)?[0,[]]:(r.add(t),[0,t.map((t=>f(e,t,r)))]);if("object"===o)return""===(i=n(t))?[8,{}]:"Window"===i?[6,{R:e,t:0}]:"HTMLCollection"===i||"NodeList"===i?[7,Array.from(t).map((t=>f(e,t,r)[1]))]:"Event"===i?[4,y(e,t,r)]:"CSSRuleList"===i?[3,Array.from(t).map(w)]:s(i,"CSS")&&i.endsWith("Rule")?[2,w(t)]:"CSSStyleDeclaration"===i?[8,y(e,t,r)]:"Attr"===i?[1,[t.name,t.value]]:t.nodeType?[6,{R:e,t:p(t),E:t.nodeName}]:[8,y(e,t,r,!0,!0)]}},y=(e,t,r,n,s,i,a,c)=>{if(i={},!r.has(t))for(a in r.add(t),t)o(a)&&(c=t[a],(n||"function"!=typeof c)&&(s||""!==c)&&(i[a]=f(e,c,r)));return i},w=e=>{let t,r={};for(t in e)T.includes(t)&&(r[t]=e[t]);return r},$=(e,t,r,n)=>{if(t){if(r=t[0],n=t[1],9===r)return n;if(10===r)return v(e,n);if(0===r)return n.map((t=>$(e,t)));if(6===r)return d(n.R,n.t);if(4===r)return b(S(e,n));if(8===r)return S(e,n)}},v=(e,{R:t,t:r,H:n})=>{let s=l.get(n);return s||(s=function(...s){const o={t:r,H:n,M:f(t,this),b:f(t,s)};e.postMessage([7,o])},l.set(n,s)),s},b=e=>new("detail"in e?CustomEvent:Event)(e.type,e),S=(e,t,r,n)=>{for(n in r={},t)r[n]=$(e,t[n]);return r},T="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),E=async(e,t)=>{const n={D:t.D},s=r(t.L);for(let r=0;r<s;r++)try{let s,i,a=t.L[r],c=a.R,l=a.t,h=a.a;if(u[c]||await new Promise((e=>{let t=0,r=()=>{u[c]||t++>999?e():setTimeout(r,9)};r()})),1===h[0]&&h[1]in u[c].O){const t=new u[c].O[h[1]](...$(e,h[2]));m(t,l)}else s=d(c,l),s?(i=L(e,s,h,a.o),a.c&&m(i,a.c),"object"==typeof(o=i)&&o&&o.then&&(i=await i,n.w=!0),n.I=f(c,i)):n.l=l+" not found"}catch(e){r===s-1?n.l=String(e.stack||e):console.error(e)}var o;return n},L=(e,t,n,s)=>{let o,i,a,c,l=0,u=r(n);for(;l<u;l++){i=n[l],o=n[l+1],a=n[l-1];try{if(!Array.isArray(o))if("string"==typeof i||"number"==typeof i){if(l+1===u&&s){const e={};return s.map((r=>e[r]=t[r])),e}t=t[i]}else{if(0===o)return void(t[a]=$(e,i));"function"==typeof t[a]&&(c=$(e,i),"insertRule"===a&&c[1]>r(t.cssRules)&&(c[1]=r(t.cssRules)),t=t[a].apply(t,c))}}catch(e){console.warn(e)}}return t},N=(e,t,r)=>{if(!h.has(r)){h.set(r,t);const n=r.document,s=r.history,o={R:t,F:h.get(r.parent),N:n.baseURI},i=()=>e.postMessage([3,o]),a=s.pushState.bind(s),c=s.replaceState.bind(s),l=()=>setTimeout((()=>e.postMessage([11,t,n.baseURI])));s.pushState=(e,t,r)=>{a(e,t,r),l()},s.replaceState=(e,t,r)=>{c(e,t,r),l()},r.addEventListener("popstate",l),r.addEventListener("hashchange",l),u[t]={R:t,O:r},"complete"===n.readyState?i():r.addEventListener("load",i)}},I=(e,t)=>{let n,s,o=t.R,i=t.O,a=i.document,c=a.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])\');c||(c=a.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror])\')),c?(c.dataset.ptid=n=p(c,o),s={R:o,t:n},c.src?s.N=c.src:s.f=c.innerHTML,e.postMessage([6,s])):t.v||(t.v=1,((e,t,n)=>{let s,o,i=n._ptf,a=(n.partytown||{}).forward||[],c=(r,n)=>e.postMessage([8,{R:t,m:r,b:f(t,Array.from(n))}]);if(n._ptf=void 0,a.map((e=>{o=n,e.split(".").map(((e,t,n)=>{o=o[n[t]]=t+1<r(n)?o[n[t]]||("push"===n[t+1]?[]:{}):(...e)=>c(n,e)}))})),i)for(s=0;s<r(i);s+=2)c(i[s],i[s+1])})(e,o,i),a.dispatchEvent(new CustomEvent("pt0")),e.postMessage([4,o]))},R=e=>{const r=e.document.implementation.createHTMLDocument(),n=r.createTextNode(""),s=r.createComment(""),o=r.createDocumentFragment(),i=r.createElement("i"),a=r.createElementNS("http://www.w3.org/2000/svg","svg"),c=r.createElement("canvas").getContext("2d"),l=new MutationObserver(t),u=new ResizeObserver(t),h=Object.getOwnPropertyNames(e).filter((e=>/^HTML.+Element$/.test(e))).map((e=>{const t=D(e);return[r.createElement(t)]})),p=[[e.history],[e.screen],[e.screen.orientation],[l,12],[u,12],[n],[s],[o],[i],[i.attributes],[i.classList],[i.dataset],[i.style],[a],[r],[r.doctype],[c],...h].filter((e=>e[0])).map((t=>{const r=t[0],n=t[1],s=r.constructor.name;return[s,e[s].prototype,r,n]})),d=[O("Window",e),O("Node",n)],m=e.partytown||{},g=(m.lib||"/~partytown/")+"",f={e:JSON.stringify(m,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),z:new URL(g,e.location)+"",s:d,A:A(e,"localStorage"),K:A(e,"sessionStorage")};return p.map((([e,t,r,n])=>M(d,e,t,r,n))),f},O=(e,t)=>{const r=[],n=[e,"Object",r];for(const e in t)x(r,t,e);return n},M=(e,t,r,n,s)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const o=Object.getPrototypeOf(r),i=o.constructor.name,a=[];M(e,i,o,n,s),Object.keys(Object.getOwnPropertyDescriptors(r)).map((e=>x(a,n,e))),e.push([t,i,a,s,n.nodeName])}},x=(t,r,s,i,a,c)=>{try{o(s)&&isNaN(s[0])&&("function"==(a=typeof(i=r[s]))?(String(i).includes("[native")||Object.getPrototypeOf(r)[s])&&t.push([s,5]):"object"===a&&null!=i?"Object"!==(c=n(i))&&e[c]&&t.push([s,i.nodeType||c]):"symbol"!==a&&(s.toUpperCase()===s?t.push([s,6,i]):t.push([s,6])))}catch(e){console.warn(e)}},C={Anchor:"A",DList:"DL",Image:"IMG",OList:"OL",Paragraph:"P",TableCaption:"CAPTION",TableCell:"TD",TableCol:"COLGROUP",TableRow:"TR",TableSection:"TBODY",UList:"UL"},D=e=>(e=e.substr(4).replace("Element",""),C[e]||e),A=(e,t)=>{let n,s=[],o=0,i=r(e[t]);for(;o<i;o++)n=e[t].key(o),s.push([n,e[t].getItem(n)]);return s};(async e=>{let t;const r=e.parent,n=await(async(e,r)=>{const n=e.navigator.serviceWorker,s=await n.getRegistration();return n.addEventListener("message",(e=>{return r=e.data,n=e=>s.active&&s.active.postMessage(e),E(t,r).then(n);var r,n})),s?(e,t,r)=>{0===r[0]?e.postMessage([1,R(t)]):((e,t,r)=>{const n=r[0];if(2===n)N(e,i(),t);else{const t=r[1],s=u[t];s&&(6===n?I(e,s):5===n&&((e,t,r,n,s)=>{(s=t.O.document.querySelector(`[data-ptid="${r}"]`))&&(n?s.dataset.pterror=n:s.type+="-x"),I(e,t)})(e,s,r[2],r[3]))}})(e,t,r)}:null})(e);n&&(t=new Worker(URL.createObjectURL(new Blob([\'/* Partytown 0.0.25 - MIT builder.io */\\n(e=>{const t=Symbol(),r=Symbol(),n=Symbol(),s=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),c=Symbol(),l=new Map,u={},h=new WeakMap,$={},d={},p={},g={},m=new Map,f=new Map,y="getClientRects,getBoundingClientRect".split(","),w="innerHeight,innerWidth,outerHeight,outerWidth,clientHeight,clientWidth,clientTop,clientLeft,scrollHeight,scrollWidth,scrollTop,scrollLeft,offsetHeight,offsetWidth,offsetTop,offsetLeft".split(","),I="childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling",v=()=>!0,S=e=>e.length,b=(e,t)=>Object.defineProperty(e,"name",{value:t}),E=[],T=()=>Math.round(9999999999*Math.random()+4),N="text/partytown",M=(e,t,r)=>Object.defineProperty(e,t,{...r,configurable:!0}),x=(e,t,r)=>M(e.prototype,t,r),L=(e,t)=>Object.defineProperties(e.prototype,t),C=(e,t,r)=>x(e,t,{value:r,writable:!0}),R=[];let W=0;const H=(e,n,s,o,a)=>{const c=e[r];if(R.push({R:e[t],t:c,a:[...e[i],...n],c:o,o:a}),!s)return P(!0);W=setTimeout(P,30)},P=e=>{if(clearTimeout(W),S(R)){const t=R[S(R)-1],r={D:T(),L:R.slice()};if(R.length=0,e){const e=((e,t)=>{const r=new XMLHttpRequest,n=e.z+"proxytown";return r.open("POST",n,!1),r.send(JSON.stringify(t)),JSON.parse(r.responseText)})(p,r),n=e.w,s=he(t.t,t.a,e.I);if(e.l){if(n)return Promise.reject(e.l);throw new Error(e.l)}return n?Promise.resolve(s):s}p.G([10,r])}},O=(e,t,r)=>{let n;return p.e.get&&(n=p.e.get(k(e,t)),n!==a)||(n=H(e,t,!1,void 0,r)),n},A=(e,t,r)=>{if(p.e.set){const n=p.e.set({value:r,prevent:c,...k(e,t)});if(n===c)return;n!==a&&(r=n)}const n=ue(e,r),s=[...t,n,0];H(e,s,!0)},D=(e,t,r,n)=>{let s;if(p.e.apply&&(s=p.e.apply({args:r,...k(e,t)}),s!==a))return s;const i=t[S(t)-1],o=j.includes(i),c=[...t,ue(e,r)];return s=H(e,c,o,n),o||y.includes(i)||m.clear(),s},k=(e,t)=>({name:t.join("."),continue:a,nodeName:e[n],constructor:e.constructor&&e.constructor.name}),j="addEventListener,removeEventListener,createElement,createTextNode,insertBefore,insertRule,deleteRule,setAttribute,setItem,removeItem,classList.add,classList.remove,classList.toggle".split(","),B=(e,t,r)=>{const n=e=>r.findIndex((t=>t[F]===e)),s={getItem(e){const t=n(e);return t>-1?r[t][U]:null},setItem(s,i){const o=n(s);o>-1?r[o][U]=i:r.push([s,i]),D(e,[t,"setItem"],[s,i])},removeItem(s){const i=n(s);i>-1&&r.splice(i,1),D(e,[t,"removeItem"],[s])},key(e){const t=r[e];return t?t[F]:null},clear(){r.length=0,D(e,[t,"clear"],E)},get length(){return r.length}};e[t]=s},F=0,U=1,_=(e,t,r,n)=>{let s=l.get(t);return s||(s=J(e,t,r,n),l.set(t,s)),s},J=(t,r,n,s)=>new($[n]?$[n]:n.includes("-")?$.UNKNOWN:e.HTMLElement)(t,r,[],n,s),q=(e,t)=>t in e[o],z=(e,t)=>e[o][t],G=(e,t,r)=>e[o][t]=r,V=(e,t,r,n)=>{let s="";try{e.g=t,X(e,r)}catch(e){console.error(r,e),s=String(e.stack||e)+""}return e.g=-1,s},X=(e,t)=>{new Function(`with(this){${t}}`).apply(e.O)},Y=(e,t,r)=>{(r=z(e,t))&&setTimeout((()=>r.map((e=>e({type:t})))),undefined)},K=(e,t,r)=>{for(r=e.B;!r.host&&(r=(e=g[e.F]).B,e.R!==e.F););const n=new URL(t||"",r);if(p.e.resolveUrl){const e=p.e.resolveUrl(n,r);if(e)return e}return n},Q=(e,t)=>K(e,t)+"",Z=e=>K(oe(e),z(e,4)),ee=()=>`<script src=${JSON.stringify(p.z+"partytown.js")} async defer><\\\\/script>`,te=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(Q(e,t),{mode:"no-cors",keepalive:!0}).then((e=>{e.ok||0===e.status?this.l.map((e=>e({type:"load"}))):this.e.map((e=>e({type:"error"})))}),(()=>this.e.forEach((e=>e({type:"error"})))))}addEventListener(e,t){"load"===e&&this.l.push(t),"error"===e&&this.e.push(t)}get onload(){return this.l[0]}set onload(e){this.l=[e]}get onerror(){return this.e[0]}set onerror(e){this.e=[e]}};class re extends URL{assign(){}reload(){}replace(){}}class ne{constructor(e,a,c,l,u){this[t]=e,this[r]=a,this[i]=c||[],this[n]=l,this[o]={},u&&(this[s]=u)}}class se extends ne{constructor(e,t,r,n){return super(e,t,r,n),new Proxy(this,{get:(e,t)=>O(e,[t]),set:(e,t,r)=>(A(e,[t],r),!0)})}}class Window extends ne{constructor(t,r,n){super(t,0);for(const t in e)if(!(t in this)&&"onmessage"!==t){const r=e[t];if(null!=r){const n="function"==typeof r&&!r.toString().startsWith("class");this[t]=n?r.bind(e):r}}Object.getOwnPropertyNames(e).map((t=>{t in this||(this[t]=e[t])}));for(const e in d)this[e]=b(class{constructor(...r){const n=new(0,d[e])(t,T()),s=ue(n,r);return H(n,[1,e,s]),n}},e);const s=new Proxy(this,{has:()=>!0});return g[t]={R:t,F:r,O:s,j:J(t,1,"#document"),k:J(t,2,"HTML"),p:J(t,3,"HEAD"),d:J(t,4,"BODY"),B:new re(n)},this.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),this.cancelAnimationFrame=e=>clearTimeout(e),this.requestIdleCallback=e=>{const t=Date.now();return setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)},this.cancelIdleCallback=e=>clearTimeout(e),B(this,"localStorage",p.A),B(this,"sessionStorage",p.K),M(this.performance,"timing",{get:()=>{const e=O(this,["performance","timing"]);return e?{...e,toJSON:()=>e}:void 0}}),s}get Audio(){return e=oe(this),class{constructor(t){const r=e.j.createElement("audio");return r.src=t,r}};var e}get body(){return oe(this).d}get document(){return oe(this).j}get documentElement(){return oe(this).k}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(Q(oe(this),e),t)}get frameElement(){const e=oe(this),t=e.F,r=e.R;return r===t?null:_(t,r,"IFRAME")}get globalThis(){return this}get head(){return oe(this).p}get location(){return oe(this).B}set location(e){oe(this).B.href=e+""}get Image(){return te(oe(this))}get name(){const e=this[t];return name+e}get navigator(){return(t=>{const r=e.navigator;return r.sendBeacon=(e,r)=>{try{return fetch(Q(t,e),{method:"POST",body:r,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}},r})(oe(this))}get origin(){return oe(this).B.origin}get parent(){return g[oe(this).F].O}get self(){return this}get top(){for(const e in g)if(g[e].R===g[e].F)return g[e].O}get window(){return this}}const ie=({R:e,F:t,N:r})=>{g[e]?g[e].B.href=r:new Window(e,t,r),p.G([6,e])},oe=e=>g[e[t]];class Node extends ne{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,s){const i=e[t]=this[t],o=e[r],a=e[n],c="SCRIPT"===a,l="IFRAME"===a;if(c){const t=z(e,3);if(t){const r=V(oe(e),o,t),n=r?"pterror":"ptid",s=r||o;A(e,["type"],N+"-x"),A(e,["dataset",n],s),A(e,["innerHTML"],t)}}return D(this,["insertBefore"],[e,s]),l&&(e=>{let t=0;const n=e[r],s=()=>{if(g[n]&&g[n].v){let t=z(e,1)?"error":"load",r=z(e,t);r&&r.map((e=>e({type:t})))}else if(t++>2e3){let t=z(e,"error");t&&t.map((e=>e({type:"error"}))),console.error("Timeout")}else setTimeout(s,9)};s()})(e),c&&(P(!0),p.G([6,i])),e}get nodeName(){return this[n]}get nodeType(){return 3}get ownerDocument(){return oe(this).j}}class ae{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}}class NodeList{constructor(e){(this._=e).map(((e,t)=>this[t]=e))}entries(){return this._.entries()}forEach(e,t){this._.map(e,t)}item(e){return this[e]}keys(){return this._.keys()}get length(){return S(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}}const ce=(e,n,s,i)=>{if(void 0!==s){let c=typeof s;if("string"===c||"boolean"===c||"number"===c||null==s)return[9,s];if("function"===c)return[10,{R:e,t:n,H:(o=s,(a=h.get(o))||(h.set(o,a=T()),u[a]=o),a)}];if(i=i||new Set,Array.isArray(s))return i.has(s)?[0,[]]:[0,s.map((t=>ce(e,n,t,i)))];if("object"===c)return"number"==typeof s[r]?[6,{R:s[t],t:s[r]}]:s instanceof Event?[4,le(e,n,s,!1,i)]:[8,le(e,n,s,!0,i)]}var o,a},le=(e,t,r,n,s,i,o,a)=>{if(i={},!s.has(r))for(o in s.add(r),r)a=r[o],(n||"function"!=typeof a)&&(i[o]=ce(e,t,a,s));return i},ue=(e,n)=>e?ce(e[t],e[r],n):[9,n],he=(e,t,r,n,s)=>{if(r){if(n=r[0],s=r[1],9===n||2===n||3===n)return s;if(10===n)return ge(t,s);if(6===n)return de(s);if(7===n)return new NodeList(s.map(de));if(1===n)return new ae(s);if(0===n)return s.map((r=>he(e,t,r)));if(4===n)return i=$e(e,t,s),new Proxy(new Event(i.type,i),{get:(e,t)=>t in i?i[t]:e[String(t)]});if(8===n)return $e(e,t,s)}var i},$e=(e,t,r,n,s)=>{for(s in n={},r)n[s]=he(e,[...t,s],r[s]);return n},de=({R:e,t:t,E:r})=>pe(e,t)||_(e,t,r),pe=(e,t)=>{const r=g[e];return 0===t?r.O:1===t?r.j:2===t?r.k:3===t?r.p:4===t?r.d:void 0},ge=(e,{R:t,t:r,E:n,H:s})=>(u[s]||h.set(u[s]=function(...s){const i=_(t,r,n);return D(i,e,s)},s),u[s]),me={sheet:{get(){return new fe(this)}}};class fe{constructor(e){this.ownerNode=e}get cssRules(){const e=this.ownerNode;return new Proxy({},{get(t,r){const n=String(r);return"item"===n?t=>we(e,t):"length"===n?ye(e).length:isNaN(n)?t[r]:we(e,n)}})}insertRule(e,t){const r=ye(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=r.length&&(D(this.ownerNode,["sheet","insertRule"],[e,t]),r.splice(t,0,0)),t}deleteRule(e){D(this.ownerNode,["sheet","deleteRule"],[e]),ye(this.ownerNode).splice(e,1)}}const ye=e=>{let t=z(e,2);return t||(t=O(e,["sheet","cssRules"]),G(e,2,t)),t},we=(e,t)=>{let r=ye(e);return 0===r[t]&&(r[t]=O(e,["sheet","cssRules",parseInt(t,10)])),r[t]},Ie={body:{get(){return oe(this).d}},createElement:{value(e){e=e.toUpperCase();const r=this[t],n=T(),s=_(r,n,e);return D(this,["createElement"],[e],n),"IFRAME"===e?(ie({R:n,F:r,N:"about:blank"}),A(s,["srcdoc"],ee())):"SCRIPT"===e&&A(s,["type"],N),s}},createElementNS:{value(e,r){r=r.toLowerCase();const n=this[t],s=T(),i=_(n,s,r,e);return D(this,["createElementNS"],[e,r],s),i}},createTextNode:{value(e){const r=this[t],n=T(),s=_(r,n,"#text");return D(this,["createTextNode"],[e],n),s}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],r=oe(this).g;return r>0?_(e,r,"SCRIPT"):null}},defaultView:{get(){return oe(this).O}},documentElement:{get(){return oe(this).k}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[oe(this).d]:"HEAD"===e?[oe(this).p]:D(this,["getElementsByTagName"],[e])}},head:{get(){return oe(this).p}},implementation:{value:{hasFeature:v}},location:{get(){return oe(this).B},set(e){oe(this).B.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}},ve={parentElement:{get(){return this.parentNode}},parentNode:{get(){return oe(this).k}}},Se={parentElement:{value:null},parentNode:{get(){return oe(this).j}}},be={localName:{get(){return this[n].toLowerCase()}},namespaceURI:{get(){return this[s]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[n]}}},Ee={hash:{get(){return Z(this).hash}},host:{get(){return Z(this).host}},hostname:{get(){return Z(this).hostname}},href:{get(){return Z(this).href},set(e){G(this,4,e+=""),A(this,["href"],e)}},origin:{get(){return Z(this).origin}},pathname:{get(){return Z(this).pathname}},port:{get(){return Z(this).port}},protocol:{get(){return Z(this).protocol}},search:{get(){return Z(this).search}}},Te={getContext:{value(...n){const s=["getContext",ue(this,n)];return new e.CanvasRenderingContext2D(this[t],this[r],s)}}},Ne={addEventListener:{value(...e){const t=e[0],r=z(this,t)||[];r.push(e[1]),G(this,t,r)}},async:{get:v,set:v},defer:{get:v,set:v},onload:{get(){let e=z(this,"load");return e&&e[0]||null},set(e){G(this,"load",e?[e]:null)}},onerror:{get(){let e=z(this,"error");return e&&e[0]||null},set(e){G(this,"error",e?[e]:null)}}},Me={contentDocument:{get(){return this.contentWindow.document}},contentWindow:{get(){const e=this[r];return g[e].O}},src:{get(){return z(this,4)||""},set(e){let t,r=new XMLHttpRequest;e=Q(oe(this),e),G(this,1,void 0),G(this,4,e),r.open("GET",e,!1),r.send(),t=r.status,t>199&&t<300?A(this,["srcdoc"],((e,t)=>`<base href="${e}">`+t.replace(/<script>/g,\\\'<script type="text/partytown">\\\').replace(/<script /g,\\\'<script type="text/partytown" \\\').replace(/text\\\\/javascript/g,N)+ee())(e,r.responseText)):G(this,1,t)}},...Ne},xe={get(){return z(this,3)||""},set(e){G(this,3,e)}},Le={innerHTML:xe,innerText:xe,src:{get(){return z(this,4)||""},set(e){e=Q(oe(this),e),G(this,4,e),A(this,["src"],e)}},getAttribute:{value(e){return"src"===e?this.src:D(this,["getAttribute"],[e])}},setAttribute:{value(e,t){"src"===e?this.src=t:D(this,["setAttribute"],[e,t])}},textContent:xe,type:{get(){return O(this,["type"])},set(e){"text/javascript"!==e&&A(this,["type"],e)}},...Ne},Ce=([s,o,a,c,l])=>{const u=Re[s]?se:"Object"===o||"EventTarget"===o?ne:e[o],h=e[s]=b(e[s]||class extends u{},s);12===c&&(d[s]=h),l&&($[l]=h),a.map((([s,o,a])=>{s in h.prototype||s in u.prototype||("string"==typeof o?x(h,s,{get(){if(!q(this,s)){const a=this[t],c=this[r],l=[...this[i],s],u=this[n],h=e[o];G(this,s,new h(a,c,l,u))}return z(this,s)},set(e){G(this,s,e)}}):5===o?C(h,s,(function(...e){return D(this,[s],e)})):o>0&&(void 0!==a?C(h,s,a):x(h,s,{get(){return O(this,[s])},set(e){return A(this,[s],e)}})))}))},Re={CSSStyleDeclaration:1,DOMStringMap:1,NamedNodeMap:1},We=(e,t)=>C(e,"nodeType",t),He=(e,t)=>t.split(",").map((t=>x(e,t,{get(){let e=Pe(this,t),r=f.get(e);return r||(r=O(this,[t]),f.set(e,r)),r}}))),Pe=(e,n)=>e[t]+"."+e[r]+"."+n,Oe=(e,t)=>t.split(",").map((t=>x(e,t,{get(){return q(this,t)||G(this,t,O(this,[t])),z(this,t)},set(e){G(this,t,e)}}))),Ae=(e,t)=>Object.keys(t).map((r=>C(e,r,t[r]))),De=e=>w.map((t=>x(e,t,{get(){const e=m.get(Pe(this,t));if("number"==typeof e)return e;const r=O(this,[t],w);return r&&"object"==typeof r?(Object.entries(r).map((([e,t])=>{m.set(Pe(this,e),t)})),r[t]):r}}))),ke=e=>y.map((t=>{e.prototype[t]=function(){let e=Pe(this,t),r=m.get(e);return r||(r=D(this,[t],E),m.set(e,r)),r}})),je=[],Be=t=>{const r=t.data,n=r[0];p.v?6===n?(async t=>{let r,n,s=t.R,i=t.t,o=_(s,i,"SCRIPT"),a=t.f,c=t.N,l="",u=g[s];if(c)try{n=K(u,c),c=n+"",G(o,4,c),r=await e.fetch(c),r.ok?(a=await r.text(),u.g=i,X(u,a),Y(o,"load")):(console.error(r.status,"url:",c),l=r.statusText,Y(o,"error"))}catch(e){console.error("url:",c,e),l=String(e.stack||e)+"",Y(o,"error")}else a&&(l=V(u,i,a));u.g=-1,p.G([5,s,i,l])})(r[1]):7===n?(({t:e,H:t,M:r,b:n})=>{if(u[t])try{const s=he(e,[],r),i=he(e,[],n);u[t].apply(s,i)}catch(e){console.error(e)}})(r[1]):8===n?(({R:e,m:t,b:r})=>{try{let n=g[e].O,s=0,i=S(t);for(;s<i;s++)s+1<i?n=n[t[s]]:n[t[s]].apply(n,he(0,[],r))}catch(e){console.error(e)}})(r[1]):3===n?ie(r[1]):4===n?g[r[1]].v=1:11===n&&(g[r[1]].B.href=r[2]):1===n?((t=>{const r=p.e=JSON.parse(t.e);["resolveUrl","get","set","apply"].map((e=>{r[e]&&(r[e]=new Function("return "+r[e])())})),p.z=t.z,p.A=t.A,p.K=t.K,p.n=(r.forward||E).map((e=>e[0])),p.G=postMessage.bind(e),p.$sharedDataBuffer$=t.$sharedDataBuffer$,e.postMessage=e.importScripts=void 0,e.Node=Node,e.Window=Window,e.CSSStyleSheet=fe,t.s.map(Ce),(()=>{const t=e.Document,r=e.DocumentFragment,n=e.Element;"atob,btoa,crypto,indexedDB,performance,setTimeout,setInterval,clearTimeout,clearInterval".split(",").map((e=>delete Window.prototype[e])),L(n,be),L(t,Ie),L(e.HTMLAnchorElement,Ee),L(e.HTMLCanvasElement,Te),L(e.HTMLIFrameElement,Me),L(e.HTMLScriptElement,Le),L(e.HTMLStyleElement,me),L(e.HTMLHeadElement,ve),L(e.HTMLBodyElement,ve),L(e.HTMLHtmlElement,Se),Ae(fe,{type:"text/css"}),We(e.Comment,8),We(e.DocumentType,10),We(r,11),He(Node,"childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling"),He(n,I),He(r,I),De(n),De(Window),ke(n),Oe(t,"compatMode,referrer")})(),p.v=1})(r[1]),p.G([2]),je.slice().forEach(Be),je.length=0):je.push(t)};e.onmessage=Be,postMessage([0])})(self);\\n\'],{type:"text/javascript"})),{name:"Partytown 🎉"}),t.onmessage=e=>{const s=e.data;10===s[0]?E(t,s[1]):n(t,r,s)},r.addEventListener("pt1",(e=>{const r=e.detail,n=p(r.frameElement);N(t,n,r)})))})(e)})(window);\n<\/script></head></html>',false)):o.endsWith("proxytown")&&n.respondWith(((n,s)=>new Promise((async o=>{const i=await n.clone().json(),a=await(r=>new Promise((async n=>{const s=[...await self.clients.matchAll()].sort(((e,t)=>e.url>t.url?-1:e.url<t.url?1:0))[0];if(s){const o=[n,setTimeout((()=>{e.delete(r.D),n(t(r,"Timeout"))}),1e4)];e.set(r.D,o),s.postMessage(r)}else n(t(r,"No Party"))})))(i);o(r(JSON.stringify(a),s,"application/json"))})))(s,false))}; |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.0.24 - MIT builder.io */ | ||
!function(t,e,n,i,o,r,a){function s(t){o||((o=e.createElement("iframe")).dataset.partytown="sandbox",o.setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),o.setAttribute("aria-hidden","true"),o.src=i+"partytown-sandbox-"+t+".html?"+Date.now(),e.body.appendChild(o))}function d(t,n){for(clearTimeout(a),o=1,t=0;t<r.length;t++)(n=e.createElement("script")).innerHTML=r[t].innerHTML,e.body.appendChild(n)}function c(){if(i=(t.partytown||{}).lib||"/~partytown/",r=e.querySelectorAll('script[type="text/partytown"]'),top!==t)top.dispatchEvent(new CustomEvent("pt1",{detail:t}));else if(r.length){if(a=setTimeout(d,1e4),e.addEventListener("pt0",(function(){clearTimeout(a)})),t.crossOriginIsolated)s("atomics");else if("serviceWorker"in n){const e=t.crossOriginIsolated?"?isolated":"";n.serviceWorker.register(i+"partytown-sw.js"+e,{scope:i}).then((function(t){t.active?s("sw"):t.installing?t.installing.addEventListener("statechange",(function(t){"activated"===t.target.state&&s("sw")})):console.warn(t)}),(function(t){console.error(t)}))}else d()}}"complete"===e.readyState?c():window.addEventListener("load",c)}(window,document,navigator); | ||
/* Partytown 0.0.25 - MIT builder.io */ | ||
!function(t,e,n,i,o,r,a,s,d,c,l,p){function u(){a=(r.lib||"/~partytown/")+(r.debug?"debug/":""),d=e.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):d.length&&(s=setTimeout(f,9999),e.addEventListener("pt0",g),o?h("atomics"):n.serviceWorker?n.serviceWorker.register(a+"partytown-sw.js"+(o?"?isolated":""),{scope:a}).then((function(t){t.active?h("sw"):t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h("sw")}))}),console.error):f())}function h(t){(c=e.createElement("iframe")).setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),c.setAttribute("aria-hidden",!0),c.src=a+"partytown-sandbox-"+t+".html?"+Date.now(),e.body.appendChild(c)}function f(t,n){for(g(),t=0;t<d.length;t++)(n=e.createElement("script")).innerHTML=d[t].innerHTML,e.head.appendChild(n)}function g(){clearTimeout(s)}r=t.partytown||{},o=t.crossOriginIsolated,i==t&&(r.forward||[]).map((function(e){l=t,e.split(".").map((function(e,n,i){l=l[i[n]]=n+1<i.length?"push"==i[n+1]?[]:{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),"complete"==e.readyState?u():t.addEventListener("load",u)}(window,document,navigator,top,top.crossOriginIsolated); |
{ | ||
"name": "@builder.io/partytown", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"description": "Relocate resource intensive third-party scripts off of the main thread and into a web worker.", | ||
@@ -48,5 +48,7 @@ "license": "MIT", | ||
"serve.atomics.test": "node scripts/serve.cjs 4003 --atomics", | ||
"test": "playwright test tests --browser=chromium", | ||
"test.atomics": "playwright test tests --config playwright.atomics.config.ts --browser=chromium", | ||
"test.webkit": "playwright test tests --browser=webkit", | ||
"test": "npm run test.unit && npm run test.chromium", | ||
"test.atomics": "playwright test tests/integrations tests/platform --config playwright.atomics.config.ts --browser=chromium", | ||
"test.chromium": "playwright test tests/integrations tests/platform --browser=chromium", | ||
"test.webkit": "playwright test tests/integrations tests/platform --browser=webkit", | ||
"test.unit": "uvu -r tsm tests/unit", | ||
"tsc.watch": "tsc -w", | ||
@@ -57,7 +59,8 @@ "version": "npm run build.prod", | ||
"devDependencies": { | ||
"@microsoft/api-extractor": "^7.18.19", | ||
"@playwright/test": "^1.17.0-rc1", | ||
"@microsoft/api-extractor": "^7.19.2", | ||
"@playwright/test": "^1.17.1", | ||
"@types/fs-extra": "^9.0.13", | ||
"@types/react": "^17.0.37", | ||
"concurrently": "^6.4.0", | ||
"domino": "^2.1.6", | ||
"fs-extra": "^10.0.0", | ||
@@ -67,7 +70,9 @@ "gzip-size": "^6.0.0", | ||
"np": "^7.6.0", | ||
"prettier": "^2.4.1", | ||
"rollup": "^2.60.1", | ||
"prettier": "^2.5.1", | ||
"rollup": "^2.61.1", | ||
"rollup-plugin-terser": "^7.0.2", | ||
"tslib": "^2.3.1", | ||
"typescript": "^4.5.2" | ||
"tsm": "^2.2.1", | ||
"typescript": "^4.5.4", | ||
"uvu": "^0.5.2" | ||
}, | ||
@@ -74,0 +79,0 @@ "prettier": { |
@@ -194,38 +194,5 @@ /** | ||
*/ | ||
declare type PartytownForwardProperty = [ | ||
PartytownForwardPropertyName, | ||
PartytownForwardPropertyType? | ||
]; | ||
declare type PartytownForwardProperty = string; | ||
/** | ||
* Sets the forward property as an array. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyArrayType = 1; | ||
/** | ||
* Default foward property type, which sets the property as a function. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyFunctionType = undefined; | ||
/** | ||
* The property to patch on `window`, such as `dataLayer` for Google Tag Manager. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyName = string; | ||
/** | ||
* The type of property which is patched on `window`. For example, Google Tag Manager's | ||
* `dataLayer` is an array, so it's type should be `1`. The default, which is `undefined`, | ||
* treats the property as a function. | ||
* | ||
* @public | ||
*/ | ||
declare type PartytownForwardPropertyType = PartytownForwardPropertyArrayType | PartytownForwardPropertyFunctionType; | ||
/** | ||
* Props for `<Partytown/>`, which extends the Partytown Config. | ||
@@ -232,0 +199,0 @@ * |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"private": true | ||
} |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"private": true | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
282306
17
28
4931
4