@builder.io/partytown
Advanced tools
Comparing version 0.3.6 to 0.4.0
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"private": true | ||
} |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
(window => { | ||
@@ -15,2 +15,20 @@ const isPromise = v => "object" == typeof v && v && v.then; | ||
const randomId = () => Math.round(999999999 * Math.random() + 4); | ||
const htmlConstructorTags = { | ||
Anchor: "a", | ||
DList: "dl", | ||
Image: "img", | ||
OList: "ol", | ||
Paragraph: "p", | ||
Quote: "q", | ||
TableCaption: "caption", | ||
TableCell: "td", | ||
TableCol: "colgroup", | ||
TableRow: "tr", | ||
TableSection: "tbody", | ||
UList: "ul" | ||
}; | ||
const svgConstructorTags = { | ||
Graphics: "g", | ||
SVG: "svg" | ||
}; | ||
const InstanceIdKey = Symbol(); | ||
@@ -344,2 +362,48 @@ const CreatedKey = Symbol(); | ||
}; | ||
const readMainPlatform = () => { | ||
const startTime = performance.now(); | ||
const docImpl = doc.implementation.createHTMLDocument(); | ||
const elm = docImpl.head; | ||
const textNode = docImpl.createTextNode(""); | ||
const comment = docImpl.createComment(""); | ||
const frag = docImpl.createDocumentFragment(); | ||
const intersectionObserver = getGlobalConstructor(mainWindow, "IntersectionObserver"); | ||
const mutationObserver = getGlobalConstructor(mainWindow, "MutationObserver"); | ||
const resizeObserver = getGlobalConstructor(mainWindow, "ResizeObserver"); | ||
const perf = mainWindow.performance; | ||
const screen = mainWindow.screen; | ||
const elms = Object.getOwnPropertyNames(mainWindow).map((interfaceName => ((doc, interfaceName, r, tag) => { | ||
r = interfaceName.match(/^(HTML|SVG)(.+)Element$/); | ||
if (r) { | ||
tag = r[2]; | ||
return "S" == interfaceName[0] ? doc.createElementNS("http://www.w3.org/2000/svg", svgConstructorTags[tag] || tag.slice(0, 2).toLowerCase() + tag.slice(2)) : doc.createElement(htmlConstructorTags[tag] || tag); | ||
} | ||
})(docImpl, interfaceName))).filter((elm => elm)).map((elm => [ elm ])); | ||
const impls = [ [ mainWindow.history ], [ perf ], [ perf.navigation ], [ perf.timing ], [ screen ], [ screen.orientation ], [ intersectionObserver, 12 ], [ mutationObserver, 12 ], [ resizeObserver, 12 ], [ textNode ], [ comment ], [ frag ], [ elm ], [ elm.attributes ], [ elm.classList ], [ elm.dataset ], [ elm.style ], [ docImpl ], [ docImpl.doctype ], ...elms ].filter((implData => implData[0])).map((implData => { | ||
const impl = implData[0]; | ||
const interfaceType = implData[1]; | ||
const cstrName = getConstructorName(impl); | ||
const CstrPrototype = mainWindow[cstrName].prototype; | ||
return [ cstrName, CstrPrototype, impl, interfaceType ]; | ||
})); | ||
const $interfaces$ = [ readImplementation("Window", mainWindow), readImplementation("Node", textNode) ]; | ||
const $config$ = JSON.stringify(config, ((k, v) => { | ||
if ("function" == typeof v) { | ||
v = String(v); | ||
v.startsWith(k + "(") && (v = "function " + v); | ||
} | ||
return v; | ||
})); | ||
const initWebWorkerData = { | ||
$config$: $config$, | ||
$libPath$: new URL(libPath, mainWindow.location) + "", | ||
$interfaces$: $interfaces$, | ||
$localStorage$: readStorage("localStorage"), | ||
$sessionStorage$: readStorage("sessionStorage") | ||
}; | ||
impls.map((([cstrName, CstrPrototype, impl, intefaceType]) => readOwnImplementation($interfaces$, cstrName, CstrPrototype, impl, intefaceType))); | ||
addGlobalConstructorUsingPrototype($interfaces$, mainWindow, "IntersectionObserverEntry"); | ||
logMain(`Read ${$interfaces$.length} interfaces in ${(performance.now() - startTime).toFixed(1)}ms`); | ||
return initWebWorkerData; | ||
}; | ||
const readImplementation = (cstrName, impl, memberName) => { | ||
@@ -381,19 +445,2 @@ let interfaceMembers = []; | ||
}; | ||
const htmlConstructorToTagMap = { | ||
Anchor: "A", | ||
DList: "DL", | ||
Image: "IMG", | ||
OList: "OL", | ||
Paragraph: "P", | ||
TableCaption: "CAPTION", | ||
TableCell: "TD", | ||
TableCol: "COLGROUP", | ||
TableRow: "TR", | ||
TableSection: "TBODY", | ||
UList: "UL" | ||
}; | ||
const getHtmlTagNameFromConstructor = t => { | ||
t = t.slice(4).replace("Element", ""); | ||
return htmlConstructorToTagMap[t] || t; | ||
}; | ||
const readStorage = storageName => { | ||
@@ -411,2 +458,5 @@ let items = []; | ||
const getGlobalConstructor = (mainWindow, cstrName) => void 0 !== mainWindow[cstrName] ? new mainWindow[cstrName](noop) : 0; | ||
const addGlobalConstructorUsingPrototype = ($interfaces$, mainWindow, cstrName) => { | ||
void 0 !== mainWindow[cstrName] && $interfaces$.push([ cstrName, "Object", Object.keys(mainWindow[cstrName].prototype).map((propName => [ propName, 6 ])), 12 ]); | ||
}; | ||
let worker; | ||
@@ -420,42 +470,3 @@ (async receiveMessage => { | ||
if (0 === msgType) { | ||
const initData = (() => { | ||
const startTime = performance.now(); | ||
const docImpl = doc.implementation.createHTMLDocument(); | ||
const textNode = docImpl.createTextNode(""); | ||
const comment = docImpl.createComment(""); | ||
const frag = docImpl.createDocumentFragment(); | ||
const svg = docImpl.createElementNS("http://www.w3.org/2000/svg", "svg"); | ||
const intersectionObserver = getGlobalConstructor(mainWindow, "IntersectionObserver"); | ||
const mutationObserver = getGlobalConstructor(mainWindow, "MutationObserver"); | ||
const resizeObserver = getGlobalConstructor(mainWindow, "ResizeObserver"); | ||
const perf = mainWindow.performance; | ||
const screen = mainWindow.screen; | ||
const elms = Object.getOwnPropertyNames(mainWindow).filter((c => /^HTML.+Element$/.test(c))).map((htmlCstrName => [ docImpl.createElement(getHtmlTagNameFromConstructor(htmlCstrName)) ])); | ||
const elm = elms[0][0]; | ||
const impls = [ [ mainWindow.history ], [ perf ], [ perf.navigation ], [ perf.timing ], [ screen ], [ screen.orientation ], [ intersectionObserver, 12 ], [ mutationObserver, 12 ], [ resizeObserver, 12 ], [ textNode ], [ comment ], [ frag ], [ elm ], [ elm.attributes ], [ elm.classList ], [ elm.dataset ], [ elm.style ], [ svg ], [ docImpl ], [ docImpl.doctype ], ...elms ].filter((implData => implData[0])).map((implData => { | ||
const impl = implData[0]; | ||
const interfaceType = implData[1]; | ||
const cstrName = getConstructorName(impl); | ||
const CstrPrototype = mainWindow[cstrName].prototype; | ||
return [ cstrName, CstrPrototype, impl, interfaceType ]; | ||
})); | ||
const $interfaces$ = [ readImplementation("Window", mainWindow), readImplementation("Node", textNode) ]; | ||
const $config$ = JSON.stringify(config, ((k, v) => { | ||
if ("function" == typeof v) { | ||
v = String(v); | ||
v.startsWith(k + "(") && (v = "function " + v); | ||
} | ||
return v; | ||
})); | ||
const initWebWorkerData = { | ||
$config$: $config$, | ||
$libPath$: new URL(libPath, mainWindow.location) + "", | ||
$interfaces$: $interfaces$, | ||
$localStorage$: readStorage("localStorage"), | ||
$sessionStorage$: readStorage("sessionStorage") | ||
}; | ||
impls.map((([cstrName, CstrPrototype, impl, intefaceType]) => readOwnImplementation($interfaces$, cstrName, CstrPrototype, impl, intefaceType))); | ||
logMain(`Read ${$interfaces$.length} interfaces in ${(performance.now() - startTime).toFixed(1)}ms`); | ||
return initWebWorkerData; | ||
})(); | ||
const initData = readMainPlatform(); | ||
initData.$sharedDataBuffer$ = sharedDataBuffer; | ||
@@ -477,3 +488,3 @@ worker.postMessage([ 1, initData ]); | ||
if (onMessageHandler) { | ||
worker = new Worker(libPath + "partytown-ww-atomics.js", { | ||
worker = new Worker(libPath + "partytown-ww-atomics.js?v=0.4.0", { | ||
name: "Partytown 🎉" | ||
@@ -485,3 +496,3 @@ }); | ||
}; | ||
logMain("Created Partytown web worker (0.3.6)"); | ||
logMain("Created Partytown web worker (0.4.0)"); | ||
worker.onerror = ev => console.error("Web Worker Error", ev); | ||
@@ -488,0 +499,0 @@ mainWindow.addEventListener("pt1", (ev => registerWindow(worker, getAndSetInstanceId(ev.detail.frameElement), ev.detail))); |
@@ -1,3 +0,5 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
(self => { | ||
const [getter, setter, callMethod, constructGlobal, definePrototypePropertyDescriptor, randomId, WinIdKey, InstanceIdKey, ApplyPathKey] = self.$bridgeToMedia$; | ||
delete self.$bridgeToMedia$; | ||
const ContextKey = Symbol(); | ||
@@ -10,363 +12,364 @@ const MediaSourceKey = Symbol(); | ||
const EMPTY_ARRAY = []; | ||
const defineCstr = (cstrName, Cstr) => self[cstrName] = defineCstrName(cstrName, Cstr); | ||
const defineCstr = (win, cstrName, Cstr) => win[cstrName] = defineCstrName(cstrName, Cstr); | ||
const defineCstrName = (cstrName, Cstr) => Object.defineProperty(Cstr, "name", { | ||
value: cstrName | ||
}); | ||
const [getter, setter, callMethod, constructGlobal, definePrototypePropertyDescriptor, randomId, WorkerProxy, WorkerEventTargetProxy, WinIdKey, InstanceIdKey, ApplyPathKey] = self.ptm; | ||
class TimeRanges extends WorkerProxy { | ||
start(...args) { | ||
return callMethod(this, [ "start" ], args); | ||
} | ||
end(...args) { | ||
return callMethod(this, [ "end" ], args); | ||
} | ||
get length() { | ||
return getter(this, [ "length" ]); | ||
} | ||
} | ||
defineCstr("TimeRanges", TimeRanges); | ||
var _a; | ||
class SourceBufferList extends Array { | ||
constructor(mediaSource) { | ||
super(); | ||
this[MediaSourceKey] = mediaSource; | ||
} | ||
addEventListener(...args) { | ||
callMethod(this[MediaSourceKey], [ "sourceBuffers", "addEventListener" ], args, 3); | ||
} | ||
removeEventListener(...args) { | ||
callMethod(this[MediaSourceKey], [ "sourceBuffers", "removeEventListener" ], args, 3); | ||
} | ||
} | ||
class SourceBuffer extends WorkerEventTargetProxy { | ||
constructor(mediaSource) { | ||
super(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers" ]); | ||
this[_a] = []; | ||
this[MediaSourceKey] = mediaSource; | ||
} | ||
abort() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "appendWindowStart" ], EMPTY_ARRAY, 1); | ||
} | ||
addEventListener(...args) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "addEventListener" ], args, 3); | ||
} | ||
appendBuffer(buf) { | ||
this[SourceBufferTasksKey].push([ "appendBuffer", [ buf ], buf ]); | ||
drainSourceBufferQueue(this); | ||
} | ||
get appendWindowStart() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "appendWindowStart" ]); | ||
} | ||
set appendWindowStart(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "appendWindowStart" ], value); | ||
} | ||
get appendWindowEnd() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "appendWindowEnd" ]); | ||
} | ||
set appendWindowEnd(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "appendWindowEnd" ], value); | ||
} | ||
get buffered() { | ||
const mediaSource = this[MediaSourceKey]; | ||
const sbIndex = getSourceBufferIndex(this); | ||
const timeRanges = new TimeRanges(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers", sbIndex, "buffered" ]); | ||
return timeRanges; | ||
} | ||
changeType(mimeType) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "changeType" ], [ mimeType ], 2); | ||
} | ||
get mode() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "mode" ]); | ||
} | ||
set mode(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "mode" ], value); | ||
} | ||
remove(start, end) { | ||
this[SourceBufferTasksKey].push([ "remove", [ start, end ] ]); | ||
drainSourceBufferQueue(this); | ||
} | ||
removeEventListener(...args) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "removeEventListener" ], args, 3); | ||
} | ||
get timestampOffset() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "timestampOffset" ]); | ||
} | ||
set timestampOffset(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "timestampOffset" ], value); | ||
} | ||
get updating() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "updating" ]); | ||
} | ||
} | ||
_a = SourceBufferTasksKey; | ||
const drainSourceBufferQueue = sourceBuffer => { | ||
if (sourceBuffer[SourceBufferTasksKey].length) { | ||
if (!sourceBuffer.updating) { | ||
const task = sourceBuffer[SourceBufferTasksKey].shift(); | ||
if (task) { | ||
const sbIndex = getSourceBufferIndex(sourceBuffer); | ||
callMethod(sourceBuffer, [ sbIndex, task[0] ], task[1], 3, void 0, task[2]); | ||
const initCanvas = (WorkerBase, win) => { | ||
const HTMLCanvasDescriptorMap = { | ||
getContext: { | ||
value(contextType, contextAttributes) { | ||
this[ContextKey] || (this[ContextKey] = (contextType.includes("webgl") ? createContextWebGL : createContext2D)(this, contextType, contextAttributes)); | ||
return this[ContextKey]; | ||
} | ||
} | ||
setTimeout((() => drainSourceBufferQueue(sourceBuffer)), 50); | ||
} | ||
}; | ||
const getSourceBufferIndex = sourceBuffer => { | ||
if (sourceBuffer) { | ||
const mediaSource = sourceBuffer[MediaSourceKey]; | ||
const sourceBufferList = mediaSource[SourceBuffersKey]; | ||
return sourceBufferList.indexOf(sourceBuffer); | ||
} | ||
return -1; | ||
}; | ||
defineCstr("SourceBufferList", SourceBufferList); | ||
defineCstr("SourceBuffer", SourceBuffer); | ||
const AudioTrackList = class { | ||
constructor(mediaElm) { | ||
const winId = mediaElm[WinIdKey]; | ||
const instanceId = mediaElm[InstanceIdKey]; | ||
const instance = { | ||
addEventListener(...args) { | ||
callMethod(mediaElm, [ "audioTracks", "addEventListener" ], args, 3); | ||
}, | ||
getTrackById: (...args) => callMethod(mediaElm, [ "audioTracks", "getTrackById" ], args), | ||
get length() { | ||
return getter(mediaElm, [ "audioTracks", "length" ]); | ||
}, | ||
removeEventListener(...args) { | ||
callMethod(mediaElm, [ "audioTracks", "removeEventListener" ], args, 3); | ||
}; | ||
const WorkerCanvasGradient = defineCstr(win, "CanvasGradient", class extends WorkerBase { | ||
addColorStop(...args) { | ||
callMethod(this, [ "addColorStop" ], args, 2); | ||
} | ||
}); | ||
const WorkerCanvasPattern = defineCstr(win, "CanvasPattern", class extends WorkerBase { | ||
setTransform(...args) { | ||
callMethod(this, [ "setTransform" ], args, 2); | ||
} | ||
}); | ||
const createContext2D = (canvasInstance, contextType, contextAttributes) => { | ||
const winId = canvasInstance[WinIdKey]; | ||
const ctxInstanceId = randomId(); | ||
const ctxInstance = { | ||
[WinIdKey]: winId, | ||
[InstanceIdKey]: ctxInstanceId, | ||
[ApplyPathKey]: [] | ||
}; | ||
const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId); | ||
const ctx2dGetterMethods = "getContextAttributes,getImageData,getLineDash,getTransform,isPointInPath,isPointInStroke,measureText".split(","); | ||
const CanvasRenderingContext2D = { | ||
get: (target, propName) => "string" == typeof propName && propName in ctx ? "function" == typeof ctx[propName] ? (...args) => { | ||
if (propName.startsWith("create")) { | ||
const instanceId = randomId(); | ||
callMethod(ctxInstance, [ propName ], args, 2, instanceId); | ||
if ("createImageData" === propName || "createPattern" === propName) { | ||
(api => { | ||
console.warn(`${api} not implemented`); | ||
})(`${propName}()`); | ||
return { | ||
setTransform: () => {} | ||
}; | ||
} | ||
return new WorkerCanvasGradient(winId, instanceId); | ||
} | ||
const methodCallType = ctx2dGetterMethods.includes(propName) ? 1 : 2; | ||
return callMethod(ctxInstance, [ propName ], args, methodCallType); | ||
} : ctx[propName] : target[propName], | ||
set(target, propName, value) { | ||
if ("string" == typeof propName && propName in ctx) { | ||
ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value); | ||
ctx[propName] = value; | ||
} else { | ||
target[propName] = value; | ||
} | ||
return true; | ||
} | ||
}; | ||
return new Proxy(instance, { | ||
get: (target, propName) => "number" == typeof propName ? new AudioTrack(winId, instanceId, [ "audioTracks", propName ]) : target[propName] | ||
}); | ||
} | ||
return new Proxy(ctx, CanvasRenderingContext2D); | ||
}; | ||
const createContextWebGL = (canvasInstance, contextType, contextAttributes) => { | ||
const winId = canvasInstance[WinIdKey]; | ||
const ctxInstanceId = randomId(); | ||
const ctxInstance = { | ||
[WinIdKey]: winId, | ||
[InstanceIdKey]: ctxInstanceId, | ||
[ApplyPathKey]: [] | ||
}; | ||
const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId); | ||
const WebGLRenderingContextHandler = { | ||
get: (target, propName) => "string" == typeof propName ? "function" != typeof ctx[propName] ? ctx[propName] : (...args) => callMethod(ctxInstance, [ propName ], args, getWebGlMethodCallType(propName)) : target[propName], | ||
set(target, propName, value) { | ||
if ("string" == typeof propName && propName in ctx) { | ||
ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value); | ||
ctx[propName] = value; | ||
} else { | ||
target[propName] = value; | ||
} | ||
return true; | ||
} | ||
}; | ||
return new Proxy(ctx, WebGLRenderingContextHandler); | ||
}; | ||
const ctxWebGLGetterMethods = "checkFramebufferStatus,makeXRCompatible".split(","); | ||
const getWebGlMethodCallType = methodName => methodName.startsWith("create") || methodName.startsWith("get") || methodName.startsWith("is") || ctxWebGLGetterMethods.includes(methodName) ? 1 : 2; | ||
defineCstr(win, "CanvasGradient", WorkerCanvasGradient); | ||
defineCstr(win, "CanvasPattern", WorkerCanvasPattern); | ||
definePrototypePropertyDescriptor(win.HTMLCanvasElement, HTMLCanvasDescriptorMap); | ||
}; | ||
const AudioTrack = class extends WorkerProxy { | ||
get enabled() { | ||
return getter(this, [ "enabled" ]); | ||
} | ||
set enabled(value) { | ||
setter(this, [ "enabled" ], value); | ||
} | ||
get id() { | ||
return getter(this, [ "id" ]); | ||
} | ||
get kind() { | ||
return getter(this, [ "kind" ]); | ||
} | ||
get label() { | ||
return getter(this, [ "label" ]); | ||
} | ||
get language() { | ||
return getter(this, [ "language" ]); | ||
} | ||
get sourceBuffer() { | ||
return new SourceBuffer(this); | ||
} | ||
}; | ||
const hasAudioTracks = "audioTracks" in self.HTMLMediaElement.prototype; | ||
if (hasAudioTracks) { | ||
defineCstr("AudioTrackList", AudioTrackList); | ||
defineCstr("AudioTrack", AudioTrack); | ||
} | ||
const HTMLMediaDescriptorMap = { | ||
buffered: { | ||
get() { | ||
if (!this[TimeRangesKey]) { | ||
this[TimeRangesKey] = new TimeRanges(this[WinIdKey], this[InstanceIdKey], [ "buffered" ]); | ||
setTimeout((() => { | ||
this[TimeRangesKey] = void 0; | ||
}), 5e3); | ||
} | ||
return this[TimeRangesKey]; | ||
const initMedia = (WorkerBase, WorkerEventTargetProxy, env, win) => { | ||
var _a, _b; | ||
win.Audio = defineCstrName("HTMLAudioElement", class { | ||
constructor(src) { | ||
const audio = env.$createNode$("audio", randomId()); | ||
audio.src = src; | ||
return audio; | ||
} | ||
}, | ||
readyState: { | ||
get() { | ||
if (4 === this[ReadyStateKey]) { | ||
return 4; | ||
} | ||
if ("number" != typeof this[ReadyStateKey]) { | ||
this[ReadyStateKey] = getter(this, [ "readyState" ]); | ||
setTimeout((() => { | ||
this[ReadyStateKey] = void 0; | ||
}), 1e3); | ||
} | ||
return this[ReadyStateKey]; | ||
}); | ||
const WorkerAudioTrack = class extends WorkerBase { | ||
get enabled() { | ||
return getter(this, [ "enabled" ]); | ||
} | ||
} | ||
}; | ||
hasAudioTracks && (HTMLMediaDescriptorMap.audioTracks = { | ||
get() { | ||
return new AudioTrackList(this); | ||
} | ||
}); | ||
definePrototypePropertyDescriptor(self.HTMLMediaElement, HTMLMediaDescriptorMap); | ||
const isStaticTypeSupported = new Map; | ||
const createContext2D = (canvasInstance, contextType, contextAttributes) => { | ||
const winId = canvasInstance[WinIdKey]; | ||
const ctxInstanceId = randomId(); | ||
const ctxInstance = { | ||
[WinIdKey]: winId, | ||
[InstanceIdKey]: ctxInstanceId, | ||
[ApplyPathKey]: [] | ||
set enabled(value) { | ||
setter(this, [ "enabled" ], value); | ||
} | ||
get id() { | ||
return getter(this, [ "id" ]); | ||
} | ||
get kind() { | ||
return getter(this, [ "kind" ]); | ||
} | ||
get label() { | ||
return getter(this, [ "label" ]); | ||
} | ||
get language() { | ||
return getter(this, [ "language" ]); | ||
} | ||
get sourceBuffer() { | ||
return new WorkerSourceBuffer(this); | ||
} | ||
}; | ||
const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId); | ||
const CanvasRenderingContext2D = { | ||
get: (target, propName) => "string" == typeof propName && propName in ctx ? "function" == typeof ctx[propName] ? (...args) => { | ||
if (propName.startsWith("create")) { | ||
const instanceId = randomId(); | ||
callMethod(ctxInstance, [ propName ], args, 2, instanceId); | ||
if ("createImageData" === propName || "createPattern" === propName) { | ||
(api => { | ||
console.warn(`${api} not implemented`); | ||
})(`${propName}()`); | ||
return { | ||
setTransform: () => {} | ||
}; | ||
const WorkerAudioTrackList = class { | ||
constructor(mediaElm) { | ||
const winId = mediaElm[WinIdKey]; | ||
const instanceId = mediaElm[InstanceIdKey]; | ||
const instance = { | ||
addEventListener(...args) { | ||
callMethod(mediaElm, [ "audioTracks", "addEventListener" ], args, 3); | ||
}, | ||
getTrackById: (...args) => callMethod(mediaElm, [ "audioTracks", "getTrackById" ], args), | ||
get length() { | ||
return getter(mediaElm, [ "audioTracks", "length" ]); | ||
}, | ||
removeEventListener(...args) { | ||
callMethod(mediaElm, [ "audioTracks", "removeEventListener" ], args, 3); | ||
} | ||
return new CanvasGradient(winId, instanceId); | ||
} | ||
const methodCallType = ctx2dGetterMethods.includes(propName) ? 1 : 2; | ||
return callMethod(ctxInstance, [ propName ], args, methodCallType); | ||
} : ctx[propName] : target[propName], | ||
set(target, propName, value) { | ||
if ("string" == typeof propName && propName in ctx) { | ||
ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value); | ||
ctx[propName] = value; | ||
} else { | ||
target[propName] = value; | ||
} | ||
return true; | ||
}; | ||
return new Proxy(instance, { | ||
get: (target, propName) => "number" == typeof propName ? new WorkerAudioTrack(winId, instanceId, [ "audioTracks", propName ]) : target[propName] | ||
}); | ||
} | ||
}; | ||
return new Proxy(ctx, CanvasRenderingContext2D); | ||
}; | ||
const CanvasGradient = class { | ||
constructor(winId, instanceId) { | ||
this[WinIdKey] = winId; | ||
this[InstanceIdKey] = instanceId; | ||
this[ApplyPathKey] = []; | ||
} | ||
addColorStop(...args) { | ||
callMethod(this, [ "addColorStop" ], args, 2); | ||
} | ||
}; | ||
defineCstr("CanvasGradient", CanvasGradient); | ||
defineCstr("CanvasPattern", CanvasPattern); | ||
const ctx2dGetterMethods = "getContextAttributes,getImageData,getLineDash,getTransform,isPointInPath,isPointInStroke,measureText".split(","); | ||
const createContextWebGL = (canvasInstance, contextType, contextAttributes) => { | ||
const winId = canvasInstance[WinIdKey]; | ||
const ctxInstanceId = randomId(); | ||
const ctxInstance = { | ||
[WinIdKey]: winId, | ||
[InstanceIdKey]: ctxInstanceId, | ||
[ApplyPathKey]: [] | ||
const WorkerSourceBufferList = defineCstr(win, "SourceBufferList", class extends Array { | ||
constructor(mediaSource) { | ||
super(); | ||
this[MediaSourceKey] = mediaSource; | ||
} | ||
addEventListener(...args) { | ||
callMethod(this[MediaSourceKey], [ "sourceBuffers", "addEventListener" ], args, 3); | ||
} | ||
removeEventListener(...args) { | ||
callMethod(this[MediaSourceKey], [ "sourceBuffers", "removeEventListener" ], args, 3); | ||
} | ||
}); | ||
const WorkerSourceBuffer = defineCstr(win, "SourceBuffer", (_b = class extends WorkerEventTargetProxy { | ||
constructor(mediaSource) { | ||
super(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers" ]); | ||
this[_a] = []; | ||
this[MediaSourceKey] = mediaSource; | ||
} | ||
abort() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "appendWindowStart" ], EMPTY_ARRAY, 1); | ||
} | ||
addEventListener(...args) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "addEventListener" ], args, 3); | ||
} | ||
appendBuffer(buf) { | ||
this[SourceBufferTasksKey].push([ "appendBuffer", [ buf ], buf ]); | ||
drainSourceBufferQueue(this); | ||
} | ||
get appendWindowStart() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "appendWindowStart" ]); | ||
} | ||
set appendWindowStart(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "appendWindowStart" ], value); | ||
} | ||
get appendWindowEnd() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "appendWindowEnd" ]); | ||
} | ||
set appendWindowEnd(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "appendWindowEnd" ], value); | ||
} | ||
get buffered() { | ||
const mediaSource = this[MediaSourceKey]; | ||
const sbIndex = getSourceBufferIndex(this); | ||
const timeRanges = new WorkerTimeRanges(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers", sbIndex, "buffered" ]); | ||
return timeRanges; | ||
} | ||
changeType(mimeType) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "changeType" ], [ mimeType ], 2); | ||
} | ||
get mode() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "mode" ]); | ||
} | ||
set mode(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "mode" ], value); | ||
} | ||
remove(start, end) { | ||
this[SourceBufferTasksKey].push([ "remove", [ start, end ] ]); | ||
drainSourceBufferQueue(this); | ||
} | ||
removeEventListener(...args) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
callMethod(this, [ sbIndex, "removeEventListener" ], args, 3); | ||
} | ||
get timestampOffset() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "timestampOffset" ]); | ||
} | ||
set timestampOffset(value) { | ||
const sbIndex = getSourceBufferIndex(this); | ||
setter(this, [ sbIndex, "timestampOffset" ], value); | ||
} | ||
get updating() { | ||
const sbIndex = getSourceBufferIndex(this); | ||
return getter(this, [ sbIndex, "updating" ]); | ||
} | ||
}, _a = SourceBufferTasksKey, _b)); | ||
const WorkerTimeRanges = defineCstr(win, "TimeRanges", class extends WorkerBase { | ||
start(...args) { | ||
return callMethod(this, [ "start" ], args); | ||
} | ||
end(...args) { | ||
return callMethod(this, [ "end" ], args); | ||
} | ||
get length() { | ||
return getter(this, [ "length" ]); | ||
} | ||
}); | ||
const getSourceBufferIndex = sourceBuffer => { | ||
if (sourceBuffer) { | ||
const mediaSource = sourceBuffer[MediaSourceKey]; | ||
const sourceBufferList = mediaSource[SourceBuffersKey]; | ||
return sourceBufferList.indexOf(sourceBuffer); | ||
} | ||
return -1; | ||
}; | ||
const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId); | ||
const WebGLRenderingContextHandler = { | ||
get: (target, propName) => "string" == typeof propName ? "function" != typeof ctx[propName] ? ctx[propName] : (...args) => callMethod(ctxInstance, [ propName ], args, getWebGlMethodCallType(propName)) : target[propName], | ||
set(target, propName, value) { | ||
if ("string" == typeof propName && propName in ctx) { | ||
ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value); | ||
ctx[propName] = value; | ||
} else { | ||
target[propName] = value; | ||
const drainSourceBufferQueue = sourceBuffer => { | ||
if (sourceBuffer[SourceBufferTasksKey].length) { | ||
if (!sourceBuffer.updating) { | ||
const task = sourceBuffer[SourceBufferTasksKey].shift(); | ||
if (task) { | ||
const sbIndex = getSourceBufferIndex(sourceBuffer); | ||
callMethod(sourceBuffer, [ sbIndex, task[0] ], task[1], 3, void 0, task[2]); | ||
} | ||
} | ||
return true; | ||
setTimeout((() => drainSourceBufferQueue(sourceBuffer)), 50); | ||
} | ||
}; | ||
return new Proxy(ctx, WebGLRenderingContextHandler); | ||
}; | ||
const ctxWebGLGetterMethods = "checkFramebufferStatus,makeXRCompatible".split(","); | ||
const getWebGlMethodCallType = methodName => methodName.startsWith("create") || methodName.startsWith("get") || methodName.startsWith("is") || ctxWebGLGetterMethods.includes(methodName) ? 1 : 2; | ||
const HTMLCanvasDescriptorMap = { | ||
getContext: { | ||
value(contextType, contextAttributes) { | ||
this[ContextKey] || (this[ContextKey] = (contextType.includes("webgl") ? createContextWebGL : createContext2D)(this, contextType, contextAttributes)); | ||
return this[ContextKey]; | ||
} | ||
} | ||
}; | ||
definePrototypePropertyDescriptor(self.HTMLCanvasElement, HTMLCanvasDescriptorMap); | ||
const MediaCstrs = { | ||
Audio: env => defineCstrName("HTMLAudioElement", class { | ||
constructor(src) { | ||
const audio = env.$document$.createElement("audio"); | ||
audio.src = src; | ||
return audio; | ||
} | ||
}), | ||
MediaSource: (env, win, cstrName) => { | ||
const winURL = win.URL = defineCstrName("URL", class extends URL {}); | ||
winURL.createObjectURL = obj => callMethod(win, [ "URL", "createObjectURL" ], [ obj ]); | ||
winURL.revokeObjectURL = obj => callMethod(win, [ "URL", "revokeObjectURL" ], [ obj ]); | ||
return defineCstrName(cstrName, class extends WorkerEventTargetProxy { | ||
constructor() { | ||
super(env.$winId$, randomId()); | ||
this[SourceBuffersKey] = new SourceBufferList(this); | ||
constructGlobal(this, cstrName, EMPTY_ARRAY); | ||
const HTMLMediaDescriptorMap = { | ||
buffered: { | ||
get() { | ||
if (!this[TimeRangesKey]) { | ||
this[TimeRangesKey] = new WorkerTimeRanges(this[WinIdKey], this[InstanceIdKey], [ "buffered" ]); | ||
setTimeout((() => { | ||
this[TimeRangesKey] = void 0; | ||
}), 5e3); | ||
} | ||
return this[TimeRangesKey]; | ||
} | ||
get activeSourceBuffers() { | ||
return []; | ||
} | ||
addSourceBuffer(mimeType) { | ||
const sourceBuffer = new SourceBuffer(this); | ||
this[SourceBuffersKey].push(sourceBuffer); | ||
callMethod(this, [ "addSourceBuffer" ], [ mimeType ]); | ||
return sourceBuffer; | ||
} | ||
clearLiveSeekableRange() { | ||
callMethod(this, [ "clearLiveSeekableRange" ], EMPTY_ARRAY, 2); | ||
} | ||
get duration() { | ||
return getter(this, [ "duration" ]); | ||
} | ||
set duration(value) { | ||
setter(this, [ "duration" ], value); | ||
} | ||
endOfStream(endOfStreamError) { | ||
callMethod(this, [ "endOfStream" ], [ endOfStreamError ], 3); | ||
} | ||
get readyState() { | ||
return getter(this, [ "readyState" ]); | ||
} | ||
removeSourceBuffer(sourceBuffer) { | ||
const index = getSourceBufferIndex(sourceBuffer); | ||
if (index > -1) { | ||
this[SourceBuffersKey].splice(index, 1); | ||
callMethod(this, [ "removeSourceBuffer" ], [ index ], 1); | ||
}, | ||
readyState: { | ||
get() { | ||
if (4 === this[ReadyStateKey]) { | ||
return 4; | ||
} | ||
if ("number" != typeof this[ReadyStateKey]) { | ||
this[ReadyStateKey] = getter(this, [ "readyState" ]); | ||
setTimeout((() => { | ||
this[ReadyStateKey] = void 0; | ||
}), 1e3); | ||
} | ||
return this[ReadyStateKey]; | ||
} | ||
setLiveSeekableRange(start, end) { | ||
callMethod(this, [ "setLiveSeekableRange" ], [ start, end ], 2); | ||
} | ||
}; | ||
defineCstr(win, "MediaSource", class extends WorkerEventTargetProxy { | ||
constructor() { | ||
super(env.$winId$, randomId()); | ||
this[SourceBuffersKey] = new WorkerSourceBufferList(this); | ||
constructGlobal(this, "MediaSource", EMPTY_ARRAY); | ||
} | ||
get activeSourceBuffers() { | ||
return []; | ||
} | ||
addSourceBuffer(mimeType) { | ||
const sourceBuffer = new WorkerSourceBuffer(this); | ||
this[SourceBuffersKey].push(sourceBuffer); | ||
callMethod(this, [ "addSourceBuffer" ], [ mimeType ]); | ||
return sourceBuffer; | ||
} | ||
clearLiveSeekableRange() { | ||
callMethod(this, [ "clearLiveSeekableRange" ], EMPTY_ARRAY, 2); | ||
} | ||
get duration() { | ||
return getter(this, [ "duration" ]); | ||
} | ||
set duration(value) { | ||
setter(this, [ "duration" ], value); | ||
} | ||
endOfStream(endOfStreamError) { | ||
callMethod(this, [ "endOfStream" ], [ endOfStreamError ], 3); | ||
} | ||
get readyState() { | ||
return getter(this, [ "readyState" ]); | ||
} | ||
removeSourceBuffer(sourceBuffer) { | ||
const index = getSourceBufferIndex(sourceBuffer); | ||
if (index > -1) { | ||
this[SourceBuffersKey].splice(index, 1); | ||
callMethod(this, [ "removeSourceBuffer" ], [ index ], 1); | ||
} | ||
get sourceBuffers() { | ||
return this[SourceBuffersKey]; | ||
} | ||
setLiveSeekableRange(start, end) { | ||
callMethod(this, [ "setLiveSeekableRange" ], [ start, end ], 2); | ||
} | ||
get sourceBuffers() { | ||
return this[SourceBuffersKey]; | ||
} | ||
static isTypeSupported(mimeType) { | ||
if (!isStaticTypeSupported.has(mimeType)) { | ||
const isSupported = callMethod(win, [ "MediaSource", "isTypeSupported" ], [ mimeType ]); | ||
isStaticTypeSupported.set(mimeType, isSupported); | ||
} | ||
static isTypeSupported(mimeType) { | ||
if (!isStaticTypeSupported.has(mimeType)) { | ||
const isSupported = callMethod(win, [ cstrName, "isTypeSupported" ], [ mimeType ]); | ||
isStaticTypeSupported.set(mimeType, isSupported); | ||
} | ||
return isStaticTypeSupported.get(mimeType); | ||
return isStaticTypeSupported.get(mimeType); | ||
} | ||
}); | ||
const winURL = win.URL = defineCstrName("URL", class extends URL {}); | ||
const hasAudioTracks = "audioTracks" in win.HTMLMediaElement.prototype; | ||
if (hasAudioTracks) { | ||
defineCstr(win, "AudioTrackList", WorkerAudioTrackList); | ||
defineCstr(win, "AudioTrack", WorkerAudioTrack); | ||
HTMLMediaDescriptorMap.audioTracks = { | ||
get() { | ||
return new WorkerAudioTrackList(this); | ||
} | ||
}); | ||
}; | ||
} | ||
definePrototypePropertyDescriptor(win.HTMLMediaElement, HTMLMediaDescriptorMap); | ||
winURL.createObjectURL = obj => callMethod(win, [ "URL", "createObjectURL" ], [ obj ]); | ||
winURL.revokeObjectURL = obj => callMethod(win, [ "URL", "revokeObjectURL" ], [ obj ]); | ||
}; | ||
self.ptm = MediaCstrs; | ||
const isStaticTypeSupported = new Map; | ||
self.$bridgeFromMedia$ = (WorkerBase, WorkerEventTargetProxy, env, win, windowMediaConstructors) => { | ||
windowMediaConstructors.map((mediaCstrName => { | ||
delete win[mediaCstrName]; | ||
})); | ||
initCanvas(WorkerBase, win); | ||
initMedia(WorkerBase, WorkerEventTargetProxy, env, win); | ||
}; | ||
})(self); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
(window => { | ||
@@ -15,2 +15,20 @@ const isPromise = v => "object" == typeof v && v && v.then; | ||
const randomId = () => Math.round(999999999 * Math.random() + 4); | ||
const htmlConstructorTags = { | ||
Anchor: "a", | ||
DList: "dl", | ||
Image: "img", | ||
OList: "ol", | ||
Paragraph: "p", | ||
Quote: "q", | ||
TableCaption: "caption", | ||
TableCell: "td", | ||
TableCol: "colgroup", | ||
TableRow: "tr", | ||
TableSection: "tbody", | ||
UList: "ul" | ||
}; | ||
const svgConstructorTags = { | ||
Graphics: "g", | ||
SVG: "svg" | ||
}; | ||
const InstanceIdKey = Symbol(); | ||
@@ -347,6 +365,6 @@ const CreatedKey = Symbol(); | ||
const docImpl = doc.implementation.createHTMLDocument(); | ||
const elm = docImpl.head; | ||
const textNode = docImpl.createTextNode(""); | ||
const comment = docImpl.createComment(""); | ||
const frag = docImpl.createDocumentFragment(); | ||
const svg = docImpl.createElementNS("http://www.w3.org/2000/svg", "svg"); | ||
const intersectionObserver = getGlobalConstructor(mainWindow, "IntersectionObserver"); | ||
@@ -357,5 +375,10 @@ const mutationObserver = getGlobalConstructor(mainWindow, "MutationObserver"); | ||
const screen = mainWindow.screen; | ||
const elms = Object.getOwnPropertyNames(mainWindow).filter((c => /^HTML.+Element$/.test(c))).map((htmlCstrName => [ docImpl.createElement(getHtmlTagNameFromConstructor(htmlCstrName)) ])); | ||
const elm = elms[0][0]; | ||
const impls = [ [ mainWindow.history ], [ perf ], [ perf.navigation ], [ perf.timing ], [ screen ], [ screen.orientation ], [ intersectionObserver, 12 ], [ mutationObserver, 12 ], [ resizeObserver, 12 ], [ textNode ], [ comment ], [ frag ], [ elm ], [ elm.attributes ], [ elm.classList ], [ elm.dataset ], [ elm.style ], [ svg ], [ docImpl ], [ docImpl.doctype ], ...elms ].filter((implData => implData[0])).map((implData => { | ||
const elms = Object.getOwnPropertyNames(mainWindow).map((interfaceName => ((doc, interfaceName, r, tag) => { | ||
r = interfaceName.match(/^(HTML|SVG)(.+)Element$/); | ||
if (r) { | ||
tag = r[2]; | ||
return "S" == interfaceName[0] ? doc.createElementNS("http://www.w3.org/2000/svg", svgConstructorTags[tag] || tag.slice(0, 2).toLowerCase() + tag.slice(2)) : doc.createElement(htmlConstructorTags[tag] || tag); | ||
} | ||
})(docImpl, interfaceName))).filter((elm => elm)).map((elm => [ elm ])); | ||
const impls = [ [ mainWindow.history ], [ perf ], [ perf.navigation ], [ perf.timing ], [ screen ], [ screen.orientation ], [ intersectionObserver, 12 ], [ mutationObserver, 12 ], [ resizeObserver, 12 ], [ textNode ], [ comment ], [ frag ], [ elm ], [ elm.attributes ], [ elm.classList ], [ elm.dataset ], [ elm.style ], [ docImpl ], [ docImpl.doctype ], ...elms ].filter((implData => implData[0])).map((implData => { | ||
const impl = implData[0]; | ||
@@ -383,2 +406,3 @@ const interfaceType = implData[1]; | ||
impls.map((([cstrName, CstrPrototype, impl, intefaceType]) => readOwnImplementation($interfaces$, cstrName, CstrPrototype, impl, intefaceType))); | ||
addGlobalConstructorUsingPrototype($interfaces$, mainWindow, "IntersectionObserverEntry"); | ||
logMain(`Read ${$interfaces$.length} interfaces in ${(performance.now() - startTime).toFixed(1)}ms`); | ||
@@ -423,19 +447,2 @@ return initWebWorkerData; | ||
}; | ||
const htmlConstructorToTagMap = { | ||
Anchor: "A", | ||
DList: "DL", | ||
Image: "IMG", | ||
OList: "OL", | ||
Paragraph: "P", | ||
TableCaption: "CAPTION", | ||
TableCell: "TD", | ||
TableCol: "COLGROUP", | ||
TableRow: "TR", | ||
TableSection: "TBODY", | ||
UList: "UL" | ||
}; | ||
const getHtmlTagNameFromConstructor = t => { | ||
t = t.slice(4).replace("Element", ""); | ||
return htmlConstructorToTagMap[t] || t; | ||
}; | ||
const readStorage = storageName => { | ||
@@ -453,2 +460,5 @@ let items = []; | ||
const getGlobalConstructor = (mainWindow, cstrName) => void 0 !== mainWindow[cstrName] ? new mainWindow[cstrName](noop) : 0; | ||
const addGlobalConstructorUsingPrototype = ($interfaces$, mainWindow, cstrName) => { | ||
void 0 !== mainWindow[cstrName] && $interfaces$.push([ cstrName, "Object", Object.keys(mainWindow[cstrName].prototype).map((propName => [ propName, 6 ])), 12 ]); | ||
}; | ||
let worker; | ||
@@ -465,3 +475,3 @@ (receiveMessage => { | ||
if (onMessageHandler) { | ||
worker = new Worker(libPath + "partytown-ww-sw.js", { | ||
worker = new Worker(libPath + "partytown-ww-sw.js?v=0.4.0", { | ||
name: "Partytown 🎉" | ||
@@ -473,3 +483,3 @@ }); | ||
}; | ||
logMain("Created Partytown web worker (0.3.6)"); | ||
logMain("Created Partytown web worker (0.4.0)"); | ||
worker.onerror = ev => console.error("Web Worker Error", ev); | ||
@@ -476,0 +486,0 @@ mainWindow.addEventListener("pt1", (ev => registerWindow(worker, getAndSetInstanceId(ev.detail.frameElement), ev.detail))); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
const resolves = new Map; | ||
@@ -55,3 +55,3 @@ | ||
if (pathname.endsWith("sw.html")) { | ||
ev.respondWith(response('<!DOCTYPE html><html><head><meta charset="utf-8"><script src="./partytown-sandbox-sw.js"><\/script></head></html>')); | ||
ev.respondWith(response('<!DOCTYPE html><html><head><meta charset="utf-8"><script src="./partytown-sandbox-sw.js?v=0.4.0"><\/script></head></html>')); | ||
} else { | ||
@@ -58,0 +58,0 @@ pathname.endsWith("proxytown") && ev.respondWith(httpRequestFromWebWorker(req)); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
!function(win, doc, nav, top, useAtomics, config, libPath, timeout, scripts, sandbox, mainForwardFn, isReady) { | ||
@@ -43,3 +43,3 @@ function ready() { | ||
} | ||
sandbox.src = libPath + "partytown-" + (isAtomics ? "atomics.js" : "sandbox-sw.html?" + Date.now()); | ||
sandbox.src = libPath + "partytown-" + (isAtomics ? "atomics.js?v=0.4.0" : "sandbox-sw.html?" + Date.now()); | ||
doc.body.appendChild(sandbox); | ||
@@ -46,0 +46,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
(e=>{const t=()=>{},n=e=>e.length,r=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(999999999*Math.random()+4),a=Symbol(),l=Symbol(),c=new Map,u=new Map,h={},d=new WeakMap,p=(e,t,n)=>e?e===e.window?0:"#document"===(n=e.nodeName)?1:"HTML"===n?2:"HEAD"===n?3:"BODY"===n?4:("number"!=typeof(t=e[a])&&m(e,t=i()),t):-1,g=(e,t,n,r,s)=>{if((n=h[e])&&(r=n.M))return s=r.document,0===t?r:1===t?s:2===t?s.documentElement:3===t?s.head:4===t?s.body:c.get(t)},m=(e,t,n)=>{e&&(c.set(t,e),e[a]=t,e[l]=n=Date.now(),n>f+5e3&&(c.forEach(((e,t)=>{e[l]<f&&e.nodeType&&!e.isConnected&&c.delete(t)})),f=n))};let f=0;const y=e.parent,w=document,$=y.partytown||{},v=($.lib||"/~partytown/")+"",b=(e,t,n,o,i)=>void 0!==t&&(o=typeof t)?"string"===o||"number"===o||"boolean"===o||null==t?[0,t]:"function"===o?[6]:(n=n||new Set)&&Array.isArray(t)?n.has(t)?[1,[]]:n.add(t)&&[1,t.map((t=>b(e,t,n)))]:"object"===o?""===(i=r(t))?[2,{}]:"Window"===i?[3,{N:e,r:0}]:"HTMLCollection"===i||"NodeList"===i?[7,Array.from(t).map((t=>b(e,t,n)[1]))]:i.endsWith("Event")?[5,E(e,t,n)]:"CSSRuleList"===i?[12,Array.from(t).map(S)]:s(i,"CSS")&&i.endsWith("Rule")?[11,S(t)]:"CSSStyleDeclaration"===i?[13,E(e,t,n)]:"Attr"===i?[10,[t.name,t.value]]:t.nodeType?[3,{N:e,r:p(t),z:t.nodeName}]:[2,E(e,t,n,!0,!0)]:void 0:t,E=(e,t,n,r,s,i,a,l)=>{if(i={},!n.has(t))for(a in n.add(t),t)o(a)&&(l=t[a],(r||"function"!=typeof l)&&(s||""!==l)&&(i[a]=b(e,l,n)));return i},S=e=>{let t,n={};for(t in e)L.includes(t)&&(n[t]=e[t]);return n},T=(t,n,r,s)=>n?(r=n[0],s=n[1],0===r?s:4===r?N(t,s):1===r?s.map((e=>T(t,e))):3===r?g(s.N,s.r):5===r?M(I(t,s)):2===r?I(t,s):8===r?s:9===r?new e[n[2]](s):void 0):void 0,N=(e,{N:t,r:n,E:r},s)=>((s=u.get(r))||(s=function(...s){e.postMessage([7,{N:t,r:n,E:r,K:b(t,this),b:b(t,s)}])},u.set(r,s)),s),M=e=>new("detail"in e?CustomEvent:Event)(e.type,e),I=(e,t,n,r)=>{for(r in n={},t)n[r]=T(e,t[r]);return n},L="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),x=async(e,t)=>{let r,s,o,i,a,l,c={y:t.y},u=n(t.J),d=0;for(;d<u;d++)try{l=d===u-1,r=t.J[d],s=r.N,o=r.a,h[s]||await new Promise((e=>{let t=0,n=()=>{h[s]||t++>999?e():setTimeout(n,9)};n()})),1===o[0]&&o[1]in h[s].M?m(new h[s].M[o[1]](...T(e,o[2])),r.r):(i=g(s,r.r),i?(a=C(e,i,o,l,r.n),r.c&&m(a,r.c),"object"==typeof(p=a)&&p&&p.then&&(a=await a,c.u=!0),c.F=b(s,a)):c.l=r.r+" not found")}catch(e){l?c.l=String(e.stack||e):console.error(e)}var p;return c},C=(e,t,r,s,o)=>{let i,a,l,c,u,h=0,d=n(r);for(;h<d;h++){a=r[h],i=r[h+1],l=r[h-1];try{if(!Array.isArray(i))if("string"==typeof a||"number"==typeof a){if(h+1===d&&o)return u={},o.map((e=>u[e]=t[e])),u;t=t[a]}else{if(0===i)return void(t[l]=T(e,a));if("function"==typeof t[l]&&(c=T(e,a),"insertRule"===l&&c[1]>n(t.cssRules)&&(c[1]=n(t.cssRules)),t=t[l].apply(t,c),"play"===l))return Promise.resolve()}}catch(e){if(s)throw e;console.debug(e)}}return t},O=(e,t,n)=>{if(!d.has(n)){d.set(n,t);const r=n.document,s=n.history,o=d.get(n.parent),i=()=>e.postMessage([3,{N:t,C:o,L:r.baseURI}]),a=s.pushState.bind(s),l=s.replaceState.bind(s),c=()=>setTimeout((()=>e.postMessage([11,t,r.baseURI])));s.pushState=(e,t,n)=>{a(e,t,n),c()},s.replaceState=(e,t,n)=>{l(e,t,n),c()},n.addEventListener("popstate",c),n.addEventListener("hashchange",c),h[t]={N:t,M:n},"complete"===r.readyState?i():n.addEventListener("load",i)}},A=(e,t)=>{let r,s,o,i=t.N,a=t.M,l=a.document;l&&l.body?(r=l.querySelector('script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])'),r||(r=l.querySelector('script[type="text/partytown"]:not([data-ptid]):not([data-pterror])')),r?(r.dataset.ptid=s=p(r,i),o={N:i,r:s},r.src?(o.L=r.src,o.A=r.dataset.ptsrc||r.src):o.g=r.innerHTML,e.postMessage([5,o])):(t.s||(t.s=1,((e,t,r)=>{let s,o,i=r._ptf,a=(r.partytown||{}).forward||[],l=(n,r)=>e.postMessage([8,{N:t,m:n,b:b(t,Array.from(r))}]);if(r._ptf=void 0,a.map((e=>{o=r,e.split(".").map(((e,t,r)=>{o=o[r[t]]=t+1<n(r)?o[r[t]]||("push"===r[t+1]?[]:{}):(...e)=>l(r,e)}))})),i)for(s=0;s<n(i);s+=2)l(i[s],i[s+1])})(e,i,a),l.dispatchEvent(new CustomEvent("pt0"))),e.postMessage([6,i]))):requestAnimationFrame((()=>A(e,t)))},R=(e,t,n)=>{let r=[],s=[e,"Object",r];for(n in t)H(r,t,n);return s},P=(e,t,n,s,o)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const i=Object.getPrototypeOf(n),a=r(i),l=[];P(e,a,i,s,o),Object.keys(Object.getOwnPropertyDescriptors(n)).map((e=>H(l,s,e))),e.push([t,a,l,o,s.nodeName])}},H=(e,t,n,s,i,a)=>{try{o(n)&&isNaN(n[0])&&"all"!==n&&("function"==(i=typeof(s=t[n]))?(String(s).includes("[native")||Object.getPrototypeOf(t)[n])&&e.push([n,5]):"object"===i&&null!=s?"Object"!==(a=r(s))&&self[a]&&e.push([n,s.nodeType||a]):"symbol"!==i&&(n.toUpperCase()===n?e.push([n,6,s]):e.push([n,6])))}catch(e){console.warn(e)}},D={Anchor:"A",DList:"DL",Image:"IMG",OList:"OL",Paragraph:"P",TableCaption:"CAPTION",TableCell:"TD",TableCol:"COLGROUP",TableRow:"TR",TableSection:"TBODY",UList:"UL"},j=e=>{let t,r=[],s=0,o=n(y[e]);for(;s<o;s++)t=y[e].key(s),r.push([t,y[e].getItem(t)]);return r},k=(e,n)=>void 0!==e[n]?new e[n](t):0;let W;(async e=>{const t=new SharedArrayBuffer(1073741824),n=new Int32Array(t);return(s,o)=>{const a=o[0],l=o[1];if(0===a){const e=(()=>{const e=w.implementation.createHTMLDocument(),t=e.createTextNode(""),n=e.createComment(""),s=e.createDocumentFragment(),o=e.createElementNS("http://www.w3.org/2000/svg","svg"),i=k(y,"IntersectionObserver"),a=k(y,"MutationObserver"),l=k(y,"ResizeObserver"),c=y.performance,u=y.screen,h=Object.getOwnPropertyNames(y).filter((e=>/^HTML.+Element$/.test(e))).map((t=>{return[e.createElement((n=t,n=n.slice(4).replace("Element",""),D[n]||n))];var n})),d=h[0][0],p=[[y.history],[c],[c.navigation],[c.timing],[u],[u.orientation],[i,12],[a,12],[l,12],[t],[n],[s],[d],[d.attributes],[d.classList],[d.dataset],[d.style],[o],[e],[e.doctype],...h].filter((e=>e[0])).map((e=>{const t=e[0],n=e[1],s=r(t);return[s,y[s].prototype,t,n]})),g=[R("Window",y),R("Node",t)],m={f:JSON.stringify($,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),v:new URL(v,y.location)+"",q:g,w:j("localStorage"),H:j("sessionStorage")};return p.map((([e,t,n,r])=>P(g,e,t,n,r))),m})();e.I=t,s.postMessage([1,e])}else 9===a?e(l,(e=>{const t=JSON.stringify(e),r=t.length;for(let e=0;e<r;e++)n[e+1]=t.charCodeAt(e);n[0]=r,Atomics.notify(n,0)})):((e,t,n)=>{2===t[0]?O(e,i(),y):(n=h[t[1]])&&(5===t[0]?requestAnimationFrame((()=>A(e,n))):4===t[0]&&((e,t,n,r,s)=>{(s=t.M.document.querySelector(`[data-ptid="${n}"]`))&&(r?s.dataset.pterror=r:s.type+="-x"),A(e,t)})(e,n,t[2],t[3]))})(s,o)}})(((e,t)=>x(W,e).then(t))).then((e=>{e&&(W=new Worker(URL.createObjectURL(new Blob(['/* Partytown 0.3.6 - MIT builder.io */\n(e=>{const t=Symbol(),n=Symbol(),r=Symbol(),s=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),l=Symbol(),c=new Map,$={},u=new WeakMap,h=new Map,d={},p=[],g={},m=new Map,f=new Map,w={},y=new Map,I=new Map,v=e=>e.split(","),b=e=>{if(e=g.v+e,new URL(e).origin!=location.origin)throw"Invalid "+e;return e},S=v("clientWidth,clientHeight,clientTop,clientLeft,innerWidth,innerHeight,offsetWidth,offsetHeight,offsetTop,offsetLeft,outerWidth,outerHeight,pageXOffset,pageYOffset,scrollWidth,scrollHeight,scrollTop,scrollLeft"),E=v("childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling"),T=v("childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling"),M=v("insertBefore,remove,removeChild,replaceChild"),N=v("className,width,height,hidden,innerHTML,innerText,textContent"),L=v("setAttribute,setProperty"),x=v("getClientRects,getBoundingClientRect"),A=["getComputedStyle"],C=v("addEventListener,dispatchEvent,removeEventListener"),W=C.concat(L,v("add,observe,remove,unobserve")),R=/^[A-Z]([A-Z0-9-]*[A-Z0-9])?$/,P=()=>{},H=e=>e.length,O=e=>{try{return e.constructor.name}catch(e){}return""},D=[],k=()=>Math.round(999999999*Math.random()+4),B="text/partytown",j=(e,t,n)=>Object.defineProperty(e,t,{...n,configurable:!0}),U=(e,t)=>j(e,"name",{value:t}),F=(e,t,n)=>j(e.prototype,t,n),_=(e,t)=>Object.defineProperties(e.prototype,t),z=(e,t,n)=>F(e,t,{value:n,writable:!0}),V=(e,t)=>t in e[o],q=(e,t)=>e[o][t],X=(e,t,n)=>e[o][t]=n,Z=[];let J=0;const Y=(e,r,s,o,a,l)=>{if(Z.push({N:e[t],r:e[n],a:[...e[i],...r],c:o,n:a}),3===s)g.D([10,{y:k(),J:[...Z]}],l?[l instanceof ArrayBuffer?l:l.buffer]:void 0),Z.length=0;else if(1===s)return G(!0);J=setTimeout(G,20)},G=e=>{if(clearTimeout(J),H(Z)){const t=Z[H(Z)-1],n={y:k(),J:[...Z]};if(Z.length=0,e){const e=((e,t)=>{const n=e.I,r=new Int32Array(n);Atomics.store(r,0,0),e.D([9,t]),Atomics.wait(r,0,0);let s=Atomics.load(r,0),i="",o=0;for(;o<s;o++)i+=String.fromCharCode(r[o+1]);return JSON.parse(i)})(g,n),r=e.u,s=Oe(t.N,t.r,t.a,e.F);if(e.l){if(r)return Promise.reject(e.l);throw new Error(e.l)}return r?Promise.resolve(s):s}g.D([10,n])}},K=(e,t,n,r)=>g.f.get&&(r=g.f.get(ne(e,t)))!==a?r:r=Y(e,t,1,void 0,n),Q=(e,t,n,r)=>{if(g.f.set){if((r=g.f.set({value:n,prevent:l,...ne(e,t)}))===l)return;r!==a&&(n=r)}N.some((e=>t.includes(e)))&&(y.clear(),t[t.length-1]),t=[...t,He(e,n),0],Y(e,t,2)},ee=(e,t,n,r,s,i,o,l)=>g.f.apply&&(o=g.f.apply({args:n,...ne(e,t)}))!==a?o:(l=t[H(t)-1],t=[...t,He(e,n)],r=r||(W.includes(l)?2:1),"setAttribute"===l&&V(e,n[0])?X(e,n[0],n[1]):M.includes(l)?(y.clear(),I.clear()):L.includes(l)&&(r=2,y.clear()),o=Y(e,t,r,s,void 0,i)),te=(e,t,n)=>{Y(e,[1,t,He(e,n)],1)},ne=(e,t)=>({name:t.join("."),continue:a,nodeName:e[r],constructor:O(e)}),re=(t,n,r)=>{let s,i,o=()=>e.origin===t.origin,a=e=>((e=r.get(t.origin))||r.set(t.origin,e=[]),e),l=e=>a().findIndex((t=>t[se]===e)),c={getItem:e=>(s=l(e),s>-1?a()[s][ie]:null),setItem(e,r){s=l(e),s>-1?a()[s][ie]=r:a().push([e,r]),o()&&ee(t,[n,"setItem"],[e,r],2)},removeItem(e){s=l(e),s>-1&&a().splice(s,1),o()&&ee(t,[n,"removeItem"],[e],2)},key:e=>(i=a()[e],i?i[se]:null),clear(){a().length=0,o()&&ee(t,[n,"clear"],D,2)},get length(){return a().length}};t[n]=c},se=0,ie=1;class oe{constructor(e,a,l,c,$){this[t]=e,this[n]=a,this[i]=l||[],this[r]=c,this[o]={},$&&(this[s]=$)}}class ae extends oe{}C.map((e=>ae.prototype[e]=function(...t){return ee(this,[e],t,2)}));class le extends oe{constructor(e,t,n,r){return super(e,t,n,r),new Proxy(this,{get:(e,t)=>K(e,[t]),set:(e,t,n)=>(Q(e,[t],n),!0)})}}const ce=()=>(e.ptm||(e.ptm=[K,Q,ee,te,_,k,oe,ae,t,n,i],g.p(b("partytown-media.js"))),e.ptm),$e=v("AUDIO,CANVAS,VIDEO"),ue=v("Audio,MediaSource"),he=(e,t,n,r,s)=>((s=c.get(t))||(s=de(e,t,n,r),c.set(t,s)),s),de=(t,n,r,s)=>($e.includes(r)&&ce(),new(d[r]?d[r]:r.includes("-")?d.UNKNOWN:e.HTMLElement)(t,n,[],r,s)),pe=(e,t,n,r,s)=>{try{e.h=t,ge(e,n)}catch(e){console.error(n,e),s=String(e.stack||e)}return e.h=-1,s},ge=(e,t,n)=>{e.G=1,new Function(`with(this){${t.replace(/\\bthis\\b/g,"(thi$(this)?window:this)").replace(/\\/\\/# so/g,"//Xso")}\\n;function thi$(t){return t===this}${(g.f.globalFns||[]).filter((e=>/[a-zA-Z_$][0-9a-zA-Z_$]*/.test(e))).map((e=>`(typeof ${e}==\'function\'&&(window.${e}=${e}))`)).join(";")}}`+(n?"\\n//# sourceURL="+n:"")).call(e.M),e.G=0},me=(e,t,n)=>{(n=q(e,t))&&setTimeout((()=>n.map((e=>e({type:t})))))},fe=(e,t,n,r,s,i)=>{for(r=e.x;!r.host&&(r=(e=w[e.C]).x,e.N!==e.C););return s=new URL(t||"",r),!n&&g.f.resolveUrl&&(i=g.f.resolveUrl(s,r))?i:s},we=(e,t,n)=>fe(e,t,n)+"",ye=()=>`<script src="${b("partytown.js")}"><\\/script>`,Ie=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(we(e,t,!0),{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 ve extends URL{assign(){}reload(){}replace(){}}class Window extends oe{constructor(t,n,r,s){super(t,0);let i,o,a,l=this;for(i in e)if(!(i in l)&&"onmessage"!==i&&(o=e[i],null!=o)){const t="function"==typeof o&&!o.toString().startsWith("class");l[i]=t?o.bind(e):o}Object.getOwnPropertyNames(e).map((t=>{t in l||(l[t]=e[t])})),h.forEach(((e,n)=>{l[n]=U(class{constructor(...r){const s=new e(t,k());return te(s,n,r),s}},n)})),ue.map((e=>j(l,e,{get(){delete l[e];const t=ce()[e];return l[e]=t(Ee(l),l,e)}}))),"trustedTypes"in e&&(l.trustedTypes=e.trustedTypes),w[t]={N:t,C:n,M:new Proxy(l,{has:()=>!0}),j:de(t,1,"#document"),k:de(t,2,"HTML"),o:de(t,3,"HEAD"),d:de(t,4,"BODY"),x:new ve(r)},l.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),l.cancelAnimationFrame=e=>clearTimeout(e),l.requestIdleCallback=(e,t)=>(t=Date.now(),setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)),l.cancelIdleCallback=e=>clearTimeout(e),re(l,"localStorage",m),re(l,"sessionStorage",f),s&&(a={},l.history={pushState(e){a=e},replaceState(e){a=e},get state(){return a},length:0}),l.Worker=void 0}addEventListener(...e){"load"===e[0]?Ee(this).G&&setTimeout((()=>e[1]({type:"load"}))):ee(this,["addEventListener"],e,2)}get body(){return Ee(this).d}get document(){return Ee(this).j}get documentElement(){return Ee(this).k}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(we(Ee(this),e),t)}get frameElement(){const e=Ee(this),t=e.C,n=e.N;return n===t?null:he(t,n,"IFRAME")}get globalThis(){return this}get head(){return Ee(this).o}get location(){return Ee(this).x}set location(e){Ee(this).x.href=e+""}get Image(){return Ie(Ee(this))}get name(){return name+this[t]}get navigator(){return(t=>{const n=e.navigator;return n.sendBeacon=(e,n)=>{try{return fetch(we(t,e,!0),{method:"POST",body:n,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}},n})(Ee(this))}get origin(){return Ee(this).x.origin}get parent(){return be(w[Ee(this).C].M,this[t])}postMessage(...e){ee(this,["postMessage"],e,3)}get self(){return this}get top(){for(let e in w)if(w[e].N===w[e].C)return be(w[e].M,this[t])}get window(){return this}get XMLHttpRequest(){const t=Ee(this);return class extends e.XMLHttpRequest{open(...e){e[1]=we(t,e[1]),super.open(...e)}set withCredentials(e){}}}}const be=(e,t)=>new Proxy(e,{get:(e,n)=>"postMessage"===n?(...n)=>{H(p)>20&&p.splice(0,5),p.push({i:JSON.stringify(n[0]),N:t}),e.postMessage(...n)}:e[n]}),Se=({N:e,C:t,L:n},r)=>(w[e]||new Window(e,t,n,r),g.D([5,e]),w[e]),Ee=e=>w[e[t]],Te={addEventListener:{value(...e){const t=e[0],n=q(this,t)||[];n.push(e[1]),X(this,t,n)}},async:{get:P,set:P},defer:{get:P,set:P},onload:{get(){let e=q(this,"load");return e&&e[0]||null},set(e){X(this,"load",e?[e]:null)}},onerror:{get(){let e=q(this,"error");return e&&e[0]||null},set(e){X(this,"error",e?[e]:null)}},getAttribute:{value(e){return"src"===e?this.src:ee(this,["getAttribute"],[e])}},setAttribute:{value(e,t){Me.includes(e)?this[e]=t:ee(this,["setAttribute"],[e,t])}}},Me=v("src,type"),Ne={get(){return q(this,3)||""},set(e){X(this,3,e)}},Le={innerHTML:Ne,innerText:Ne,src:{get(){return q(this,4)||""},set(e){const t=Ee(this),n=we(t,e,!0);e=we(t,e),X(this,4,e),Q(this,["src"],e),n!==e&&Q(this,["dataset","ptsrc"],n)}},textContent:Ne,type:{get(){return K(this,["type"])},set(e){xe(e)||(X(this,5,e),Q(this,["type"],e))}},...Te},xe=e=>!e||"text/javascript"===e;class Node extends oe{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,s){const i=e[t]=this[t],o=e[n],a=e[r],l="SCRIPT"===a,c="IFRAME"===a;if(l){const t=q(e,3),n=q(e,5);if(t){if(xe(n)){const n=pe(Ee(e),o,t,0,""),r=n?"pterror":"ptid",s=n||o;Q(e,["type"],B+"-x"),Q(e,["dataset",r],s)}Q(e,["innerHTML"],t)}}return ee(this,["insertBefore"],[e,s],2),c&&((e,t)=>{let n,r,s=0,i=()=>{w[e]&&w[e].s&&!w[e].t?(n=q(t,1)?"error":"load",r=q(t,n),r&&r.map((e=>e({type:n})))):s++>2e3?(r=q(t,"error"),r&&r.map((e=>e({type:"error"})))):setTimeout(i,9)};i()})(o,e),l&&(G(!0),g.D([5,i])),e}get nodeName(){return this[r]}get nodeType(){return 3}get ownerDocument(){return Ee(this).j}}class Ae{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}}class Ce extends oe{constructor(e,t,n,r){return super(e,t,n),Object.assign(this,r),new Proxy(this,{get:(e,t)=>e[t],set:(e,t,n)=>(Q(e,[t],n),y.clear(),!0)})}getPropertyValue(e){return this[e]}setProperty(e,t){this[e]=t}}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 H(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}}const We=(e,r,s,i,o)=>{return void 0!==s&&(o=typeof s)?"string"===o||"boolean"===o||"number"===o||null==s?[0,s]:"function"===o?[4,{N:e,r:r,E:(a=s,(l=u.get(a))||(u.set(a,l=k()),$[l]=a),l)}]:(i=i||new Set)&&Array.isArray(s)?i.has(s)?[1,[]]:i.add(s)&&[1,s.map((t=>We(e,r,t,i)))]:"object"===o?"number"==typeof s[n]?[3,{N:s[t],r:s[n]}]:s instanceof Event?[5,Pe(e,r,s,!1,i)]:Re&&s instanceof TrustedHTML?[0,s.toString()]:s instanceof ArrayBuffer?[8,s]:ArrayBuffer.isView(s)?[9,s.buffer,O(s)]:[2,Pe(e,r,s,!0,i)]:void 0:s;var a,l},Re="undefined"!=typeof TrustedHTML,Pe=(e,t,n,r,s,i,o,a)=>{if(i={},!s.has(n))for(o in s.add(n),n)a=n[o],(r||"function"!=typeof a)&&(i[o]=We(e,t,a,s));return i},He=(e,r)=>e?We(e[t],e[n],r):[0,r],Oe=(e,t,n,r,s,i,o,a)=>{if(r){if(s=r[0],i=r[1],0===s||11===s||12===s)return i;if(4===s)return Be(n,i);if(6===s)return P;if(3===s)return De(i);if(7===s)return new NodeList(i.map(De));if(10===s)return new Ae(i);if(1===s)return i.map((r=>Oe(e,t,n,r)));for(a in o={},i)o[a]=Oe(e,t,[...n,a],i[a]);if(13===s)return new Ce(e,t,n,o);if(5===s){if("message"===o.type&&o.origin){let e,t=JSON.stringify(o.data),n=p.find((e=>e.i===t));n&&(e=w[n.N],e&&(o.source=e.M,o.origin=e.x.origin))}return new Proxy(new Event(o.type,o),{get:(e,t)=>t in o?o[t]:"function"==typeof e[String(t)]?P:e[String(t)]})}if(2===s)return o}},De=({N:e,r:t,z:n})=>ke(e,t)||he(e,t,n),ke=(e,t,n)=>(n=w[e])&&0===t?n.M:1===t?n.j:2===t?n.k:3===t?n.o:4===t?n.d:void 0,Be=(e,{N:t,r:n,z:r,E:s})=>($[s]||u.set($[s]=function(...s){const i=he(t,n,r);return ee(i,e,s)},s),$[s]),je={sheet:{get(){return new Ue(this)}}};class Ue{constructor(e){this.ownerNode=e}get cssRules(){const e=this.ownerNode;return new Proxy({},{get(t,n){const r=String(n);return"item"===r?t=>_e(e,t):"length"===r?Fe(e).length:isNaN(r)?t[n]:_e(e,r)}})}insertRule(e,t){const n=Fe(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=n.length&&(ee(this.ownerNode,["sheet","insertRule"],[e,t],2),n.splice(t,0,0)),this.ownerNode,y.clear(),t}deleteRule(e){ee(this.ownerNode,["sheet","deleteRule"],[e],2),Fe(this.ownerNode).splice(e,1),this.ownerNode,y.clear()}}const Fe=(e,t)=>((t=q(e,2))||(t=K(e,["sheet","cssRules"]),X(e,2,t)),t),_e=(e,t,n)=>(0===(n=Fe(e))[t]&&(n[t]=K(e,["sheet","cssRules",parseInt(t,10)])),n[t]),ze={body:{get(){return Ee(this).d}},createElement:{value(e){if(e=e.toUpperCase(),!R.test(e))throw e+" not valid";const n=this[t],r=k(),s=he(n,r,e);if(ee(this,["createElement"],[e],2,r),"IFRAME"===e)Se({N:r,C:n,L:"about:blank"},!0).M.fetch=fetch,Q(s,["srcdoc"],ye());else if("SCRIPT"===e){const e=q(s,5);xe(e)&&Q(s,["type"],B)}return s}},createElementNS:{value(e,n){n=n.toLowerCase();const r=this[t],s=k(),i=he(r,s,n,e);return ee(this,["createElementNS"],[e,n],2,s),i}},createTextNode:{value(e){const n=this[t],r=k(),s=he(n,r,"#text");return ee(this,["createTextNode"],[e],2,r),s}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],n=Ee(this).h;return n>0?he(e,n,"SCRIPT"):null}},defaultView:{get(){return Ee(this).M}},documentElement:{get(){return Ee(this).k}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[Ee(this).d]:"HEAD"===e?[Ee(this).o]:ee(this,["getElementsByTagName"],[e])}},head:{get(){return Ee(this).o}},implementation:{value:{hasFeature:()=>!0}},location:{get(){return Ee(this).x},set(e){Ee(this).x.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}},Ve={parentElement:{get(){return this.parentNode}},parentNode:{get(){return Ee(this).k}}},qe={parentElement:{value:null},parentNode:{get(){return Ee(this).j}}},Xe={localName:{get(){return this[r].toLowerCase()}},namespaceURI:{get(){return this[s]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[r]}}},Ze={};v("hash,host,hostname,href,origin,pathname,port,protocol,search").map((e=>{Ze[e]={get(){let t,n=Ee(this),r=q(this,4);return"string"!=typeof r&&(t=K(this,["href"]),X(this,4,t),r=new URL(t)[e]),fe(n,r)[e]},set(t){let n=Ee(this),r=q(this,4),s=fe(n,r);s[e]=new URL(t+"",s.href),X(this,4,s.href),Q(this,["href"],s.href)}}}));const Je={contentDocument:{get(){return Ye(this).j}},contentWindow:{get(){return Ye(this).M}},src:{get(){let e=Ye(this).x.href;return e.startsWith("about")&&(e=""),e},set(e){let t,n=new XMLHttpRequest,r=Ye(this);r.x.href=e=we(Ee(this),e),r.t=1,X(this,1,void 0),n.open("GET",e,!1),n.send(),t=n.status,t>199&&t<300?(Q(this,["srcdoc"],`<base href="${e}">`+n.responseText.replace(/<script>/g,\'<script type="text/partytown">\').replace(/<script /g,\'<script type="text/partytown" \').replace(/text\\/javascript/g,B)+ye()),G(!0),g.D([5,r.N])):(X(this,1,t),r.t=0)}},...Te},Ye=e=>{const r=e[n];return w[r]||Se({N:r,C:e[t],L:K(e,["src"])||"about:blank"},!0),w[r]},Ge=([s,o,a,l,c])=>{const $=Ke[s]?le:"EventTarget"===o?ae:"Object"===o?oe:e[o],u=e[s]=U(e[s]||class extends ${},s);12===l&&h.set(s,u),c&&(d[c]=u),a.map((([s,o,a])=>{s in u.prototype||s in $.prototype||("string"==typeof o?F(u,s,{get(){if(!V(this,s)){const a=this[t],l=this[n],c=[...this[i],s],$=this[r],u=e[o];X(this,s,new u(a,l,c,$))}return q(this,s)},set(e){X(this,s,e)}}):5===o?z(u,s,(function(...e){return ee(this,[s],e)})):o>0&&(void 0!==a?z(u,s,a):F(u,s,{get(){return K(this,[s])},set(e){return Q(this,[s],e)}})))}))},Ke={CSSStyleDeclaration:1,DOMStringMap:1,NamedNodeMap:1},Qe=(e,t)=>z(e,"nodeType",t),et=(e,t)=>t.map((t=>F(e,t,{get(){let e=tt(this,t),n=I.get(e);return n||(n=K(this,[t]),I.set(e,n)),n}}))),tt=(e,r,s)=>[e[t],e[n],r,...(s||D).map((e=>String(e&&e[t]?e[n]:e)))].join("."),nt=(e,t)=>v(t).map((t=>F(e,t,{get(){return V(this,t)||X(this,t,K(this,[t])),q(this,t)},set(e){q(this,t)!==e&&Q(this,[t],e),X(this,t,e)}}))),rt=e=>S.map((t=>F(e,t,{get(){const e=y.get(tt(this,t));if("number"==typeof e)return e;const n=K(this,[t],S);return n&&"object"==typeof n?(Object.entries(n).map((([e,t])=>y.set(tt(this,e),t))),n[t]):n}}))),st=(e,t)=>t.map((t=>{e.prototype[t]=function(...e){let n=tt(this,t,e),r=y.get(n);return r||(r=ee(this,[t],e),y.set(n,r)),r}}));class it extends oe{now(){return performance.now()}}const ot=[],at=t=>{const n=t.data,r=n[0],s=n[1];g.s?5===r?(async t=>{let n,r=t.N,s=t.r,i=he(r,s,"SCRIPT"),o=t.g,a=t.L,l=t.A,c="",$=w[r];if(a)try{a=fe($,a)+"",X(i,4,a),n=await e.fetch(a),n.ok?(o=await n.text(),$.h=s,ge($,o,l||a),me(i,"load")):(c=n.statusText,me(i,"error"))}catch(e){console.error(e),c=String(e.stack||e),me(i,"error")}else o&&(c=pe($,s,o,0,c));$.h=-1,g.D([4,r,s,c])})(s):7===r?(({N:e,r:t,E:n,K:r,b:s})=>{if($[n])try{$[n].apply(Oe(e,t,[],r),Oe(e,t,[],s))}catch(e){console.error(e)}})(s):8===r?(({N:e,m:t,b:n})=>{try{let r=w[e].M,s=0,i=H(t);for(;s<i;s++)s+1<i?r=r[t[s]]:r[t[s]].apply(r,Oe(null,0,[],n))}catch(e){console.error(e)}})(s):3===r?Se(s):6===r?(w[s].s=1,w[s].t=0):11===r&&(w[n[1]].x.href=n[2]):1===r?((t=>{const n=g.f=JSON.parse(t.f);g.p=importScripts.bind(e),g.v=t.v,g.D=postMessage.bind(e),g.I=t.I,m.set(origin,t.w),f.set(origin,t.H),delete e.postMessage,delete e.importScripts,e.Node=Node,e.Window=Window,e.CSSStyleSheet=Ue,e.Performance=it,t.q.map(Ge),(()=>{const t=e.Document,n=e.DocumentFragment,r=e.Element;var s,i;v("atob,btoa,crypto,indexedDB,setTimeout,setInterval,clearTimeout,clearInterval").map((e=>delete Window.prototype[e])),_(r,Xe),_(t,ze),_(e.HTMLAnchorElement,Ze),_(e.HTMLIFrameElement,Je),_(e.HTMLScriptElement,Le),_(e.HTMLStyleElement,je),_(e.HTMLHeadElement,Ve),_(e.HTMLBodyElement,Ve),_(e.HTMLHtmlElement,qe),s=Ue,i={type:"text/css"},Object.keys(i).map((e=>z(s,e,i[e]))),Qe(e.Comment,8),Qe(e.DocumentType,10),Qe(n,11),et(Node,E),et(r,T),et(n,T),rt(r),st(r,x),rt(Window),st(Window,A),nt(Window,"devicePixelRatio"),nt(t,"compatMode,referrer"),nt(r,"id")})(),["resolveUrl","get","set","apply"].map((e=>{n[e]&&(n[e]=new Function("return "+n[e])())})),g.s=1})(n[1]),g.D([2]),[...ot].map(at),ot.length=0):ot.push(t)};e.onmessage=at,postMessage([0])})(self);\n'],{type:"text/javascript"})),{name:"Partytown 🎉"}),W.onmessage=t=>{const n=t.data;10===n[0]?x(W,n[1]):e(W,n)},y.addEventListener("pt1",(e=>O(W,p(e.detail.frameElement),e.detail))))}))})(window); | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
(e=>{const t=()=>{},r=e=>e.length,n=e=>{try{return e.constructor.name}catch(e){}return""},i=(e,t)=>e.startsWith(t),s=e=>!(i(e,"webkit")||i(e,"toJSON")||i(e,"constructor")||i(e,"toString")||i(e,"_")),o=()=>Math.round(999999999*Math.random()+4),a={Anchor:"a",DList:"dl",Image:"img",OList:"ol",Paragraph:"p",Quote:"q",TableCaption:"caption",TableCell:"td",TableCol:"colgroup",TableRow:"tr",TableSection:"tbody",UList:"ul"},l={Graphics:"g",SVG:"svg"},c=Symbol(),u=Symbol(),h=new Map,p=new Map,d={},m=new WeakMap,g=(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=e[c])&&y(e,t=o()),t):-1,f=(e,t,r,n,i)=>{if((r=d[e])&&(n=r.R))return i=n.document,0===t?n:1===t?i:2===t?i.documentElement:3===t?i.head:4===t?i.body:h.get(t)},y=(e,t,r)=>{e&&(h.set(t,e),e[c]=t,e[u]=r=Date.now(),r>$+5e3&&(h.forEach(((e,t)=>{e[u]<$&&e.nodeType&&!e.isConnected&&h.delete(t)})),$=r))};let $=0;const w=e.parent,S=document,v=w.partytown||{},b=(v.lib||"/~partytown/")+"",T=(e,t,r,s,o)=>void 0!==t&&(s=typeof t)?"string"===s||"number"===s||"boolean"===s||null==t?[0,t]:"function"===s?[6]:(r=r||new Set)&&Array.isArray(t)?r.has(t)?[1,[]]:r.add(t)&&[1,t.map((t=>T(e,t,r)))]:"object"===s?""===(o=n(t))?[2,{}]:"Window"===o?[3,{S:e,w:0}]:"HTMLCollection"===o||"NodeList"===o?[7,Array.from(t).map((t=>T(e,t,r)[1]))]:o.endsWith("Event")?[5,I(e,t,r)]:"CSSRuleList"===o?[12,Array.from(t).map(M)]:i(o,"CSS")&&o.endsWith("Rule")?[11,M(t)]:"CSSStyleDeclaration"===o?[13,I(e,t,r)]:"Attr"===o?[10,[t.name,t.value]]:t.nodeType?[3,{S:e,w:g(t),E:t.nodeName}]:[2,I(e,t,r,!0,!0)]:void 0:t,I=(e,t,r,n,i,o,a,l)=>{if(o={},!r.has(t))for(a in r.add(t),t)s(a)&&(l=t[a],(n||"function"!=typeof l)&&(i||""!==l)&&(o[a]=T(e,l,r)));return o},M=e=>{let t,r={};for(t in e)N.includes(t)&&(r[t]=e[t]);return r},E=(t,r,n,i)=>r?(n=r[0],i=r[1],0===n?i:4===n?C(t,i):1===n?i.map((e=>E(t,e))):3===n?f(i.S,i.w):5===n?L(R(t,i)):2===n?R(t,i):8===n?i:9===n?new e[r[2]](i):void 0):void 0,C=(e,{S:t,w:r,J:n},i)=>((i=p.get(n))||(i=function(...i){e.postMessage([7,{S:t,w:r,J:n,P:T(t,this),b:T(t,i)}])},p.set(n,i)),i),L=e=>new("detail"in e?CustomEvent:Event)(e.type,e),R=(e,t,r,n)=>{for(n in r={},t)r[n]=E(e,t[n]);return r},N="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),A=async(e,t)=>{let n,i,s,o,a,l,c={D:t.D},u=r(t.O),h=0;for(;h<u;h++)try{l=h===u-1,n=t.O[h],i=n.S,s=n.a,d[i]||await new Promise((e=>{let t=0,r=()=>{d[i]||t++>999?e():setTimeout(r,9)};r()})),1===s[0]&&s[1]in d[i].R?y(new d[i].R[s[1]](...E(e,s[2])),n.w):(o=f(i,n.w),o?(a=x(e,o,s,l,n.r),n.d&&y(a,n.d),"object"==typeof(p=a)&&p&&p.then&&(a=await a,c.z=!0),c.K=T(i,a)):c.p=n.w+" not found")}catch(e){l?c.p=String(e.stack||e):console.error(e)}var p;return c},x=(e,t,n,i,s)=>{let o,a,l,c,u,h=0,p=r(n);for(;h<p;h++){a=n[h],o=n[h+1],l=n[h-1];try{if(!Array.isArray(o))if("string"==typeof a||"number"==typeof a){if(h+1===p&&s)return u={},s.map((e=>u[e]=t[e])),u;t=t[a]}else{if(0===o)return void(t[l]=E(e,a));if("function"==typeof t[l]&&(c=E(e,a),"insertRule"===l&&c[1]>r(t.cssRules)&&(c[1]=r(t.cssRules)),t=t[l].apply(t,c),"play"===l))return Promise.resolve()}}catch(e){if(i)throw e;console.debug(e)}}return t},O=(e,t,r)=>{if(!m.has(r)){m.set(r,t);const n=r.document,i=r.history,s=m.get(r.parent),o=()=>e.postMessage([3,{S:t,H:s,Q:n.baseURI}]),a=i.pushState.bind(i),l=i.replaceState.bind(i),c=()=>setTimeout((()=>e.postMessage([11,t,n.baseURI])));i.pushState=(e,t,r)=>{a(e,t,r),c()},i.replaceState=(e,t,r)=>{l(e,t,r),c()},r.addEventListener("popstate",c),r.addEventListener("hashchange",c),d[t]={S:t,R:r},"complete"===n.readyState?o():r.addEventListener("load",o)}},X=(e,t)=>{let n,i,s,o=t.S,a=t.R,l=a.document;l&&l.body?(n=l.querySelector('script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])'),n||(n=l.querySelector('script[type="text/partytown"]:not([data-ptid]):not([data-pterror])')),n?(n.dataset.ptid=i=g(n,o),s={S:o,w:i},n.src?(s.Q=n.src,s.F=n.dataset.ptsrc||n.src):s.j=n.innerHTML,e.postMessage([5,s])):(t.x||(t.x=1,((e,t,n)=>{let i,s,o=n._ptf,a=(n.partytown||{}).forward||[],l=(r,n)=>e.postMessage([8,{S:t,q:r,b:T(t,Array.from(n))}]);if(n._ptf=void 0,a.map((e=>{s=n,e.split(".").map(((e,t,n)=>{s=s[n[t]]=t+1<r(n)?s[n[t]]||("push"===n[t+1]?[]:{}):(...e)=>l(n,e)}))})),o)for(i=0;i<r(o);i+=2)l(o[i],o[i+1])})(e,o,a),l.dispatchEvent(new CustomEvent("pt0"))),e.postMessage([6,o]))):requestAnimationFrame((()=>X(e,t)))},j=(e,t,r)=>{let n=[],i=[e,"Object",n];for(r in t)P(n,t,r);return i},H=(e,t,r,i,s)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const o=Object.getPrototypeOf(r),a=n(o),l=[];H(e,a,o,i,s),Object.keys(Object.getOwnPropertyDescriptors(r)).map((e=>P(l,i,e))),e.push([t,a,l,s,i.nodeName])}},P=(e,t,r,i,o,a)=>{try{s(r)&&isNaN(r[0])&&"all"!==r&&("function"==(o=typeof(i=t[r]))?(String(i).includes("[native")||Object.getPrototypeOf(t)[r])&&e.push([r,5]):"object"===o&&null!=i?"Object"!==(a=n(i))&&self[a]&&e.push([r,i.nodeType||a]):"symbol"!==o&&(r.toUpperCase()===r?e.push([r,6,i]):e.push([r,6])))}catch(e){console.warn(e)}},D=e=>{let t,n=[],i=0,s=r(w[e]);for(;i<s;i++)t=w[e].key(i),n.push([t,w[e].getItem(t)]);return n},k=(e,r)=>void 0!==e[r]?new e[r](t):0;let F;(async e=>{const t=new SharedArrayBuffer(1073741824),r=new Int32Array(t);return(i,s)=>{const c=s[0],u=s[1];if(0===c){const e=(()=>{const e=S.implementation.createHTMLDocument(),t=e.head,r=e.createTextNode(""),i=e.createComment(""),s=e.createDocumentFragment(),o=k(w,"IntersectionObserver"),c=k(w,"MutationObserver"),u=k(w,"ResizeObserver"),h=w.performance,p=w.screen,d=Object.getOwnPropertyNames(w).map((t=>((e,t,r,n)=>{if(r=t.match(/^(HTML|SVG)(.+)Element$/))return n=r[2],"S"==t[0]?e.createElementNS("http://www.w3.org/2000/svg",l[n]||n.slice(0,2).toLowerCase()+n.slice(2)):e.createElement(a[n]||n)})(e,t))).filter((e=>e)).map((e=>[e])),m=[[w.history],[h],[h.navigation],[h.timing],[p],[p.orientation],[o,12],[c,12],[u,12],[r],[i],[s],[t],[t.attributes],[t.classList],[t.dataset],[t.style],[e],[e.doctype],...d].filter((e=>e[0])).map((e=>{const t=e[0],r=e[1],i=n(t);return[i,w[i].prototype,t,r]})),g=[j("Window",w),j("Node",r)],f={i:JSON.stringify(v,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),A:new URL(b,w.location)+"",v:g,B:D("localStorage"),M:D("sessionStorage")};return m.map((([e,t,r,n])=>H(g,e,t,r,n))),((e,t,r)=>{void 0!==t[r]&&e.push([r,"Object",Object.keys(t[r].prototype).map((e=>[e,6])),12])})(g,w,"IntersectionObserverEntry"),f})();e.N=t,i.postMessage([1,e])}else 9===c?e(u,(e=>{const t=JSON.stringify(e),n=t.length;for(let e=0;e<n;e++)r[e+1]=t.charCodeAt(e);r[0]=n,Atomics.notify(r,0)})):((e,t,r)=>{2===t[0]?O(e,o(),w):(r=d[t[1]])&&(5===t[0]?requestAnimationFrame((()=>X(e,r))):4===t[0]&&((e,t,r,n,i)=>{(i=t.R.document.querySelector(`[data-ptid="${r}"]`))&&(n?i.dataset.pterror=n:i.type+="-x"),X(e,t)})(e,r,t[2],t[3]))})(i,s)}})(((e,t)=>A(F,e).then(t))).then((e=>{e&&(F=new Worker(URL.createObjectURL(new Blob(['/* Partytown 0.4.0 - MIT builder.io */\n(e=>{const t=Symbol(),r=Symbol(),n=Symbol(),i=Symbol(),s=Symbol(),o=Symbol(),a=Symbol(),$=Symbol(),l=new Map,c={},u=new WeakMap,d=[],h={},p=new Map,g=new Map,m={},f=new Map,w=new Map,y=e=>e.split(","),v=e=>{if(e=h.A+e,new URL(e).origin!=location.origin)throw"Invalid "+e;return e},I=y("clientWidth,clientHeight,clientTop,clientLeft,innerWidth,innerHeight,offsetWidth,offsetHeight,offsetTop,offsetLeft,outerWidth,outerHeight,pageXOffset,pageYOffset,scrollWidth,scrollHeight,scrollTop,scrollLeft"),S=y("childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling"),b=y("insertBefore,remove,removeChild,replaceChild"),M=y("className,width,height,hidden,innerHTML,innerText,textContent"),T=y("setAttribute,setAttributeNS,setProperty"),E=y("addEventListener,dispatchEvent,removeEventListener"),N=E.concat(T,y("add,observe,remove,unobserve")),x=/^[A-Z]([A-Z0-9-]*[A-Z0-9])?$/,L=()=>{},C=e=>e.length,A=e=>{try{return e.constructor.name}catch(e){}return""},P=[],R=()=>Math.round(999999999*Math.random()+4),W="text/partytown",H=(e,t,r)=>Object.defineProperty(e,t,{...r,configurable:!0}),D=(e,t)=>H(e,"name",{value:t}),O=(e,t,r)=>H(e.prototype,t,r),k=(e,t)=>Object.defineProperties(e.prototype,t),B=(e,t,r)=>O(e,t,{value:r,writable:!0}),U=(e,t)=>t in e[o],j=(e,t)=>e[o][t],F=(e,t,r)=>e[o][t]=r,_=[],V=(e,n,i,o,a,$)=>{if(_.push({S:e[t],w:e[r],a:[...e[s],...n],d:o,r:a}),3===i)h.I([10,{D:R(),O:[..._]}],$?[$ instanceof ArrayBuffer?$:$.buffer]:void 0),_.length=0;else if(1===i)return z(!0);h.c=setTimeout(z,20)},z=e=>{if(clearTimeout(h.c),C(_)){const t=_[C(_)-1],r={D:R(),O:[..._]};if(_.length=0,e){const e=((e,t)=>{const r=e.N,n=new Int32Array(r);Atomics.store(n,0,0),e.I([9,t]),Atomics.wait(n,0,0);let i=Atomics.load(n,0),s="",o=0;for(;o<i;o++)s+=String.fromCharCode(n[o+1]);return JSON.parse(s)})(h,r),n=e.z,i=$e(t.S,t.w,t.a,e.K);if(e.p){if(n)return Promise.reject(e.p);throw new Error(e.p)}return n?Promise.resolve(i):i}h.I([10,r])}},q=(e,t,r,n)=>h.i.get&&(n=h.i.get(J(e,t)))!==a?n:n=V(e,t,1,void 0,r),G=(e,t,r,n)=>{if(h.i.set){if((n=h.i.set({value:r,prevent:$,...J(e,t)}))===$)return;n!==a&&(r=n)}M.some((e=>t.includes(e)))&&(f.clear(),t[t.length-1]),t=[...t,ae(e,r),0],V(e,t,2)},X=(e,t,r,n,i,s,o,$)=>h.i.apply&&(o=h.i.apply({args:r,...J(e,t)}))!==a?o:($=t[C(t)-1],t=[...t,ae(e,r)],n=n||(N.includes($)?2:1),"setAttribute"===$&&U(e,r[0])?F(e,r[0],r[1]):b.includes($)?(f.clear(),w.clear()):T.includes($)&&(n=2,f.clear()),o=V(e,t,n,i,void 0,s)),Z=(e,t,r)=>{V(e,[1,t,ae(e,r)],1)},J=(e,t)=>({name:t.join("."),continue:a,nodeName:e[n],constructor:A(e)}),Y=(e,t,r,n,i)=>((i=l.get(t))||(i=m[e].k(r,t,n),l.set(t,i)),i),K=(e,t)=>B(e,"nodeType",t),Q=(e,t)=>t.map((t=>O(e,t,{get(){let e=ee(this,t),r=w.get(e);return r||(r=q(this,[t]),w.set(e,r)),r}}))),ee=(e,n,i)=>[e[t],e[r],n,...(i||P).map((e=>String(e&&e[t]?e[r]:e)))].join("."),te=(e,t)=>y(t).map((t=>O(e,t,{get(){return U(this,t)||F(this,t,q(this,[t])),j(this,t)},set(e){j(this,t)!==e&&G(this,[t],e),F(this,t,e)}}))),re=e=>I.map((t=>O(e,t,{get(){const e=f.get(ee(this,t));if("number"==typeof e)return e;const r=q(this,[t],I);return r&&"object"==typeof r?(Object.entries(r).map((([e,t])=>f.set(ee(this,e),t))),r[t]):r}}))),ne=(e,t)=>t.map((t=>{e.prototype[t]=function(...e){let r=ee(this,t,e),n=f.get(r);return n||(n=X(this,[t],e),f.set(r,n)),n}})),ie=(e,n,i,s,o)=>{return void 0!==i&&(o=typeof i)?"string"===o||"boolean"===o||"number"===o||null==i?[0,i]:"function"===o?[4,{S:e,w:n,J:(a=i,($=u.get(a))||(u.set(a,$=R()),c[$]=a),$)}]:(s=s||new Set)&&Array.isArray(i)?s.has(i)?[1,[]]:s.add(i)&&[1,i.map((t=>ie(e,n,t,s)))]:"object"===o?"number"==typeof i[r]?[3,{S:i[t],w:i[r]}]:i instanceof Event?[5,oe(e,n,i,!1,s)]:se&&i instanceof TrustedHTML?[0,i.toString()]:i instanceof ArrayBuffer?[8,i]:ArrayBuffer.isView(i)?[9,i.buffer,A(i)]:[2,oe(e,n,i,!0,s)]:void 0:i;var a,$},se="undefined"!=typeof TrustedHTML,oe=(e,t,r,n,i,s,o,a)=>{if(s={},!i.has(r))for(o in i.add(r),r)a=r[o],(n||"function"!=typeof a)&&(s[o]=ie(e,t,a,i));return s},ae=(e,n)=>e?ie(e[t],e[r],n):[0,n],$e=(e,t,r,n,i,s,o,a)=>{if(n){if(i=n[0],s=n[1],0===i||11===i||12===i)return s;if(4===i)return ue(r,s);if(6===i)return L;if(3===i)return le(s);if(7===i)return new de(s.map(le));if(10===i)return new he(s);if(1===i)return s.map((n=>$e(e,t,r,n)));for(a in o={},s)o[a]=$e(e,t,[...r,a],s[a]);if(13===i)return new m[e].R.CSSStyleDeclaration(e,t,r,o);if(5===i){if("message"===o.type&&o.origin){let e,t=JSON.stringify(o.data),r=d.find((e=>e.m===t));r&&(e=m[r.S],e&&(o.source=e.R,o.origin=e.C.origin))}return new Proxy(new Event(o.type,o),{get:(e,t)=>t in o?o[t]:"function"==typeof e[String(t)]?L:e[String(t)]})}if(2===i)return o}},le=({S:e,w:t,E:r})=>ce(e,t)||Y(e,t,r),ce=(e,t,r)=>(r=m[e])&&0===t?r.R:1===t?r.n:2===t?r.o:3===t?r.s:4===t?r.e:void 0,ue=(e,{S:t,w:r,E:n,J:i})=>(c[i]||u.set(c[i]=function(...i){const s=Y(t,r,n);return X(s,e,i)},i),c[i]),de=class{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 C(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}},he=class{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}},pe=(e,t,r)=>{let n,i,s=()=>origin===e.origin,o=t=>((t=r.get(e.origin))||r.set(e.origin,t=[]),t),a=e=>o().findIndex((t=>t[ge]===e)),$={getItem:e=>(n=a(e),n>-1?o()[n][me]:null),setItem(r,i){n=a(r),n>-1?o()[n][me]=i:o().push([r,i]),s()&&X(e,[t,"setItem"],[r,i],2)},removeItem(r){n=a(r),n>-1&&o().splice(n,1),s()&&X(e,[t,"removeItem"],[r],2)},key:e=>(i=o()[e],i?i[ge]:null),clear(){o().length=0,s()&&X(e,[t,"clear"],P,2)},get length(){return o().length}};e[t]=$},ge=0,me=1,fe=(e,t,r)=>{e[r]=D(class extends t{constructor(e,t,r,i){return super(e,t,r,i||{}),new Proxy(this,{get:(e,t)=>e[t]?e[t]:(e[t]||"string"!=typeof t||e[n][t]||(e[n][t]=q(e,[t])),e[n][t]),set:(e,t,r)=>(e[n][t]=r,G(e,[t],r),f.clear(),!0)})}setProperty(...e){this[n][e[0]]=e[1],X(this,["setProperty"],e,2),e[0],f.clear()}getPropertyValue(e){return this[e]}removeProperty(e){let t=this[n][e];return X(this,["removeProperty"],[e],2),f.clear(),this[n][e]=void 0,t}},r)},we=(e,t)=>{e[t]=D(class{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=>ve(e,t):"length"===n?ye(e).length:isNaN(n)?t[r]:ve(e,n)}})}insertRule(e,t){const r=ye(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=r.length&&(X(this.ownerNode,["sheet","insertRule"],[e,t],2),r.splice(t,0,0)),this.ownerNode,f.clear(),t}deleteRule(e){X(this.ownerNode,["sheet","deleteRule"],[e],2),ye(this.ownerNode).splice(e,1),this.ownerNode,f.clear()}get type(){return"text/css"}},t);const r={sheet:{get(){return new e[t](this)}}};k(e.HTMLStyleElement,r)},ye=(e,t)=>((t=j(e,2))||(t=q(e,["sheet","cssRules"]),F(e,2,t)),t),ve=(e,t,r)=>(0===(r=ye(e))[t]&&(r[t]=q(e,["sheet","cssRules",parseInt(t,10)])),r[t]),Ie=(e,t,r,n,i)=>{try{e.l=t,Se(e,r)}catch(e){console.error(r,e),i=String(e.stack||e)}return e.l=-1,i},Se=(e,t,r)=>{e.L=1,new Function(`with(this){${t.replace(/\\bthis\\b/g,"(thi$(this)?window:this)").replace(/\\/\\/# so/g,"//Xso")}\\n;function thi$(t){return t===this}${(h.i.globalFns||[]).filter((e=>/[a-zA-Z_$][0-9a-zA-Z_$]*/.test(e))).map((e=>`(typeof ${e}==\'function\'&&(window.${e}=${e}))`)).join(";")}}`+(r?"\\n//# sourceURL="+r:"")).call(e.R),e.L=0},be=(e,t,r)=>{(r=j(e,t))&&setTimeout((()=>r.map((e=>e({type:t})))))},Me=(e,t,r,n,i,s)=>{for(n=e.C;!n.host&&(n=(e=m[e.H]).C,e.S!==e.H););return i=new URL(t||"",n),!r&&h.i.resolveUrl&&(s=h.i.resolveUrl(i,n))?s:i},Te=(e,t,r)=>Me(e,t,r)+"",Ee=()=>`<script src="${v("partytown.js")}"><\\/script>`,Ne=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(Te(e,t,!0),{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]}},xe={addEventListener:{value(...e){const t=e[0],r=j(this,t)||[];r.push(e[1]),F(this,t,r)}},async:{get:L,set:L},defer:{get:L,set:L},onload:{get(){let e=j(this,"load");return e&&e[0]||null},set(e){F(this,"load",e?[e]:null)}},onerror:{get(){let e=j(this,"error");return e&&e[0]||null},set(e){F(this,"error",e?[e]:null)}},getAttribute:{value(e){return"src"===e?this.src:X(this,["getAttribute"],[e])}},setAttribute:{value(e,t){Le.includes(e)?this[e]=t:X(this,["setAttribute"],[e,t])}}},Le=y("src,type"),Ce=e=>{const t={innerHTML:Ae,innerText:Ae,src:{get(){return j(this,4)||""},set(e){const t=Xe(this),r=Te(t,e,!0);e=Te(t,e),F(this,4,e),G(this,["src"],e),r!==e&&G(this,["dataset","ptsrc"],r)}},textContent:Ae,type:{get(){return q(this,["type"])},set(e){Pe(e)||(F(this,5,e),G(this,["type"],e))}},...xe};k(e,t)},Ae={get(){return j(this,3)||""},set(e){F(this,3,e)}},Pe=e=>!e||"text/javascript"===e,Re=(e,i)=>{const s=D(class extends i{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,i){const s=e[t]=this[t],o=e[r],a=e[n],$="SCRIPT"===a,l="IFRAME"===a;if($){const t=j(e,3),r=j(e,5);if(t){if(Pe(r)){const r=Ie(Xe(e),o,t,0,""),n=r?"pterror":"ptid",i=r||o;G(e,["type"],W+"-x"),G(e,["dataset",n],i)}G(e,["innerHTML"],t)}}return X(this,["insertBefore"],[e,i],2),l&&((e,t)=>{let r,n,i=0,s=()=>{m[e]&&m[e].x&&!m[e].y?(r=j(t,1)?"error":"load",n=j(t,r),n&&n.map((e=>e({type:r})))):i++>2e3?(n=j(t,"error"),n&&n.map((e=>e({type:"error"})))):setTimeout(s,9)};s()})(o,e),$&&(z(!0),h.I([5,s])),e}get nodeName(){return this[n]}get nodeType(){return 3}get ownerDocument(){return Xe(this).n}},"Node");Q(s,y("childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling")),e.Node=s},We=y("AUDIO,CANVAS,VIDEO"),He=y("Audio,MediaSource"),De=e=>{k(e,{body:{get(){return Xe(this).e}},createElement:{value(e){if(e=e.toUpperCase(),!x.test(e))throw e+" not valid";const r=this[t],n=R(),i=Y(r,n,e);if(X(this,["createElement"],[e],2,n),"IFRAME"===e)Ge({S:n,H:r,Q:"about:blank"},!0).R.fetch=fetch,G(i,["srcdoc"],Ee());else if("SCRIPT"===e){const e=j(i,5);Pe(e)&&G(i,["type"],W)}return i}},createElementNS:{value(e,r){const n=R(),i=Y(this[t],n,r,e);return X(this,["createElementNS"],[e,r],2,n),i}},createTextNode:{value(e){const r=this[t],n=R(),i=Y(r,n,"#text");return X(this,["createTextNode"],[e],2,n),i}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],r=Xe(this).l;return r>0?Y(e,r,"SCRIPT"):null}},defaultView:{get(){return Ze(this)}},documentElement:{get(){return Xe(this).o}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[Xe(this).e]:"HEAD"===e?[Xe(this).s]:X(this,["getElementsByTagName"],[e])}},head:{get(){return Xe(this).s}},implementation:{value:{hasFeature:()=>!0}},location:{get(){return Xe(this).C},set(e){Xe(this).C.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}}),te(e,"compatMode,referrer")},Oe=e=>{k(e,{parentElement:{get(){return this.parentNode}},parentNode:{get(){return Xe(this).o}}})},ke=e=>{k(e,{parentElement:{value:null},parentNode:{get(){return Xe(this).n}}})},Be=e=>{k(e,{localName:{get(){return this[n].toLowerCase()}},namespaceURI:{get(){return this[i]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[n]}}}),Q(e,S),re(e),ne(e,y("getClientRects,getBoundingClientRect")),te(e,"id")},Ue=e=>{const t={};y("hash,host,hostname,href,origin,pathname,port,protocol,search").map((e=>{t[e]={get(){let t,r=Xe(this),n=j(this,4);return"string"!=typeof n&&(t=q(this,["href"]),F(this,4,t),n=new URL(t)[e]),Me(r,n)[e]},set(t){let r=Xe(this),n=j(this,4),i=Me(r,n);i[e]=new URL(t+"",i.href),F(this,4,i.href),G(this,["href"],i.href)}}})),k(e,t)},je=e=>{const t={contentDocument:{get(){return Fe(this).n}},contentWindow:{get(){return Fe(this).R}},src:{get(){let e=Fe(this).C.href;return e.startsWith("about")&&(e=""),e},set(e){let t,r=new XMLHttpRequest,n=Fe(this);n.C.href=e=Te(Xe(this),e),n.y=1,F(this,1,void 0),r.open("GET",e,!1),r.send(),t=r.status,t>199&&t<300?(G(this,["srcdoc"],`<base href="${e}">`+r.responseText.replace(/<script>/g,\'<script type="text/partytown">\').replace(/<script /g,\'<script type="text/partytown" \').replace(/text\\/javascript/g,W)+Ee()),z(!0),h.I([5,n.S])):(F(this,1,t),n.y=0)}},...xe};k(e,t)},Fe=e=>{const n=e[r];return m[n]||Ge({S:n,H:e[t],Q:q(e,["src"])||"about:blank"},!0),m[n]},_e=e=>{const t=(e,t)=>{const{a:r,b:n,c:i,d:s,e:o,f:a}=X(e,[t],P);return new DOMMatrixReadOnly([r,n,i,s,o,a])},r={...e,getCTM:{value:function(){return t(this,"getCTM")}},getScreenCTM:{value:function(){return t(this,"getScreenCTM")}}};k(e,r)},Ve=(a,$,l,c)=>{const u=class{constructor(e,a,$,l,c){this[t]=e,this[r]=a,this[s]=$||[],this[n]=l,this[o]={},c&&(this[i]=c)}},d=new(D(class extends URL{assign(){}reload(){}replace(){}},"Location"))(l),f=D(class extends u{constructor(){super(a,0);let n,i,o=this,l=0,b=()=>{l||((h.u||(e.g=[q,G,X,Z,k,R,t,r,s],h.t(v("partytown-media.js")),h.u=e.f,delete e.f),h.u)(u,I,m[a],o,He),l=1)},M={},T=(e,t,r)=>(We.includes(e)&&b(),new(M[e]?M[e]:e.includes("-")?M.UNKNOWN:M.DIV)(a,t,P,e,r));var E;o.Window=f,Re(o,u),fe(o,u,"CSSStyleDeclaration"),((e,t,r)=>{e[r]=D(class extends t{now(){return performance.now()}},r)})(o,u,"Performance"),h.v.map((([e,n,i,$,l])=>{const c=qe[e]?w:"EventTarget"===n?I:"Object"===n?u:o[n],d=o[e]=D(12===$?class extends u{constructor(...t){super(a,R()),Z(this,e,t)}}:o[e]||class extends c{},e);l&&(M[l]=d),i.map((([e,n,i])=>{e in d.prototype||e in c.prototype||("string"==typeof n?O(d,e,{get(){if(!U(this,e)){const i=this[t],a=this[r],$=[...this[s],e],l=o[n];l&&F(this,e,new l(i,a,$))}return j(this,e)},set(t){F(this,e,t)}}):5===n?B(d,e,(function(...t){return X(this,[e],t)})):n>0&&(void 0!==i?B(d,e,i):O(d,e,{get(){return q(this,[e])},set(t){return G(this,[e],t)}})))}))})),y("atob,btoa,crypto,indexedDB,setTimeout,setInterval,clearTimeout,clearInterval").map((t=>{delete f.prototype[t],t in o||(n=e[t],null!=n&&(o[t]="function"!=typeof n||n.toString().startsWith("class")?n:n.bind(e)))})),Object.getOwnPropertyNames(e).map((t=>{t in o||(o[t]=e[t])})),He.map((e=>H(o,e,{get:()=>(b(),o[e])}))),"trustedTypes"in e&&(o.trustedTypes=e.trustedTypes),Be(o.Element),De(o.Document),E=o.DocumentFragment,K(E,11),Q(E,S),Ue(o.HTMLAnchorElement),je(o.HTMLIFrameElement),Ce(o.HTMLScriptElement),_e(o.SVGGraphicsElement),Oe(o.HTMLHeadElement),Oe(o.HTMLBodyElement),ke(o.HTMLHtmlElement),we(o,"CSSStyleSheet"),K(o.Comment,8),K(o.DocumentType,10),m[a]={S:a,H:$,R:new Proxy(o,{has:()=>!0}),n:T("#document",1),o:T("HTML",2),s:T("HEAD",3),e:T("BODY",4),C:d,k:T},o.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),o.cancelAnimationFrame=e=>clearTimeout(e),o.requestIdleCallback=(e,t)=>(t=Date.now(),setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)),o.cancelIdleCallback=e=>clearTimeout(e),pe(o,"localStorage",p),pe(o,"sessionStorage",g),c&&(i={},o.history={pushState(e){i=e},replaceState(e){i=e},get state(){return i},length:0},o.indexeddb=void 0),o.Worker=void 0}addEventListener(...e){"load"===e[0]?Xe(this).L&&setTimeout((()=>e[1]({type:"load"}))):X(this,["addEventListener"],e,2)}get body(){return Xe(this).e}get document(){return Xe(this).n}get documentElement(){return Xe(this).o}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(Te(Xe(this),e),t)}get frameElement(){const e=Xe(this),t=e.H,r=e.S;return r===t?null:Y(t,r,"IFRAME")}get globalThis(){return this}get head(){return Xe(this).s}get location(){return d}set location(e){d.href=e+""}get Image(){return Ne(Xe(this))}get name(){return name+this[t]}get navigator(){return(e=>{let t,r={sendBeacon:(t,r)=>{try{return fetch(Te(e,t,!0),{method:"POST",body:r,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}}};for(t in navigator)r[t]=navigator[t];return r})(Xe(this))}get origin(){return d.origin}set origin(e){}get parent(){return ze(m[Xe(this).H].R,this[t])}postMessage(...e){X(this,["postMessage"],e,3)}get self(){return this}get top(){for(let e in m)if(m[e].S===m[e].H)return ze(m[e].R,this[t])}get window(){return this}get XMLHttpRequest(){const e=Xe(this),t=XMLHttpRequest,r=String(t),n=D(class extends t{open(...t){t[1]=Te(e,t[1]),super.open(...t)}set withCredentials(e){}toString(){return r}},A(t));return n.prototype.constructor.toString=()=>r,n}},"Window"),w=class extends u{constructor(e,t,r,n){return super(e,t,r,n),new Proxy(this,{get:(e,t)=>q(e,[t]),set:(e,t,r)=>(G(e,[t],r),!0)})}},I=class extends u{};E.map((e=>I.prototype[e]=function(...t){return X(this,[e],t,2)})),te(f,"devicePixelRatio"),re(f),ne(f,["getComputedStyle"]),new f},ze=(e,t)=>new Proxy(e,{get:(e,r)=>"postMessage"===r?(...r)=>{C(d)>20&&d.splice(0,5),d.push({m:JSON.stringify(r[0]),S:t}),e.postMessage(...r)}:e[r]}),qe={DOMStringMap:1,NamedNodeMap:1},Ge=({S:e,H:t,Q:r},n)=>(m[e]||Ve(e,t,r,n),h.I([5,e]),m[e]),Xe=e=>m[e[t]],Ze=e=>Xe(e).R,Je=[],Ye=t=>{const r=t.data,n=r[0],i=r[1];h.x?5===n?(async e=>{let t,r=e.S,n=e.w,i=Y(r,n,"SCRIPT"),s=e.j,o=e.Q,a=e.F,$="",l=m[r];if(o)try{o=Me(l,o)+"",F(i,4,o),t=await fetch(o),t.ok?(s=await t.text(),l.l=n,Se(l,s,a||o),be(i,"load")):($=t.statusText,be(i,"error"))}catch(e){console.error(e),$=String(e.stack||e),be(i,"error")}else s&&($=Ie(l,n,s,0,$));l.l=-1,h.I([4,r,n,$])})(i):7===n?(({S:e,w:t,J:r,P:n,b:i})=>{if(c[r])try{c[r].apply($e(e,t,[],n),$e(e,t,[],i))}catch(e){console.error(e)}})(i):8===n?(({S:e,q:t,b:r})=>{try{let n=m[e].R,i=0,s=C(t);for(;i<s;i++)i+1<s?n=n[t[i]]:n[t[i]].apply(n,$e(null,0,[],r))}catch(e){console.error(e)}})(i):3===n?Ge(i):6===n?(m[i].x=1,m[i].y=0):11===n&&(m[r[1]].C.href=r[2]):1===n?((t=>{const r=h.i=JSON.parse(t.i);h.t=importScripts.bind(e),h.v=t.v,h.A=t.A,h.I=postMessage.bind(e),h.N=t.N,p.set(origin,t.B),g.set(origin,t.M),e.importScripts=void 0,delete e.postMessage,delete e.WorkerGlobalScope,y("resolveUrl,get,set,apply").map((e=>{r[e]&&(r[e]=new Function("return "+r[e])())})),h.x=1})(r[1]),h.I([2]),[...Je].map(Ye),Je.length=0):Je.push(t)};e.onmessage=Ye,postMessage([0])})(self);\n'],{type:"text/javascript"})),{name:"Partytown 🎉"}),F.onmessage=t=>{const r=t.data;10===r[0]?A(F,r[1]):e(F,r)},w.addEventListener("pt1",(e=>O(F,g(e.detail.frameElement),e.detail))))}))})(window); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
(t=>{const e=Symbol(),s=Symbol(),n=Symbol(),r=Symbol(),i=Symbol(),o=Symbol(),a=[],u=(e,s)=>t[e]=d(e,s),d=(t,e)=>Object.defineProperty(e,"name",{value:t}),[c,h,f,p,g,l,m,v,S,b,y]=t.ptm;class L extends m{start(...t){return f(this,["start"],t)}end(...t){return f(this,["end"],t)}get length(){return c(this,["length"])}}var w;u("TimeRanges",L);class T extends Array{constructor(t){super(),this[s]=t}addEventListener(...t){f(this[s],["sourceBuffers","addEventListener"],t,3)}removeEventListener(...t){f(this[s],["sourceBuffers","removeEventListener"],t,3)}}class E extends v{constructor(t){super(t[S],t[b],["sourceBuffers"]),this[w]=[],this[s]=t}abort(){const t=B(this);f(this,[t,"appendWindowStart"],a,1)}addEventListener(...t){const e=B(this);f(this,[e,"addEventListener"],t,3)}appendBuffer(t){this[i].push(["appendBuffer",[t],t]),k(this)}get appendWindowStart(){const t=B(this);return c(this,[t,"appendWindowStart"])}set appendWindowStart(t){const e=B(this);h(this,[e,"appendWindowStart"],t)}get appendWindowEnd(){const t=B(this);return c(this,[t,"appendWindowEnd"])}set appendWindowEnd(t){const e=B(this);h(this,[e,"appendWindowEnd"],t)}get buffered(){const t=this[s],e=B(this);return new L(t[S],t[b],["sourceBuffers",e,"buffered"])}changeType(t){const e=B(this);f(this,[e,"changeType"],[t],2)}get mode(){const t=B(this);return c(this,[t,"mode"])}set mode(t){const e=B(this);h(this,[e,"mode"],t)}remove(t,e){this[i].push(["remove",[t,e]]),k(this)}removeEventListener(...t){const e=B(this);f(this,[e,"removeEventListener"],t,3)}get timestampOffset(){const t=B(this);return c(this,[t,"timestampOffset"])}set timestampOffset(t){const e=B(this);h(this,[e,"timestampOffset"],t)}get updating(){const t=B(this);return c(this,[t,"updating"])}}w=i;const k=t=>{if(t[i].length){if(!t.updating){const e=t[i].shift();if(e){const s=B(t);f(t,[s,e[0]],e[1],3,void 0,e[2])}}setTimeout((()=>k(t)),50)}},B=t=>t?t[s][r].indexOf(t):-1;u("SourceBufferList",T),u("SourceBuffer",E);const x=class{constructor(t){const e="audioTracks",s=t[S],n=t[b];return new Proxy({addEventListener(...s){f(t,[e,"addEventListener"],s,3)},getTrackById:(...s)=>f(t,[e,"getTrackById"],s),get length(){return c(t,[e,"length"])},removeEventListener(...s){f(t,[e,"removeEventListener"],s,3)}},{get:(t,r)=>"number"==typeof r?new R(s,n,[e,r]):t[r]})}},R=class extends m{get enabled(){return c(this,["enabled"])}set enabled(t){h(this,["enabled"],t)}get id(){return c(this,["id"])}get kind(){return c(this,["kind"])}get label(){return c(this,["label"])}get language(){return c(this,["language"])}get sourceBuffer(){return new E(this)}},W="audioTracks"in t.HTMLMediaElement.prototype;W&&(u("AudioTrackList",x),u("AudioTrack",R));const O={buffered:{get(){return this[o]||(this[o]=new L(this[S],this[b],["buffered"]),setTimeout((()=>{this[o]=void 0}),5e3)),this[o]}},readyState:{get(){return 4===this[n]?4:("number"!=typeof this[n]&&(this[n]=c(this,["readyState"]),setTimeout((()=>{this[n]=void 0}),1e3)),this[n])}}};W&&(O.audioTracks={get(){return new x(this)}}),g(t.HTMLMediaElement,O);const C=new Map,P=(t,e,s)=>{const n=t[S],r=l(),i={[S]:n,[b]:r,[y]:[]},o=f(t,["getContext"],[e,s],1,r),a={get:(t,e)=>"string"==typeof e&&e in o?"function"==typeof o[e]?(...t)=>{if(e.startsWith("create")){const r=l();return f(i,[e],t,2,r),"createImageData"===e||"createPattern"===e?(s=`${e}()`,console.warn(`${s} not implemented`),{setTransform:()=>{}}):new U(n,r)}var s;const r=M.includes(e)?1:2;return f(i,[e],t,r)}:o[e]:t[e],set:(t,e,s)=>("string"==typeof e&&e in o?(o[e]!==s&&"function"!=typeof s&&h(i,[e],s),o[e]=s):t[e]=s,!0)};return new Proxy(o,a)},U=class{constructor(t,e){this[S]=t,this[b]=e,this[y]=[]}addColorStop(...t){f(this,["addColorStop"],t,2)}};u("CanvasGradient",U),u("CanvasPattern",CanvasPattern);const M="getContextAttributes,getImageData,getLineDash,getTransform,isPointInPath,isPointInStroke,measureText".split(","),I=(t,e,s)=>{const n=t[S],r=l(),i={[S]:n,[b]:r,[y]:[]},o=f(t,["getContext"],[e,s],1,r),a={get:(t,e)=>"string"==typeof e?"function"!=typeof o[e]?o[e]:(...t)=>f(i,[e],t,$(e)):t[e],set:(t,e,s)=>("string"==typeof e&&e in o?(o[e]!==s&&"function"!=typeof s&&h(i,[e],s),o[e]=s):t[e]=s,!0)};return new Proxy(o,a)},A="checkFramebufferStatus,makeXRCompatible".split(","),$=t=>t.startsWith("create")||t.startsWith("get")||t.startsWith("is")||A.includes(t)?1:2,j={getContext:{value(t,s){return this[e]||(this[e]=(t.includes("webgl")?I:P)(this,t,s)),this[e]}}};g(t.HTMLCanvasElement,j);const H={Audio:t=>d("HTMLAudioElement",class{constructor(e){const s=t.j.createElement("audio");return s.src=e,s}}),MediaSource:(t,e,s)=>{const n=e.URL=d("URL",class extends URL{});return n.createObjectURL=t=>f(e,["URL","createObjectURL"],[t]),n.revokeObjectURL=t=>f(e,["URL","revokeObjectURL"],[t]),d(s,class extends v{constructor(){super(t.N,l()),this[r]=new T(this),p(this,s,a)}get activeSourceBuffers(){return[]}addSourceBuffer(t){const e=new E(this);return this[r].push(e),f(this,["addSourceBuffer"],[t]),e}clearLiveSeekableRange(){f(this,["clearLiveSeekableRange"],a,2)}get duration(){return c(this,["duration"])}set duration(t){h(this,["duration"],t)}endOfStream(t){f(this,["endOfStream"],[t],3)}get readyState(){return c(this,["readyState"])}removeSourceBuffer(t){const e=B(t);e>-1&&(this[r].splice(e,1),f(this,["removeSourceBuffer"],[e],1))}setLiveSeekableRange(t,e){f(this,["setLiveSeekableRange"],[t,e],2)}get sourceBuffers(){return this[r]}static isTypeSupported(t){if(!C.has(t)){const n=f(e,[s,"isTypeSupported"],[t]);C.set(t,n)}return C.get(t)}})}};t.ptm=H})(self); | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
(e=>{const[t,s,n,r,i,a,o,d,u]=e.g;delete e.g;const c=Symbol(),h=Symbol(),f=Symbol(),p=Symbol(),g=Symbol(),l=Symbol(),m=[],v=(e,t,s)=>e[t]=S(t,s),S=(e,t)=>Object.defineProperty(t,"name",{value:e}),b=(e,t)=>{const r={getContext:{value(e,t){return this[c]||(this[c]=(e.includes("webgl")?g:p)(this,e,t)),this[c]}}},h=v(t,"CanvasGradient",class extends e{addColorStop(...e){n(this,["addColorStop"],e,2)}}),f=v(t,"CanvasPattern",class extends e{setTransform(...e){n(this,["setTransform"],e,2)}}),p=(e,t,r)=>{const i=e[o],c=a(),f={[o]:i,[d]:c,[u]:[]},p=n(e,["getContext"],[t,r],1,c),g="getContextAttributes,getImageData,getLineDash,getTransform,isPointInPath,isPointInStroke,measureText".split(","),l={get:(e,t)=>"string"==typeof t&&t in p?"function"==typeof p[t]?(...e)=>{if(t.startsWith("create")){const r=a();return n(f,[t],e,2,r),"createImageData"===t||"createPattern"===t?(s=`${t}()`,console.warn(`${s} not implemented`),{setTransform:()=>{}}):new h(i,r)}var s;const r=g.includes(t)?1:2;return n(f,[t],e,r)}:p[t]:e[t],set:(e,t,n)=>("string"==typeof t&&t in p?(p[t]!==n&&"function"!=typeof n&&s(f,[t],n),p[t]=n):e[t]=n,!0)};return new Proxy(p,l)},g=(e,t,r)=>{const i=e[o],c=a(),h={[o]:i,[d]:c,[u]:[]},f=n(e,["getContext"],[t,r],1,c),p={get:(e,t)=>"string"==typeof t?"function"!=typeof f[t]?f[t]:(...e)=>n(h,[t],e,m(t)):e[t],set:(e,t,n)=>("string"==typeof t&&t in f?(f[t]!==n&&"function"!=typeof n&&s(h,[t],n),f[t]=n):e[t]=n,!0)};return new Proxy(f,p)},l="checkFramebufferStatus,makeXRCompatible".split(","),m=e=>e.startsWith("create")||e.startsWith("get")||e.startsWith("is")||l.includes(e)?1:2;v(t,"CanvasGradient",h),v(t,"CanvasPattern",f),i(t.HTMLCanvasElement,r)},y=(e,u,c,b)=>{var y,T;b.Audio=S("HTMLAudioElement",class{constructor(e){const t=c.k("audio",a());return t.src=e,t}});const w=class extends e{get enabled(){return t(this,["enabled"])}set enabled(e){s(this,["enabled"],e)}get id(){return t(this,["id"])}get kind(){return t(this,["kind"])}get label(){return t(this,["label"])}get language(){return t(this,["language"])}get sourceBuffer(){return new x(this)}},E=class{constructor(e){const s="audioTracks",r=e[o],i=e[d];return new Proxy({addEventListener(...t){n(e,[s,"addEventListener"],t,3)},getTrackById:(...t)=>n(e,[s,"getTrackById"],t),get length(){return t(e,[s,"length"])},removeEventListener(...t){n(e,[s,"removeEventListener"],t,3)}},{get:(e,t)=>"number"==typeof t?new w(r,i,[s,t]):e[t]})}},k=v(b,"SourceBufferList",class extends Array{constructor(e){super(),this[h]=e}addEventListener(...e){n(this[h],["sourceBuffers","addEventListener"],e,3)}removeEventListener(...e){n(this[h],["sourceBuffers","removeEventListener"],e,3)}}),x=v(b,"SourceBuffer",(T=class extends u{constructor(e){super(e[o],e[d],["sourceBuffers"]),this[y]=[],this[h]=e}abort(){const e=R(this);n(this,[e,"appendWindowStart"],m,1)}addEventListener(...e){const t=R(this);n(this,[t,"addEventListener"],e,3)}appendBuffer(e){this[g].push(["appendBuffer",[e],e]),M(this)}get appendWindowStart(){const e=R(this);return t(this,[e,"appendWindowStart"])}set appendWindowStart(e){const t=R(this);s(this,[t,"appendWindowStart"],e)}get appendWindowEnd(){const e=R(this);return t(this,[e,"appendWindowEnd"])}set appendWindowEnd(e){const t=R(this);s(this,[t,"appendWindowEnd"],e)}get buffered(){const e=this[h],t=R(this);return new B(e[o],e[d],["sourceBuffers",t,"buffered"])}changeType(e){const t=R(this);n(this,[t,"changeType"],[e],2)}get mode(){const e=R(this);return t(this,[e,"mode"])}set mode(e){const t=R(this);s(this,[t,"mode"],e)}remove(e,t){this[g].push(["remove",[e,t]]),M(this)}removeEventListener(...e){const t=R(this);n(this,[t,"removeEventListener"],e,3)}get timestampOffset(){const e=R(this);return t(this,[e,"timestampOffset"])}set timestampOffset(e){const t=R(this);s(this,[t,"timestampOffset"],e)}get updating(){const e=R(this);return t(this,[e,"updating"])}},y=g,T)),B=v(b,"TimeRanges",class extends e{start(...e){return n(this,["start"],e)}end(...e){return n(this,["end"],e)}get length(){return t(this,["length"])}}),R=e=>e?e[h][p].indexOf(e):-1,M=e=>{if(e[g].length){if(!e.updating){const t=e[g].shift();if(t){const s=R(e);n(e,[s,t[0]],t[1],3,void 0,t[2])}}setTimeout((()=>M(e)),50)}},W={buffered:{get(){return this[l]||(this[l]=new B(this[o],this[d],["buffered"]),setTimeout((()=>{this[l]=void 0}),5e3)),this[l]}},readyState:{get(){return 4===this[f]?4:("number"!=typeof this[f]&&(this[f]=t(this,["readyState"]),setTimeout((()=>{this[f]=void 0}),1e3)),this[f])}}};v(b,"MediaSource",class extends u{constructor(){super(c.S,a()),this[p]=new k(this),r(this,"MediaSource",m)}get activeSourceBuffers(){return[]}addSourceBuffer(e){const t=new x(this);return this[p].push(t),n(this,["addSourceBuffer"],[e]),t}clearLiveSeekableRange(){n(this,["clearLiveSeekableRange"],m,2)}get duration(){return t(this,["duration"])}set duration(e){s(this,["duration"],e)}endOfStream(e){n(this,["endOfStream"],[e],3)}get readyState(){return t(this,["readyState"])}removeSourceBuffer(e){const t=R(e);t>-1&&(this[p].splice(t,1),n(this,["removeSourceBuffer"],[t],1))}setLiveSeekableRange(e,t){n(this,["setLiveSeekableRange"],[e,t],2)}get sourceBuffers(){return this[p]}static isTypeSupported(e){if(!L.has(e)){const t=n(b,["MediaSource","isTypeSupported"],[e]);L.set(e,t)}return L.get(e)}});const C=b.URL=S("URL",class extends URL{});"audioTracks"in b.HTMLMediaElement.prototype&&(v(b,"AudioTrackList",E),v(b,"AudioTrack",w),W.audioTracks={get(){return new E(this)}}),i(b.HTMLMediaElement,W),C.createObjectURL=e=>n(b,["URL","createObjectURL"],[e]),C.revokeObjectURL=e=>n(b,["URL","revokeObjectURL"],[e])},L=new Map;e.f=(e,t,s,n,r)=>{r.map((e=>{delete n[e]})),b(e,n),y(e,t,s,n)}})(self); |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
const e=new Map,t=(e,t)=>({y:e.y,l:t}),n=(e,t)=>new Response(e,{headers:{"content-type":t||"text/html","Cache-Control":"no-store"}});self.oninstall=()=>self.skipWaiting(),self.onactivate=()=>self.clients.claim(),self.onmessage=t=>{const n=t.data,r=e.get(n.y);r&&(e.delete(n.y),clearTimeout(r[1]),r[0](n))},self.onfetch=r=>{const s=r.request,o=new URL(s.url).pathname;o.endsWith("sw.html")?r.respondWith(n('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="module">/* Partytown 0.3.6 - MIT builder.io */\n(e=>{const t=()=>{},n=e=>e.length,r=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(999999999*Math.random()+4),a=Symbol(),l=Symbol(),c=new Map,u=new Map,h={},p=new WeakMap,d=(e,t,n)=>e?e===e.window?0:"#document"===(n=e.nodeName)?1:"HTML"===n?2:"HEAD"===n?3:"BODY"===n?4:("number"!=typeof(t=e[a])&&m(e,t=i()),t):-1,g=(e,t,n,r,s)=>{if((n=h[e])&&(r=n.M))return s=r.document,0===t?r:1===t?s:2===t?s.documentElement:3===t?s.head:4===t?s.body:c.get(t)},m=(e,t,n)=>{e&&(c.set(t,e),e[a]=t,e[l]=n=Date.now(),n>f+5e3&&(c.forEach(((e,t)=>{e[l]<f&&e.nodeType&&!e.isConnected&&c.delete(t)})),f=n))};let f=0;const y=e.parent,w=document,$=y.partytown||{},v=($.lib||"/~partytown/")+"",b=(e,t,n,o,i)=>void 0!==t&&(o=typeof t)?"string"===o||"number"===o||"boolean"===o||null==t?[0,t]:"function"===o?[6]:(n=n||new Set)&&Array.isArray(t)?n.has(t)?[1,[]]:n.add(t)&&[1,t.map((t=>b(e,t,n)))]:"object"===o?""===(i=r(t))?[2,{}]:"Window"===i?[3,{N:e,r:0}]:"HTMLCollection"===i||"NodeList"===i?[7,Array.from(t).map((t=>b(e,t,n)[1]))]:i.endsWith("Event")?[5,E(e,t,n)]:"CSSRuleList"===i?[12,Array.from(t).map(S)]:s(i,"CSS")&&i.endsWith("Rule")?[11,S(t)]:"CSSStyleDeclaration"===i?[13,E(e,t,n)]:"Attr"===i?[10,[t.name,t.value]]:t.nodeType?[3,{N:e,r:d(t),z:t.nodeName}]:[2,E(e,t,n,!0,!0)]:void 0:t,E=(e,t,n,r,s,i,a,l)=>{if(i={},!n.has(t))for(a in n.add(t),t)o(a)&&(l=t[a],(r||"function"!=typeof l)&&(s||""!==l)&&(i[a]=b(e,l,n)));return i},S=e=>{let t,n={};for(t in e)L.includes(t)&&(n[t]=e[t]);return n},T=(t,n,r,s)=>n?(r=n[0],s=n[1],0===r?s:4===r?N(t,s):1===r?s.map((e=>T(t,e))):3===r?g(s.N,s.r):5===r?M(I(t,s)):2===r?I(t,s):8===r?s:9===r?new e[n[2]](s):void 0):void 0,N=(e,{N:t,r:n,E:r},s)=>((s=u.get(r))||(s=function(...s){e.postMessage([7,{N:t,r:n,E:r,K:b(t,this),b:b(t,s)}])},u.set(r,s)),s),M=e=>new("detail"in e?CustomEvent:Event)(e.type,e),I=(e,t,n,r)=>{for(r in n={},t)n[r]=T(e,t[r]);return n},L="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),x=async(e,t)=>{let r,s,o,i,a,l,c={y:t.y},u=n(t.J),p=0;for(;p<u;p++)try{l=p===u-1,r=t.J[p],s=r.N,o=r.a,h[s]||await new Promise((e=>{let t=0,n=()=>{h[s]||t++>999?e():setTimeout(n,9)};n()})),1===o[0]&&o[1]in h[s].M?m(new h[s].M[o[1]](...T(e,o[2])),r.r):(i=g(s,r.r),i?(a=O(e,i,o,l,r.n),r.c&&m(a,r.c),"object"==typeof(d=a)&&d&&d.then&&(a=await a,c.u=!0),c.F=b(s,a)):c.l=r.r+" not found")}catch(e){l?c.l=String(e.stack||e):console.error(e)}var d;return c},O=(e,t,r,s,o)=>{let i,a,l,c,u,h=0,p=n(r);for(;h<p;h++){a=r[h],i=r[h+1],l=r[h-1];try{if(!Array.isArray(i))if("string"==typeof a||"number"==typeof a){if(h+1===p&&o)return u={},o.map((e=>u[e]=t[e])),u;t=t[a]}else{if(0===i)return void(t[l]=T(e,a));if("function"==typeof t[l]&&(c=T(e,a),"insertRule"===l&&c[1]>n(t.cssRules)&&(c[1]=n(t.cssRules)),t=t[l].apply(t,c),"play"===l))return Promise.resolve()}}catch(e){if(s)throw e;console.debug(e)}}return t},C=(e,t,n)=>{if(!p.has(n)){p.set(n,t);const r=n.document,s=n.history,o=p.get(n.parent),i=()=>e.postMessage([3,{N:t,C:o,L:r.baseURI}]),a=s.pushState.bind(s),l=s.replaceState.bind(s),c=()=>setTimeout((()=>e.postMessage([11,t,r.baseURI])));s.pushState=(e,t,n)=>{a(e,t,n),c()},s.replaceState=(e,t,n)=>{l(e,t,n),c()},n.addEventListener("popstate",c),n.addEventListener("hashchange",c),h[t]={N:t,M:n},"complete"===r.readyState?i():n.addEventListener("load",i)}},R=(e,t)=>{let r,s,o,i=t.N,a=t.M,l=a.document;l&&l.body?(r=l.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])\'),r||(r=l.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror])\')),r?(r.dataset.ptid=s=d(r,i),o={N:i,r:s},r.src?(o.L=r.src,o.A=r.dataset.ptsrc||r.src):o.g=r.innerHTML,e.postMessage([5,o])):(t.s||(t.s=1,((e,t,r)=>{let s,o,i=r._ptf,a=(r.partytown||{}).forward||[],l=(n,r)=>e.postMessage([8,{N:t,m:n,b:b(t,Array.from(r))}]);if(r._ptf=void 0,a.map((e=>{o=r,e.split(".").map(((e,t,r)=>{o=o[r[t]]=t+1<n(r)?o[r[t]]||("push"===r[t+1]?[]:{}):(...e)=>l(r,e)}))})),i)for(s=0;s<n(i);s+=2)l(i[s],i[s+1])})(e,i,a),l.dispatchEvent(new CustomEvent("pt0"))),e.postMessage([6,i]))):requestAnimationFrame((()=>R(e,t)))},A=()=>{const e=w.implementation.createHTMLDocument(),t=e.createTextNode(""),n=e.createComment(""),s=e.createDocumentFragment(),o=e.createElementNS("http://www.w3.org/2000/svg","svg"),i=W(y,"IntersectionObserver"),a=W(y,"MutationObserver"),l=W(y,"ResizeObserver"),c=y.performance,u=y.screen,h=Object.getOwnPropertyNames(y).filter((e=>/^HTML.+Element$/.test(e))).map((t=>[e.createElement(k(t))])),p=h[0][0],d=[[y.history],[c],[c.navigation],[c.timing],[u],[u.orientation],[i,12],[a,12],[l,12],[t],[n],[s],[p],[p.attributes],[p.classList],[p.dataset],[p.style],[o],[e],[e.doctype],...h].filter((e=>e[0])).map((e=>{const t=e[0],n=e[1],s=r(t);return[s,y[s].prototype,t,n]})),g=[P("Window",y),P("Node",t)],m={f:JSON.stringify($,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),v:new URL(v,y.location)+"",q:g,w:U("localStorage"),H:U("sessionStorage")};return d.map((([e,t,n,r])=>D(g,e,t,n,r))),m},P=(e,t,n)=>{let r=[],s=[e,"Object",r];for(n in t)H(r,t,n);return s},D=(e,t,n,s,o)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const i=Object.getPrototypeOf(n),a=r(i),l=[];D(e,a,i,s,o),Object.keys(Object.getOwnPropertyDescriptors(n)).map((e=>H(l,s,e))),e.push([t,a,l,o,s.nodeName])}},H=(e,t,n,s,i,a)=>{try{o(n)&&isNaN(n[0])&&"all"!==n&&("function"==(i=typeof(s=t[n]))?(String(s).includes("[native")||Object.getPrototypeOf(t)[n])&&e.push([n,5]):"object"===i&&null!=s?"Object"!==(a=r(s))&&self[a]&&e.push([n,s.nodeType||a]):"symbol"!==i&&(n.toUpperCase()===n?e.push([n,6,s]):e.push([n,6])))}catch(e){console.warn(e)}},j={Anchor:"A",DList:"DL",Image:"IMG",OList:"OL",Paragraph:"P",TableCaption:"CAPTION",TableCell:"TD",TableCol:"COLGROUP",TableRow:"TR",TableSection:"TBODY",UList:"UL"},k=e=>(e=e.slice(4).replace("Element",""),j[e]||e),U=e=>{let t,r=[],s=0,o=n(y[e]);for(;s<o;s++)t=y[e].key(s),r.push([t,y[e].getItem(t)]);return r},W=(e,n)=>void 0!==e[n]?new e[n](t):0;let F;(t=>{const n=e.navigator.serviceWorker;return n.getRegistration().then((e=>(n.addEventListener("message",(t=>{return n=t.data,r=t=>e.active&&e.active.postMessage(t),x(F,n).then(r);var n,r})),(e,t)=>{0===t[0]?e.postMessage([1,A()]):((e,t,n)=>{2===t[0]?C(e,i(),y):(n=h[t[1]])&&(5===t[0]?requestAnimationFrame((()=>R(e,n))):4===t[0]&&((e,t,n,r,s)=>{(s=t.M.document.querySelector(`[data-ptid="${n}"]`))&&(r?s.dataset.pterror=r:s.type+="-x"),R(e,t)})(e,n,t[2],t[3]))})(e,t)})))})().then((e=>{e&&(F=new Worker(URL.createObjectURL(new Blob([\'/* Partytown 0.3.6 - MIT builder.io */\\n(e=>{const t=Symbol(),n=Symbol(),r=Symbol(),s=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),l=Symbol(),c=new Map,$={},u=new WeakMap,h=new Map,d={},p=[],g={},m=new Map,f=new Map,w={},y=new Map,I=new Map,v=e=>e.split(","),b=e=>{if(e=g.v+e,new URL(e).origin!=location.origin)throw"Invalid "+e;return e},S=v("clientWidth,clientHeight,clientTop,clientLeft,innerWidth,innerHeight,offsetWidth,offsetHeight,offsetTop,offsetLeft,outerWidth,outerHeight,pageXOffset,pageYOffset,scrollWidth,scrollHeight,scrollTop,scrollLeft"),E=v("childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling"),T=v("childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling"),M=v("insertBefore,remove,removeChild,replaceChild"),N=v("className,width,height,hidden,innerHTML,innerText,textContent"),L=v("setAttribute,setProperty"),x=v("getClientRects,getBoundingClientRect"),W=["getComputedStyle"],R=v("addEventListener,dispatchEvent,removeEventListener"),A=R.concat(L,v("add,observe,remove,unobserve")),C=/^[A-Z]([A-Z0-9-]*[A-Z0-9])?$/,P=()=>{},H=e=>e.length,O=e=>{try{return e.constructor.name}catch(e){}return""},k=[],D=()=>Math.round(999999999*Math.random()+4),j="text/partytown",B=(e,t,n)=>Object.defineProperty(e,t,{...n,configurable:!0}),U=(e,t)=>B(e,"name",{value:t}),F=(e,t,n)=>B(e.prototype,t,n),_=(e,t)=>Object.defineProperties(e.prototype,t),q=(e,t,n)=>F(e,t,{value:n,writable:!0}),z=(e,t)=>t in e[o],V=(e,t)=>e[o][t],X=(e,t,n)=>e[o][t]=n,J=[];let Z=0;const Y=(e,r,s,o,a,l)=>{if(J.push({N:e[t],r:e[n],a:[...e[i],...r],c:o,n:a}),3===s)g.D([10,{y:D(),J:[...J]}],l?[l instanceof ArrayBuffer?l:l.buffer]:void 0),J.length=0;else if(1===s)return G(!0);Z=setTimeout(G,20)},G=e=>{if(clearTimeout(Z),H(J)){const t=J[H(J)-1],n={y:D(),J:[...J]};if(J.length=0,e){const e=((e,t)=>{const n=new XMLHttpRequest;return n.open("POST",b("proxytown"),!1),n.send(JSON.stringify(t)),JSON.parse(n.responseText)})(0,n),r=e.u,s=Oe(t.N,t.r,t.a,e.F);if(e.l){if(r)return Promise.reject(e.l);throw new Error(e.l)}return r?Promise.resolve(s):s}g.D([10,n])}},K=(e,t,n,r)=>g.f.get&&(r=g.f.get(ne(e,t)))!==a?r:r=Y(e,t,1,void 0,n),Q=(e,t,n,r)=>{if(g.f.set){if((r=g.f.set({value:n,prevent:l,...ne(e,t)}))===l)return;r!==a&&(n=r)}N.some((e=>t.includes(e)))&&(y.clear(),t[t.length-1]),t=[...t,He(e,n),0],Y(e,t,2)},ee=(e,t,n,r,s,i,o,l)=>g.f.apply&&(o=g.f.apply({args:n,...ne(e,t)}))!==a?o:(l=t[H(t)-1],t=[...t,He(e,n)],r=r||(A.includes(l)?2:1),"setAttribute"===l&&z(e,n[0])?X(e,n[0],n[1]):M.includes(l)?(y.clear(),I.clear()):L.includes(l)&&(r=2,y.clear()),o=Y(e,t,r,s,void 0,i)),te=(e,t,n)=>{Y(e,[1,t,He(e,n)],1)},ne=(e,t)=>({name:t.join("."),continue:a,nodeName:e[r],constructor:O(e)}),re=(t,n,r)=>{let s,i,o=()=>e.origin===t.origin,a=e=>((e=r.get(t.origin))||r.set(t.origin,e=[]),e),l=e=>a().findIndex((t=>t[se]===e)),c={getItem:e=>(s=l(e),s>-1?a()[s][ie]:null),setItem(e,r){s=l(e),s>-1?a()[s][ie]=r:a().push([e,r]),o()&&ee(t,[n,"setItem"],[e,r],2)},removeItem(e){s=l(e),s>-1&&a().splice(s,1),o()&&ee(t,[n,"removeItem"],[e],2)},key:e=>(i=a()[e],i?i[se]:null),clear(){a().length=0,o()&&ee(t,[n,"clear"],k,2)},get length(){return a().length}};t[n]=c},se=0,ie=1;class oe{constructor(e,a,l,c,$){this[t]=e,this[n]=a,this[i]=l||[],this[r]=c,this[o]={},$&&(this[s]=$)}}class ae extends oe{}R.map((e=>ae.prototype[e]=function(...t){return ee(this,[e],t,2)}));class le extends oe{constructor(e,t,n,r){return super(e,t,n,r),new Proxy(this,{get:(e,t)=>K(e,[t]),set:(e,t,n)=>(Q(e,[t],n),!0)})}}const ce=()=>(e.ptm||(e.ptm=[K,Q,ee,te,_,D,oe,ae,t,n,i],g.p(b("partytown-media.js"))),e.ptm),$e=v("AUDIO,CANVAS,VIDEO"),ue=v("Audio,MediaSource"),he=(e,t,n,r,s)=>((s=c.get(t))||(s=de(e,t,n,r),c.set(t,s)),s),de=(t,n,r,s)=>($e.includes(r)&&ce(),new(d[r]?d[r]:r.includes("-")?d.UNKNOWN:e.HTMLElement)(t,n,[],r,s)),pe=(e,t,n,r,s)=>{try{e.h=t,ge(e,n)}catch(e){console.error(n,e),s=String(e.stack||e)}return e.h=-1,s},ge=(e,t,n)=>{e.G=1,new Function(`with(this){${t.replace(/\\\\bthis\\\\b/g,"(thi$(this)?window:this)").replace(/\\\\/\\\\/# so/g,"//Xso")}\\\\n;function thi$(t){return t===this}${(g.f.globalFns||[]).filter((e=>/[a-zA-Z_$][0-9a-zA-Z_$]*/.test(e))).map((e=>`(typeof ${e}==\\\'function\\\'&&(window.${e}=${e}))`)).join(";")}}`+(n?"\\\\n//# sourceURL="+n:"")).call(e.M),e.G=0},me=(e,t,n)=>{(n=V(e,t))&&setTimeout((()=>n.map((e=>e({type:t})))))},fe=(e,t,n,r,s,i)=>{for(r=e.x;!r.host&&(r=(e=w[e.C]).x,e.N!==e.C););return s=new URL(t||"",r),!n&&g.f.resolveUrl&&(i=g.f.resolveUrl(s,r))?i:s},we=(e,t,n)=>fe(e,t,n)+"",ye=()=>`<script src="${b("partytown.js")}"><\\\\/script>`,Ie=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(we(e,t,!0),{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 ve extends URL{assign(){}reload(){}replace(){}}class Window extends oe{constructor(t,n,r,s){super(t,0);let i,o,a,l=this;for(i in e)if(!(i in l)&&"onmessage"!==i&&(o=e[i],null!=o)){const t="function"==typeof o&&!o.toString().startsWith("class");l[i]=t?o.bind(e):o}Object.getOwnPropertyNames(e).map((t=>{t in l||(l[t]=e[t])})),h.forEach(((e,n)=>{l[n]=U(class{constructor(...r){const s=new e(t,D());return te(s,n,r),s}},n)})),ue.map((e=>B(l,e,{get(){delete l[e];const t=ce()[e];return l[e]=t(Ee(l),l,e)}}))),"trustedTypes"in e&&(l.trustedTypes=e.trustedTypes),w[t]={N:t,C:n,M:new Proxy(l,{has:()=>!0}),j:de(t,1,"#document"),k:de(t,2,"HTML"),o:de(t,3,"HEAD"),d:de(t,4,"BODY"),x:new ve(r)},l.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),l.cancelAnimationFrame=e=>clearTimeout(e),l.requestIdleCallback=(e,t)=>(t=Date.now(),setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)),l.cancelIdleCallback=e=>clearTimeout(e),re(l,"localStorage",m),re(l,"sessionStorage",f),s&&(a={},l.history={pushState(e){a=e},replaceState(e){a=e},get state(){return a},length:0}),l.Worker=void 0}addEventListener(...e){"load"===e[0]?Ee(this).G&&setTimeout((()=>e[1]({type:"load"}))):ee(this,["addEventListener"],e,2)}get body(){return Ee(this).d}get document(){return Ee(this).j}get documentElement(){return Ee(this).k}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(we(Ee(this),e),t)}get frameElement(){const e=Ee(this),t=e.C,n=e.N;return n===t?null:he(t,n,"IFRAME")}get globalThis(){return this}get head(){return Ee(this).o}get location(){return Ee(this).x}set location(e){Ee(this).x.href=e+""}get Image(){return Ie(Ee(this))}get name(){return name+this[t]}get navigator(){return(t=>{const n=e.navigator;return n.sendBeacon=(e,n)=>{try{return fetch(we(t,e,!0),{method:"POST",body:n,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}},n})(Ee(this))}get origin(){return Ee(this).x.origin}get parent(){return be(w[Ee(this).C].M,this[t])}postMessage(...e){ee(this,["postMessage"],e,3)}get self(){return this}get top(){for(let e in w)if(w[e].N===w[e].C)return be(w[e].M,this[t])}get window(){return this}get XMLHttpRequest(){const t=Ee(this);return class extends e.XMLHttpRequest{open(...e){e[1]=we(t,e[1]),super.open(...e)}set withCredentials(e){}}}}const be=(e,t)=>new Proxy(e,{get:(e,n)=>"postMessage"===n?(...n)=>{H(p)>20&&p.splice(0,5),p.push({i:JSON.stringify(n[0]),N:t}),e.postMessage(...n)}:e[n]}),Se=({N:e,C:t,L:n},r)=>(w[e]||new Window(e,t,n,r),g.D([5,e]),w[e]),Ee=e=>w[e[t]],Te={addEventListener:{value(...e){const t=e[0],n=V(this,t)||[];n.push(e[1]),X(this,t,n)}},async:{get:P,set:P},defer:{get:P,set:P},onload:{get(){let e=V(this,"load");return e&&e[0]||null},set(e){X(this,"load",e?[e]:null)}},onerror:{get(){let e=V(this,"error");return e&&e[0]||null},set(e){X(this,"error",e?[e]:null)}},getAttribute:{value(e){return"src"===e?this.src:ee(this,["getAttribute"],[e])}},setAttribute:{value(e,t){Me.includes(e)?this[e]=t:ee(this,["setAttribute"],[e,t])}}},Me=v("src,type"),Ne={get(){return V(this,3)||""},set(e){X(this,3,e)}},Le={innerHTML:Ne,innerText:Ne,src:{get(){return V(this,4)||""},set(e){const t=Ee(this),n=we(t,e,!0);e=we(t,e),X(this,4,e),Q(this,["src"],e),n!==e&&Q(this,["dataset","ptsrc"],n)}},textContent:Ne,type:{get(){return K(this,["type"])},set(e){xe(e)||(X(this,5,e),Q(this,["type"],e))}},...Te},xe=e=>!e||"text/javascript"===e;class Node extends oe{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,s){const i=e[t]=this[t],o=e[n],a=e[r],l="SCRIPT"===a,c="IFRAME"===a;if(l){const t=V(e,3),n=V(e,5);if(t){if(xe(n)){const n=pe(Ee(e),o,t,0,""),r=n?"pterror":"ptid",s=n||o;Q(e,["type"],j+"-x"),Q(e,["dataset",r],s)}Q(e,["innerHTML"],t)}}return ee(this,["insertBefore"],[e,s],2),c&&((e,t)=>{let n,r,s=0,i=()=>{w[e]&&w[e].s&&!w[e].t?(n=V(t,1)?"error":"load",r=V(t,n),r&&r.map((e=>e({type:n})))):s++>2e3?(r=V(t,"error"),r&&r.map((e=>e({type:"error"})))):setTimeout(i,9)};i()})(o,e),l&&(G(!0),g.D([5,i])),e}get nodeName(){return this[r]}get nodeType(){return 3}get ownerDocument(){return Ee(this).j}}class We{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}}class Re extends oe{constructor(e,t,n,r){return super(e,t,n),Object.assign(this,r),new Proxy(this,{get:(e,t)=>e[t],set:(e,t,n)=>(Q(e,[t],n),y.clear(),!0)})}getPropertyValue(e){return this[e]}setProperty(e,t){this[e]=t}}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 H(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}}const Ae=(e,r,s,i,o)=>{return void 0!==s&&(o=typeof s)?"string"===o||"boolean"===o||"number"===o||null==s?[0,s]:"function"===o?[4,{N:e,r:r,E:(a=s,(l=u.get(a))||(u.set(a,l=D()),$[l]=a),l)}]:(i=i||new Set)&&Array.isArray(s)?i.has(s)?[1,[]]:i.add(s)&&[1,s.map((t=>Ae(e,r,t,i)))]:"object"===o?"number"==typeof s[n]?[3,{N:s[t],r:s[n]}]:s instanceof Event?[5,Pe(e,r,s,!1,i)]:Ce&&s instanceof TrustedHTML?[0,s.toString()]:s instanceof ArrayBuffer?[8,s]:ArrayBuffer.isView(s)?[9,s.buffer,O(s)]:[2,Pe(e,r,s,!0,i)]:void 0:s;var a,l},Ce="undefined"!=typeof TrustedHTML,Pe=(e,t,n,r,s,i,o,a)=>{if(i={},!s.has(n))for(o in s.add(n),n)a=n[o],(r||"function"!=typeof a)&&(i[o]=Ae(e,t,a,s));return i},He=(e,r)=>e?Ae(e[t],e[n],r):[0,r],Oe=(e,t,n,r,s,i,o,a)=>{if(r){if(s=r[0],i=r[1],0===s||11===s||12===s)return i;if(4===s)return je(n,i);if(6===s)return P;if(3===s)return ke(i);if(7===s)return new NodeList(i.map(ke));if(10===s)return new We(i);if(1===s)return i.map((r=>Oe(e,t,n,r)));for(a in o={},i)o[a]=Oe(e,t,[...n,a],i[a]);if(13===s)return new Re(e,t,n,o);if(5===s){if("message"===o.type&&o.origin){let e,t=JSON.stringify(o.data),n=p.find((e=>e.i===t));n&&(e=w[n.N],e&&(o.source=e.M,o.origin=e.x.origin))}return new Proxy(new Event(o.type,o),{get:(e,t)=>t in o?o[t]:"function"==typeof e[String(t)]?P:e[String(t)]})}if(2===s)return o}},ke=({N:e,r:t,z:n})=>De(e,t)||he(e,t,n),De=(e,t,n)=>(n=w[e])&&0===t?n.M:1===t?n.j:2===t?n.k:3===t?n.o:4===t?n.d:void 0,je=(e,{N:t,r:n,z:r,E:s})=>($[s]||u.set($[s]=function(...s){const i=he(t,n,r);return ee(i,e,s)},s),$[s]),Be={sheet:{get(){return new Ue(this)}}};class Ue{constructor(e){this.ownerNode=e}get cssRules(){const e=this.ownerNode;return new Proxy({},{get(t,n){const r=String(n);return"item"===r?t=>_e(e,t):"length"===r?Fe(e).length:isNaN(r)?t[n]:_e(e,r)}})}insertRule(e,t){const n=Fe(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=n.length&&(ee(this.ownerNode,["sheet","insertRule"],[e,t],2),n.splice(t,0,0)),this.ownerNode,y.clear(),t}deleteRule(e){ee(this.ownerNode,["sheet","deleteRule"],[e],2),Fe(this.ownerNode).splice(e,1),this.ownerNode,y.clear()}}const Fe=(e,t)=>((t=V(e,2))||(t=K(e,["sheet","cssRules"]),X(e,2,t)),t),_e=(e,t,n)=>(0===(n=Fe(e))[t]&&(n[t]=K(e,["sheet","cssRules",parseInt(t,10)])),n[t]),qe={body:{get(){return Ee(this).d}},createElement:{value(e){if(e=e.toUpperCase(),!C.test(e))throw e+" not valid";const n=this[t],r=D(),s=he(n,r,e);if(ee(this,["createElement"],[e],2,r),"IFRAME"===e)Se({N:r,C:n,L:"about:blank"},!0).M.fetch=fetch,Q(s,["srcdoc"],ye());else if("SCRIPT"===e){const e=V(s,5);xe(e)&&Q(s,["type"],j)}return s}},createElementNS:{value(e,n){n=n.toLowerCase();const r=this[t],s=D(),i=he(r,s,n,e);return ee(this,["createElementNS"],[e,n],2,s),i}},createTextNode:{value(e){const n=this[t],r=D(),s=he(n,r,"#text");return ee(this,["createTextNode"],[e],2,r),s}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],n=Ee(this).h;return n>0?he(e,n,"SCRIPT"):null}},defaultView:{get(){return Ee(this).M}},documentElement:{get(){return Ee(this).k}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[Ee(this).d]:"HEAD"===e?[Ee(this).o]:ee(this,["getElementsByTagName"],[e])}},head:{get(){return Ee(this).o}},implementation:{value:{hasFeature:()=>!0}},location:{get(){return Ee(this).x},set(e){Ee(this).x.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}},ze={parentElement:{get(){return this.parentNode}},parentNode:{get(){return Ee(this).k}}},Ve={parentElement:{value:null},parentNode:{get(){return Ee(this).j}}},Xe={localName:{get(){return this[r].toLowerCase()}},namespaceURI:{get(){return this[s]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[r]}}},Je={};v("hash,host,hostname,href,origin,pathname,port,protocol,search").map((e=>{Je[e]={get(){let t,n=Ee(this),r=V(this,4);return"string"!=typeof r&&(t=K(this,["href"]),X(this,4,t),r=new URL(t)[e]),fe(n,r)[e]},set(t){let n=Ee(this),r=V(this,4),s=fe(n,r);s[e]=new URL(t+"",s.href),X(this,4,s.href),Q(this,["href"],s.href)}}}));const Ze={contentDocument:{get(){return Ye(this).j}},contentWindow:{get(){return Ye(this).M}},src:{get(){let e=Ye(this).x.href;return e.startsWith("about")&&(e=""),e},set(e){let t,n=new XMLHttpRequest,r=Ye(this);r.x.href=e=we(Ee(this),e),r.t=1,X(this,1,void 0),n.open("GET",e,!1),n.send(),t=n.status,t>199&&t<300?(Q(this,["srcdoc"],`<base href="${e}">`+n.responseText.replace(/<script>/g,\\\'<script type="text/partytown">\\\').replace(/<script /g,\\\'<script type="text/partytown" \\\').replace(/text\\\\/javascript/g,j)+ye()),G(!0),g.D([5,r.N])):(X(this,1,t),r.t=0)}},...Te},Ye=e=>{const r=e[n];return w[r]||Se({N:r,C:e[t],L:K(e,["src"])||"about:blank"},!0),w[r]},Ge=([s,o,a,l,c])=>{const $=Ke[s]?le:"EventTarget"===o?ae:"Object"===o?oe:e[o],u=e[s]=U(e[s]||class extends ${},s);12===l&&h.set(s,u),c&&(d[c]=u),a.map((([s,o,a])=>{s in u.prototype||s in $.prototype||("string"==typeof o?F(u,s,{get(){if(!z(this,s)){const a=this[t],l=this[n],c=[...this[i],s],$=this[r],u=e[o];X(this,s,new u(a,l,c,$))}return V(this,s)},set(e){X(this,s,e)}}):5===o?q(u,s,(function(...e){return ee(this,[s],e)})):o>0&&(void 0!==a?q(u,s,a):F(u,s,{get(){return K(this,[s])},set(e){return Q(this,[s],e)}})))}))},Ke={CSSStyleDeclaration:1,DOMStringMap:1,NamedNodeMap:1},Qe=(e,t)=>q(e,"nodeType",t),et=(e,t)=>t.map((t=>F(e,t,{get(){let e=tt(this,t),n=I.get(e);return n||(n=K(this,[t]),I.set(e,n)),n}}))),tt=(e,r,s)=>[e[t],e[n],r,...(s||k).map((e=>String(e&&e[t]?e[n]:e)))].join("."),nt=(e,t)=>v(t).map((t=>F(e,t,{get(){return z(this,t)||X(this,t,K(this,[t])),V(this,t)},set(e){V(this,t)!==e&&Q(this,[t],e),X(this,t,e)}}))),rt=e=>S.map((t=>F(e,t,{get(){const e=y.get(tt(this,t));if("number"==typeof e)return e;const n=K(this,[t],S);return n&&"object"==typeof n?(Object.entries(n).map((([e,t])=>y.set(tt(this,e),t))),n[t]):n}}))),st=(e,t)=>t.map((t=>{e.prototype[t]=function(...e){let n=tt(this,t,e),r=y.get(n);return r||(r=ee(this,[t],e),y.set(n,r)),r}}));class it extends oe{now(){return performance.now()}}const ot=[],at=t=>{const n=t.data,r=n[0],s=n[1];g.s?5===r?(async t=>{let n,r=t.N,s=t.r,i=he(r,s,"SCRIPT"),o=t.g,a=t.L,l=t.A,c="",$=w[r];if(a)try{a=fe($,a)+"",X(i,4,a),n=await e.fetch(a),n.ok?(o=await n.text(),$.h=s,ge($,o,l||a),me(i,"load")):(c=n.statusText,me(i,"error"))}catch(e){console.error(e),c=String(e.stack||e),me(i,"error")}else o&&(c=pe($,s,o,0,c));$.h=-1,g.D([4,r,s,c])})(s):7===r?(({N:e,r:t,E:n,K:r,b:s})=>{if($[n])try{$[n].apply(Oe(e,t,[],r),Oe(e,t,[],s))}catch(e){console.error(e)}})(s):8===r?(({N:e,m:t,b:n})=>{try{let r=w[e].M,s=0,i=H(t);for(;s<i;s++)s+1<i?r=r[t[s]]:r[t[s]].apply(r,Oe(null,0,[],n))}catch(e){console.error(e)}})(s):3===r?Se(s):6===r?(w[s].s=1,w[s].t=0):11===r&&(w[n[1]].x.href=n[2]):1===r?((t=>{const n=g.f=JSON.parse(t.f);g.p=importScripts.bind(e),g.v=t.v,g.D=postMessage.bind(e),g.I=t.I,m.set(origin,t.w),f.set(origin,t.H),delete e.postMessage,delete e.importScripts,e.Node=Node,e.Window=Window,e.CSSStyleSheet=Ue,e.Performance=it,t.q.map(Ge),(()=>{const t=e.Document,n=e.DocumentFragment,r=e.Element;var s,i;v("atob,btoa,crypto,indexedDB,setTimeout,setInterval,clearTimeout,clearInterval").map((e=>delete Window.prototype[e])),_(r,Xe),_(t,qe),_(e.HTMLAnchorElement,Je),_(e.HTMLIFrameElement,Ze),_(e.HTMLScriptElement,Le),_(e.HTMLStyleElement,Be),_(e.HTMLHeadElement,ze),_(e.HTMLBodyElement,ze),_(e.HTMLHtmlElement,Ve),s=Ue,i={type:"text/css"},Object.keys(i).map((e=>q(s,e,i[e]))),Qe(e.Comment,8),Qe(e.DocumentType,10),Qe(n,11),et(Node,E),et(r,T),et(n,T),rt(r),st(r,x),rt(Window),st(Window,W),nt(Window,"devicePixelRatio"),nt(t,"compatMode,referrer"),nt(r,"id")})(),["resolveUrl","get","set","apply"].map((e=>{n[e]&&(n[e]=new Function("return "+n[e])())})),g.s=1})(n[1]),g.D([2]),[...ot].map(at),ot.length=0):ot.push(t)};e.onmessage=at,postMessage([0])})(self);\\n\'],{type:"text/javascript"})),{name:"Partytown 🎉"}),F.onmessage=t=>{const n=t.data;10===n[0]?x(F,n[1]):e(F,n)},y.addEventListener("pt1",(e=>C(F,d(e.detail.frameElement),e.detail))))}))})(window);\n<\/script></head></html>')):o.endsWith("proxytown")&&r.respondWith((r=>new Promise((async s=>{const o=await r.clone().json(),i=await(n=>new Promise((async r=>{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=[r,setTimeout((()=>{e.delete(n.y),r(t(n,"Timeout"))}),1e4)];e.set(n.y,o),s.postMessage(n)}else r(t(n,"NoParty"))})))(o);s(n(JSON.stringify(i),"application/json"))})))(s))}; | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
const e=new Map,t=(e,t)=>({D:e.D,p:t}),r=(e,t)=>new Response(e,{headers:{"content-type":t||"text/html","Cache-Control":"no-store"}});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 i=n.request,s=new URL(i.url).pathname;s.endsWith("sw.html")?n.respondWith(r('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="module">/* Partytown 0.4.0 - MIT builder.io */\n(e=>{const t=()=>{},r=e=>e.length,n=e=>{try{return e.constructor.name}catch(e){}return""},i=(e,t)=>e.startsWith(t),s=e=>!(i(e,"webkit")||i(e,"toJSON")||i(e,"constructor")||i(e,"toString")||i(e,"_")),o=()=>Math.round(999999999*Math.random()+4),a={Anchor:"a",DList:"dl",Image:"img",OList:"ol",Paragraph:"p",Quote:"q",TableCaption:"caption",TableCell:"td",TableCol:"colgroup",TableRow:"tr",TableSection:"tbody",UList:"ul"},l={Graphics:"g",SVG:"svg"},c=Symbol(),u=Symbol(),h=new Map,p=new Map,d={},m=new WeakMap,g=(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=e[c])&&y(e,t=o()),t):-1,f=(e,t,r,n,i)=>{if((r=d[e])&&(n=r.R))return i=n.document,0===t?n:1===t?i:2===t?i.documentElement:3===t?i.head:4===t?i.body:h.get(t)},y=(e,t,r)=>{e&&(h.set(t,e),e[c]=t,e[u]=r=Date.now(),r>w+5e3&&(h.forEach(((e,t)=>{e[u]<w&&e.nodeType&&!e.isConnected&&h.delete(t)})),w=r))};let w=0;const $=e.parent,S=document,v=$.partytown||{},b=(v.lib||"/~partytown/")+"",T=(e,t,r,s,o)=>void 0!==t&&(s=typeof t)?"string"===s||"number"===s||"boolean"===s||null==t?[0,t]:"function"===s?[6]:(r=r||new Set)&&Array.isArray(t)?r.has(t)?[1,[]]:r.add(t)&&[1,t.map((t=>T(e,t,r)))]:"object"===s?""===(o=n(t))?[2,{}]:"Window"===o?[3,{S:e,w:0}]:"HTMLCollection"===o||"NodeList"===o?[7,Array.from(t).map((t=>T(e,t,r)[1]))]:o.endsWith("Event")?[5,M(e,t,r)]:"CSSRuleList"===o?[12,Array.from(t).map(E)]:i(o,"CSS")&&o.endsWith("Rule")?[11,E(t)]:"CSSStyleDeclaration"===o?[13,M(e,t,r)]:"Attr"===o?[10,[t.name,t.value]]:t.nodeType?[3,{S:e,w:g(t),E:t.nodeName}]:[2,M(e,t,r,!0,!0)]:void 0:t,M=(e,t,r,n,i,o,a,l)=>{if(o={},!r.has(t))for(a in r.add(t),t)s(a)&&(l=t[a],(n||"function"!=typeof l)&&(i||""!==l)&&(o[a]=T(e,l,r)));return o},E=e=>{let t,r={};for(t in e)x.includes(t)&&(r[t]=e[t]);return r},I=(t,r,n,i)=>r?(n=r[0],i=r[1],0===n?i:4===n?L(t,i):1===n?i.map((e=>I(t,e))):3===n?f(i.S,i.w):5===n?R(C(t,i)):2===n?C(t,i):8===n?i:9===n?new e[r[2]](i):void 0):void 0,L=(e,{S:t,w:r,J:n},i)=>((i=p.get(n))||(i=function(...i){e.postMessage([7,{S:t,w:r,J:n,P:T(t,this),b:T(t,i)}])},p.set(n,i)),i),R=e=>new("detail"in e?CustomEvent:Event)(e.type,e),C=(e,t,r,n)=>{for(n in r={},t)r[n]=I(e,t[n]);return r},x="cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(","),N=async(e,t)=>{let n,i,s,o,a,l,c={D:t.D},u=r(t.O),h=0;for(;h<u;h++)try{l=h===u-1,n=t.O[h],i=n.S,s=n.a,d[i]||await new Promise((e=>{let t=0,r=()=>{d[i]||t++>999?e():setTimeout(r,9)};r()})),1===s[0]&&s[1]in d[i].R?y(new d[i].R[s[1]](...I(e,s[2])),n.w):(o=f(i,n.w),o?(a=G(e,o,s,l,n.r),n.d&&y(a,n.d),"object"==typeof(p=a)&&p&&p.then&&(a=await a,c.z=!0),c.K=T(i,a)):c.p=n.w+" not found")}catch(e){l?c.p=String(e.stack||e):console.error(e)}var p;return c},G=(e,t,n,i,s)=>{let o,a,l,c,u,h=0,p=r(n);for(;h<p;h++){a=n[h],o=n[h+1],l=n[h-1];try{if(!Array.isArray(o))if("string"==typeof a||"number"==typeof a){if(h+1===p&&s)return u={},s.map((e=>u[e]=t[e])),u;t=t[a]}else{if(0===o)return void(t[l]=I(e,a));if("function"==typeof t[l]&&(c=I(e,a),"insertRule"===l&&c[1]>r(t.cssRules)&&(c[1]=r(t.cssRules)),t=t[l].apply(t,c),"play"===l))return Promise.resolve()}}catch(e){if(i)throw e;console.debug(e)}}return t},O=(e,t,r)=>{if(!m.has(r)){m.set(r,t);const n=r.document,i=r.history,s=m.get(r.parent),o=()=>e.postMessage([3,{S:t,H:s,Q:n.baseURI}]),a=i.pushState.bind(i),l=i.replaceState.bind(i),c=()=>setTimeout((()=>e.postMessage([11,t,n.baseURI])));i.pushState=(e,t,r)=>{a(e,t,r),c()},i.replaceState=(e,t,r)=>{l(e,t,r),c()},r.addEventListener("popstate",c),r.addEventListener("hashchange",c),d[t]={S:t,R:r},"complete"===n.readyState?o():r.addEventListener("load",o)}},A=(e,t)=>{let n,i,s,o=t.S,a=t.R,l=a.document;l&&l.body?(n=l.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])\'),n||(n=l.querySelector(\'script[type="text/partytown"]:not([data-ptid]):not([data-pterror])\')),n?(n.dataset.ptid=i=g(n,o),s={S:o,w:i},n.src?(s.Q=n.src,s.F=n.dataset.ptsrc||n.src):s.j=n.innerHTML,e.postMessage([5,s])):(t.x||(t.x=1,((e,t,n)=>{let i,s,o=n._ptf,a=(n.partytown||{}).forward||[],l=(r,n)=>e.postMessage([8,{S:t,q:r,b:T(t,Array.from(n))}]);if(n._ptf=void 0,a.map((e=>{s=n,e.split(".").map(((e,t,n)=>{s=s[n[t]]=t+1<r(n)?s[n[t]]||("push"===n[t+1]?[]:{}):(...e)=>l(n,e)}))})),o)for(i=0;i<r(o);i+=2)l(o[i],o[i+1])})(e,o,a),l.dispatchEvent(new CustomEvent("pt0"))),e.postMessage([6,o]))):requestAnimationFrame((()=>A(e,t)))},j=()=>{const e=S.implementation.createHTMLDocument(),t=e.head,r=e.createTextNode(""),i=e.createComment(""),s=e.createDocumentFragment(),o=F($,"IntersectionObserver"),c=F($,"MutationObserver"),u=F($,"ResizeObserver"),h=$.performance,p=$.screen,d=Object.getOwnPropertyNames($).map((t=>((e,t,r,n)=>{if(r=t.match(/^(HTML|SVG)(.+)Element$/))return n=r[2],"S"==t[0]?e.createElementNS("http://www.w3.org/2000/svg",l[n]||n.slice(0,2).toLowerCase()+n.slice(2)):e.createElement(a[n]||n)})(e,t))).filter((e=>e)).map((e=>[e])),m=[[$.history],[h],[h.navigation],[h.timing],[p],[p.orientation],[o,12],[c,12],[u,12],[r],[i],[s],[t],[t.attributes],[t.classList],[t.dataset],[t.style],[e],[e.doctype],...d].filter((e=>e[0])).map((e=>{const t=e[0],r=e[1],i=n(t);return[i,$[i].prototype,t,r]})),g=[H("Window",$),H("Node",r)],f={i:JSON.stringify(v,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t))),A:new URL(b,$.location)+"",v:g,B:D("localStorage"),M:D("sessionStorage")};return m.map((([e,t,r,n])=>P(g,e,t,r,n))),U(g,$,"IntersectionObserverEntry"),f},H=(e,t,r)=>{let n=[],i=[e,"Object",n];for(r in t)k(n,t,r);return i},P=(e,t,r,i,s)=>{if("Object"!==t&&!e.some((e=>e[0]===t))){const o=Object.getPrototypeOf(r),a=n(o),l=[];P(e,a,o,i,s),Object.keys(Object.getOwnPropertyDescriptors(r)).map((e=>k(l,i,e))),e.push([t,a,l,s,i.nodeName])}},k=(e,t,r,i,o,a)=>{try{s(r)&&isNaN(r[0])&&"all"!==r&&("function"==(o=typeof(i=t[r]))?(String(i).includes("[native")||Object.getPrototypeOf(t)[r])&&e.push([r,5]):"object"===o&&null!=i?"Object"!==(a=n(i))&&self[a]&&e.push([r,i.nodeType||a]):"symbol"!==o&&(r.toUpperCase()===r?e.push([r,6,i]):e.push([r,6])))}catch(e){console.warn(e)}},D=e=>{let t,n=[],i=0,s=r($[e]);for(;i<s;i++)t=$[e].key(i),n.push([t,$[e].getItem(t)]);return n},F=(e,r)=>void 0!==e[r]?new e[r](t):0,U=(e,t,r)=>{void 0!==t[r]&&e.push([r,"Object",Object.keys(t[r].prototype).map((e=>[e,6])),12])};let W;(t=>{const r=e.navigator.serviceWorker;return r.getRegistration().then((e=>(r.addEventListener("message",(t=>{return r=t.data,n=t=>e.active&&e.active.postMessage(t),N(W,r).then(n);var r,n})),(e,t)=>{0===t[0]?e.postMessage([1,j()]):((e,t,r)=>{2===t[0]?O(e,o(),$):(r=d[t[1]])&&(5===t[0]?requestAnimationFrame((()=>A(e,r))):4===t[0]&&((e,t,r,n,i)=>{(i=t.R.document.querySelector(`[data-ptid="${r}"]`))&&(n?i.dataset.pterror=n:i.type+="-x"),A(e,t)})(e,r,t[2],t[3]))})(e,t)})))})().then((e=>{e&&(W=new Worker(URL.createObjectURL(new Blob([\'/* Partytown 0.4.0 - MIT builder.io */\\n(e=>{const t=Symbol(),r=Symbol(),n=Symbol(),i=Symbol(),s=Symbol(),o=Symbol(),a=Symbol(),l=Symbol(),$=new Map,c={},u=new WeakMap,d=[],h={},p=new Map,g=new Map,m={},f=new Map,w=new Map,y=e=>e.split(","),v=e=>{if(e=h.A+e,new URL(e).origin!=location.origin)throw"Invalid "+e;return e},S=y("clientWidth,clientHeight,clientTop,clientLeft,innerWidth,innerHeight,offsetWidth,offsetHeight,offsetTop,offsetLeft,outerWidth,outerHeight,pageXOffset,pageYOffset,scrollWidth,scrollHeight,scrollTop,scrollLeft"),I=y("childElementCount,children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling"),b=y("insertBefore,remove,removeChild,replaceChild"),T=y("className,width,height,hidden,innerHTML,innerText,textContent"),M=y("setAttribute,setAttributeNS,setProperty"),E=y("addEventListener,dispatchEvent,removeEventListener"),N=E.concat(M,y("add,observe,remove,unobserve")),x=/^[A-Z]([A-Z0-9-]*[A-Z0-9])?$/,L=()=>{},C=e=>e.length,P=e=>{try{return e.constructor.name}catch(e){}return""},R=[],A=()=>Math.round(999999999*Math.random()+4),W="text/partytown",H=(e,t,r)=>Object.defineProperty(e,t,{...r,configurable:!0}),O=(e,t)=>H(e,"name",{value:t}),D=(e,t,r)=>H(e.prototype,t,r),k=(e,t)=>Object.defineProperties(e.prototype,t),B=(e,t,r)=>D(e,t,{value:r,writable:!0}),U=(e,t)=>t in e[o],j=(e,t)=>e[o][t],F=(e,t,r)=>e[o][t]=r,_=[],V=(e,n,i,o,a,l)=>{if(_.push({S:e[t],w:e[r],a:[...e[s],...n],d:o,r:a}),3===i)h.I([10,{D:A(),O:[..._]}],l?[l instanceof ArrayBuffer?l:l.buffer]:void 0),_.length=0;else if(1===i)return q(!0);h.c=setTimeout(q,20)},q=e=>{if(clearTimeout(h.c),C(_)){const t=_[C(_)-1],r={D:A(),O:[..._]};if(_.length=0,e){const e=((e,t)=>{const r=new XMLHttpRequest;return r.open("POST",v("proxytown"),!1),r.send(JSON.stringify(t)),JSON.parse(r.responseText)})(0,r),n=e.z,i=le(t.S,t.w,t.a,e.K);if(e.p){if(n)return Promise.reject(e.p);throw new Error(e.p)}return n?Promise.resolve(i):i}h.I([10,r])}},z=(e,t,r,n)=>h.i.get&&(n=h.i.get(Z(e,t)))!==a?n:n=V(e,t,1,void 0,r),X=(e,t,r,n)=>{if(h.i.set){if((n=h.i.set({value:r,prevent:l,...Z(e,t)}))===l)return;n!==a&&(r=n)}T.some((e=>t.includes(e)))&&(f.clear(),t[t.length-1]),t=[...t,ae(e,r),0],V(e,t,2)},G=(e,t,r,n,i,s,o,l)=>h.i.apply&&(o=h.i.apply({args:r,...Z(e,t)}))!==a?o:(l=t[C(t)-1],t=[...t,ae(e,r)],n=n||(N.includes(l)?2:1),"setAttribute"===l&&U(e,r[0])?F(e,r[0],r[1]):b.includes(l)?(f.clear(),w.clear()):M.includes(l)&&(n=2,f.clear()),o=V(e,t,n,i,void 0,s)),J=(e,t,r)=>{V(e,[1,t,ae(e,r)],1)},Z=(e,t)=>({name:t.join("."),continue:a,nodeName:e[n],constructor:P(e)}),Y=(e,t,r,n,i)=>((i=$.get(t))||(i=m[e].k(r,t,n),$.set(t,i)),i),K=(e,t)=>B(e,"nodeType",t),Q=(e,t)=>t.map((t=>D(e,t,{get(){let e=ee(this,t),r=w.get(e);return r||(r=z(this,[t]),w.set(e,r)),r}}))),ee=(e,n,i)=>[e[t],e[r],n,...(i||R).map((e=>String(e&&e[t]?e[r]:e)))].join("."),te=(e,t)=>y(t).map((t=>D(e,t,{get(){return U(this,t)||F(this,t,z(this,[t])),j(this,t)},set(e){j(this,t)!==e&&X(this,[t],e),F(this,t,e)}}))),re=e=>S.map((t=>D(e,t,{get(){const e=f.get(ee(this,t));if("number"==typeof e)return e;const r=z(this,[t],S);return r&&"object"==typeof r?(Object.entries(r).map((([e,t])=>f.set(ee(this,e),t))),r[t]):r}}))),ne=(e,t)=>t.map((t=>{e.prototype[t]=function(...e){let r=ee(this,t,e),n=f.get(r);return n||(n=G(this,[t],e),f.set(r,n)),n}})),ie=(e,n,i,s,o)=>{return void 0!==i&&(o=typeof i)?"string"===o||"boolean"===o||"number"===o||null==i?[0,i]:"function"===o?[4,{S:e,w:n,J:(a=i,(l=u.get(a))||(u.set(a,l=A()),c[l]=a),l)}]:(s=s||new Set)&&Array.isArray(i)?s.has(i)?[1,[]]:s.add(i)&&[1,i.map((t=>ie(e,n,t,s)))]:"object"===o?"number"==typeof i[r]?[3,{S:i[t],w:i[r]}]:i instanceof Event?[5,oe(e,n,i,!1,s)]:se&&i instanceof TrustedHTML?[0,i.toString()]:i instanceof ArrayBuffer?[8,i]:ArrayBuffer.isView(i)?[9,i.buffer,P(i)]:[2,oe(e,n,i,!0,s)]:void 0:i;var a,l},se="undefined"!=typeof TrustedHTML,oe=(e,t,r,n,i,s,o,a)=>{if(s={},!i.has(r))for(o in i.add(r),r)a=r[o],(n||"function"!=typeof a)&&(s[o]=ie(e,t,a,i));return s},ae=(e,n)=>e?ie(e[t],e[r],n):[0,n],le=(e,t,r,n,i,s,o,a)=>{if(n){if(i=n[0],s=n[1],0===i||11===i||12===i)return s;if(4===i)return ue(r,s);if(6===i)return L;if(3===i)return $e(s);if(7===i)return new de(s.map($e));if(10===i)return new he(s);if(1===i)return s.map((n=>le(e,t,r,n)));for(a in o={},s)o[a]=le(e,t,[...r,a],s[a]);if(13===i)return new m[e].R.CSSStyleDeclaration(e,t,r,o);if(5===i){if("message"===o.type&&o.origin){let e,t=JSON.stringify(o.data),r=d.find((e=>e.m===t));r&&(e=m[r.S],e&&(o.source=e.R,o.origin=e.C.origin))}return new Proxy(new Event(o.type,o),{get:(e,t)=>t in o?o[t]:"function"==typeof e[String(t)]?L:e[String(t)]})}if(2===i)return o}},$e=({S:e,w:t,E:r})=>ce(e,t)||Y(e,t,r),ce=(e,t,r)=>(r=m[e])&&0===t?r.R:1===t?r.n:2===t?r.o:3===t?r.s:4===t?r.e:void 0,ue=(e,{S:t,w:r,E:n,J:i})=>(c[i]||u.set(c[i]=function(...i){const s=Y(t,r,n);return G(s,e,i)},i),c[i]),de=class{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 C(this._)}values(){return this._.values()}[Symbol.iterator](){return this._[Symbol.iterator]()}},he=class{constructor(e){this.name=e[0],this.value=e[1]}get nodeName(){return this.name}get nodeType(){return 2}},pe=(e,t,r)=>{let n,i,s=()=>origin===e.origin,o=t=>((t=r.get(e.origin))||r.set(e.origin,t=[]),t),a=e=>o().findIndex((t=>t[ge]===e)),l={getItem:e=>(n=a(e),n>-1?o()[n][me]:null),setItem(r,i){n=a(r),n>-1?o()[n][me]=i:o().push([r,i]),s()&&G(e,[t,"setItem"],[r,i],2)},removeItem(r){n=a(r),n>-1&&o().splice(n,1),s()&&G(e,[t,"removeItem"],[r],2)},key:e=>(i=o()[e],i?i[ge]:null),clear(){o().length=0,s()&&G(e,[t,"clear"],R,2)},get length(){return o().length}};e[t]=l},ge=0,me=1,fe=(e,t,r)=>{e[r]=O(class extends t{constructor(e,t,r,i){return super(e,t,r,i||{}),new Proxy(this,{get:(e,t)=>e[t]?e[t]:(e[t]||"string"!=typeof t||e[n][t]||(e[n][t]=z(e,[t])),e[n][t]),set:(e,t,r)=>(e[n][t]=r,X(e,[t],r),f.clear(),!0)})}setProperty(...e){this[n][e[0]]=e[1],G(this,["setProperty"],e,2),e[0],f.clear()}getPropertyValue(e){return this[e]}removeProperty(e){let t=this[n][e];return G(this,["removeProperty"],[e],2),f.clear(),this[n][e]=void 0,t}},r)},we=(e,t)=>{e[t]=O(class{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=>ve(e,t):"length"===n?ye(e).length:isNaN(n)?t[r]:ve(e,n)}})}insertRule(e,t){const r=ye(this.ownerNode);return(t=void 0===t?0:t)>=0&&t<=r.length&&(G(this.ownerNode,["sheet","insertRule"],[e,t],2),r.splice(t,0,0)),this.ownerNode,f.clear(),t}deleteRule(e){G(this.ownerNode,["sheet","deleteRule"],[e],2),ye(this.ownerNode).splice(e,1),this.ownerNode,f.clear()}get type(){return"text/css"}},t);const r={sheet:{get(){return new e[t](this)}}};k(e.HTMLStyleElement,r)},ye=(e,t)=>((t=j(e,2))||(t=z(e,["sheet","cssRules"]),F(e,2,t)),t),ve=(e,t,r)=>(0===(r=ye(e))[t]&&(r[t]=z(e,["sheet","cssRules",parseInt(t,10)])),r[t]),Se=(e,t,r,n,i)=>{try{e.l=t,Ie(e,r)}catch(e){console.error(r,e),i=String(e.stack||e)}return e.l=-1,i},Ie=(e,t,r)=>{e.L=1,new Function(`with(this){${t.replace(/\\\\bthis\\\\b/g,"(thi$(this)?window:this)").replace(/\\\\/\\\\/# so/g,"//Xso")}\\\\n;function thi$(t){return t===this}${(h.i.globalFns||[]).filter((e=>/[a-zA-Z_$][0-9a-zA-Z_$]*/.test(e))).map((e=>`(typeof ${e}==\\\'function\\\'&&(window.${e}=${e}))`)).join(";")}}`+(r?"\\\\n//# sourceURL="+r:"")).call(e.R),e.L=0},be=(e,t,r)=>{(r=j(e,t))&&setTimeout((()=>r.map((e=>e({type:t})))))},Te=(e,t,r,n,i,s)=>{for(n=e.C;!n.host&&(n=(e=m[e.H]).C,e.S!==e.H););return i=new URL(t||"",n),!r&&h.i.resolveUrl&&(s=h.i.resolveUrl(i,n))?s:i},Me=(e,t,r)=>Te(e,t,r)+"",Ee=()=>`<script src="${v("partytown.js")}"><\\\\/script>`,Ne=e=>class{constructor(){this.s="",this.l=[],this.e=[]}get src(){return this.s}set src(t){fetch(Me(e,t,!0),{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]}},xe={addEventListener:{value(...e){const t=e[0],r=j(this,t)||[];r.push(e[1]),F(this,t,r)}},async:{get:L,set:L},defer:{get:L,set:L},onload:{get(){let e=j(this,"load");return e&&e[0]||null},set(e){F(this,"load",e?[e]:null)}},onerror:{get(){let e=j(this,"error");return e&&e[0]||null},set(e){F(this,"error",e?[e]:null)}},getAttribute:{value(e){return"src"===e?this.src:G(this,["getAttribute"],[e])}},setAttribute:{value(e,t){Le.includes(e)?this[e]=t:G(this,["setAttribute"],[e,t])}}},Le=y("src,type"),Ce=e=>{const t={innerHTML:Pe,innerText:Pe,src:{get(){return j(this,4)||""},set(e){const t=Ge(this),r=Me(t,e,!0);e=Me(t,e),F(this,4,e),X(this,["src"],e),r!==e&&X(this,["dataset","ptsrc"],r)}},textContent:Pe,type:{get(){return z(this,["type"])},set(e){Re(e)||(F(this,5,e),X(this,["type"],e))}},...xe};k(e,t)},Pe={get(){return j(this,3)||""},set(e){F(this,3,e)}},Re=e=>!e||"text/javascript"===e,Ae=(e,i)=>{const s=O(class extends i{appendChild(e){return this.insertBefore(e,null)}get href(){}set href(e){}insertBefore(e,i){const s=e[t]=this[t],o=e[r],a=e[n],l="SCRIPT"===a,$="IFRAME"===a;if(l){const t=j(e,3),r=j(e,5);if(t){if(Re(r)){const r=Se(Ge(e),o,t,0,""),n=r?"pterror":"ptid",i=r||o;X(e,["type"],W+"-x"),X(e,["dataset",n],i)}X(e,["innerHTML"],t)}}return G(this,["insertBefore"],[e,i],2),$&&((e,t)=>{let r,n,i=0,s=()=>{m[e]&&m[e].x&&!m[e].y?(r=j(t,1)?"error":"load",n=j(t,r),n&&n.map((e=>e({type:r})))):i++>2e3?(n=j(t,"error"),n&&n.map((e=>e({type:"error"})))):setTimeout(s,9)};s()})(o,e),l&&(q(!0),h.I([5,s])),e}get nodeName(){return this[n]}get nodeType(){return 3}get ownerDocument(){return Ge(this).n}},"Node");Q(s,y("childNodes,firstChild,isConnected,lastChild,nextSibling,parentElement,parentNode,previousSibling")),e.Node=s},We=y("AUDIO,CANVAS,VIDEO"),He=y("Audio,MediaSource"),Oe=e=>{k(e,{body:{get(){return Ge(this).e}},createElement:{value(e){if(e=e.toUpperCase(),!x.test(e))throw e+" not valid";const r=this[t],n=A(),i=Y(r,n,e);if(G(this,["createElement"],[e],2,n),"IFRAME"===e)Xe({S:n,H:r,Q:"about:blank"},!0).R.fetch=fetch,X(i,["srcdoc"],Ee());else if("SCRIPT"===e){const e=j(i,5);Re(e)&&X(i,["type"],W)}return i}},createElementNS:{value(e,r){const n=A(),i=Y(this[t],n,r,e);return G(this,["createElementNS"],[e,r],2,n),i}},createTextNode:{value(e){const r=this[t],n=A(),i=Y(r,n,"#text");return G(this,["createTextNode"],[e],2,n),i}},createEvent:{value:e=>new Event(e)},currentScript:{get(){const e=this[t],r=Ge(this).l;return r>0?Y(e,r,"SCRIPT"):null}},defaultView:{get(){return Je(this)}},documentElement:{get(){return Ge(this).o}},getElementsByTagName:{value(e){return"BODY"===(e=e.toUpperCase())?[Ge(this).e]:"HEAD"===e?[Ge(this).s]:G(this,["getElementsByTagName"],[e])}},head:{get(){return Ge(this).s}},implementation:{value:{hasFeature:()=>!0}},location:{get(){return Ge(this).C},set(e){Ge(this).C.href=e+""}},nodeType:{value:9},parentNode:{value:null},parentElement:{value:null},readyState:{value:"complete"}}),te(e,"compatMode,referrer")},De=e=>{k(e,{parentElement:{get(){return this.parentNode}},parentNode:{get(){return Ge(this).o}}})},ke=e=>{k(e,{parentElement:{value:null},parentNode:{get(){return Ge(this).n}}})},Be=e=>{k(e,{localName:{get(){return this[n].toLowerCase()}},namespaceURI:{get(){return this[i]||"http://www.w3.org/1999/xhtml"}},nodeType:{value:1},tagName:{get(){return this[n]}}}),Q(e,I),re(e),ne(e,y("getClientRects,getBoundingClientRect")),te(e,"id")},Ue=e=>{const t={};y("hash,host,hostname,href,origin,pathname,port,protocol,search").map((e=>{t[e]={get(){let t,r=Ge(this),n=j(this,4);return"string"!=typeof n&&(t=z(this,["href"]),F(this,4,t),n=new URL(t)[e]),Te(r,n)[e]},set(t){let r=Ge(this),n=j(this,4),i=Te(r,n);i[e]=new URL(t+"",i.href),F(this,4,i.href),X(this,["href"],i.href)}}})),k(e,t)},je=e=>{const t={contentDocument:{get(){return Fe(this).n}},contentWindow:{get(){return Fe(this).R}},src:{get(){let e=Fe(this).C.href;return e.startsWith("about")&&(e=""),e},set(e){let t,r=new XMLHttpRequest,n=Fe(this);n.C.href=e=Me(Ge(this),e),n.y=1,F(this,1,void 0),r.open("GET",e,!1),r.send(),t=r.status,t>199&&t<300?(X(this,["srcdoc"],`<base href="${e}">`+r.responseText.replace(/<script>/g,\\\'<script type="text/partytown">\\\').replace(/<script /g,\\\'<script type="text/partytown" \\\').replace(/text\\\\/javascript/g,W)+Ee()),q(!0),h.I([5,n.S])):(F(this,1,t),n.y=0)}},...xe};k(e,t)},Fe=e=>{const n=e[r];return m[n]||Xe({S:n,H:e[t],Q:z(e,["src"])||"about:blank"},!0),m[n]},_e=e=>{const t=(e,t)=>{const{a:r,b:n,c:i,d:s,e:o,f:a}=G(e,[t],R);return new DOMMatrixReadOnly([r,n,i,s,o,a])},r={...e,getCTM:{value:function(){return t(this,"getCTM")}},getScreenCTM:{value:function(){return t(this,"getScreenCTM")}}};k(e,r)},Ve=(a,l,$,c)=>{const u=class{constructor(e,a,l,$,c){this[t]=e,this[r]=a,this[s]=l||[],this[n]=$,this[o]={},c&&(this[i]=c)}},d=new(O(class extends URL{assign(){}reload(){}replace(){}},"Location"))($),f=O(class extends u{constructor(){super(a,0);let n,i,o=this,$=0,b=()=>{$||((h.u||(e.g=[z,X,G,J,k,A,t,r,s],h.t(v("partytown-media.js")),h.u=e.f,delete e.f),h.u)(u,S,m[a],o,He),$=1)},T={},M=(e,t,r)=>(We.includes(e)&&b(),new(T[e]?T[e]:e.includes("-")?T.UNKNOWN:T.DIV)(a,t,R,e,r));var E;o.Window=f,Ae(o,u),fe(o,u,"CSSStyleDeclaration"),((e,t,r)=>{e[r]=O(class extends t{now(){return performance.now()}},r)})(o,u,"Performance"),h.v.map((([e,n,i,l,$])=>{const c=ze[e]?w:"EventTarget"===n?S:"Object"===n?u:o[n],d=o[e]=O(12===l?class extends u{constructor(...t){super(a,A()),J(this,e,t)}}:o[e]||class extends c{},e);$&&(T[$]=d),i.map((([e,n,i])=>{e in d.prototype||e in c.prototype||("string"==typeof n?D(d,e,{get(){if(!U(this,e)){const i=this[t],a=this[r],l=[...this[s],e],$=o[n];$&&F(this,e,new $(i,a,l))}return j(this,e)},set(t){F(this,e,t)}}):5===n?B(d,e,(function(...t){return G(this,[e],t)})):n>0&&(void 0!==i?B(d,e,i):D(d,e,{get(){return z(this,[e])},set(t){return X(this,[e],t)}})))}))})),y("atob,btoa,crypto,indexedDB,setTimeout,setInterval,clearTimeout,clearInterval").map((t=>{delete f.prototype[t],t in o||(n=e[t],null!=n&&(o[t]="function"!=typeof n||n.toString().startsWith("class")?n:n.bind(e)))})),Object.getOwnPropertyNames(e).map((t=>{t in o||(o[t]=e[t])})),He.map((e=>H(o,e,{get:()=>(b(),o[e])}))),"trustedTypes"in e&&(o.trustedTypes=e.trustedTypes),Be(o.Element),Oe(o.Document),E=o.DocumentFragment,K(E,11),Q(E,I),Ue(o.HTMLAnchorElement),je(o.HTMLIFrameElement),Ce(o.HTMLScriptElement),_e(o.SVGGraphicsElement),De(o.HTMLHeadElement),De(o.HTMLBodyElement),ke(o.HTMLHtmlElement),we(o,"CSSStyleSheet"),K(o.Comment,8),K(o.DocumentType,10),m[a]={S:a,H:l,R:new Proxy(o,{has:()=>!0}),n:M("#document",1),o:M("HTML",2),s:M("HEAD",3),e:M("BODY",4),C:d,k:M},o.requestAnimationFrame=e=>setTimeout((()=>e(performance.now())),9),o.cancelAnimationFrame=e=>clearTimeout(e),o.requestIdleCallback=(e,t)=>(t=Date.now(),setTimeout((()=>e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})),1)),o.cancelIdleCallback=e=>clearTimeout(e),pe(o,"localStorage",p),pe(o,"sessionStorage",g),c&&(i={},o.history={pushState(e){i=e},replaceState(e){i=e},get state(){return i},length:0},o.indexeddb=void 0),o.Worker=void 0}addEventListener(...e){"load"===e[0]?Ge(this).L&&setTimeout((()=>e[1]({type:"load"}))):G(this,["addEventListener"],e,2)}get body(){return Ge(this).e}get document(){return Ge(this).n}get documentElement(){return Ge(this).o}fetch(e,t){return e="string"==typeof e||e instanceof URL?String(e):e.url,fetch(Me(Ge(this),e),t)}get frameElement(){const e=Ge(this),t=e.H,r=e.S;return r===t?null:Y(t,r,"IFRAME")}get globalThis(){return this}get head(){return Ge(this).s}get location(){return d}set location(e){d.href=e+""}get Image(){return Ne(Ge(this))}get name(){return name+this[t]}get navigator(){return(e=>{let t,r={sendBeacon:(t,r)=>{try{return fetch(Me(e,t,!0),{method:"POST",body:r,mode:"no-cors",keepalive:!0}),!0}catch(e){return console.error(e),!1}}};for(t in navigator)r[t]=navigator[t];return r})(Ge(this))}get origin(){return d.origin}set origin(e){}get parent(){return qe(m[Ge(this).H].R,this[t])}postMessage(...e){G(this,["postMessage"],e,3)}get self(){return this}get top(){for(let e in m)if(m[e].S===m[e].H)return qe(m[e].R,this[t])}get window(){return this}get XMLHttpRequest(){const e=Ge(this),t=XMLHttpRequest,r=String(t),n=O(class extends t{open(...t){t[1]=Me(e,t[1]),super.open(...t)}set withCredentials(e){}toString(){return r}},P(t));return n.prototype.constructor.toString=()=>r,n}},"Window"),w=class extends u{constructor(e,t,r,n){return super(e,t,r,n),new Proxy(this,{get:(e,t)=>z(e,[t]),set:(e,t,r)=>(X(e,[t],r),!0)})}},S=class extends u{};E.map((e=>S.prototype[e]=function(...t){return G(this,[e],t,2)})),te(f,"devicePixelRatio"),re(f),ne(f,["getComputedStyle"]),new f},qe=(e,t)=>new Proxy(e,{get:(e,r)=>"postMessage"===r?(...r)=>{C(d)>20&&d.splice(0,5),d.push({m:JSON.stringify(r[0]),S:t}),e.postMessage(...r)}:e[r]}),ze={DOMStringMap:1,NamedNodeMap:1},Xe=({S:e,H:t,Q:r},n)=>(m[e]||Ve(e,t,r,n),h.I([5,e]),m[e]),Ge=e=>m[e[t]],Je=e=>Ge(e).R,Ze=[],Ye=t=>{const r=t.data,n=r[0],i=r[1];h.x?5===n?(async e=>{let t,r=e.S,n=e.w,i=Y(r,n,"SCRIPT"),s=e.j,o=e.Q,a=e.F,l="",$=m[r];if(o)try{o=Te($,o)+"",F(i,4,o),t=await fetch(o),t.ok?(s=await t.text(),$.l=n,Ie($,s,a||o),be(i,"load")):(l=t.statusText,be(i,"error"))}catch(e){console.error(e),l=String(e.stack||e),be(i,"error")}else s&&(l=Se($,n,s,0,l));$.l=-1,h.I([4,r,n,l])})(i):7===n?(({S:e,w:t,J:r,P:n,b:i})=>{if(c[r])try{c[r].apply(le(e,t,[],n),le(e,t,[],i))}catch(e){console.error(e)}})(i):8===n?(({S:e,q:t,b:r})=>{try{let n=m[e].R,i=0,s=C(t);for(;i<s;i++)i+1<s?n=n[t[i]]:n[t[i]].apply(n,le(null,0,[],r))}catch(e){console.error(e)}})(i):3===n?Xe(i):6===n?(m[i].x=1,m[i].y=0):11===n&&(m[r[1]].C.href=r[2]):1===n?((t=>{const r=h.i=JSON.parse(t.i);h.t=importScripts.bind(e),h.v=t.v,h.A=t.A,h.I=postMessage.bind(e),h.N=t.N,p.set(origin,t.B),g.set(origin,t.M),e.importScripts=void 0,delete e.postMessage,delete e.WorkerGlobalScope,y("resolveUrl,get,set,apply").map((e=>{r[e]&&(r[e]=new Function("return "+r[e])())})),h.x=1})(r[1]),h.I([2]),[...Ze].map(Ye),Ze.length=0):Ze.push(t)};e.onmessage=Ye,postMessage([0])})(self);\\n\'],{type:"text/javascript"})),{name:"Partytown 🎉"}),W.onmessage=t=>{const r=t.data;10===r[0]?N(W,r[1]):e(W,r)},$.addEventListener("pt1",(e=>O(W,g(e.detail.frameElement),e.detail))))}))})(window);\n<\/script></head></html>')):s.endsWith("proxytown")&&n.respondWith((n=>new Promise((async i=>{const s=await n.clone().json(),o=await(r=>new Promise((async n=>{const i=[...await self.clients.matchAll()].sort(((e,t)=>e.url>t.url?-1:e.url<t.url?1:0))[0];if(i){const s=[n,setTimeout((()=>{e.delete(r.D),n(t(r,"Timeout"))}),1e4)];e.set(r.D,s),i.postMessage(r)}else n(t(r,"NoParty"))})))(s);i(r(JSON.stringify(o),"application/json"))})))(i))}; |
@@ -1,2 +0,2 @@ | ||
/* Partytown 0.3.6 - MIT builder.io */ | ||
!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,"/"==(a=(o.lib||"/~partytown/")+(o.debug?"debug/":""))[0]&&(s=e.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):s.length&&(d=setTimeout(f,1e4),e.addEventListener("pt0",g),r?h(1):n.serviceWorker?n.serviceWorker.register(a+"partytown-sw.js",{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?"script":"iframe"),t||(c.setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),c.setAttribute("aria-hidden",!0)),c.src=a+"partytown-"+(t?"atomics.js":"sandbox-sw.html?"+Date.now()),e.body.appendChild(c)}function f(t,n){for(g(),t=0;t<s.length;t++)(n=e.createElement("script")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function g(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(".").map((function(e,n,i){p=p[i[n]]=n+1<i.length?"push"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),"complete"==e.readyState?u():(t.addEventListener("DOMContentLoaded",u),t.addEventListener("load",u))}(window,document,navigator,top,top.crossOriginIsolated); | ||
/* Partytown 0.4.0 - MIT builder.io */ | ||
!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,"/"==(a=(o.lib||"/~partytown/")+(o.debug?"debug/":""))[0]&&(s=e.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):s.length&&(d=setTimeout(f,1e4),e.addEventListener("pt0",v),r?h(1):n.serviceWorker?n.serviceWorker.register(a+"partytown-sw.js",{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?"script":"iframe"),t||(c.setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),c.setAttribute("aria-hidden",!0)),c.src=a+"partytown-"+(t?"atomics.js?v=0.4.0":"sandbox-sw.html?"+Date.now()),e.body.appendChild(c)}function f(t,n){for(v(),t=0;t<s.length;t++)(n=e.createElement("script")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function v(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(".").map((function(e,n,i){p=p[i[n]]=n+1<i.length?"push"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),"complete"==e.readyState?u():(t.addEventListener("DOMContentLoaded",u),t.addEventListener("load",u))}(window,document,navigator,top,top.crossOriginIsolated); |
{ | ||
"name": "@builder.io/partytown", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"description": "Relocate resource intensive third-party scripts off of the main thread and into a web worker.", | ||
@@ -55,3 +55,3 @@ "license": "MIT", | ||
"build": "tsc && rollup -c scripts/rollup.config.js", | ||
"build.prod": "tsc && rollup -c scripts/rollup.config.js --configApi", | ||
"build.prod": "tsc && rollup -c scripts/rollup.config.js --configReleaseBuild", | ||
"build.site": "npm run build && cd docs/site && npm i && npm run build && node ../../scripts/copy-site.cjs", | ||
@@ -58,0 +58,0 @@ "build.watch": "rollup -c scripts/rollup.config.js -w --configDev", |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"private": true | ||
} |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"private": true | ||
} |
@@ -56,3 +56,4 @@ /** | ||
/** | ||
* Rollup plugin to copy Partytown `lib` directory to the given destination. | ||
* The Rollup plugin will copy Partytown `lib` directory to the given destination, | ||
* which must be an absolute file path. | ||
* | ||
@@ -79,7 +80,6 @@ * https://partytown.builder.io/copy-library-files | ||
/** | ||
* Vite plugin to copy Partytown `lib` directory to the given destination. | ||
* The Vite plugin will copy Partytown `lib` directory to the given destination, | ||
* which must be an absolute file path. When in dev mode, the Partytown | ||
* lib files will be served using the Vite Dev Server. | ||
* | ||
* When in dev mode, the Partytown lib files will be served | ||
* from the Vite Dev Server. | ||
* | ||
* https://partytown.builder.io/copy-library-files | ||
@@ -86,0 +86,0 @@ * |
@@ -6,4 +6,4 @@ { | ||
"types": "index.d.ts", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"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 too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
331751
5989
10