single-file-cli 1.0.35 → 1.0.36

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/args.js CHANGED
@@ -55,6 +55,7 @@ const args = require("yargs")
55
55
  "browser-start-minimized": false,
56
56
  "browser-cookie": [],
57
57
  "browser-cookies-file": "",
58
+ "browser-ignore-insecure-certs": false,
58
59
  "compress-CSS": false,
59
60
  "compress-HTML": true,
60
61
  "dump-content": false,
@@ -150,6 +151,8 @@ const args = require("yargs")
150
151
  .array("browser-cookie")
151
152
  .options("browser-cookies-file", { description: "Path of the cookies file formatted as a JSON file or a Netscape text file (puppeteer, webdriver-gecko, webdriver-chromium, jsdom)" })
152
153
  .string("browser-cookies-file")
154
+ .options("browser-ignore-insecure-certs", { description: "Ignore HTTPs errors" })
155
+ .boolean("browser-ignore-insecure-certs")
153
156
  .options("compress-CSS", { description: "Compress CSS stylesheets" })
154
157
  .boolean("compress-CSS")
155
158
  .options("compress-HTML", { description: "Compress HTML content" })
@@ -96,7 +96,8 @@ async function getBrowserOptions(options) {
96
96
  }
97
97
  }
98
98
  const resourceLoader = new ResourceLoader({
99
- userAgent: options.userAgent
99
+ userAgent: options.userAgent,
100
+ strictSSL: options.browserIgnoreInsecureCerts === undefined || !options.browserIgnoreInsecureCerts
100
101
  });
101
102
  const jsdomOptions = {
102
103
  virtualConsole: new VirtualConsole(),
@@ -38,7 +38,8 @@ exports.getPageData = async options => {
38
38
  let page, context;
39
39
  try {
40
40
  const contextOptions = {
41
- bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP
41
+ bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP,
42
+ ignoreHTTPSErrors: options.browserIgnoreInsecureCerts !== undefined && options.browserIgnoreInsecureCerts
42
43
  };
43
44
  if (options.httpProxyServer) {
44
45
  contextOptions.proxy = {
@@ -38,7 +38,8 @@ exports.getPageData = async options => {
38
38
  let page, context;
39
39
  try {
40
40
  context = await browser.newContext({
41
- bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP
41
+ bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP,
42
+ ignoreHTTPSErrors: options.browserIgnoreInsecureCerts !== undefined && options.browserIgnoreInsecureCerts
42
43
  });
43
44
  await setContextOptions(context, options);
44
45
  page = await context.newPage();
@@ -38,7 +38,8 @@ exports.getPageData = async options => {
38
38
  let page, context;
39
39
  try {
40
40
  const contextOptions = {
41
- bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP
41
+ bypassCSP: options.browserBypassCSP === undefined || options.browserBypassCSP,
42
+ ignoreHTTPSErrors: options.browserIgnoreInsecureCerts !== undefined && options.browserIgnoreInsecureCerts
42
43
  };
43
44
  if (options.httpProxyServer) {
44
45
  contextOptions.proxy = {
@@ -63,6 +63,9 @@ function getBrowserOptions(options) {
63
63
  if (options.browserExecutablePath) {
64
64
  browserOptions.executablePath = options.browserExecutablePath || "firefox";
65
65
  }
66
+ if (options.browserIgnoreInsecureCerts !== undefined) {
67
+ browserOptions.ignoreHTTPSErrors = options.browserIgnoreInsecureCerts;
68
+ }
66
69
  browserOptions.product = "firefox";
67
70
  return browserOptions;
68
71
  }
@@ -72,6 +72,9 @@ function getBrowserOptions(options = {}) {
72
72
  if (options.browserHeadless !== undefined) {
73
73
  browserOptions.headless = options.browserHeadless && !options.browserDebug;
74
74
  }
75
+ if (options.browserIgnoreInsecureCerts !== undefined) {
76
+ browserOptions.ignoreHTTPSErrors = options.browserIgnoreInsecureCerts;
77
+ }
75
78
  browserOptions.args = options.browserArgs ? JSON.parse(options.browserArgs) : [];
76
79
  if (options.browserDisableWebSecurity === undefined || options.browserDisableWebSecurity) {
77
80
  browserOptions.args.push("--disable-web-security");
@@ -24,7 +24,7 @@
24
24
  /* global require, exports, process, setTimeout, clearTimeout, Buffer */
25
25
 
26
26
  const chrome = require("selenium-webdriver/chrome");
27
- const { Builder } = require("selenium-webdriver");
27
+ const { Builder, Capabilities } = require("selenium-webdriver");
28
28
 
29
29
  exports.initialize = async () => { };
30
30
 
@@ -33,6 +33,7 @@ exports.getPageData = async options => {
33
33
  try {
34
34
  const builder = new Builder();
35
35
  builder.setChromeOptions(getBrowserOptions(options));
36
+ setBuilderCapabilities(builder, options);
36
37
  driver = builder.forBrowser("chrome").build();
37
38
  return await getPageData(driver, options);
38
39
  } finally {
@@ -44,6 +45,14 @@ exports.getPageData = async options => {
44
45
 
45
46
  exports.closeBrowser = () => { };
46
47
 
48
+ function setBuilderCapabilities(builder, options) {
49
+ if (options.browserIgnoreInsecureCerts !== undefined && options.browserIgnoreInsecureCerts) {
50
+ const capabilities = new Capabilities();
51
+ capabilities.setAcceptInsecureCerts(true);
52
+ builder.withCapabilities(capabilities);
53
+ }
54
+ }
55
+
47
56
  function getBrowserOptions(options) {
48
57
  const chromeOptions = new chrome.Options();
49
58
  const optionHeadless = (options.browserHeadless === undefined || options.browserHeadless) && !options.browserDebug;
@@ -24,7 +24,7 @@
24
24
  /* global require, exports, process, setTimeout, clearTimeout */
25
25
 
26
26
  const firefox = require("selenium-webdriver/firefox");
27
- const { Builder, By, Key } = require("selenium-webdriver");
27
+ const { Builder, By, Key, Capabilities } = require("selenium-webdriver");
28
28
 
29
29
  exports.initialize = async () => { };
30
30
 
@@ -33,6 +33,7 @@ exports.getPageData = async options => {
33
33
  try {
34
34
  const builder = new Builder().withCapabilities({ "pageLoadStrategy": "none" });
35
35
  builder.setFirefoxOptions(getBrowserOptions(options));
36
+ setBuilderCapabilities(builder, options);
36
37
  driver = builder.forBrowser("firefox").build();
37
38
  return await getPageData(driver, options);
38
39
  } finally {
@@ -44,6 +45,14 @@ exports.getPageData = async options => {
44
45
 
45
46
  exports.closeBrowser = () => { };
46
47
 
48
+ function setBuilderCapabilities(builder, options) {
49
+ if (options.browserIgnoreInsecureCerts !== undefined && options.browserIgnoreInsecureCerts) {
50
+ const capabilities = new Capabilities();
51
+ capabilities.setAcceptInsecureCerts(true);
52
+ builder.withCapabilities(capabilities);
53
+ }
54
+ }
55
+
47
56
  function getBrowserOptions(options) {
48
57
  const firefoxOptions = new firefox.Options().setBinary(firefox.Channel.NIGHTLY);
49
58
  if ((options.browserHeadless === undefined || options.browserHeadless) && !options.browserDebug) {
@@ -75,6 +84,7 @@ function getBrowserOptions(options) {
75
84
  if (options.userAgent) {
76
85
  firefoxOptions.setPreference("general.useragent.override", options.userAgent);
77
86
  }
87
+ return firefoxOptions;
78
88
  }
79
89
 
80
90
  async function getPageData(driver, options) {
@@ -1 +1 @@
1
- !function(){"use strict";(e=>{const t="single-file-lazy-load",n="single-file-load-image",i="single-file-image-loaded",r="single-file-new-font-face",o={family:"font-family",style:"font-style",weight:"font-weight",stretch:"font-stretch",unicodeRange:"unicode-range",variant:"font-variant",featureSettings:"font-feature-settings"},l=(t,n,i)=>e.addEventListener(t,n,i),s=t=>{try{e.dispatchEvent(t)}catch(e){}},c=e.CustomEvent,d=e.document,a=e.screen,g=e.Element,f=e.UIEvent,_=e.Event,m=e.FileReader,u=e.Blob,h=e.console,y=e.JSON,p=h&&h.warn&&((...e)=>h.warn(...e))||(()=>{}),F=new Map,E=new Map;let w;function v(r){const o=d.scrollingElement||d.documentElement,l=o.clientHeight,f=o.clientWidth,m=Math.max(o.scrollHeight-l,l),u=Math.max(o.scrollWidth-f,f);if(d.querySelectorAll("[loading=lazy]").forEach((e=>{e.loading="eager",e.setAttribute(t,"")})),o.__defineGetter__("clientHeight",(()=>m)),o.__defineGetter__("clientWidth",(()=>u)),a.__defineGetter__("height",(()=>m)),a.__defineGetter__("width",(()=>u)),e._singleFile_innerHeight=e.innerHeight,e._singleFile_innerWidth=e.innerWidth,e.__defineGetter__("innerHeight",(()=>m)),e.__defineGetter__("innerWidth",(()=>u)),r||e._singleFile_getBoundingClientRect||(e._singleFile_getBoundingClientRect=g.prototype.getBoundingClientRect,g.prototype.getBoundingClientRect=function(){const t=e._singleFile_getBoundingClientRect.call(this);return this==o&&(t.__defineGetter__("height",(()=>m)),t.__defineGetter__("bottom",(()=>m+t.top)),t.__defineGetter__("width",(()=>u)),t.__defineGetter__("right",(()=>u+t.left))),t}),!e._singleFileImage){const t=e.Image;e._singleFileImage=e.Image,e.__defineGetter__("Image",(function(){return function(){const e=new t(...arguments),r=new t(...arguments);return r.__defineSetter__("src",(t=>{e.src=t,s(new c(n,{detail:e.src}))})),r.__defineGetter__("src",(()=>e.src)),r.__defineSetter__("srcset",(t=>{s(new c(n)),e.srcset=t})),r.__defineGetter__("srcset",(()=>e.srcset)),r.__defineGetter__("height",(()=>e.height)),r.__defineGetter__("width",(()=>e.width)),r.__defineGetter__("naturalHeight",(()=>e.naturalHeight)),r.__defineGetter__("naturalWidth",(()=>e.naturalWidth)),e.decode&&r.__defineGetter__("decode",(()=>()=>e.decode())),e.onload=e.onloadend=e.onerror=t=>{s(new c(i,{detail:e.src})),r.dispatchEvent(new _(t.type,t))},r}}))}let h,y;r?(h=l/m,y=f/u):(h=(l+e.scrollY)/m,y=(f+e.scrollX)/u);const p=Math.min(h,y);if(p<1){const e=d.documentElement.style.getPropertyValue("transform"),t=d.documentElement.style.getPropertyPriority("transform"),n=d.documentElement.style.getPropertyValue("transform-origin"),i=d.documentElement.style.getPropertyPriority("transform-origin"),o=d.documentElement.style.getPropertyValue("min-height"),l=d.documentElement.style.getPropertyPriority("min-height");d.documentElement.style.setProperty("transform-origin",(h<1?"50%":"0")+" "+(y<1?"50%":"0")+" 0","important"),d.documentElement.style.setProperty("transform","scale3d("+p+", "+p+", 1)","important"),d.documentElement.style.setProperty("min-height",100/p+"vh","important"),S(),r?(d.documentElement.style.setProperty("-sf-transform",e,t),d.documentElement.style.setProperty("-sf-transform-origin",n,i),d.documentElement.style.setProperty("-sf-min-height",o,l)):(d.documentElement.style.setProperty("transform",e,t),d.documentElement.style.setProperty("transform-origin",n,i),d.documentElement.style.setProperty("min-height",o,l))}if(!r){S();const e=o.getBoundingClientRect();window==window.top&&[...F].forEach((([t,n])=>{const i=n.options&&n.options.root&&n.options.root.getBoundingClientRect,r=i&&n.options.root.getBoundingClientRect(),o=E.get(t);if(o){const l=o.map((t=>{const n=t.getBoundingClientRect();return{target:t,intersectionRatio:1,boundingClientRect:n,intersectionRect:n,isIntersecting:!0,rootBounds:i?r:e,time:0}}));n.callback(l,t)}}))}}function P(n){d.querySelectorAll("["+t+"]").forEach((e=>{e.loading="lazy",e.removeAttribute(t)})),n||e._singleFile_getBoundingClientRect&&(g.prototype.getBoundingClientRect=e._singleFile_getBoundingClientRect,delete e._singleFile_getBoundingClientRect),e._singleFileImage&&(delete e.Image,e.Image=e._singleFileImage,delete e._singleFileImage),n||S()}function b(){const t=d.scrollingElement||d.documentElement;null!=e._singleFile_innerHeight&&(delete e.innerHeight,e.innerHeight=e._singleFile_innerHeight,delete e._singleFile_innerHeight),null!=e._singleFile_innerWidth&&(delete e.innerWidth,e.innerWidth=e._singleFile_innerWidth,delete e._singleFile_innerWidth),delete t.clientHeight,delete t.clientWidth,delete a.height,delete a.width}if(l("single-file-load-deferred-images-start",(()=>v())),l("single-file-load-deferred-images-keep-zoom-level-start",(()=>v(!0))),l("single-file-load-deferred-images-end",(()=>P())),l("single-file-load-deferred-images-keep-zoom-level-end",(()=>P(!0))),l("single-file-load-deferred-images-reset",b),l("single-file-load-deferred-images-keep-zoom-level-reset",(()=>{const e=d.documentElement.style.getPropertyValue("-sf-transform"),t=d.documentElement.style.getPropertyPriority("-sf-transform"),n=d.documentElement.style.getPropertyValue("-sf-transform-origin"),i=d.documentElement.style.getPropertyPriority("-sf-transform-origin"),r=d.documentElement.style.getPropertyValue("-sf-min-height"),o=d.documentElement.style.getPropertyPriority("-sf-min-height");d.documentElement.style.setProperty("transform",e,t),d.documentElement.style.setProperty("transform-origin",n,i),d.documentElement.style.setProperty("min-height",r,o),d.documentElement.style.removeProperty("-sf-transform"),d.documentElement.style.removeProperty("-sf-transform-origin"),d.documentElement.style.removeProperty("-sf-min-height"),b()})),l("single-file-dispatch-scroll-event-start",(()=>{w=!0})),l("single-file-dispatch-scroll-event-end",(()=>{w=!1})),l("single-file-block-cookies-start",(()=>{try{d.__defineGetter__("cookie",(()=>{throw new Error("document.cookie temporary blocked by SingleFile")}))}catch(e){}})),l("single-file-block-cookies-end",(()=>{delete d.cookie})),l("single-file-block-storage-start",(()=>{e._singleFile_localStorage||(e._singleFile_localStorage=e.localStorage,e.__defineGetter__("localStorage",(()=>{throw new Error("localStorage temporary blocked by SingleFile")}))),e._singleFile_indexedDB||(e._singleFile_indexedDB=e.indexedDB,e.__defineGetter__("indexedDB",(()=>{throw new Error("indexedDB temporary blocked by SingleFile")})))})),l("single-file-block-storage-end",(()=>{e._singleFile_localStorage&&(delete e.localStorage,e.localStorage=e._singleFile_localStorage,delete e._singleFile_localStorage),e._singleFile_indexedDB||(delete e.indexedDB,e.indexedDB=e._singleFile_indexedDB,delete e._singleFile_indexedDB)})),l("single-file-request-fetch",(async t=>{s(new c("single-file-ack-fetch"));const{url:n,options:i}=y.parse(t.detail);let r;try{const t=await((t,n)=>e.fetch(t,n))(n,i);r={url:n,response:await t.arrayBuffer(),headers:[...t.headers],status:t.status}}catch(e){r={url:n,error:e&&e.toString()}}s(new c("single-file-response-fetch",{detail:r}))})),e.FontFace){const t=e.FontFace;let n;e.FontFace=function(){return n||(p("SingleFile is hooking the FontFace constructor, document.fonts.delete and document.fonts.clear to handle dynamically loaded fonts."),n=!0),B(...arguments).then((e=>s(new c(r,{detail:e})))),new t(...arguments)},e.FontFace.toString=function(){return"function FontFace() { [native code] }"};const i=d.fonts.delete;d.fonts.delete=function(e){return B(e.family).then((e=>s(new c("single-file-delete-font",{detail:e})))),i.call(d.fonts,e)},d.fonts.delete.toString=function(){return"function delete() { [native code] }"};const o=d.fonts.clear;d.fonts.clear=function(){return s(new c("single-file-clear-fonts")),o.call(d.fonts)},d.fonts.clear.toString=function(){return"function clear() { [native code] }"}}if(e.IntersectionObserver){const t=e.IntersectionObserver;let n;e.IntersectionObserver=function(){n||(p("SingleFile is hooking the IntersectionObserver API to detect and load deferred images."),n=!0);const e=new t(...arguments),i=t.prototype.observe||e.observe,r=t.prototype.unobserve||e.unobserve,o=arguments[0],l=arguments[1];return i&&(e.observe=function(t){let n=E.get(e);return n||(n=[],E.set(e,n)),n.push(t),i.call(e,t)}),r&&(e.unobserve=function(t){let n=E.get(e);return n&&(n=n.filter((e=>e!=t)),n.length?E.set(e,n):(E.delete(e),F.delete(e))),r.call(e,t)}),F.set(e,{callback:o,options:l}),e},e.IntersectionObserver.prototype=t.prototype,e.IntersectionObserver.toString=function(){return"function IntersectionObserver() { [native code] }"}}async function B(e,t,n){const i={};return i["font-family"]=e,i.src=t,n&&Object.keys(n).forEach((e=>{o[e]&&(i[o[e]]=n[e])})),new Promise((e=>{if(i.src instanceof ArrayBuffer){const t=new m;t.readAsDataURL(new u([i.src])),t.addEventListener("load",(()=>{i.src="url("+t.result+")",e(i)}))}else e(i)}))}function S(){try{s(new f("resize")),w&&s(new f("scroll"))}catch(e){}}})("object"==typeof globalThis?globalThis:window)}();
1
+ !function(){"use strict";(e=>{const t="single-file-lazy-load",n="single-file-load-image",i="single-file-image-loaded",r={family:"font-family",style:"font-style",weight:"font-weight",stretch:"font-stretch",unicodeRange:"unicode-range",variant:"font-variant",featureSettings:"font-feature-settings"},o=(t,n,i)=>e.addEventListener(t,n,i),l=t=>{try{e.dispatchEvent(t)}catch(e){}},s=e.CustomEvent,c=e.document,d=e.screen,a=e.Element,g=e.UIEvent,f=e.Event,_=e.FileReader,m=e.Blob,u=e.console,h=e.JSON,y=u&&u.warn&&((...e)=>u.warn(...e))||(()=>{}),p=new Map,F=new Map;let E;function w(r){const o=c.scrollingElement||c.documentElement,g=o.clientHeight,_=o.clientWidth,m=Math.max(o.scrollHeight-g,g),u=Math.max(o.scrollWidth-_,_);if(c.querySelectorAll("[loading=lazy]").forEach((e=>{e.loading="eager",e.setAttribute(t,"")})),o.__defineGetter__("clientHeight",(()=>m)),o.__defineGetter__("clientWidth",(()=>u)),d.__defineGetter__("height",(()=>m)),d.__defineGetter__("width",(()=>u)),e._singleFile_innerHeight=e.innerHeight,e._singleFile_innerWidth=e.innerWidth,e.__defineGetter__("innerHeight",(()=>m)),e.__defineGetter__("innerWidth",(()=>u)),r||e._singleFile_getBoundingClientRect||(e._singleFile_getBoundingClientRect=a.prototype.getBoundingClientRect,a.prototype.getBoundingClientRect=function(){const t=e._singleFile_getBoundingClientRect.call(this);return this==o&&(t.__defineGetter__("height",(()=>m)),t.__defineGetter__("bottom",(()=>m+t.top)),t.__defineGetter__("width",(()=>u)),t.__defineGetter__("right",(()=>u+t.left))),t}),!e._singleFileImage){const t=e.Image;e._singleFileImage=e.Image,e.__defineGetter__("Image",(function(){return function(){const e=new t(...arguments),r=new t(...arguments);return r.__defineSetter__("src",(t=>{e.src=t,l(new s(n,{detail:e.src}))})),r.__defineGetter__("src",(()=>e.src)),r.__defineSetter__("srcset",(t=>{l(new s(n)),e.srcset=t})),r.__defineGetter__("srcset",(()=>e.srcset)),r.__defineGetter__("height",(()=>e.height)),r.__defineGetter__("width",(()=>e.width)),r.__defineGetter__("naturalHeight",(()=>e.naturalHeight)),r.__defineGetter__("naturalWidth",(()=>e.naturalWidth)),e.decode&&r.__defineGetter__("decode",(()=>()=>e.decode())),e.onload=e.onloadend=e.onerror=t=>{l(new s(i,{detail:e.src})),r.dispatchEvent(new f(t.type,t))},r}}))}let h,y;r?(h=g/m,y=_/u):(h=(g+e.scrollY)/m,y=(_+e.scrollX)/u);const E=Math.min(h,y);if(E<1){const e=c.documentElement.style.getPropertyValue("transform"),t=c.documentElement.style.getPropertyPriority("transform"),n=c.documentElement.style.getPropertyValue("transform-origin"),i=c.documentElement.style.getPropertyPriority("transform-origin"),o=c.documentElement.style.getPropertyValue("min-height"),l=c.documentElement.style.getPropertyPriority("min-height");c.documentElement.style.setProperty("transform-origin",(h<1?"50%":"0")+" "+(y<1?"50%":"0")+" 0","important"),c.documentElement.style.setProperty("transform","scale3d("+E+", "+E+", 1)","important"),c.documentElement.style.setProperty("min-height",100/E+"vh","important"),B(),r?(c.documentElement.style.setProperty("-sf-transform",e,t),c.documentElement.style.setProperty("-sf-transform-origin",n,i),c.documentElement.style.setProperty("-sf-min-height",o,l)):(c.documentElement.style.setProperty("transform",e,t),c.documentElement.style.setProperty("transform-origin",n,i),c.documentElement.style.setProperty("min-height",o,l))}if(!r){B();const e=o.getBoundingClientRect();window==window.top&&[...p].forEach((([t,n])=>{const i=n.options&&n.options.root&&n.options.root.getBoundingClientRect,r=i&&n.options.root.getBoundingClientRect(),o=F.get(t);if(o){const l=o.map((t=>{const n=t.getBoundingClientRect();return{target:t,intersectionRatio:1,boundingClientRect:n,intersectionRect:n,isIntersecting:!0,rootBounds:i?r:e,time:0}}));n.callback(l,t)}}))}}function v(n){c.querySelectorAll("["+t+"]").forEach((e=>{e.loading="lazy",e.removeAttribute(t)})),n||e._singleFile_getBoundingClientRect&&(a.prototype.getBoundingClientRect=e._singleFile_getBoundingClientRect,delete e._singleFile_getBoundingClientRect),e._singleFileImage&&(delete e.Image,e.Image=e._singleFileImage,delete e._singleFileImage),n||B()}function P(){const t=c.scrollingElement||c.documentElement;null!=e._singleFile_innerHeight&&(delete e.innerHeight,e.innerHeight=e._singleFile_innerHeight,delete e._singleFile_innerHeight),null!=e._singleFile_innerWidth&&(delete e.innerWidth,e.innerWidth=e._singleFile_innerWidth,delete e._singleFile_innerWidth),delete t.clientHeight,delete t.clientWidth,delete d.height,delete d.width}if(o("single-file-load-deferred-images-start",(()=>w())),o("single-file-load-deferred-images-keep-zoom-level-start",(()=>w(!0))),o("single-file-load-deferred-images-end",(()=>v())),o("single-file-load-deferred-images-keep-zoom-level-end",(()=>v(!0))),o("single-file-load-deferred-images-reset",P),o("single-file-load-deferred-images-keep-zoom-level-reset",(()=>{const e=c.documentElement.style.getPropertyValue("-sf-transform"),t=c.documentElement.style.getPropertyPriority("-sf-transform"),n=c.documentElement.style.getPropertyValue("-sf-transform-origin"),i=c.documentElement.style.getPropertyPriority("-sf-transform-origin"),r=c.documentElement.style.getPropertyValue("-sf-min-height"),o=c.documentElement.style.getPropertyPriority("-sf-min-height");c.documentElement.style.setProperty("transform",e,t),c.documentElement.style.setProperty("transform-origin",n,i),c.documentElement.style.setProperty("min-height",r,o),c.documentElement.style.removeProperty("-sf-transform"),c.documentElement.style.removeProperty("-sf-transform-origin"),c.documentElement.style.removeProperty("-sf-min-height"),P()})),o("single-file-dispatch-scroll-event-start",(()=>{E=!0})),o("single-file-dispatch-scroll-event-end",(()=>{E=!1})),o("single-file-block-cookies-start",(()=>{try{c.__defineGetter__("cookie",(()=>{throw new Error("document.cookie temporary blocked by SingleFile")}))}catch(e){}})),o("single-file-block-cookies-end",(()=>{delete c.cookie})),o("single-file-block-storage-start",(()=>{e._singleFile_localStorage||(e._singleFile_localStorage=e.localStorage,e.__defineGetter__("localStorage",(()=>{throw new Error("localStorage temporary blocked by SingleFile")}))),e._singleFile_indexedDB||(e._singleFile_indexedDB=e.indexedDB,e.__defineGetter__("indexedDB",(()=>{throw new Error("indexedDB temporary blocked by SingleFile")})))})),o("single-file-block-storage-end",(()=>{e._singleFile_localStorage&&(delete e.localStorage,e.localStorage=e._singleFile_localStorage,delete e._singleFile_localStorage),e._singleFile_indexedDB||(delete e.indexedDB,e.indexedDB=e._singleFile_indexedDB,delete e._singleFile_indexedDB)})),o("single-file-request-fetch",(async t=>{l(new s("single-file-ack-fetch"));const{url:n,options:i}=h.parse(t.detail);let r;try{const t=await((t,n)=>e.fetch(t,n))(n,i);r={url:n,response:await t.arrayBuffer(),headers:[...t.headers],status:t.status}}catch(e){r={url:n,error:e&&e.toString()}}l(new s("single-file-response-fetch",{detail:r}))})),e.FontFace){const t=e.FontFace;let n;e.FontFace=function(){return n||(y("SingleFile is hooking the FontFace constructor, document.fonts.delete and document.fonts.clear to handle dynamically loaded fonts."),n=!0),b(...arguments).then((e=>l(new s("single-file-new-font-face",{detail:e})))),new t(...arguments)},e.FontFace.toString=function(){return"function FontFace() { [native code] }"};const i=c.fonts.delete;c.fonts.delete=function(e){return b(e.family).then((e=>l(new s("single-file-delete-font",{detail:e})))),i.call(c.fonts,e)},c.fonts.delete.toString=function(){return"function delete() { [native code] }"};const r=c.fonts.clear;c.fonts.clear=function(){return l(new s("single-file-clear-fonts")),r.call(c.fonts)},c.fonts.clear.toString=function(){return"function clear() { [native code] }"}}if(e.IntersectionObserver){const t=e.IntersectionObserver;let n;e.IntersectionObserver=function(){n||(y("SingleFile is hooking the IntersectionObserver API to detect and load deferred images."),n=!0);const e=new t(...arguments),i=t.prototype.observe||e.observe,r=t.prototype.unobserve||e.unobserve,o=arguments[0],l=arguments[1];return i&&(e.observe=function(t){let n=F.get(e);return n||(n=[],F.set(e,n)),n.push(t),i.call(e,t)}),r&&(e.unobserve=function(t){let n=F.get(e);return n&&(n=n.filter((e=>e!=t)),n.length?F.set(e,n):(F.delete(e),p.delete(e))),r.call(e,t)}),p.set(e,{callback:o,options:l}),e},e.IntersectionObserver.prototype=t.prototype,e.IntersectionObserver.toString=function(){return"function IntersectionObserver() { [native code] }"}}async function b(e,t,n){const i={};return i["font-family"]=e,i.src=t,n&&Object.keys(n).forEach((e=>{r[e]&&(i[r[e]]=n[e])})),new Promise((e=>{if(i.src instanceof ArrayBuffer){const t=new _;t.readAsDataURL(new m([i.src])),t.addEventListener("load",(()=>{i.src="url("+t.result+")",e(i)}))}else e(i)}))}function B(){try{l(new g("resize")),E&&l(new g("scroll"))}catch(e){}}})("object"==typeof globalThis?globalThis:window)}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "single-file-cli",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "SingleFile CLI",
5
5
  "author": "Gildas Lormeau",
6
6
  "license": "AGPL-3.0-or-later",
@@ -23,12 +23,12 @@
23
23
  "dependencies": {
24
24
  "file-url": "3.0.0",
25
25
  "iconv-lite": "0.6.3",
26
- "jsdom": "21.1.0",
27
- "puppeteer-core": "19.5.2",
28
- "selenium-webdriver": "4.7.1",
26
+ "jsdom": "21.1.1",
27
+ "puppeteer-core": "19.7.5",
28
+ "selenium-webdriver": "4.8.1",
29
29
  "single-file-core": "1.0.43",
30
30
  "strong-data-uri": "1.0.6",
31
- "yargs": "17.6.2"
31
+ "yargs": "17.7.1"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@rollup/plugin-node-resolve": "15.0.1",