-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuv.handler.js.map
7 lines (7 loc) · 60.8 KB
/
uv.handler.js.map
1
2
3
4
5
6
7
{
"version": 3,
"sources": ["../src/uv.handler.js"],
"sourcesContent": ["/**\n * @type {import('../uv').UltravioletCtor}\n */\nconst Ultraviolet = self.Ultraviolet;\n\n/**\n * @type {import('../uv').UVClientCtor}\n */\nconst UVClient = self.UVClient;\n\n/**\n * @type {import('../uv').UVConfig}\n */\nconst __uv$config = self.__uv$config;\n\n/**\n * @type {string}\n */\nconst __uv$cookies = self.__uv$cookies;\n\nif (typeof __uv$cookies !== \"string\")\n\tthrow new TypeError(\"Unable to load global UV data\");\n\nif (!self.__uv) __uvHook(self);\n\nself.__uvHook = __uvHook;\n\n/**\n *\n * @param {typeof globalThis} window\n * @returns\n */\nfunction __uvHook(window) {\n\tif (\"__uv\" in window && window.__uv instanceof Ultraviolet) return false;\n\n\tif (window.document && !!window.window) {\n\t\twindow.document\n\t\t\t.querySelectorAll(\"script[__uv-script]\")\n\t\t\t.forEach((node) => node.remove());\n\t}\n\n\tconst worker = !window.window;\n\tconst master = \"__uv\";\n\tconst methodPrefix = \"__uv$\";\n\tconst __uv = new Ultraviolet(__uv$config);\n\n\t/*if (typeof config.construct === 'function') {\n config.construct(__uv, worker ? 'worker' : 'window');\n }*/\n\tlet bareClient;\n\tif (!worker) {\n\t\t// websockets\n\t\tbareClient = new Ultraviolet.BareClient();\n\t} else {\n\t\tbareClient = new Ultraviolet.BareClient(\n\t\t\tnew Promise((resolve) => {\n\t\t\t\taddEventListener(\"message\", ({ data }) => {\n\t\t\t\t\tif (typeof data !== \"object\") return;\n\t\t\t\t\tif (\"__uv$type\" in data && data.__uv$type === \"baremuxinit\") {\n\t\t\t\t\t\tresolve(data.port);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t})\n\t\t);\n\t}\n\n\tconst client = new UVClient(window, bareClient, worker);\n\tconst {\n\t\tHTMLMediaElement,\n\t\tHTMLScriptElement,\n\t\tHTMLAudioElement,\n\t\tHTMLVideoElement,\n\t\tHTMLInputElement,\n\t\tHTMLEmbedElement,\n\t\tHTMLTrackElement,\n\t\tHTMLAnchorElement,\n\t\tHTMLIFrameElement,\n\t\tHTMLAreaElement,\n\t\tHTMLLinkElement,\n\t\tHTMLBaseElement,\n\t\tHTMLFormElement,\n\t\tHTMLImageElement,\n\t\tHTMLSourceElement,\n\t} = window;\n\n\tclient.nativeMethods.defineProperty(window, \"__uv\", {\n\t\tvalue: __uv,\n\t\tenumerable: false,\n\t});\n\n\t__uv.meta.origin = location.origin;\n\t__uv.location = client.location.emulate(\n\t\t(href) => {\n\t\t\tif (href === \"about:srcdoc\") return new URL(href);\n\t\t\tif (href.startsWith(\"blob:\")) href = href.slice(\"blob:\".length);\n\t\t\treturn new URL(__uv.sourceUrl(href));\n\t\t},\n\t\t(href) => {\n\t\t\treturn __uv.rewriteUrl(href);\n\t\t}\n\t);\n\n\tlet cookieStr = __uv$cookies;\n\n\t__uv.meta.url = __uv.location;\n\t__uv.domain = __uv.meta.url.host;\n\t__uv.blobUrls = new window.Map();\n\t__uv.referrer = \"\";\n\t__uv.cookies = [];\n\t__uv.localStorageObj = {};\n\t__uv.sessionStorageObj = {};\n\n\tif (__uv.location.href === \"about:srcdoc\") {\n\t\t__uv.meta = window.parent.__uv.meta;\n\t}\n\n\tif (window.EventTarget) {\n\t\t__uv.addEventListener = window.EventTarget.prototype.addEventListener;\n\t\t__uv.removeListener = window.EventTarget.prototype.removeListener;\n\t\t__uv.dispatchEvent = window.EventTarget.prototype.dispatchEvent;\n\t}\n\n\t// Storage wrappers\n\tclient.nativeMethods.defineProperty(\n\t\tclient.storage.storeProto,\n\t\t\"__uv$storageObj\",\n\t\t{\n\t\t\tget() {\n\t\t\t\tif (this === client.storage.sessionStorage)\n\t\t\t\t\treturn __uv.sessionStorageObj;\n\t\t\t\tif (this === client.storage.localStorage) return __uv.localStorageObj;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\n\tif (window.localStorage) {\n\t\tfor (const key in window.localStorage) {\n\t\t\tif (key.startsWith(methodPrefix + __uv.location.origin + \"@\")) {\n\t\t\t\t__uv.localStorageObj[\n\t\t\t\t\tkey.slice((methodPrefix + __uv.location.origin + \"@\").length)\n\t\t\t\t] = window.localStorage.getItem(key);\n\t\t\t}\n\t\t}\n\n\t\t__uv.lsWrap = client.storage.emulate(\n\t\t\tclient.storage.localStorage,\n\t\t\t__uv.localStorageObj\n\t\t);\n\t}\n\n\tif (window.sessionStorage) {\n\t\tfor (const key in window.sessionStorage) {\n\t\t\tif (key.startsWith(methodPrefix + __uv.location.origin + \"@\")) {\n\t\t\t\t__uv.sessionStorageObj[\n\t\t\t\t\tkey.slice((methodPrefix + __uv.location.origin + \"@\").length)\n\t\t\t\t] = window.sessionStorage.getItem(key);\n\t\t\t}\n\t\t}\n\n\t\t__uv.ssWrap = client.storage.emulate(\n\t\t\tclient.storage.sessionStorage,\n\t\t\t__uv.sessionStorageObj\n\t\t);\n\t}\n\n\tlet rawBase = window.document\n\t\t? client.node.baseURI.get.call(window.document)\n\t\t: window.location.href;\n\tlet base = __uv.sourceUrl(rawBase);\n\n\tclient.nativeMethods.defineProperty(__uv.meta, \"base\", {\n\t\tget() {\n\t\t\tif (!window.document) return __uv.meta.url.href;\n\n\t\t\tif (client.node.baseURI.get.call(window.document) !== rawBase) {\n\t\t\t\trawBase = client.node.baseURI.get.call(window.document);\n\t\t\t\tbase = __uv.sourceUrl(rawBase);\n\t\t\t}\n\n\t\t\treturn base;\n\t\t},\n\t});\n\n\t__uv.methods = {\n\t\tsetSource: methodPrefix + \"setSource\",\n\t\tsource: methodPrefix + \"source\",\n\t\tlocation: methodPrefix + \"location\",\n\t\tfunction: methodPrefix + \"function\",\n\t\tstring: methodPrefix + \"string\",\n\t\teval: methodPrefix + \"eval\",\n\t\tparent: methodPrefix + \"parent\",\n\t\ttop: methodPrefix + \"top\",\n\t};\n\n\t__uv.filterKeys = [\n\t\tmaster,\n\t\t__uv.methods.setSource,\n\t\t__uv.methods.source,\n\t\t__uv.methods.location,\n\t\t__uv.methods.function,\n\t\t__uv.methods.string,\n\t\t__uv.methods.eval,\n\t\t__uv.methods.parent,\n\t\t__uv.methods.top,\n\t\tmethodPrefix + \"protocol\",\n\t\tmethodPrefix + \"storageObj\",\n\t\tmethodPrefix + \"url\",\n\t\tmethodPrefix + \"modifiedStyle\",\n\t\tmethodPrefix + \"config\",\n\t\tmethodPrefix + \"dispatched\",\n\t\t\"Ultraviolet\",\n\t\t\"__uvHook\",\n\t];\n\n\tclient.on(\"wrap\", (target, wrapped) => {\n\t\tclient.nativeMethods.defineProperty(\n\t\t\twrapped,\n\t\t\t\"name\",\n\t\t\tclient.nativeMethods.getOwnPropertyDescriptor(target, \"name\")\n\t\t);\n\t\tclient.nativeMethods.defineProperty(\n\t\t\twrapped,\n\t\t\t\"length\",\n\t\t\tclient.nativeMethods.getOwnPropertyDescriptor(target, \"length\")\n\t\t);\n\n\t\tclient.nativeMethods.defineProperty(wrapped, __uv.methods.string, {\n\t\t\tenumerable: false,\n\t\t\tvalue: client.nativeMethods.fnToString.call(target),\n\t\t});\n\n\t\tclient.nativeMethods.defineProperty(wrapped, __uv.methods.function, {\n\t\t\tenumerable: false,\n\t\t\tvalue: target,\n\t\t});\n\t});\n\n\tclient.fetch.on(\"request\", (event) => {\n\t\tevent.data.input = __uv.rewriteUrl(event.data.input);\n\t});\n\n\tclient.fetch.on(\"requestUrl\", (event) => {\n\t\tevent.data.value = __uv.sourceUrl(event.data.value);\n\t});\n\n\tclient.fetch.on(\"responseUrl\", (event) => {\n\t\tevent.data.value = __uv.sourceUrl(event.data.value);\n\t});\n\n\t// XMLHttpRequest\n\tclient.xhr.on(\"open\", (event) => {\n\t\tevent.data.input = __uv.rewriteUrl(event.data.input);\n\t});\n\n\tclient.xhr.on(\"responseUrl\", (event) => {\n\t\tevent.data.value = __uv.sourceUrl(event.data.value);\n\t});\n\n\t// Workers\n\tclient.workers.on(\"worker\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\tclient.workers.on(\"addModule\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\tclient.workers.on(\"importScripts\", (event) => {\n\t\tfor (const i in event.data.scripts) {\n\t\t\tevent.data.scripts[i] = __uv.rewriteUrl(event.data.scripts[i]);\n\t\t}\n\t});\n\n\tclient.workers.on(\"postMessage\", (event) => {\n\t\tlet to = event.data.origin;\n\n\t\tevent.data.origin = \"*\";\n\t\tevent.data.message = {\n\t\t\t__data: event.data.message,\n\t\t\t__origin: __uv.meta.url.origin,\n\t\t\t__to: to,\n\t\t};\n\t});\n\n\t// Navigator\n\tclient.navigator.on(\"sendBeacon\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\t// Cookies\n\tclient.document.on(\"getCookie\", (event) => {\n\t\tevent.data.value = cookieStr;\n\t});\n\n\tclient.document.on(\"setCookie\", (event) => {\n\t\t__uv.cookie.db().then((db) => {\n\t\t\t__uv.cookie.setCookies(event.data.value, db, __uv.meta);\n\n\t\t\t__uv.cookie.getCookies(db).then((cookies) => {\n\t\t\t\tcookieStr = __uv.cookie.serialize(cookies, __uv.meta, true);\n\t\t\t});\n\t\t});\n\n\t\tconst cookie = __uv.cookie.setCookie(event.data.value)[0];\n\n\t\tif (!cookie.path) cookie.path = \"/\";\n\t\tif (!cookie.domain) cookie.domain = __uv.meta.url.hostname;\n\n\t\tif (__uv.cookie.validateCookie(cookie, __uv.meta, true)) {\n\t\t\tif (cookieStr.length) cookieStr += \"; \";\n\t\t\tcookieStr += `${cookie.name}=${cookie.value}`;\n\t\t}\n\n\t\tevent.respondWith(event.data.value);\n\t});\n\n\t// HTML\n\tclient.element.on(\"setInnerHTML\", (event) => {\n\t\tswitch (event.that.tagName) {\n\t\t\tcase \"SCRIPT\":\n\t\t\t\tevent.data.value = __uv.js.rewrite(event.data.value);\n\t\t\t\tbreak;\n\t\t\tcase \"STYLE\":\n\t\t\t\tevent.data.value = __uv.rewriteCSS(event.data.value);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tevent.data.value = __uv.rewriteHtml(event.data.value);\n\t\t}\n\t});\n\n\tclient.element.on(\"getInnerHTML\", (event) => {\n\t\tswitch (event.that.tagName) {\n\t\t\tcase \"SCRIPT\":\n\t\t\t\tevent.data.value = __uv.js.source(event.data.value);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tevent.data.value = __uv.sourceHtml(event.data.value);\n\t\t}\n\t});\n\n\tclient.element.on(\"setOuterHTML\", (event) => {\n\t\tevent.data.value = __uv.rewriteHtml(event.data.value, {\n\t\t\tdocument: event.that.tagName === \"HTML\",\n\t\t});\n\t});\n\n\tclient.element.on(\"getOuterHTML\", (event) => {\n\t\tswitch (event.that.tagName) {\n\t\t\tcase \"HEAD\":\n\t\t\t\tevent.data.value = __uv\n\t\t\t\t\t.sourceHtml(\n\t\t\t\t\t\tevent.data.value.replace(\n\t\t\t\t\t\t\t/<head(.*)>(.*)<\\/head>/s,\n\t\t\t\t\t\t\t\"<op-head$1>$2</op-head>\"\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.replace(/<op-head(.*)>(.*)<\\/op-head>/s, \"<head$1>$2</head>\");\n\t\t\t\tbreak;\n\t\t\tcase \"BODY\":\n\t\t\t\tevent.data.value = __uv\n\t\t\t\t\t.sourceHtml(\n\t\t\t\t\t\tevent.data.value.replace(\n\t\t\t\t\t\t\t/<body(.*)>(.*)<\\/body>/s,\n\t\t\t\t\t\t\t\"<op-body$1>$2</op-body>\"\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.replace(/<op-body(.*)>(.*)<\\/op-body>/s, \"<body$1>$2</body>\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tevent.data.value = __uv.sourceHtml(event.data.value, {\n\t\t\t\t\tdocument: event.that.tagName === \"HTML\",\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\n\t\t//event.data.value = __uv.sourceHtml(event.data.value, { document: event.that.tagName === 'HTML' });\n\t});\n\n\tclient.document.on(\"write\", (event) => {\n\t\tif (!event.data.html.length) return false;\n\t\tevent.data.html = [__uv.rewriteHtml(event.data.html.join(\"\"))];\n\t});\n\n\tclient.document.on(\"writeln\", (event) => {\n\t\tif (!event.data.html.length) return false;\n\t\tevent.data.html = [__uv.rewriteHtml(event.data.html.join(\"\"))];\n\t});\n\n\tclient.element.on(\"insertAdjacentHTML\", (event) => {\n\t\tevent.data.html = __uv.rewriteHtml(event.data.html);\n\t});\n\n\t// EventSource\n\n\tclient.eventSource.on(\"construct\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\tclient.eventSource.on(\"url\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\t// IDB\n\tclient.idb.on(\"idbFactoryOpen\", (event) => {\n\t\t// Don't modify the Ultraviolet cookie database\n\t\tif (event.data.name === \"__op\") return;\n\t\tevent.data.name = `${__uv.meta.url.origin}@${event.data.name}`;\n\t});\n\n\tclient.idb.on(\"idbFactoryName\", (event) => {\n\t\tevent.data.value = event.data.value.slice(\n\t\t\t__uv.meta.url.origin.length + 1 /*the @*/\n\t\t);\n\t});\n\n\t// History\n\tclient.history.on(\"replaceState\", (event) => {\n\t\tif (event.data.url)\n\t\t\tevent.data.url = __uv.rewriteUrl(\n\t\t\t\tevent.data.url,\n\t\t\t\t\"__uv\" in event.that ? event.that.__uv.meta : __uv.meta\n\t\t\t);\n\t});\n\tclient.history.on(\"pushState\", (event) => {\n\t\tif (event.data.url)\n\t\t\tevent.data.url = __uv.rewriteUrl(\n\t\t\t\tevent.data.url,\n\t\t\t\t\"__uv\" in event.that ? event.that.__uv.meta : __uv.meta\n\t\t\t);\n\t});\n\n\t// Element get set attribute methods\n\tclient.element.on(\"getAttribute\", (event) => {\n\t\tif (\n\t\t\tclient.element.hasAttribute.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name\n\t\t\t)\n\t\t) {\n\t\t\tevent.respondWith(\n\t\t\t\tevent.target.call(\n\t\t\t\t\tevent.that,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t});\n\n\t// Message\n\tclient.message.on(\"postMessage\", (event) => {\n\t\tlet to = event.data.origin;\n\t\tlet call = __uv.call;\n\n\t\tif (event.that) {\n\t\t\tcall = event.that.__uv$source.call;\n\t\t}\n\n\t\tevent.data.origin = \"*\";\n\t\tevent.data.message = {\n\t\t\t__data: event.data.message,\n\t\t\t__origin: (event.that || event.target).__uv$source.location.origin,\n\t\t\t__to: to,\n\t\t};\n\n\t\tevent.respondWith(\n\t\t\tworker\n\t\t\t\t? call(\n\t\t\t\t\t\tevent.target,\n\t\t\t\t\t\t[event.data.message, event.data.transfer],\n\t\t\t\t\t\tevent.that\n\t\t\t\t\t)\n\t\t\t\t: call(\n\t\t\t\t\t\tevent.target,\n\t\t\t\t\t\t[event.data.message, event.data.origin, event.data.transfer],\n\t\t\t\t\t\tevent.that\n\t\t\t\t\t)\n\t\t);\n\t});\n\n\tclient.message.on(\"data\", (event) => {\n\t\tconst { value: data } = event.data;\n\t\tif (typeof data === \"object\" && \"__data\" in data && \"__origin\" in data) {\n\t\t\tevent.respondWith(data.__data);\n\t\t}\n\t});\n\n\tclient.message.on(\"origin\", (event) => {\n\t\tconst data = client.message.messageData.get.call(event.that);\n\t\tif (typeof data === \"object\" && data.__data && data.__origin) {\n\t\t\tevent.respondWith(data.__origin);\n\t\t}\n\t});\n\n\tclient.overrideDescriptor(window, \"origin\", {\n\t\tget: () => {\n\t\t\treturn __uv.location.origin;\n\t\t},\n\t});\n\n\tclient.node.on(\"baseURI\", (event) => {\n\t\tif (event.data.value.startsWith(window.location.origin))\n\t\t\tevent.data.value = __uv.sourceUrl(event.data.value);\n\t});\n\n\tclient.element.on(\"setAttribute\", (event) => {\n\t\tif (\n\t\t\tevent.that instanceof HTMLMediaElement &&\n\t\t\tevent.data.name === \"src\" &&\n\t\t\tevent.data.value.startsWith(\"blob:\")\n\t\t) {\n\t\t\tevent.target.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.blobUrls.get(event.data.value);\n\t\t\treturn;\n\t\t}\n\n\t\tif (__uv.attrs.isUrl(event.data.name)) {\n\t\t\tevent.target.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteUrl(event.data.value);\n\t\t}\n\n\t\tif (__uv.attrs.isStyle(event.data.name)) {\n\t\t\tevent.target.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteCSS(event.data.value, {\n\t\t\t\tcontext: \"declarationList\",\n\t\t\t});\n\t\t}\n\n\t\tif (__uv.attrs.isHtml(event.data.name)) {\n\t\t\tevent.target.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteHtml(event.data.value, {\n\t\t\t\t...__uv.meta,\n\t\t\t\tdocument: true,\n\t\t\t\tinjectHead: __uv.createHtmlInject(\n\t\t\t\t\t__uv.handlerScript,\n\t\t\t\t\t__uv.bundleScript,\n\t\t\t\t\t__uv.clientScript,\n\t\t\t\t\t__uv.configScript,\n\t\t\t\t\tcookieStr,\n\t\t\t\t\twindow.location.href\n\t\t\t\t),\n\t\t\t});\n\t\t}\n\n\t\tif (__uv.attrs.isSrcset(event.data.name)) {\n\t\t\tevent.target.call(\n\t\t\t\tevent.that,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.html.wrapSrcset(event.data.value.toString());\n\t\t}\n\n\t\tif (__uv.attrs.isForbidden(event.data.name)) {\n\t\t\tevent.data.name = __uv.attributePrefix + \"-attr-\" + event.data.name;\n\t\t}\n\t});\n\n\tclient.element.on(\"audio\", (event) => {\n\t\tevent.data.url = __uv.rewriteUrl(event.data.url);\n\t});\n\n\t// Element Property Attributes\n\tclient.element.hookProperty(\n\t\t[HTMLAnchorElement, HTMLAreaElement, HTMLLinkElement, HTMLBaseElement],\n\t\t\"href\",\n\t\t{\n\t\t\tget: (target, that) => {\n\t\t\t\treturn __uv.sourceUrl(target.call(that));\n\t\t\t},\n\t\t\tset: (target, that, [val]) => {\n\t\t\t\tclient.element.setAttribute.call(\n\t\t\t\t\tthat,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-href\",\n\t\t\t\t\tval\n\t\t\t\t);\n\t\t\t\ttarget.call(that, __uv.rewriteUrl(val));\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.element.hookProperty(\n\t\t[\n\t\t\tHTMLScriptElement,\n\t\t\tHTMLAudioElement,\n\t\t\tHTMLVideoElement,\n\t\t\tHTMLMediaElement,\n\t\t\tHTMLImageElement,\n\t\t\tHTMLInputElement,\n\t\t\tHTMLEmbedElement,\n\t\t\tHTMLIFrameElement,\n\t\t\tHTMLTrackElement,\n\t\t\tHTMLSourceElement,\n\t\t],\n\t\t\"src\",\n\t\t{\n\t\t\tget: (target, that) => {\n\t\t\t\treturn __uv.sourceUrl(target.call(that));\n\t\t\t},\n\t\t\tset: (target, that, [val]) => {\n\t\t\t\tif (\n\t\t\t\t\tnew String(val).toString().trim().startsWith(\"blob:\") &&\n\t\t\t\t\tthat instanceof HTMLMediaElement\n\t\t\t\t) {\n\t\t\t\t\tclient.element.setAttribute.call(\n\t\t\t\t\t\tthat,\n\t\t\t\t\t\t__uv.attributePrefix + \"-attr-src\",\n\t\t\t\t\t\tval\n\t\t\t\t\t);\n\t\t\t\t\treturn target.call(that, __uv.blobUrls.get(val) || val);\n\t\t\t\t}\n\n\t\t\t\tclient.element.setAttribute.call(\n\t\t\t\t\tthat,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-src\",\n\t\t\t\t\tval\n\t\t\t\t);\n\t\t\t\ttarget.call(that, __uv.rewriteUrl(val));\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.element.hookProperty([HTMLFormElement], \"action\", {\n\t\tget: (target, that) => {\n\t\t\treturn __uv.sourceUrl(target.call(that));\n\t\t},\n\t\tset: (target, that, [val]) => {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.attributePrefix + \"-attr-action\",\n\t\t\t\tval\n\t\t\t);\n\t\t\ttarget.call(that, __uv.rewriteUrl(val));\n\t\t},\n\t});\n\n\tclient.element.hookProperty([HTMLImageElement], \"srcset\", {\n\t\tget: (target, that) => {\n\t\t\treturn (\n\t\t\t\tclient.element.getAttribute.call(\n\t\t\t\t\tthat,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-srcset\"\n\t\t\t\t) || target.call(that)\n\t\t\t);\n\t\t},\n\t\tset: (target, that, [val]) => {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.attributePrefix + \"-attr-srcset\",\n\t\t\t\tval\n\t\t\t);\n\t\t\ttarget.call(that, __uv.html.wrapSrcset(val.toString()));\n\t\t},\n\t});\n\n\tclient.element.hookProperty(HTMLScriptElement, \"integrity\", {\n\t\tget: (target, that) => {\n\t\t\treturn client.element.getAttribute.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.attributePrefix + \"-attr-integrity\"\n\t\t\t);\n\t\t},\n\t\tset: (target, that, [val]) => {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.attributePrefix + \"-attr-integrity\",\n\t\t\t\tval\n\t\t\t);\n\t\t},\n\t});\n\n\tclient.element.hookProperty(HTMLIFrameElement, \"sandbox\", {\n\t\tget: (target, that) => {\n\t\t\treturn (\n\t\t\t\tclient.element.getAttribute.call(\n\t\t\t\t\tthat,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-sandbox\"\n\t\t\t\t) || target.call(that)\n\t\t\t);\n\t\t},\n\t\tset: (target, that, [val]) => {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.attributePrefix + \"-attr-sandbox\",\n\t\t\t\tval\n\t\t\t);\n\t\t},\n\t});\n\n\t// HTMLIFrameElement may not be defined (workers)\n\tconst contentWindowGet =\n\t\tHTMLIFrameElement &&\n\t\tObject.getOwnPropertyDescriptor(\n\t\t\tHTMLIFrameElement.prototype,\n\t\t\t\"contentWindow\"\n\t\t).get;\n\n\tfunction uvInject(that) {\n\t\tconst win = contentWindowGet.call(that);\n\n\t\tif (!win.__uv)\n\t\t\ttry {\n\t\t\t\t__uvHook(win);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(\"catastrophic failure\");\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t}\n\n\tclient.element.hookProperty(HTMLIFrameElement, \"contentWindow\", {\n\t\tget: (target, that) => {\n\t\t\tuvInject(that);\n\t\t\treturn target.call(that);\n\t\t},\n\t});\n\n\tclient.element.hookProperty(HTMLIFrameElement, \"contentDocument\", {\n\t\tget: (target, that) => {\n\t\t\tuvInject(that);\n\t\t\treturn target.call(that);\n\t\t},\n\t});\n\n\tclient.element.hookProperty(HTMLIFrameElement, \"srcdoc\", {\n\t\tget: (target, that) => {\n\t\t\treturn (\n\t\t\t\tclient.element.getAttribute.call(\n\t\t\t\t\tthat,\n\t\t\t\t\t__uv.attributePrefix + \"-attr-srcdoc\"\n\t\t\t\t) || target.call(that)\n\t\t\t);\n\t\t},\n\t\tset: (target, that, [val]) => {\n\t\t\ttarget.call(\n\t\t\t\tthat,\n\t\t\t\t__uv.rewriteHtml(val, {\n\t\t\t\t\tdocument: true,\n\t\t\t\t\tinjectHead: __uv.createHtmlInject(\n\t\t\t\t\t\t__uv.handlerScript,\n\t\t\t\t\t\t__uv.bundleScript,\n\t\t\t\t\t\t__uv.clientScript,\n\t\t\t\t\t\t__uv.configScript,\n\t\t\t\t\t\tcookieStr,\n\t\t\t\t\t\twindow.location.href\n\t\t\t\t\t),\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t});\n\n\tclient.node.on(\"getTextContent\", (event) => {\n\t\tif (event.that.tagName === \"SCRIPT\") {\n\t\t\tevent.data.value = __uv.js.source(event.data.value);\n\t\t}\n\t});\n\n\tclient.node.on(\"setTextContent\", (event) => {\n\t\tif (event.that.tagName === \"SCRIPT\") {\n\t\t\tevent.data.value = __uv.js.rewrite(event.data.value);\n\t\t}\n\t});\n\n\t// Until proper rewriting is implemented for service workers.\n\t// Not sure atm how to implement it with the already built in service worker\n\tif (\"serviceWorker\" in window.navigator) {\n\t\tdelete window.Navigator.prototype.serviceWorker;\n\t}\n\n\t// Document\n\tclient.document.on(\"getDomain\", (event) => {\n\t\tevent.data.value = __uv.domain;\n\t});\n\tclient.document.on(\"setDomain\", (event) => {\n\t\tif (\n\t\t\t!event.data.value\n\t\t\t\t.toString()\n\t\t\t\t.endsWith(__uv.meta.url.hostname.split(\".\").slice(-2).join(\".\"))\n\t\t)\n\t\t\treturn event.respondWith(\"\");\n\t\tevent.respondWith((__uv.domain = event.data.value));\n\t});\n\n\tclient.document.on(\"url\", (event) => {\n\t\tevent.data.value = __uv.location.href;\n\t});\n\n\tclient.document.on(\"documentURI\", (event) => {\n\t\tevent.data.value = __uv.location.href;\n\t});\n\n\tclient.document.on(\"referrer\", (event) => {\n\t\tevent.data.value = __uv.referrer || __uv.sourceUrl(event.data.value);\n\t});\n\n\tclient.document.on(\"parseFromString\", (event) => {\n\t\tif (event.data.type !== \"text/html\") return false;\n\t\tevent.data.string = __uv.rewriteHtml(event.data.string, {\n\t\t\t...__uv.meta,\n\t\t\tdocument: true,\n\t\t});\n\t});\n\n\t// Attribute (node.attributes)\n\tclient.attribute.on(\"getValue\", (event) => {\n\t\tif (\n\t\t\tclient.element.hasAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name\n\t\t\t)\n\t\t) {\n\t\t\tevent.data.value = client.element.getAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name\n\t\t\t);\n\t\t}\n\t});\n\n\tclient.attribute.on(\"setValue\", (event) => {\n\t\tif (__uv.attrs.isUrl(event.data.name)) {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteUrl(event.data.value);\n\t\t}\n\n\t\tif (__uv.attrs.isStyle(event.data.name)) {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteCSS(event.data.value, {\n\t\t\t\tcontext: \"declarationList\",\n\t\t\t});\n\t\t}\n\n\t\tif (__uv.attrs.isHtml(event.data.name)) {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.rewriteHtml(event.data.value, {\n\t\t\t\t...__uv.meta,\n\t\t\t\tdocument: true,\n\t\t\t\tinjectHead: __uv.createHtmlInject(\n\t\t\t\t\t__uv.handlerScript,\n\t\t\t\t\t__uv.bundleScript,\n\t\t\t\t\t__uv.clientScript,\n\t\t\t\t\t__uv.configScript,\n\t\t\t\t\tcookieStr,\n\t\t\t\t\twindow.location.href\n\t\t\t\t),\n\t\t\t});\n\t\t}\n\n\t\tif (__uv.attrs.isSrcset(event.data.name)) {\n\t\t\tclient.element.setAttribute.call(\n\t\t\t\tevent.that.ownerElement,\n\t\t\t\t__uv.attributePrefix + \"-attr-\" + event.data.name,\n\t\t\t\tevent.data.value\n\t\t\t);\n\t\t\tevent.data.value = __uv.html.wrapSrcset(event.data.value.toString());\n\t\t}\n\t});\n\n\t// URL\n\tclient.url.on(\"createObjectURL\", (event) => {\n\t\tlet url = event.target.call(event.that, event.data.object);\n\t\tif (url.startsWith(\"blob:\" + location.origin)) {\n\t\t\tlet newUrl =\n\t\t\t\t\"blob:\" +\n\t\t\t\t(__uv.meta.url.href !== \"about:blank\"\n\t\t\t\t\t? __uv.meta.url.origin\n\t\t\t\t\t: window.parent.__uv.meta.url.origin) +\n\t\t\t\turl.slice(\"blob:\".length + location.origin.length);\n\t\t\t__uv.blobUrls.set(newUrl, url);\n\t\t\tevent.respondWith(newUrl);\n\t\t} else {\n\t\t\tevent.respondWith(url);\n\t\t}\n\t});\n\n\tclient.url.on(\"revokeObjectURL\", (event) => {\n\t\tif (__uv.blobUrls.has(event.data.url)) {\n\t\t\tconst old = event.data.url;\n\t\t\tevent.data.url = __uv.blobUrls.get(event.data.url);\n\t\t\t__uv.blobUrls.delete(old);\n\t\t}\n\t});\n\n\tclient.storage.on(\"get\", (event) => {\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"set\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tevent.that.__uv$storageObj[event.data.name] = event.data.value;\n\t\t}\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"delete\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tdelete event.that.__uv$storageObj[event.data.name];\n\t\t}\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"getItem\", (event) => {\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"setItem\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tevent.that.__uv$storageObj[event.data.name] = event.data.value;\n\t\t}\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"removeItem\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tdelete event.that.__uv$storageObj[event.data.name];\n\t\t}\n\t\tevent.data.name =\n\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + event.data.name;\n\t});\n\n\tclient.storage.on(\"clear\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tfor (const key of client.nativeMethods.keys.call(\n\t\t\t\tnull,\n\t\t\t\tevent.that.__uv$storageObj\n\t\t\t)) {\n\t\t\t\tdelete event.that.__uv$storageObj[key];\n\t\t\t\tclient.storage.removeItem.call(\n\t\t\t\t\tevent.that,\n\t\t\t\t\tmethodPrefix + __uv.meta.url.origin + \"@\" + key\n\t\t\t\t);\n\t\t\t\tevent.respondWith();\n\t\t\t}\n\t\t}\n\t});\n\n\tclient.storage.on(\"length\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tevent.respondWith(\n\t\t\t\tclient.nativeMethods.keys.call(null, event.that.__uv$storageObj).length\n\t\t\t);\n\t\t}\n\t});\n\n\tclient.storage.on(\"key\", (event) => {\n\t\tif (event.that.__uv$storageObj) {\n\t\t\tevent.respondWith(\n\t\t\t\tclient.nativeMethods.keys.call(null, event.that.__uv$storageObj)[\n\t\t\t\t\tevent.data.index\n\t\t\t\t] || null\n\t\t\t);\n\t\t}\n\t});\n\n\tclient.function.on(\"function\", (event) => {\n\t\tevent.data.script = __uv.rewriteJS(event.data.script);\n\t});\n\n\tclient.function.on(\"toString\", (event) => {\n\t\tif (__uv.methods.string in event.that)\n\t\t\tevent.respondWith(event.that[__uv.methods.string]);\n\t});\n\n\tclient.object.on(\"getOwnPropertyNames\", (event) => {\n\t\tevent.data.names = event.data.names.filter(\n\t\t\t(element) => !__uv.filterKeys.includes(element)\n\t\t);\n\t});\n\n\tclient.object.on(\"getOwnPropertyDescriptors\", (event) => {\n\t\tfor (const forbidden of __uv.filterKeys) {\n\t\t\tdelete event.data.descriptors[forbidden];\n\t\t}\n\t});\n\n\tclient.style.on(\"setProperty\", (event) => {\n\t\tif (client.style.dashedUrlProps.includes(event.data.property)) {\n\t\t\tevent.data.value = __uv.rewriteCSS(event.data.value, {\n\t\t\t\tcontext: \"value\",\n\t\t\t\t...__uv.meta,\n\t\t\t});\n\t\t}\n\t});\n\n\tclient.style.on(\"getPropertyValue\", (event) => {\n\t\tif (client.style.dashedUrlProps.includes(event.data.property)) {\n\t\t\tevent.respondWith(\n\t\t\t\t__uv.sourceCSS(event.target.call(event.that, event.data.property), {\n\t\t\t\t\tcontext: \"value\",\n\t\t\t\t\t...__uv.meta,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t});\n\n\tif (\"CSS2Properties\" in window) {\n\t\tfor (const key of client.style.urlProps) {\n\t\t\tclient.overrideDescriptor(window.CSS2Properties.prototype, key, {\n\t\t\t\tget: (target, that) => {\n\t\t\t\t\treturn __uv.sourceCSS(target.call(that), {\n\t\t\t\t\t\tcontext: \"value\",\n\t\t\t\t\t\t...__uv.meta,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tset: (target, that, val) => {\n\t\t\t\t\ttarget.call(\n\t\t\t\t\t\tthat,\n\t\t\t\t\t\t__uv.rewriteCSS(val, {\n\t\t\t\t\t\t\tcontext: \"value\",\n\t\t\t\t\t\t\t...__uv.meta,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t} else if (\"HTMLElement\" in window) {\n\t\tclient.overrideDescriptor(window.HTMLElement.prototype, \"style\", {\n\t\t\tget: (target, that) => {\n\t\t\t\tconst value = target.call(that);\n\t\t\t\tif (!value[methodPrefix + \"modifiedStyle\"]) {\n\t\t\t\t\tfor (const key of client.style.urlProps) {\n\t\t\t\t\t\tclient.nativeMethods.defineProperty(value, key, {\n\t\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\t\tconst value =\n\t\t\t\t\t\t\t\t\tclient.style.getPropertyValue.call(this, key) || \"\";\n\t\t\t\t\t\t\t\treturn __uv.sourceCSS(value, {\n\t\t\t\t\t\t\t\t\tcontext: \"value\",\n\t\t\t\t\t\t\t\t\t...__uv.meta,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset(val) {\n\t\t\t\t\t\t\t\tclient.style.setProperty.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tclient.style.propToDashed[key] || key,\n\t\t\t\t\t\t\t\t\t__uv.rewriteCSS(val, {\n\t\t\t\t\t\t\t\t\t\tcontext: \"value\",\n\t\t\t\t\t\t\t\t\t\t...__uv.meta,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t\tclient.nativeMethods.defineProperty(\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tmethodPrefix + \"modifiedStyle\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t});\n\t}\n\n\tclient.style.on(\"setCssText\", (event) => {\n\t\tevent.data.value = __uv.rewriteCSS(event.data.value, {\n\t\t\tcontext: \"declarationList\",\n\t\t\t...__uv.meta,\n\t\t});\n\t});\n\n\tclient.style.on(\"getCssText\", (event) => {\n\t\tevent.data.value = __uv.sourceCSS(event.data.value, {\n\t\t\tcontext: \"declarationList\",\n\t\t\t...__uv.meta,\n\t\t});\n\t});\n\n\t// Proper hash emulation.\n\t__uv.addEventListener.call(window, \"hashchange\", (event) => {\n\t\tif (event.__uv$dispatched) return false;\n\t\tevent.stopImmediatePropagation();\n\t\tconst hash = window.location.hash;\n\t\tclient.history.replaceState.call(window.history, \"\", \"\", event.oldURL);\n\t\t__uv.location.hash = hash;\n\t});\n\n\tclient.location.on(\"hashchange\", (oldUrl, newUrl, ctx) => {\n\t\tif (ctx.HashChangeEvent && client.history.replaceState) {\n\t\t\tclient.history.replaceState.call(\n\t\t\t\twindow.history,\n\t\t\t\t\"\",\n\t\t\t\t\"\",\n\t\t\t\t__uv.rewriteUrl(newUrl)\n\t\t\t);\n\n\t\t\tconst event = new ctx.HashChangeEvent(\"hashchange\", {\n\t\t\t\tnewURL: newUrl,\n\t\t\t\toldURL: oldUrl,\n\t\t\t});\n\n\t\t\tclient.nativeMethods.defineProperty(event, methodPrefix + \"dispatched\", {\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: false,\n\t\t\t});\n\n\t\t\t__uv.dispatchEvent.call(window, event);\n\t\t}\n\t});\n\n\t// Hooking functions & descriptors\n\tclient.fetch.overrideRequest();\n\tclient.fetch.overrideUrl();\n\tclient.xhr.overrideOpen();\n\tclient.xhr.overrideResponseUrl();\n\tclient.element.overrideHtml();\n\tclient.element.overrideAttribute();\n\tclient.element.overrideInsertAdjacentHTML();\n\tclient.element.overrideAudio();\n\t// client.element.overrideQuerySelector();\n\tclient.node.overrideBaseURI();\n\tclient.node.overrideTextContent();\n\tclient.attribute.overrideNameValue();\n\tclient.document.overrideDomain();\n\tclient.document.overrideURL();\n\tclient.document.overrideDocumentURI();\n\tclient.document.overrideWrite();\n\tclient.document.overrideReferrer();\n\tclient.document.overrideParseFromString();\n\tclient.storage.overrideMethods();\n\tclient.storage.overrideLength();\n\t//client.document.overrideQuerySelector();\n\tclient.object.overrideGetPropertyNames();\n\tclient.object.overrideGetOwnPropertyDescriptors();\n\tclient.idb.overrideName();\n\tclient.idb.overrideOpen();\n\tclient.history.overridePushState();\n\tclient.history.overrideReplaceState();\n\tclient.eventSource.overrideConstruct();\n\tclient.eventSource.overrideUrl();\n\tclient.websocket.overrideWebSocket(bareClient);\n\tclient.url.overrideObjectURL();\n\tclient.document.overrideCookie();\n\tclient.message.overridePostMessage();\n\tclient.message.overrideMessageOrigin();\n\tclient.message.overrideMessageData();\n\tclient.workers.overrideWorker();\n\tclient.workers.overrideAddModule();\n\tclient.workers.overrideImportScripts();\n\tclient.workers.overridePostMessage();\n\tclient.style.overrideSetGetProperty();\n\tclient.style.overrideCssText();\n\tclient.navigator.overrideSendBeacon();\n\tclient.function.overrideFunction();\n\tclient.function.overrideToString();\n\tclient.location.overrideWorkerLocation((href) => {\n\t\treturn new URL(__uv.sourceUrl(href));\n\t});\n\n\tclient.overrideDescriptor(window, \"localStorage\", {\n\t\tget: (target, that) => {\n\t\t\treturn (that || window).__uv.lsWrap;\n\t\t},\n\t});\n\tclient.overrideDescriptor(window, \"sessionStorage\", {\n\t\tget: (target, that) => {\n\t\t\treturn (that || window).__uv.ssWrap;\n\t\t},\n\t});\n\n\tclient.override(window, \"open\", (target, that, args) => {\n\t\tif (!args.length) return target.apply(that, args);\n\t\tlet [url] = args;\n\n\t\turl = __uv.rewriteUrl(url);\n\n\t\treturn target.call(that, url);\n\t});\n\n\t__uv.$wrap = function (name) {\n\t\tif (name === \"location\") return __uv.methods.location;\n\t\tif (name === \"eval\") return __uv.methods.eval;\n\t\treturn name;\n\t};\n\n\t__uv.$get = function (that) {\n\t\tif (that === window.location) return __uv.location;\n\t\tif (that === window.eval) return __uv.eval;\n\t\tif (that === window.parent) {\n\t\t\treturn window.__uv$parent;\n\t\t}\n\t\tif (that === window.top) {\n\t\t\treturn window.__uv$top;\n\t\t}\n\t\treturn that;\n\t};\n\n\t__uv.eval = client.wrap(window, \"eval\", (target, that, args) => {\n\t\tif (!args.length || typeof args[0] !== \"string\")\n\t\t\treturn target.apply(that, args);\n\t\tlet [script] = args;\n\n\t\tscript = __uv.rewriteJS(script);\n\t\treturn target.call(that, script);\n\t});\n\n\t__uv.call = function (target, args, that) {\n\t\treturn that ? target.apply(that, args) : target(...args);\n\t};\n\n\t__uv.call$ = function (obj, prop, args = []) {\n\t\treturn obj[prop].apply(obj, args);\n\t};\n\n\tclient.nativeMethods.defineProperty(window.Object.prototype, master, {\n\t\tget: () => {\n\t\t\treturn __uv;\n\t\t},\n\t\tenumerable: false,\n\t});\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.setSource,\n\t\t{\n\t\t\tvalue: function (source) {\n\t\t\t\tif (!client.nativeMethods.isExtensible(this)) return this;\n\n\t\t\t\tclient.nativeMethods.defineProperty(this, __uv.methods.source, {\n\t\t\t\t\tvalue: source,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t});\n\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.source,\n\t\t{\n\t\t\tvalue: __uv,\n\t\t\twritable: true,\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.location,\n\t\t{\n\t\t\tconfigurable: true,\n\t\t\tget() {\n\t\t\t\treturn this === window.document || this === window\n\t\t\t\t\t? __uv.location\n\t\t\t\t\t: this.location;\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tif (this === window.document || this === window) {\n\t\t\t\t\t__uv.location.href = val;\n\t\t\t\t} else {\n\t\t\t\t\tthis.location = val;\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.parent,\n\t\t{\n\t\t\tconfigurable: true,\n\t\t\tget() {\n\t\t\t\tconst val = this.parent;\n\n\t\t\t\tif (this === window) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn \"__uv\" in val ? val : this;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.parent = val;\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.top,\n\t\t{\n\t\t\tconfigurable: true,\n\t\t\tget() {\n\t\t\t\tconst val = this.top;\n\n\t\t\t\tif (this === window) {\n\t\t\t\t\tif (val === this.parent) return this[__uv.methods.parent];\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!(\"__uv\" in val)) {\n\t\t\t\t\t\t\tlet current = this;\n\n\t\t\t\t\t\t\twhile (current.parent !== val) {\n\t\t\t\t\t\t\t\tcurrent = current.parent;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn \"__uv\" in current ? current : this;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn val;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.top = val;\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.nativeMethods.defineProperty(\n\t\twindow.Object.prototype,\n\t\t__uv.methods.eval,\n\t\t{\n\t\t\tconfigurable: true,\n\t\t\tget() {\n\t\t\t\treturn this === window ? __uv.eval : this.eval;\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.eval = val;\n\t\t\t},\n\t\t}\n\t);\n}\n"],
"mappings": "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",
"names": ["Ultraviolet", "UVClient", "__uv$config", "__uv$cookies", "__uvHook", "window", "node", "worker", "master", "methodPrefix", "__uv", "bareClient", "resolve", "data", "client", "HTMLMediaElement", "HTMLScriptElement", "HTMLAudioElement", "HTMLVideoElement", "HTMLInputElement", "HTMLEmbedElement", "HTMLTrackElement", "HTMLAnchorElement", "HTMLIFrameElement", "HTMLAreaElement", "HTMLLinkElement", "HTMLBaseElement", "HTMLFormElement", "HTMLImageElement", "HTMLSourceElement", "href", "cookieStr", "key", "rawBase", "base", "target", "wrapped", "event", "i", "to", "db", "cookies", "cookie", "call", "that", "val", "contentWindowGet", "uvInject", "win", "e", "url", "newUrl", "old", "element", "forbidden", "value", "hash", "oldUrl", "ctx", "args", "name", "script", "obj", "prop", "source", "current"]
}