| 1 |
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).singlefile={})}(this,(function(e){"use strict";const t="single-file-load-deferred-images-start",s="single-file-load-deferred-images-end",o="single-file-load-deferred-images-keep-zoom-level-start",n="single-file-load-deferred-images-keep-zoom-level-end",i="single-file-block-cookies-start",r="single-file-block-cookies-end",a="single-file-dispatch-scroll-event-start",l="single-file-dispatch-scroll-event-end",d="single-file-block-storage-start",c="single-file-block-storage-end",u="single-file-load-image",m="single-file-image-loaded",h="_singleFile_fontFaces",g="_singleFile_worklets",p=globalThis.CustomEvent,f=globalThis.document,b=globalThis.Document,E=globalThis.JSON,T=globalThis.MutationObserver;let y,w;function I(){f instanceof b&&(f.addEventListener("single-file-new-font-face",(e=>{const t=e.detail,s=Object.assign({},t);delete s.src,y.set(E.stringify(s),t)})),f.addEventListener("single-file-delete-font",(e=>{const t=e.detail,s=Object.assign({},t);delete s.src,y.delete(E.stringify(s))})),f.addEventListener("single-file-clear-fonts",(()=>y=new Map)),f.addEventListener("single-file-new-worklet",(e=>{const t=e.detail;w.set(t.moduleURL,t)})))}y=window[h]?window[h]:window[h]=new Map,w=window[g]?window[g]:window[g]=new Map,I(),new T(I).observe(f,{childList:!0});const v="[\\x20\\t\\r\\n\\f]",A=new RegExp("\\\\([\\da-f]{1,6}"+v+"?|("+v+")|.)","ig");const S="single-file-",R="__frameTree__::",_=S+"on-before-capture",M=S+"on-after-capture",P=S+"request-get-adopted-stylesheets",N=S+"response-get-adopted-stylesheets",C=S+"unregister-request-get-adopted-stylesheets",L="data-"+S+"removed-content",F="data-"+S+"hidden-content",x="data-"+S+"kept-content",k="data-"+S+"hidden-frame",q="data-"+S+"preserved-space-element",U="data-"+S+"shadow-root-element",D="data-"+S+"win-id",O="data-"+S+"image",V="data-"+S+"poster",W="data-"+S+"video",H="data-"+S+"canvas",z="data-"+S+"movable-style",B="data-"+S+"input-value",j="data-"+S+"lazy-loaded-src",Y="data-"+S+"stylesheet",G="data-"+S+"disabled-noscript",Z="data-"+S+"invalid-element",J="data-"+S+"async-script",K="*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)",$=["NOSCRIPT","DISABLED-NOSCRIPT","META","LINK","STYLE","TITLE","TEMPLATE","SOURCE","OBJECT","SCRIPT","HEAD","BODY"],X=["SCRIPT","NOSCRIPT","META","LINK","TEMPLATE"],Q=/^'(.*?)'$/,ee=/^"(.*?)"$/,te={regular:"400",normal:"400",bold:"700",bolder:"700",lighter:"100"},se="single-file-ui-element",oe="single-file-infobar",ne="data:,",ie=globalThis.JSON,re=globalThis.CustomEvent;function ae(e,t,s,o,n={usedFonts:new Map,canvases:[],images:[],posters:[],videos:[],shadowRoots:[],markedElements:[]},i){if(s.childNodes){Array.from(s.childNodes).filter((t=>t instanceof e.HTMLElement||t instanceof e.SVGElement||t instanceof globalThis.HTMLElement||t instanceof globalThis.SVGElement)).forEach((s=>{let r,a,l;if(!o.autoSaveExternalSave&&(o.removeHiddenElements||o.removeUnusedFonts||o.compressHTML)&&(l=pe(e,s),(s instanceof e.HTMLElement||s instanceof globalThis.HTMLElement)&&o.removeHiddenElements&&(a=(i||s.closest("html > head"))&&$.includes(s.tagName.toUpperCase())||s.closest("details"),a||(r=i||me(s,l),r&&!X.includes(s.tagName.toUpperCase())&&(s.setAttribute(F,""),n.markedElements.push(s)))),!r)){if(o.compressHTML&&l){const e=l.getPropertyValue("white-space");e&&e.startsWith("pre")&&(s.setAttribute(q,""),n.markedElements.push(s))}o.removeUnusedFonts&&(de(l,o,n.usedFonts),de(pe(e,s,":first-letter"),o,n.usedFonts),de(pe(e,s,":before"),o,n.usedFonts),de(pe(e,s,":after"),o,n.usedFonts))}!function(e,t,s,o,n,i,r){const a=s.tagName&&s.tagName.toUpperCase();if("CANVAS"==a)try{n.canvases.push({dataURI:s.toDataURL("image/png",""),backgroundColor:r.getPropertyValue("background-color")}),s.setAttribute(H,n.canvases.length-1),n.markedElements.push(s)}catch(e){}if("IMG"==a){const t={currentSrc:i?ne:o.loadDeferredImages&&s.getAttribute(j)||s.currentSrc};if(n.images.push(t),s.setAttribute(O,n.images.length-1),n.markedElements.push(s),s.removeAttribute(j),r=r||pe(e,s)){t.size=function(e,t,s){let o=t.naturalWidth,n=t.naturalHeight;if(!o&&!n){const i=null==t.getAttribute("style");if(s=s||pe(e,t)){let e,r,a,l,d,c,u,m,h=!1;if("content-box"==s.getPropertyValue("box-sizing")){const e=t.style.getPropertyValue("box-sizing"),s=t.style.getPropertyPriority("box-sizing"),o=t.clientWidth;t.style.setProperty("box-sizing","border-box","important"),h=t.clientWidth!=o,e?t.style.setProperty("box-sizing",e,s):t.style.removeProperty("box-sizing")}e=ge("padding-left",s),r=ge("padding-right",s),a=ge("padding-top",s),l=ge("padding-bottom",s),h?(d=ge("border-left-width",s),c=ge("border-right-width",s),u=ge("border-top-width",s),m=ge("border-bottom-width",s)):d=c=u=m=0,o=Math.max(0,t.clientWidth-e-r-d-c),n=Math.max(0,t.clientHeight-a-l-u-m),i&&t.removeAttribute("style")}}return{pxWidth:o,pxHeight:n}}(e,s,r);const o=r.getPropertyValue("box-shadow"),n=r.getPropertyValue("background-image");o&&"none"!=o||n&&"none"!=n||!(t.size.pxWidth>1||t.size.pxHeight>1)||(t.replaceable=!0,t.backgroundColor=r.getPropertyValue("background-color"),t.objectFit=r.getPropertyValue("object-fit"),t.boxSizing=r.getPropertyValue("box-sizing"),t.objectPosition=r.getPropertyValue("object-position"))}}if("VIDEO"==a){const o=s.currentSrc;if(o&&!o.startsWith("blob:")&&!o.startsWith("data:")){const t=pe(e,s.parentNode);n.videos.push({positionParent:t&&t.getPropertyValue("position"),src:o,size:{pxWidth:s.clientWidth,pxHeight:s.clientHeight},currentTime:s.currentTime}),s.setAttribute(W,n.videos.length-1)}if(!s.getAttribute("poster")){const e=t.createElement("canvas"),o=e.getContext("2d");e.width=s.clientWidth,e.height=s.clientHeight;try{o.drawImage(s,0,0,e.width,e.height),n.posters.push(e.toDataURL("image/png","")),s.setAttribute(V,n.posters.length-1),n.markedElements.push(s)}catch(e){}}}"IFRAME"==a&&i&&o.removeHiddenElements&&(s.setAttribute(k,""),n.markedElements.push(s));"INPUT"==a&&("password"!=s.type&&(s.setAttribute(B,s.value),n.markedElements.push(s)),"radio"!=s.type&&"checkbox"!=s.type||(s.setAttribute(B,s.checked),n.markedElements.push(s)));"TEXTAREA"==a&&(s.setAttribute(B,s.value),n.markedElements.push(s));"SELECT"==a&&s.querySelectorAll("option").forEach((e=>{e.selected&&(e.setAttribute(B,""),n.markedElements.push(e))}));"SCRIPT"==a&&(s.async&&""!=s.getAttribute("async")&&"async"!=s.getAttribute("async")&&(s.setAttribute(J,""),n.markedElements.push(s)),s.textContent=s.textContent.replace(/<\/script>/gi,"<\\/script>"))}(e,t,s,o,n,r,l);const d=!(s instanceof e.SVGElement||s instanceof globalThis.SVGElement)&&ce(s);if(d&&!s.classList.contains(se)&&s.tagName.toLowerCase()!=oe){const i={};s.setAttribute(U,n.shadowRoots.length),n.markedElements.push(s),n.shadowRoots.push(i);try{if(d.adoptedStyleSheets)if(d.adoptedStyleSheets.length)i.adoptedStyleSheets=le(d.adoptedStyleSheets);else if(void 0===d.adoptedStyleSheets.length){const e=e=>i.adoptedStyleSheets=e.detail.adoptedStyleSheets;d.addEventListener(N,e),d.dispatchEvent(new re(P,{bubbles:!0})),i.adoptedStyleSheets||s.dispatchEvent(new re(P,{bubbles:!0})),d.removeEventListener(N,e)}}catch(e){}ae(e,t,d,o,n,r),i.content=d.innerHTML,i.mode=d.mode;try{d.adoptedStyleSheets&&void 0===d.adoptedStyleSheets.length&&d.dispatchEvent(new re(C,{bubbles:!0}))}catch(e){}}ae(e,t,s,o,n,r),!o.autoSaveExternalSave&&o.removeHiddenElements&&i&&(a||""==s.getAttribute(x)?s.parentElement&&(s.parentElement.setAttribute(x,""),n.markedElements.push(s.parentElement)):r&&(s.setAttribute(L,""),n.markedElements.push(s)))}))}return n}function le(e){return e?Array.from(e).map((e=>Array.from(e.cssRules).map((e=>e.cssText)).join("\n"))):[]}function de(e,t,s){if(e){const o=e.getPropertyValue("font-style")||"normal";e.getPropertyValue("font-family").split(",").forEach((n=>{if(n=ue(n),!t.loadedFonts||t.loadedFonts.find((e=>ue(e.family)==n&&e.style==o))){const t=(i=e.getPropertyValue("font-weight"),te[i.toLowerCase().trim()]||i),r=e.getPropertyValue("font-variant")||"normal",a=[n,t,o,r];s.set(ie.stringify(a),[n,t,o,r])}var i}))}}function ce(e){const t=globalThis.chrome;if(e.openOrClosedShadowRoot)return e.openOrClosedShadowRoot;if(!(t&&t.dom&&t.dom.openOrClosedShadowRoot))return e.shadowRoot;try{return t.dom.openOrClosedShadowRoot(e)}catch(t){return e.shadowRoot}}function ue(e=""){return function(e){e=e.match(Q)?e.replace(Q,"$1"):e.replace(ee,"$1");return e.trim()}((t=e.trim(),t.replace(A,((e,t,s)=>{const o="0x"+t-65536;return o!=o||s?t:o<0?String.fromCharCode(o+65536):String.fromCharCode(o>>10|55296,1023&o|56320)})))).toLowerCase();var t}function me(e,t){let s=!1;if(t){const o=t.getPropertyValue("display"),n=t.getPropertyValue("opacity"),i=t.getPropertyValue("visibility");if(s="none"==o,!s&&("0"==n||"hidden"==i)&&e.getBoundingClientRect){const t=e.getBoundingClientRect();s=!t.width&&!t.height}}return Boolean(s)}function he(e){if(e){const t=[];return e.querySelectorAll("style").forEach(((s,o)=>{try{if(!s.sheet.disabled){const n=e.createElement("style");n.textContent=s.textContent,e.body.appendChild(n);const i=n.sheet;n.remove();const r=Array.from(i.cssRules).map((e=>e.cssText)).join("\n"),a=Array.from(s.sheet.cssRules).map((e=>e.cssText)).join("\n");i&&r==a||(s.setAttribute(Y,o),t[o]=Array.from(s.sheet.cssRules).map((e=>e.cssText)).join("\n"))}}catch(e){}})),t}}function ge(e,t){if(t.getPropertyValue(e).endsWith("px"))return parseFloat(t.getPropertyValue(e))}function pe(e,t,s){try{return e.getComputedStyle(t,s)}catch(e){}}const fe={LAZY_SRC_ATTRIBUTE_NAME:j,SINGLE_FILE_UI_ELEMENT_CLASS:se},be=10,Ee="attributes",Te=globalThis.browser,ye=globalThis.document,we=globalThis.MutationObserver,Ie=new Map;let ve;async function Ae(e){if(ye.documentElement){Ie.clear();const s=ye.body?Math.max(ye.body.scrollHeight,ye.documentElement.scrollHeight):ye.documentElement.scrollHeight,n=ye.body?Math.max(ye.body.scrollWidth,ye.documentElement.scrollWidth):ye.documentElement.scrollWidth;if(s>globalThis.innerHeight||n>globalThis.innerWidth){const r=Math.max(s-1.5*globalThis.innerHeight,0),l=Math.max(n-1.5*globalThis.innerWidth,0);if(globalThis.scrollY<r||globalThis.scrollX<l)return function(e){return ve=0,new Promise((async s=>{let n;const r=new Set,l=new we((async t=>{if((t=t.filter((e=>e.type==Ee))).length){t.filter((e=>{if("src"==e.attributeName&&(e.target.setAttribute(fe.LAZY_SRC_ATTRIBUTE_NAME,e.target.src),e.target.addEventListener("load",h)),"src"==e.attributeName||"srcset"==e.attributeName||e.target.tagName&&"SOURCE"==e.target.tagName.toUpperCase())return!e.target.classList||!e.target.classList.contains(fe.SINGLE_FILE_UI_ELEMENT_CLASS)})).length&&(n=!0,await Re(l,e,E),r.size||await Se(l,e,E))}}));async function c(t){await Me("idleTimeout",(async()=>{n?ve<be&&(ve++,Ne("idleTimeout"),await c(Math.max(500,t/2))):(Ne("loadTimeout"),Ne("maxTimeout"),_e(l,e,E))}),t,e.loadDeferredImagesNativeTimeout)}function h(e){const t=e.target;t.removeAttribute(fe.LAZY_SRC_ATTRIBUTE_NAME),t.removeEventListener("load",h)}async function g(t){n=!0,await Re(l,e,E),await Se(l,e,E),t.detail&&r.add(t.detail)}async function b(t){await Re(l,e,E),await Se(l,e,E),r.delete(t.detail),r.size||await Se(l,e,E)}function E(e){l.disconnect(),ye.removeEventListener(u,g),ye.removeEventListener(m,b),s(e)}await c(2*e.loadDeferredImagesMaxIdleTime),await Re(l,e,E),l.observe(ye,{subtree:!0,childList:!0,attributes:!0}),ye.addEventListener(u,g),ye.addEventListener(m,b),function(e){e.loadDeferredImagesBlockCookies&&f.dispatchEvent(new p(i)),e.loadDeferredImagesBlockStorage&&f.dispatchEvent(new p(d)),e.loadDeferredImagesDispatchScrollEvent&&f.dispatchEvent(new p(a)),e.loadDeferredImagesKeepZoomLevel?f.dispatchEvent(new p(o)):f.dispatchEvent(new p(t))}(e)}))}(e)}}}async function Se(e,t,s){await Me("loadTimeout",(()=>_e(e,t,s)),t.loadDeferredImagesMaxIdleTime,t.loadDeferredImagesNativeTimeout)}async function Re(e,t,s){await Me("maxTimeout",(async()=>{await Ne("loadTimeout"),await _e(e,t,s)}),10*t.loadDeferredImagesMaxIdleTime,t.loadDeferredImagesNativeTimeout)}async function _e(e,t,o){await Ne("idleTimeout"),function(e){e.loadDeferredImagesBlockCookies&&f.dispatchEvent(new p(r)),e.loadDeferredImagesBlockStorage&&f.dispatchEvent(new p(c)),e.loadDeferredImagesDispatchScrollEvent&&f.dispatchEvent(new p(l)),e.loadDeferredImagesKeepZoomLevel?f.dispatchEvent(new p(n)):f.dispatchEvent(new p(s))}(t),await Me("endTimeout",(async()=>{await Ne("maxTimeout"),o()}),t.loadDeferredImagesMaxIdleTime/2,t.loadDeferredImagesNativeTimeout),e.disconnect()}async function Me(e,t,s,o){if(Te&&Te.runtime&&Te.runtime.sendMessage&&!o){if(!Ie.get(e)||!Ie.get(e).pending){const o={callback:t,pending:!0};Ie.set(e,o);try{await Te.runtime.sendMessage({method:"singlefile.lazyTimeout.setTimeout",type:e,delay:s})}catch(o){Pe(e,t,s)}o.pending=!1}}else Pe(e,t,s)}function Pe(e,t,s){const o=Ie.get(e);o&&globalThis.clearTimeout(o),Ie.set(e,t),globalThis.setTimeout(t,s)}async function Ne(e){if(Te&&Te.runtime&&Te.runtime.sendMessage)try{await Te.runtime.sendMessage({method:"singlefile.lazyTimeout.clearTimeout",type:e})}catch(t){Ce(e)}else Ce(e)}function Ce(e){const t=Ie.get(e);Ie.delete(e),t&&globalThis.clearTimeout(t)}Te&&Te.runtime&&Te.runtime.onMessage&&Te.runtime.onMessage.addListener&&Te.runtime.onMessage.addListener((e=>{if("singlefile.lazyTimeout.onTimeout"==e.method){const t=Ie.get(e.type);if(t){Ie.delete(e.type);try{t.callback()}catch(t){Ce(e.type)}}}}));const Le={ON_BEFORE_CAPTURE_EVENT_NAME:_,ON_AFTER_CAPTURE_EVENT_NAME:M,WIN_ID_ATTRIBUTE_NAME:D,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:"_singleFile_waitForUserScript",preProcessDoc:function(e,t,s){e.querySelectorAll("noscript:not(["+G+"])").forEach((e=>{e.setAttribute(G,e.textContent),e.textContent=""})),function(e){e.querySelectorAll("meta[http-equiv=refresh]").forEach((e=>{e.removeAttribute("http-equiv"),e.setAttribute("disabled-http-equiv","refresh")}))}(e),e.head&&e.head.querySelectorAll(K).forEach((e=>e.hidden=!0)),e.querySelectorAll("svg foreignObject").forEach((e=>{const t=e.querySelectorAll("html > head > "+K+", html > body > "+K);t.length&&(Array.from(e.childNodes).forEach((e=>e.remove())),t.forEach((t=>e.appendChild(t))))}));const o=new Map;let n;return t&&e.documentElement?(e.querySelectorAll("button button, a a").forEach((t=>{const s=e.createElement("template");s.setAttribute(Z,""),s.content.appendChild(t.cloneNode(!0)),o.set(t,s),t.replaceWith(s)})),n=ae(t,e,e.documentElement,s),s.moveStylesInHead&&e.querySelectorAll("body style, body ~ style").forEach((e=>{const s=pe(t,e);s&&me(e,s)&&(e.setAttribute(z,""),n.markedElements.push(e))}))):n={canvases:[],images:[],posters:[],videos:[],usedFonts:[],shadowRoots:[],markedElements:[]},{canvases:n.canvases,fonts:Array.from(y.values()),worklets:Array.from(w.values()),stylesheets:he(e),images:n.images,posters:n.posters,videos:n.videos,usedFonts:Array.from(n.usedFonts.values()),shadowRoots:n.shadowRoots,referrer:e.referrer,markedElements:n.markedElements,invalidElements:o,scrollPosition:{x:t.scrollX,y:t.scrollY},adoptedStyleSheets:le(e.adoptedStyleSheets)}},serialize:function(e){const t=e.doctype;let s="";return t&&(s="<!DOCTYPE "+t.nodeName,t.publicId?(s+=' PUBLIC "'+t.publicId+'"',t.systemId&&(s+=' "'+t.systemId+'"')):t.systemId&&(s+=' SYSTEM "'+t.systemId+'"'),t.internalSubset&&(s+=" ["+t.internalSubset+"]"),s+="> "),s+e.documentElement.outerHTML},postProcessDoc:function(e,t,s){if(e.querySelectorAll("["+G+"]").forEach((e=>{e.textContent=e.getAttribute(G),e.removeAttribute(G)})),e.querySelectorAll("meta[disabled-http-equiv]").forEach((e=>{e.setAttribute("http-equiv",e.getAttribute("disabled-http-equiv")),e.removeAttribute("disabled-http-equiv")})),e.head&&e.head.querySelectorAll("*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)").forEach((e=>e.removeAttribute("hidden"))),!t){const s=[L,k,F,q,O,V,W,H,B,U,Y,J];t=e.querySelectorAll(s.map((e=>"["+e+"]")).join(","))}t.forEach((e=>{e.removeAttribute(L),e.removeAttribute(F),e.removeAttribute(x),e.removeAttribute(k),e.removeAttribute(q),e.removeAttribute(O),e.removeAttribute(V),e.removeAttribute(W),e.removeAttribute(H),e.removeAttribute(B),e.removeAttribute(U),e.removeAttribute(Y),e.removeAttribute(J),e.removeAttribute(z)})),s&&s.forEach(((e,t)=>e.replaceWith(t)))},getShadowRoot:ce},Fe='iframe, frame, object[type="text/html"][data]',xe="*",ke="singlefile.frameTree.initRequest",qe="singlefile.frameTree.ackInitRequest",Ue="singlefile.frameTree.cleanupRequest",De="singlefile.frameTree.initResponse",Oe="*",Ve=5e3,We=1e4,He=".",ze=globalThis.window==globalThis.top,Be=globalThis.browser,je=globalThis.top,Ye=globalThis.MessageChannel,Ge=globalThis.document,Ze=globalThis.JSON,Je=globalThis.MutationObserver,Ke=globalThis.DOMParser;let $e,Xe=globalThis.sessions;function Qe(){globalThis.addEventListener("message",(async e=>{if("string"==typeof e.data&&e.data.startsWith(R)){e.preventDefault(),e.stopPropagation();const t=Ze.parse(e.data.substring(R.length));if(t.method==ke)e.source&&dt(e.source,{method:qe,windowId:t.windowId,sessionId:t.sessionId}),ze||(globalThis.stop(),t.options.loadDeferredImages&&Ae(t.options),await tt(t));else if(t.method==qe)it("requestTimeouts",t.sessionId,t.windowId),rt(t.sessionId,t.windowId);else if(t.method==Ue)st(t);else if(t.method==De&&Xe.get(t.sessionId)){e.ports[0].onmessage=e=>ot(e.data)}}}),!0)}function et(){return globalThis.crypto.getRandomValues(new Uint32Array(32)).join("")}async function tt(e){const t=e.sessionId,s=globalThis[Le.WAIT_FOR_USERSCRIPT_PROPERTY_NAME];delete globalThis._singleFile_cleaningUp,ze||($e=globalThis.frameId=e.windowId),nt(Ge,e.options,$e,t),ze||(e.options.userScriptEnabled&&s&&await s(Le.ON_BEFORE_CAPTURE_EVENT_NAME),lt({frames:[ct(Ge,globalThis,$e,e.options,e.scrolling)],sessionId:t,requestedFrameId:Ge.documentElement.dataset.requestedFrameId&&$e}),e.options.userScriptEnabled&&s&&await s(Le.ON_AFTER_CAPTURE_EVENT_NAME),delete Ge.documentElement.dataset.requestedFrameId)}function st(e){if(!globalThis._singleFile_cleaningUp){globalThis._singleFile_cleaningUp=!0;const t=e.sessionId;at(ut(Ge),e.windowId,t)}}function ot(e){e.frames.forEach((t=>it("responseTimeouts",e.sessionId,t.windowId)));const t=Xe.get(e.sessionId);if(t){e.requestedFrameId&&(t.requestedFrameId=e.requestedFrameId),e.frames.forEach((e=>{let s=t.frames.find((t=>e.windowId==t.windowId));s||(s={windowId:e.windowId},t.frames.push(s)),s.processed||(s.content=e.content,s.baseURI=e.baseURI,s.title=e.title,s.url=e.url,s.canvases=e.canvases,s.fonts=e.fonts,s.worklets=e.worklets,s.stylesheets=e.stylesheets,s.images=e.images,s.posters=e.posters,s.videos=e.videos,s.usedFonts=e.usedFonts,s.shadowRoots=e.shadowRoots,s.processed=e.processed,s.scrollPosition=e.scrollPosition,s.scrolling=e.scrolling,s.adoptedStyleSheets=e.adoptedStyleSheets)}));t.frames.filter((e=>!e.processed)).length||(t.frames=t.frames.sort(((e,t)=>t.windowId.split(He).length-e.windowId.split(He).length)),t.resolve&&(t.requestedFrameId&&t.frames.forEach((e=>{e.windowId==t.requestedFrameId&&(e.requestedFrame=!0)})),t.resolve(t.frames)))}}function nt(e,t,s,o){const n=ut(e);!function(e,t,s,o,n){const i=[];let r;Xe.get(n)?r=Xe.get(n).requestTimeouts:(r={},Xe.set(n,{requestTimeouts:r}));t.forEach(((e,t)=>{const s=o+He+t;e.setAttribute(Le.WIN_ID_ATTRIBUTE_NAME,s),i.push({windowId:s})})),lt({frames:i,sessionId:n,requestedFrameId:e.documentElement.dataset.requestedFrameId&&o}),t.forEach(((e,t)=>{const i=o+He+t;try{dt(e.contentWindow,{method:ke,windowId:i,sessionId:n,options:s,scrolling:e.scrolling})}catch(e){}r[i]=globalThis.setTimeout((()=>lt({frames:[{windowId:i,processed:!0}],sessionId:n})),Ve)})),delete e.documentElement.dataset.requestedFrameId}(e,n,t,s,o),n.length&&function(e,t,s,o,n){const i=[];t.forEach(((e,t)=>{const r=o+He+t;let a,l;try{a=e.contentDocument,l=e.contentWindow,l.stop()}catch(e){}const d=e.getAttribute("srcdoc");if(!a&&d){a=(new Ke).parseFromString(d,"text/html"),l=globalThis}if(a)try{it("requestTimeouts",n,r),nt(a,s,r,n),i.push(ct(a,l,r,s,e.scrolling))}catch(e){i.push({windowId:r,processed:!0})}})),lt({frames:i,sessionId:n,requestedFrameId:e.documentElement.dataset.requestedFrameId&&o}),delete e.documentElement.dataset.requestedFrameId}(e,n,t,s,o)}function it(e,t,s){const o=Xe.get(t);if(o&&o[e]){const t=o[e][s];t&&(globalThis.clearTimeout(t),delete o[e][s])}}function rt(e,t){const s=Xe.get(e);s&&s.responseTimeouts&&(s.responseTimeouts[t]=globalThis.setTimeout((()=>lt({frames:[{windowId:t,processed:!0}],sessionId:e})),We))}function at(e,t,s){e.forEach(((e,o)=>{const n=t+He+o;e.removeAttribute(Le.WIN_ID_ATTRIBUTE_NAME);try{dt(e.contentWindow,{method:Ue,windowId:n,sessionId:s})}catch(e){}})),e.forEach(((e,o)=>{const n=t+He+o;let i;try{i=e.contentDocument}catch(e){}if(i)try{at(ut(i),n,s)}catch(e){}}))}function lt(e){e.method=De;try{je.singlefile.processors.frameTree.initResponse(e)}catch(t){dt(je,e,!0)}}function dt(e,t,s){if(e==je&&Be&&Be.runtime&&Be.runtime.sendMessage)Be.runtime.sendMessage(t);else if(s){const s=new Ye;e.postMessage(R+Ze.stringify({method:t.method,sessionId:t.sessionId}),Oe,[s.port2]),s.port1.postMessage(t)}else e.postMessage(R+Ze.stringify(t),Oe)}function ct(e,t,s,o,n){const i=Le.preProcessDoc(e,t,o),r=Le.serialize(e);Le.postProcessDoc(e,i.markedElements,i.invalidElements);return{windowId:s,content:r,baseURI:e.baseURI.split("#")[0],url:e.documentURI,title:e.title,canvases:i.canvases,fonts:i.fonts,worklets:i.worklets,stylesheets:i.stylesheets,images:i.images,posters:i.posters,videos:i.videos,usedFonts:i.usedFonts,shadowRoots:i.shadowRoots,scrollPosition:i.scrollPosition,scrolling:n,adoptedStyleSheets:i.adoptedStyleSheets,processed:!0}}function ut(e){let t=Array.from(e.querySelectorAll(Fe));return e.querySelectorAll(xe).forEach((e=>{const s=Le.getShadowRoot(e);s&&(t=t.concat(...s.querySelectorAll(Fe)))})),t}Xe||(Xe=globalThis.sessions=new Map),ze&&($e="0",Be&&Be.runtime&&Be.runtime.onMessage&&Be.runtime.onMessage.addListener&&Be.runtime.onMessage.addListener((e=>e.method==De?(ot(e),Promise.resolve({})):e.method==qe?(it("requestTimeouts",e.sessionId,e.windowId),rt(e.sessionId,e.windowId),Promise.resolve({})):void 0))),Qe(),new Je(Qe).observe(Ge,{childList:!0}),e.TIMEOUT_INIT_REQUEST_MESSAGE=Ve,e.cleanup=function(e){Xe.delete(e),st({windowId:$e,sessionId:e,options:{sessionId:e}})},e.getAsync=function(e){const t=et();return e=Ze.parse(Ze.stringify(e)),new Promise((s=>{Xe.set(t,{frames:[],requestTimeouts:{},responseTimeouts:{},resolve:e=>{e.sessionId=t,s(e)}}),tt({windowId:$e,sessionId:t,options:e})}))},e.getSync=function(e){const t=et();e=Ze.parse(Ze.stringify(e)),Xe.set(t,{frames:[],requestTimeouts:{},responseTimeouts:{}}),function(e){const t=e.sessionId,s=globalThis[Le.WAIT_FOR_USERSCRIPT_PROPERTY_NAME];delete globalThis._singleFile_cleaningUp,ze||($e=globalThis.frameId=e.windowId);nt(Ge,e.options,$e,t),ze||(e.options.userScriptEnabled&&s&&s(Le.ON_BEFORE_CAPTURE_EVENT_NAME),lt({frames:[ct(Ge,globalThis,$e,e.options,e.scrolling)],sessionId:t,requestedFrameId:Ge.documentElement.dataset.requestedFrameId&&$e}),e.options.userScriptEnabled&&s&&s(Le.ON_AFTER_CAPTURE_EVENT_NAME),delete Ge.documentElement.dataset.requestedFrameId)}({windowId:$e,sessionId:t,options:e});const s=Xe.get(t).frames;return s.sessionId=t,s},e.initResponse=ot,Object.defineProperty(e,"__esModule",{value:!0})}));
|