Jelajahi Sumber

renamed docUtil to DocUtil

Gildas 7 tahun lalu
induk
melakukan
9e71f6a566
2 mengubah file dengan 61 tambahan dan 61 penghapusan
  1. 3 3
      lib/single-file/single-file-browser.js
  2. 58 58
      lib/single-file/single-file-core.js

+ 3 - 3
lib/single-file/single-file-browser.js

@@ -185,9 +185,9 @@ this.SingleFileBrowser = this.SingleFileBrowser || (() => {
 	}
 
 	// ---
-	// docUtil
+	// DocUtil
 	// ---
-	class docUtil {
+	class DocUtil {
 		static async getContent(resourceURL, options) {
 			return getContent(resourceURL, options);
 		}
@@ -333,6 +333,6 @@ this.SingleFileBrowser = this.SingleFileBrowser || (() => {
 		console.log("S-File <browser>", ...args); // eslint-disable-line no-console
 	}
 
-	return { getClass: () => SingleFileCore.getClass(docUtil, cssTree) };
+	return { getClass: () => SingleFileCore.getClass(DocUtil, cssTree) };
 
 })();

+ 58 - 58
lib/single-file/single-file-core.js

@@ -27,10 +27,10 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 	const SELECTED_CONTENT_ROOT_ATTRIBUTE_NAME = "data-single-file-selected-content-root";
 	const DEBUG = false;
 
-	let docUtil, cssTree, sessionId = 0;
+	let DocUtil, cssTree, sessionId = 0;
 
 	function getClass(...args) {
-		[docUtil, cssTree] = args;
+		[DocUtil, cssTree] = args;
 		return SingleFileClass;
 	}
 
@@ -149,7 +149,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			this.batchRequest = new BatchRequest();
 			this.processor = new Processor(options, this.batchRequest);
 			if (this.options.doc) {
-				const docData = docUtil.preProcessDoc(this.options.doc, this.options.win, this.options);
+				const docData = DocUtil.preProcessDoc(this.options.doc, this.options.win, this.options);
 				this.options.canvasData = docData.canvasData;
 				this.options.fontsData = docData.fontsData;
 				this.options.stylesheetContents = docData.stylesheetContents;
@@ -158,7 +158,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				this.options.usedFonts = docData.usedFonts;
 				this.options.shadowRootContents = docData.shadowRootContents;
 			}
-			this.options.content = this.options.content || (this.options.doc ? docUtil.serialize(this.options.doc, false) : null);
+			this.options.content = this.options.content || (this.options.doc ? DocUtil.serialize(this.options.doc, false) : null);
 			this.onprogress = options.onprogress || (() => { });
 		}
 
@@ -173,7 +173,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			await this.executeStage(RESOLVE_URLS_STAGE);
 			this.pendingPromises = this.executeStage(REPLACE_DATA_STAGE);
 			if (this.options.doc) {
-				docUtil.postProcessDoc(this.options.doc, this.options);
+				DocUtil.postProcessDoc(this.options.doc, this.options);
 				this.options.doc = null;
 				this.options.win = null;
 			}
@@ -283,7 +283,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				const [resourceURL, asDataURI] = JSON.parse(requestKey);
 				const resourceRequests = this.requests.get(requestKey);
 				try {
-					const content = await docUtil.getContent(resourceURL, { asDataURI, maxResourceSize: options.maxResourceSize, maxResourceSizeEnabled: options.maxResourceSizeEnabled });
+					const content = await DocUtil.getContent(resourceURL, { asDataURI, maxResourceSize: options.maxResourceSize, maxResourceSizeEnabled: options.maxResourceSizeEnabled });
 					indexResource = indexResource + 1;
 					onloadListener({ index: indexResource, url: resourceURL });
 					resourceRequests.forEach(resourceRequest => resourceRequest.resolve({ content: content.data, indexResource, duplicate: Boolean(resourceRequests.length > 1) }));
@@ -327,17 +327,17 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 		async loadPage(pageContent) {
 			let resourceURL;
 			if (!pageContent || this.options.saveRawPage) {
-				const content = await docUtil.getContent(this.baseURI, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
+				const content = await DocUtil.getContent(this.baseURI, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
 				pageContent = content.data;
 				this.baseURI = this.options.url = resourceURL;
 			}
-			this.doc = docUtil.createDoc(pageContent, this.baseURI);
-			this.onEventAttributeNames = docUtil.getOnEventAttributeNames(this.doc);
+			this.doc = DocUtil.createDoc(pageContent, this.baseURI);
+			this.onEventAttributeNames = DocUtil.getOnEventAttributeNames(this.doc);
 		}
 
 		async getPageData() {
-			docUtil.postProcessDoc(this.doc, this.options);
-			const url = docUtil.parseURL(this.baseURI);
+			DocUtil.postProcessDoc(this.doc, this.options);
+			const url = DocUtil.parseURL(this.baseURI);
 			if (this.options.insertSingleFileComment) {
 				const infobarContent = (this.options.infobarContent || "").replace(/\\n/g, "\n").replace(/\\t/g, "\t");
 				const commentNode = this.doc.createComment("\n Page saved with SingleFile" +
@@ -348,11 +348,11 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			}
 			let size;
 			if (this.options.displayStats) {
-				size = docUtil.getContentSize(this.doc.documentElement.outerHTML);
+				size = DocUtil.getContentSize(this.doc.documentElement.outerHTML);
 			}
-			const content = docUtil.serialize(this.doc, this.options.compressHTML);
+			const content = DocUtil.serialize(this.doc, this.options.compressHTML);
 			if (this.options.displayStats) {
-				const contentSize = docUtil.getContentSize(content);
+				const contentSize = DocUtil.getContentSize(content);
 				this.stats.set("processed", "HTML bytes", contentSize);
 				this.stats.add("discarded", "HTML bytes", size - contentSize);
 			}
@@ -390,22 +390,22 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 
 		setInputValues() {
 			this.doc.querySelectorAll("input").forEach(input => {
-				const value = input.getAttribute(docUtil.inputValueAttributeName(this.options.sessionId));
+				const value = input.getAttribute(DocUtil.inputValueAttributeName(this.options.sessionId));
 				input.setAttribute("value", value || "");
 			});
 			this.doc.querySelectorAll("input[type=radio], input[type=checkbox]").forEach(input => {
-				const value = input.getAttribute(docUtil.inputValueAttributeName(this.options.sessionId));
+				const value = input.getAttribute(DocUtil.inputValueAttributeName(this.options.sessionId));
 				if (value == "true") {
 					input.setAttribute("checked", "");
 				}
 			});
 			this.doc.querySelectorAll("textarea").forEach(textarea => {
-				const value = textarea.getAttribute(docUtil.inputValueAttributeName(this.options.sessionId));
+				const value = textarea.getAttribute(DocUtil.inputValueAttributeName(this.options.sessionId));
 				textarea.textContent = value || "";
 			});
 			this.doc.querySelectorAll("select").forEach(select => {
 				select.querySelectorAll("option").forEach(option => {
-					const selected = option.getAttribute(docUtil.inputValueAttributeName(this.options.sessionId)) != null;
+					const selected = option.getAttribute(DocUtil.inputValueAttributeName(this.options.sessionId)) != null;
 					if (selected) {
 						option.setAttribute("selected", "");
 					}
@@ -502,7 +502,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				this.doc.body.querySelectorAll(":not(svg) title, meta, link[href][rel*=\"icon\"]").forEach(element => element instanceof this.options.win.HTMLElement && this.doc.head.appendChild(element));
 			}
 			if (this.options.imageData) {
-				const dataAttributeName = docUtil.imagesAttributeName(this.options.sessionId);
+				const dataAttributeName = DocUtil.imagesAttributeName(this.options.sessionId);
 				this.doc.querySelectorAll("img").forEach(imgElement => {
 					const imgData = this.options.imageData[Number(imgElement.getAttribute(dataAttributeName))];
 					if (this.options.removeHiddenElements && imgData.size && !imgData.size.pxWidth && !imgData.size.pxHeight) {
@@ -593,7 +593,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					const normalizedHref = Util.normalizeURL(href);
 					if (element.tagName == "LINK") {
 						try {
-							element.setAttribute("href", docUtil.resolveURL(href, this.options.baseURI || this.options.url));
+							element.setAttribute("href", DocUtil.resolveURL(href, this.options.baseURI || this.options.url));
 						} catch (error) {
 							if (element.tagName == "LINK") {
 								element.setAttribute("href", EMPTY_URL);
@@ -601,7 +601,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 						}
 					} else if (normalizedHref == href) {
 						try {
-							element.setAttribute("href", docUtil.resolveURL(normalizedHref, this.options.baseURI || this.options.url));
+							element.setAttribute("href", DocUtil.resolveURL(normalizedHref, this.options.baseURI || this.options.url));
 						} catch (error) {
 							// ignored
 						}
@@ -612,27 +612,27 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 
 		removeUnusedStyles() {
 			if (!this.mediaAllInfo) {
-				this.mediaAllInfo = docUtil.getMediaAllInfo(this.doc, this.stylesheets, this.styles);
+				this.mediaAllInfo = DocUtil.getMediaAllInfo(this.doc, this.stylesheets, this.styles);
 			}
-			const stats = docUtil.minifyCSSRules(this.stylesheets, this.styles, this.mediaAllInfo);
+			const stats = DocUtil.minifyCSSRules(this.stylesheets, this.styles, this.mediaAllInfo);
 			this.stats.set("processed", "CSS rules", stats.processed);
 			this.stats.set("discarded", "CSS rules", stats.discarded);
 		}
 
 		removeUnusedFonts() {
-			docUtil.removeUnusedFonts(this.doc, this.stylesheets, this.styles, this.options);
+			DocUtil.removeUnusedFonts(this.doc, this.stylesheets, this.styles, this.options);
 		}
 
 		removeAlternativeFonts() {
-			docUtil.removeAlternativeFonts(this.doc, this.stylesheets);
+			DocUtil.removeAlternativeFonts(this.doc, this.stylesheets);
 		}
 
 		removeAlternativeImages() {
-			docUtil.removeAlternativeImages(this.doc);
+			DocUtil.removeAlternativeImages(this.doc);
 		}
 
 		removeHiddenElements() {
-			const hiddenElements = this.doc.querySelectorAll("[" + docUtil.removedContentAttributeName(this.options.sessionId) + "]");
+			const hiddenElements = this.doc.querySelectorAll("[" + DocUtil.removedContentAttributeName(this.options.sessionId) + "]");
 			this.stats.set("discarded", "hidden elements", hiddenElements.length);
 			this.stats.set("processed", "hidden elements", hiddenElements.length);
 			hiddenElements.forEach(element => element.remove());
@@ -641,16 +641,16 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 		compressHTML() {
 			let size;
 			if (this.options.displayStats) {
-				size = docUtil.getContentSize(this.doc.documentElement.outerHTML);
+				size = DocUtil.getContentSize(this.doc.documentElement.outerHTML);
 			}
-			docUtil.minifyHTML(this.doc, { preservedSpaceAttributeName: docUtil.preservedSpaceAttributeName(this.options.sessionId) });
+			DocUtil.minifyHTML(this.doc, { preservedSpaceAttributeName: DocUtil.preservedSpaceAttributeName(this.options.sessionId) });
 			if (this.options.displayStats) {
-				this.stats.add("discarded", "HTML bytes", size - docUtil.getContentSize(this.doc.documentElement.outerHTML));
+				this.stats.add("discarded", "HTML bytes", size - DocUtil.getContentSize(this.doc.documentElement.outerHTML));
 			}
 		}
 
 		removeAlternativeMedias() {
-			const stats = docUtil.minifyMedias(this.stylesheets);
+			const stats = DocUtil.minifyMedias(this.stylesheets);
 			this.stats.set("processed", "medias", stats.processed);
 			this.stats.set("discarded", "medias", stats.discarded);
 		}
@@ -708,14 +708,14 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 
 		insertShadowRootContents() {
 			if (this.options.shadowRootContents) {
-				this.doc.querySelectorAll("[" + docUtil.shadowRootAttributeName(this.options.sessionId) + "]").forEach((element, elementIndex) => {
-					const DOMParser = docUtil.getParser();
+				this.doc.querySelectorAll("[" + DocUtil.shadowRootAttributeName(this.options.sessionId) + "]").forEach((element, elementIndex) => {
+					const DOMParser = DocUtil.getParser();
 					const elementInfo = this.options.shadowRootContents[elementIndex];
 					if (DOMParser && elementInfo) {
 						const frameElement = this.doc.createElement("iframe");
 						frameElement.setAttribute("style", "all:initial!important;border:0!important;width:100%!important;height:" + elementInfo.height + "px!important");
 						const windowId = "shadow-" + this.options.framesData.length;
-						frameElement.setAttribute(docUtil.windowIdAttributeName(this.options.sessionId), windowId);
+						frameElement.setAttribute(DocUtil.windowIdAttributeName(this.options.sessionId), windowId);
 						this.options.framesData.push({ windowId, content: elementInfo.content, baseURI: this.baseURI });
 						element.appendChild(frameElement);
 					}
@@ -869,7 +869,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			await Promise.all(Array.from(this.doc.querySelectorAll("script[src]")).map(async scriptElement => {
 				if (scriptElement.src) {
 					this.stats.add("processed", "scripts", 1);
-					const content = await docUtil.getContent(scriptElement.src, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
+					const content = await DocUtil.getContent(scriptElement.src, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
 					scriptElement.textContent = content.data.replace(/<\//gi, "<\\/").replace(/\/>/gi, "\\/>");
 				}
 				scriptElement.removeAttribute("src");
@@ -881,7 +881,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				const frameElements = Array.from(this.doc.querySelectorAll("iframe, frame, object[type=\"text/html\"][data]"));
 				await Promise.all(frameElements.map(async frameElement => {
 					ProcessorHelper.setFrameEmptySrc(frameElement);
-					const frameWindowId = frameElement.getAttribute(docUtil.windowIdAttributeName(this.options.sessionId));
+					const frameWindowId = frameElement.getAttribute(DocUtil.windowIdAttributeName(this.options.sessionId));
 					if (frameWindowId) {
 						const frameData = this.options.framesData.find(frame => frame.windowId == frameWindowId);
 						if (frameData) {
@@ -918,7 +918,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			if (this.options.framesData) {
 				const frameElements = Array.from(this.doc.querySelectorAll("iframe, frame, object[type=\"text/html\"][data]"));
 				await Promise.all(frameElements.map(async frameElement => {
-					const frameWindowId = frameElement.getAttribute(docUtil.windowIdAttributeName(this.options.sessionId));
+					const frameWindowId = frameElement.getAttribute(DocUtil.windowIdAttributeName(this.options.sessionId));
 					if (frameWindowId) {
 						const frameData = this.options.framesData.find(frame => frame.windowId == frameWindowId);
 						if (frameData) {
@@ -926,7 +926,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 								this.stats.add("processed", "frames", 1);
 								await frameData.processor.run();
 								const pageData = await frameData.processor.getPageData();
-								frameElement.removeAttribute(docUtil.windowIdAttributeName(this.options.sessionId));
+								frameElement.removeAttribute(DocUtil.windowIdAttributeName(this.options.sessionId));
 								if (pageData.content.match(NOSCRIPT_TAG_FOUND) || pageData.content.match(SCRIPT_TAG_FOUND)) {
 									frameElement.setAttribute("sandbox", "allow-scripts allow-same-origin");
 								} else {
@@ -986,7 +986,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			this.doc.querySelectorAll("[style]").forEach(element => {
 				let styleContent = element.getAttribute("style");
 				if (this.options.compressCSS) {
-					styleContent = docUtil.compressCSS(styleContent);
+					styleContent = DocUtil.compressCSS(styleContent);
 				}
 				styleContent = ProcessorHelper.resolveStylesheetURLs(styleContent, this.baseURI, this.options);
 				const declarationList = cssTree.parse(styleContent, { context: "declarationList" });
@@ -1034,7 +1034,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 	class ProcessorHelper {
 		static async evalTemplate(template, options, content, dontReplaceSlash) {
 			const date = new Date();
-			const url = docUtil.parseURL(options.url);
+			const url = DocUtil.parseURL(options.url);
 			template = await Util.evalTemplateVariable(template, "page-title", () => options.title || "No title", dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "page-language", () => options.info.lang || "No language", dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "page-description", () => options.info.description || "No description", dontReplaceSlash);
@@ -1073,9 +1073,9 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			template = await Util.evalTemplateVariable(template, "tab-id", () => String(options.tabId || "No tab id"), dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "url-last-segment", () => Util.getLastSegment(url), dontReplaceSlash);
 			if (content) {
-				template = await Util.evalTemplateVariable(template, "digest-sha-256", async () => docUtil.digest("SHA-256", content), dontReplaceSlash);
-				template = await Util.evalTemplateVariable(template, "digest-sha-384", async () => docUtil.digest("SHA-384", content), dontReplaceSlash);
-				template = await Util.evalTemplateVariable(template, "digest-sha-512", async () => docUtil.digest("SHA-512", content), dontReplaceSlash);
+				template = await Util.evalTemplateVariable(template, "digest-sha-256", async () => DocUtil.digest("SHA-256", content), dontReplaceSlash);
+				template = await Util.evalTemplateVariable(template, "digest-sha-384", async () => DocUtil.digest("SHA-384", content), dontReplaceSlash);
+				template = await Util.evalTemplateVariable(template, "digest-sha-512", async () => DocUtil.digest("SHA-512", content), dontReplaceSlash);
 			}
 			return template;
 		}
@@ -1168,17 +1168,17 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					let resourceURL = Util.normalizeURL(match.resourceURL);
 					if (!Util.testIgnoredPath(resourceURL) && Util.testValidPath(resourceURL, baseURI, options.url)) {
 						try {
-							resourceURL = docUtil.resolveURL(match.resourceURL, baseURI);
+							resourceURL = DocUtil.resolveURL(match.resourceURL, baseURI);
 						} catch (error) {
 							// ignored
 						}
 						if (Util.testValidURL(resourceURL, baseURI, options.url)) {
 							const downloadOptions = { asDataURI: false, maxResourceSize: options.maxResourceSize, maxResourceSizeEnabled: options.maxResourceSizeEnabled, validateTextContentType: true };
-							const content = await docUtil.getContent(resourceURL, downloadOptions);
+							const content = await DocUtil.getContent(resourceURL, downloadOptions);
 							resourceURL = content.resourceURL;
 							let importedStylesheetContent = Util.removeCssComments(content.data);
 							if (options.compressCSS) {
-								importedStylesheetContent = docUtil.compressCSS(importedStylesheetContent);
+								importedStylesheetContent = DocUtil.compressCSS(importedStylesheetContent);
 							}
 							importedStylesheetContent = Util.wrapMediaQuery(importedStylesheetContent, match.media);
 							if (stylesheetContent.includes(cssImport)) {
@@ -1201,7 +1201,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					if (Util.testValidPath(resourceURL, baseURI, options.url)) {
 						let resolvedURL;
 						try {
-							resolvedURL = docUtil.resolveURL(resourceURL, baseURI);
+							resolvedURL = DocUtil.resolveURL(resourceURL, baseURI);
 						} catch (error) {
 							// ignored
 						}
@@ -1233,11 +1233,11 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			resourceURL = Util.normalizeURL(resourceURL);
 			if (resourceURL && resourceURL != baseURI && resourceURL != ABOUT_BLANK_URI) {
 				const downloadOptions = { asDataURI: false, maxResourceSize: options.maxResourceSize, maxResourceSizeEnabled: options.maxResourceSizeEnabled, charset: options.charset };
-				const content = await docUtil.getContent(resourceURL, downloadOptions);
+				const content = await DocUtil.getContent(resourceURL, downloadOptions);
 				resourceURL = content.resourceURL;
 				let stylesheetContent = Util.removeCssComments(content.data);
 				if (options.compressCSS) {
-					stylesheetContent = docUtil.compressCSS(stylesheetContent);
+					stylesheetContent = DocUtil.compressCSS(stylesheetContent);
 				}
 				stylesheetContent = await ProcessorHelper.resolveImportURLs(stylesheetContent, resourceURL, options);
 				return stylesheetContent;
@@ -1276,13 +1276,13 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 									let { content } = await batchRequest.addURL(resourceURL);
 									let validResource = content == EMPTY_DATA_URI || content.startsWith(PREFIX_DATA_URI_VND) || content.startsWith(PREFIX_DATA_URI_IMAGE_SVG);
 									if (!validResource) {
-										validResource = await docUtil.validFont(urlFunction);
+										validResource = await DocUtil.validFont(urlFunction);
 									}
 									if (!validResource) {
 										content = EMPTY_DATA_URI;
 									}
 									declaration.value.children.forEach(token => {
-										if (token.type == "Url" && docUtil.removeQuotes(Util.getCSSValue(token.value)) == originalResourceURL) {
+										if (token.type == "Url" && DocUtil.removeQuotes(Util.getCSSValue(token.value)) == originalResourceURL) {
 											token.value.value = content;
 										}
 									});
@@ -1326,7 +1326,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					if (token.data.children) {
 						findURLToken(url, token.data.children, callback);
 					}
-					if (token.data.type == "Url" && docUtil.removeQuotes(Util.getCSSValue(token.data.value)) == url) {
+					if (token.data.type == "Url" && DocUtil.removeQuotes(Util.getCSSValue(token.data.value)) == url) {
 						callback(token, children);
 					}
 				}
@@ -1341,7 +1341,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					resourceElement.setAttribute(attributeName, EMPTY_IMAGE);
 					if (Util.testValidPath(resourceURL, baseURI, options.url)) {
 						try {
-							resourceURL = docUtil.resolveURL(resourceURL, baseURI);
+							resourceURL = DocUtil.resolveURL(resourceURL, baseURI);
 						} catch (error) {
 							// ignored
 						}
@@ -1379,14 +1379,14 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				if (Util.testValidPath(resourceURL, baseURI, options.url) && !Util.testIgnoredPath(resourceURL)) {
 					resourceElement.setAttribute(attributeName, EMPTY_IMAGE);
 					try {
-						resourceURL = docUtil.resolveURL(resourceURL, baseURI);
+						resourceURL = DocUtil.resolveURL(resourceURL, baseURI);
 					} catch (error) {
 						// ignored
 					}
 					if (Util.testValidURL(resourceURL, baseURI, options.url)) {
 						try {
 							const { content } = await batchRequest.addURL(resourceURL, false);
-							const DOMParser = docUtil.getParser();
+							const DOMParser = DocUtil.getParser();
 							if (DOMParser) {
 								const svgDoc = new DOMParser().parseFromString(content, "image/svg+xml");
 								const hashMatch = originalResourceURL.match(REGEXP_URL_HASH);
@@ -1414,13 +1414,13 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 
 		static async processSrcset(resourceElements, attributeName, prefixDataURI, baseURI, options, batchRequest) {
 			await Promise.all(Array.from(resourceElements).map(async resourceElement => {
-				const srcset = docUtil.parseSrcset(resourceElement.getAttribute(attributeName));
+				const srcset = DocUtil.parseSrcset(resourceElement.getAttribute(attributeName));
 				const srcsetValues = await Promise.all(srcset.map(async srcsetValue => {
 					let resourceURL = Util.normalizeURL(srcsetValue.url);
 					if (!Util.testIgnoredPath(resourceURL)) {
 						if (Util.testValidPath(resourceURL, baseURI, options.url)) {
 							try {
-								resourceURL = docUtil.resolveURL(resourceURL, baseURI);
+								resourceURL = DocUtil.resolveURL(resourceURL, baseURI);
 							} catch (error) {
 								// ignored
 							}
@@ -1588,7 +1588,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 		}
 
 		static replaceImageSource(imgElement, variableName, options) {
-			const dataAttributeName = docUtil.imagesAttributeName(options.sessionId);
+			const dataAttributeName = DocUtil.imagesAttributeName(options.sessionId);
 			if (imgElement.getAttribute(dataAttributeName) != null) {
 				const imgData = options.imageData[Number(imgElement.getAttribute(dataAttributeName))];
 				if (imgData.replaceable) {