single-file-core 1.0.37 → 1.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +0 -0
- package/LICENSE +0 -0
- package/common/content-infobar-web.js +0 -0
- package/modules/css-fonts-alt-minifier.js +0 -0
- package/modules/css-fonts-minifier.js +0 -0
- package/modules/css-matched-rules.js +0 -0
- package/modules/css-medias-alt-minifier.js +0 -0
- package/modules/css-rules-minifier.js +0 -0
- package/modules/html-images-alt-minifier.js +0 -0
- package/modules/html-minifier.js +0 -0
- package/modules/html-serializer.js +0 -0
- package/modules/index.js +0 -0
- package/package.json +1 -1
- package/processors/frame-tree/content/content-frame-tree.js +0 -0
- package/processors/hooks/content/content-hooks-frames-web.js +0 -0
- package/processors/hooks/content/content-hooks-frames.js +0 -0
- package/processors/index.js +0 -0
- package/processors/lazy/content/content-lazy-loader.js +0 -0
- package/single-file-bootstrap.js +0 -0
- package/single-file-core.js +15 -15
- package/single-file-frames.js +0 -0
- package/single-file-helper.js +0 -0
- package/single-file-hooks-frames.js +0 -0
- package/single-file-infobar.js +0 -0
- package/single-file-util.js +0 -0
- package/single-file.js +0 -0
- package/vendor/css-font-property-parser.js +0 -0
- package/vendor/css-media-query-parser.js +0 -0
- package/vendor/css-minifier.js +0 -0
- package/vendor/css-tree.js +0 -0
- package/vendor/css-unescape.js +0 -0
- package/vendor/html-srcset-parser.js +0 -0
- package/vendor/index.js +0 -0
- package/vendor/mime-type-parser.js +0 -0
package/.eslintrc.js
CHANGED
|
File without changes
|
package/LICENSE
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/modules/html-minifier.js
CHANGED
|
File without changes
|
|
File without changes
|
package/modules/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/processors/index.js
CHANGED
|
File without changes
|
|
File without changes
|
package/single-file-bootstrap.js
CHANGED
|
File without changes
|
package/single-file-core.js
CHANGED
|
@@ -502,7 +502,7 @@ class Processor {
|
|
|
502
502
|
if (this.options.insertMetaCSP) {
|
|
503
503
|
const metaTag = this.doc.createElement("meta");
|
|
504
504
|
metaTag.httpEquiv = "content-security-policy";
|
|
505
|
-
metaTag.content = "default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:;";
|
|
505
|
+
metaTag.content = "default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;";
|
|
506
506
|
this.doc.head.appendChild(metaTag);
|
|
507
507
|
}
|
|
508
508
|
if (this.options.insertMetaNoIndex) {
|
|
@@ -764,7 +764,7 @@ class Processor {
|
|
|
764
764
|
placeholderElement.replaceWith(noscriptElement);
|
|
765
765
|
});
|
|
766
766
|
this.doc.querySelectorAll("meta[http-equiv=\"content-security-policy\"]").forEach(element => element.remove());
|
|
767
|
-
const objectElements = this.doc.querySelectorAll("applet, object[data]:not([type=\"image/svg+xml\"]):not([type=\"image/svg-xml\"]):not([type=\"text/html\"]), embed[src]:not([src*=\".svg\"]):not([src*=\".pdf\"])");
|
|
767
|
+
const objectElements = this.doc.querySelectorAll("applet, object[data]:not([type=\"image/svg+xml\"]):not([type=\"image/svg-xml\"]):not([type=\"text/html\"]):not([data*=\".svg\"]):not([data*=\".pdf\"]), embed[src]:not([src*=\".svg\"]):not([src*=\".pdf\"])");
|
|
768
768
|
this.stats.set("discarded", "objects", objectElements.length);
|
|
769
769
|
this.stats.set("processed", "objects", objectElements.length);
|
|
770
770
|
objectElements.forEach(element => element.remove());
|
|
@@ -887,10 +887,10 @@ class Processor {
|
|
|
887
887
|
|
|
888
888
|
insertFonts() {
|
|
889
889
|
if (this.options.fonts && this.options.fonts.length) {
|
|
890
|
-
let
|
|
890
|
+
let firstStylesheet = this.doc.querySelector("style, link[rel=stylesheet]"), previousStyleElement;
|
|
891
891
|
this.options.fonts.forEach(fontData => {
|
|
892
892
|
if (fontData["font-family"] && fontData.src) {
|
|
893
|
-
stylesheetContent
|
|
893
|
+
let stylesheetContent = "@font-face{";
|
|
894
894
|
let stylesContent = "";
|
|
895
895
|
Object.keys(fontData).forEach(fontStyle => {
|
|
896
896
|
if (stylesContent) {
|
|
@@ -899,18 +899,18 @@ class Processor {
|
|
|
899
899
|
stylesContent += fontStyle + ":" + fontData[fontStyle];
|
|
900
900
|
});
|
|
901
901
|
stylesheetContent += stylesContent + "}";
|
|
902
|
+
const styleElement = this.doc.createElement("style");
|
|
903
|
+
styleElement.textContent = stylesheetContent;
|
|
904
|
+
if (previousStyleElement) {
|
|
905
|
+
previousStyleElement.insertAdjacentElement("afterend", styleElement);
|
|
906
|
+
} else if (firstStylesheet) {
|
|
907
|
+
firstStylesheet.parentElement.insertBefore(styleElement, firstStylesheet);
|
|
908
|
+
} else {
|
|
909
|
+
this.doc.head.appendChild(styleElement);
|
|
910
|
+
}
|
|
911
|
+
previousStyleElement = styleElement;
|
|
902
912
|
}
|
|
903
913
|
});
|
|
904
|
-
if (stylesheetContent) {
|
|
905
|
-
const styleElement = this.doc.createElement("style");
|
|
906
|
-
styleElement.textContent = stylesheetContent;
|
|
907
|
-
const existingStyleElement = this.doc.querySelector("style");
|
|
908
|
-
if (existingStyleElement) {
|
|
909
|
-
existingStyleElement.parentElement.insertBefore(styleElement, existingStyleElement);
|
|
910
|
-
} else {
|
|
911
|
-
this.doc.head.insertBefore(styleElement, this.doc.head.firstChild);
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
914
|
}
|
|
915
915
|
}
|
|
916
916
|
|
|
@@ -1222,7 +1222,7 @@ class Processor {
|
|
|
1222
1222
|
async processPageResources() {
|
|
1223
1223
|
const processAttributeArgs = [
|
|
1224
1224
|
["link[href][rel*=\"icon\"]", "href", false, true],
|
|
1225
|
-
["object[type=\"image/svg+xml\"], object[type=\"image/svg-xml\"]", "data"],
|
|
1225
|
+
["object[type=\"image/svg+xml\"], object[type=\"image/svg-xml\"], object[data*=\".svg\"], object[data*=\".pdf\"]", "data"],
|
|
1226
1226
|
["img[src], input[src][type=image]", "src", true],
|
|
1227
1227
|
["embed[src*=\".svg\"], embed[src*=\".pdf\"]", "src"],
|
|
1228
1228
|
["video[poster]", "poster"],
|
package/single-file-frames.js
CHANGED
|
File without changes
|
package/single-file-helper.js
CHANGED
|
File without changes
|
|
File without changes
|
package/single-file-infobar.js
CHANGED
|
File without changes
|
package/single-file-util.js
CHANGED
|
File without changes
|
package/single-file.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/vendor/css-minifier.js
CHANGED
|
File without changes
|
package/vendor/css-tree.js
CHANGED
|
File without changes
|
package/vendor/css-unescape.js
CHANGED
|
File without changes
|
|
File without changes
|
package/vendor/index.js
CHANGED
|
File without changes
|
|
File without changes
|