diff --git a/chat/preview/ImagePreview.vue b/chat/preview/ImagePreview.vue index 09a26f5..332639d 100644 --- a/chat/preview/ImagePreview.vue +++ b/chat/preview/ImagePreview.vue @@ -1,6 +1,6 @@ <template> <!-- hiding elements instead of using 'v-if' is used here as an optimization --> - <div class="image-preview-wrapper" :class="{interactive: sticky}" v-show="visible"> + <div class="image-preview-wrapper" :class="{interactive: sticky, visible: visible}"> <div class="image-preview-toolbar" v-show="sticky || debug"> <a @click="toggleDevMode()" :class="{toggled: debug}" title="Debug Mode"><i class="fa fa-terminal"></i></a> <a @click="toggleJsMode()" :class="{toggled: runJs}" title="Expand Images"><i class="fa fa-magic"></i></a> @@ -44,8 +44,12 @@ import Timer = NodeJS.Timer; import IpcMessageEvent = Electron.IpcMessageEvent; - const screen = remote.screen; + import { ElectronBlocker } from '@cliqz/adblocker-electron'; + import fetch from 'node-fetch'; + // import { promises as fs } from 'fs'; + + const screen = remote.screen; interface DidFailLoadEvent extends Event { errorCode: number; @@ -160,8 +164,11 @@ const e = event as DidFailLoadEvent; if (e.errorCode < 0) { - const url = webview.getURL(); - const qjs = this.jsMutator.getMutatorJsForSite(url, 'update-target-url'); + console.error('DID FAIL LOAD', event); + const url = this.getUrl() || ''; + + const qjs = this.jsMutator.getMutatorJsForSite(url, 'update-target-url') + || this.jsMutator.getMutatorJsForSite(url, 'dom-ready'); // tslint:disable-next-line this.executeJavaScript(qjs, 'did-fail-load-but-still-loading', event); @@ -254,9 +261,45 @@ }, 50 ); + + // this.initAdBlocker(); } + async initAdBlocker() { + const webview = this.getWebview(); + const contents = remote.webContents.fromId(webview.getWebContentsId()); + + console.log('INITADBLOCKER'); + + const blocker = await ElectronBlocker.fromLists( + fetch, + [ + 'https://easylist.to/easylist/easylist.txt', + 'https://easylist.to/easylist/easyprivacy.txt', // EasyPrivacy + 'https://easylist.to/easylist/fanboy-social.txt', // Fanboy Social + 'https://easylist.to/easylist/fanboy-annoyance.txt', // Fanboy Annoyances + 'https://filters.adtidy.org/extension/chromium/filters/2.txt', // AdGuard Base + 'https://filters.adtidy.org/extension/chromium/filters/11.txt', // AdGuard Mobile Ads + 'https://filters.adtidy.org/extension/chromium/filters/4.txt', // AdGuard Social Media + 'https://filters.adtidy.org/extension/chromium/filters/14.txt', // AdGuard Annoyances + 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt', // uBlock Origin Filters + 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt', // uBlock Origin Privacy + 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt', // uBlock Origin Resource Abuse + ], + { + enableCompression: true, + }, + // { + // path: 'engine.bin', + // read: fs.readFile, + // write: fs.writeFile + // } + ); + + blocker.enableBlockingInSession(contents.session); + } + reRenderStyles(): void { // tslint:disable-next-line:no-unsafe-any this.externalPreviewStyle = this.externalPreviewHelper.renderStyle(); @@ -476,13 +519,17 @@ return; } - this.debugLog(`ImagePreview ${context}`, js, logDetails); + this.debugLog(`ImagePreview execute-${context}`, js, logDetails); - const result = await (webview.executeJavaScript(js) as unknown as Promise<any>); + try { + const result = await (webview.executeJavaScript(js) as unknown as Promise<any>); - this.debugLog(`ImagePreview result-${context}`, result); + this.debugLog(`ImagePreview result-${context}`, result); - return result; + return result; + } catch (err) { + this.debugLog(`ImagePreview error-${context}`, err); + } } debugLog(...args: any[]): void { @@ -515,6 +562,7 @@ return this.$refs.imagePreviewExt as WebviewTag; } + reset(): void { this.externalPreviewHelper = new ExternalImagePreviewHelper(this); this.localPreviewHelper = new LocalImagePreviewHelper(this); diff --git a/chat/preview/assets/browser.pre.js b/chat/preview/assets/browser.pre.js index f1840b2..52d731c 100644 --- a/chat/preview/assets/browser.pre.js +++ b/chat/preview/assets/browser.pre.js @@ -1,7 +1,7 @@ (() => { try { const clear = () => { - if (window.location.href.match(/https?:\/\/(www.)?pornhub.com/)) { + if (window.location.href.match(/^https?:\/\/(www.)?pornhub.com/)) { if (!window.zest) { window.zest = (q) => (document.querySelectorAll(q)); } @@ -37,39 +37,38 @@ } - const intervalCount = setInterval(() => {}, 10000); - - for (let i = 0; i <= intervalCount; i++) { - try { - clearInterval(i); - } catch (e) { - console.error('Clear interval', i, e); - } - } - - - const timeoutCount = setTimeout(() => {}, 10000); - - for (let i = 0; i <= timeoutCount; i++) { - try { - clearTimeout(i); - } catch (e) { - console.error('Clear timeout', i, e); - } - } + // const intervalCount = setInterval(() => {}, 10000); + // + // for (let i = 0; i <= intervalCount; i++) { + // try { + // clearInterval(i); + // } catch (e) { + // console.error('Clear interval', i, e); + // } + // } + // + // + // const timeoutCount = setTimeout(() => {}, 10000); + // + // for (let i = 0; i <= timeoutCount; i++) { + // try { + // clearTimeout(i); + // } catch (e) { + // console.error('Clear timeout', i, e); + // } + // } }; console.log('Document loading', Date.now()); clear(); - // window.stop(); - window.addEventListener('DOMContentLoaded', (event) => { console.log('DOM fully loaded and parsed', Date.now()); clear(); }); } catch(e) { - console.error(e); + console.error('browser.pre', e); + console.trace(); } })(); diff --git a/chat/preview/image-preview-mutator.ts b/chat/preview/image-preview-mutator.ts index 6719be2..ccd27e6 100644 --- a/chat/preview/image-preview-mutator.ts +++ b/chat/preview/image-preview-mutator.ts @@ -123,8 +123,8 @@ export class ImagePreviewMutator { this.add('gelbooru.com', this.getBaseJsMutatorScript(['video', '#image'])); this.add('chan.sankakucomplex.com', this.getBaseJsMutatorScript(['video', '#image'])); this.add('danbooru.donmai.us', this.getBaseJsMutatorScript(['video', '#image'])); - this.add('gfycat.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready'); - this.add('gfycatporn.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready'); + this.add('gfycat.com', this.getBaseJsMutatorScript(['video']) /*, undefined, 'dom-ready' */); + this.add('gfycatporn.com', this.getBaseJsMutatorScript(['video']) /*, undefined, 'dom-ready'*/); this.add('youtube.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready'); this.add('instantfap.com', this.getBaseJsMutatorScript(['#post video', '#post img'])); this.add('webmshare.com', this.getBaseJsMutatorScript(['video'])); @@ -236,24 +236,27 @@ export class ImagePreviewMutator { ['width', 'height'], ]; - const imSize = sizePairs.reduce( - (acc, val) => { - if ((acc.width) && (acc.height)) { - return acc; - } - - if ((img[val[0]]) && (img[val[1]])) { - return { - width: img[val[0]], - height: img[val[1]] + const resolveImgSize = function() { + return sizePairs.reduce( + (acc, val) => { + if ((acc.width) && (acc.height)) { + return acc; } - } - return acc; - }, - {} - ); + if ((img[val[0]]) && (img[val[1]])) { + return { + width: img[val[0]], + height: img[val[1]] + } + } + return acc; + }, + {} + ); + } + + const imSize = resolveImgSize(); ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height); const el = document.createElement('div'); @@ -285,14 +288,14 @@ export class ImagePreviewMutator { body.style = 'border: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important;' + 'width: 100% !important; height: 100% !important; opacity: 1 !important;' + 'top: 0 !important; left: 0 !important; position: absolute !important;' - + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;' + + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;' + 'display: block !important; visibility: visible !important'; img.style = 'object-position: top left !important; object-fit: contain !important;' + 'width: 100% !important; height: 100% !important; opacity: 1 !important;' + 'margin: 0 !imporant; border: 0 !important; padding: 0 !important;' - + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;' - + 'display: block !important; visibility: visible !important'; + + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;' + + 'display: block !important; visibility: visible !important;'; img.class = ''; el.class = ''; @@ -301,7 +304,7 @@ export class ImagePreviewMutator { html.style = 'border: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important;' + 'width: 100% !important; height: 100% !important; opacity: 1 !important;' + 'top: 0 !important; left: 0 !important; position: absolute !important;' - + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;' + + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;' + 'display: block !important; visibility: visible !important'; ${this.debug ? "console.log('Wrapper', el);" : ''} @@ -327,7 +330,8 @@ export class ImagePreviewMutator { document.addEventListener('DOMContentLoaded', (event) => { ${this.debug ? "console.log('on DOMContentLoaded');" : ''} - ipcRenderer.sendToHost('webview.img', img.width || img.naturalWidth, img.height || img.naturalHeight); + const imSize = resolveImgSize(); + ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height); if ( (img.play) @@ -339,7 +343,8 @@ export class ImagePreviewMutator { document.addEventListener('load', (event) => { ${this.debug ? "console.log('on load');" : ''} - ipcRenderer.sendToHost('webview.img', img.width || img.naturalWidth, img.height || img.naturalHeight); + const imSize = resolveImgSize(); + ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height); if ( (img.play) @@ -369,8 +374,6 @@ export class ImagePreviewMutator { ${skipElementRemove ? '' : 'removeList.forEach((el) => el.remove());'} removeList = []; - - window.stop(); `; } diff --git a/chat/preview/image-url-mutator.ts b/chat/preview/image-url-mutator.ts index fa3c8e3..f2fc57f 100644 --- a/chat/preview/image-url-mutator.ts +++ b/chat/preview/image-url-mutator.ts @@ -37,6 +37,15 @@ export class ImageUrlMutator { } ); + this.add( + /^https?:\/\/(www.)?gfycat.com\/([a-z0-9A-Z\-]+)\/?$/, + async(_url: string, match: RegExpMatchArray): Promise<string> => { + const gfyId = match[2]; + + return `https://gfycat.com/ifr/${gfyId}?controls=0&hd=1`; + } + ); + this.add( /^https?:\/\/imgur.com\/gallery\/([a-zA-Z0-9]+)/, async(url: string, match: RegExpMatchArray): Promise<string> => { diff --git a/electron/Window.vue b/electron/Window.vue index 0b1f2fc..6501047 100644 --- a/electron/Window.vue +++ b/electron/Window.vue @@ -85,7 +85,7 @@ @Hook('mounted') async mounted(): Promise<void> { // top bar devtools - // browserWindow.webContents.openDevTools( { mode: 'detach' } ); + browserWindow.webContents.openDevTools( { mode: 'detach' } ); await this.addTab(); @@ -196,10 +196,10 @@ const tray = new electron.remote.Tray(trayIcon); tray.setToolTip(l('title')); tray.on('click', (_) => this.trayClicked(tab)); - const view = new electron.remote.BrowserView({webPreferences: {webviewTag: true, nodeIntegration: true}}); + const view = new electron.remote.BrowserView({webPreferences: {webviewTag: true, nodeIntegration: true, spellcheck: true}}); // tab devtools - // view.webContents.openDevTools(); + view.webContents.openDevTools(); view.setAutoResize({width: true, height: true}); electron.ipcRenderer.send('tab-added', view.webContents.id); diff --git a/electron/chat.ts b/electron/chat.ts index 7ac027e..6ad9688 100644 --- a/electron/chat.ts +++ b/electron/chat.ts @@ -47,18 +47,19 @@ import {setupRaven} from '../chat/vue-raven'; import Socket from '../chat/WebSocket'; import Connection from '../fchat/connection'; import {Keys} from '../keys'; -import {GeneralSettings, nativeRequire} from './common'; +import {GeneralSettings /*, nativeRequire*/ } from './common'; import {Logs, SettingsStore} from './filesystem'; import Notifications from './notifications'; import * as SlimcatImporter from './importer'; import Index from './Index.vue'; + document.addEventListener('keydown', (e: KeyboardEvent) => { if(e.ctrlKey && e.shiftKey && getKey(e) === Keys.KeyI) electron.remote.getCurrentWebContents().toggleDevTools(); }); -process.env.SPELLCHECKER_PREFER_HUNSPELL = '1'; +/* process.env.SPELLCHECKER_PREFER_HUNSPELL = '1'; const sc = nativeRequire<{ Spellchecker: new() => { add(word: string): void @@ -68,7 +69,7 @@ const sc = nativeRequire<{ getCorrectionsForMisspelling(word: string): ReadonlyArray<string> } }>('spellchecker/build/Release/spellchecker.node'); -const spellchecker = new sc.Spellchecker(); +const spellchecker = new sc.Spellchecker();*/ Axios.defaults.params = {__fchat: `desktop/${electron.remote.app.getVersion()}`}; @@ -160,17 +161,17 @@ webContents.on('context-menu', (_, props) => { click: () => electron.clipboard.writeText(props.selectionText) }); if(props.misspelledWord !== '') { - const corrections = spellchecker.getCorrectionsForMisspelling(props.misspelledWord); - menuTemplate.unshift({ - label: l('spellchecker.add'), - click: () => electron.ipcRenderer.send('dictionary-add', props.misspelledWord) - }, {type: 'separator'}); - if(corrections.length > 0) - menuTemplate.unshift(...corrections.map((correction: string) => ({ - label: correction, - click: () => webContents.replaceMisspelling(correction) - }))); - else menuTemplate.unshift({enabled: false, label: l('spellchecker.noCorrections')}); + // const corrections = spellchecker.getCorrectionsForMisspelling(props.misspelledWord); + // menuTemplate.unshift({ + // label: l('spellchecker.add'), + // click: () => electron.ipcRenderer.send('dictionary-add', props.misspelledWord) + // }, {type: 'separator'}); + // if(corrections.length > 0) + // menuTemplate.unshift(...corrections.map((correction: string) => ({ + // label: correction, + // click: () => webContents.replaceMisspelling(correction) + // }))); + // else menuTemplate.unshift({enabled: false, label: l('spellchecker.noCorrections')}); } else if(settings.customDictionary.indexOf(props.selectionText) !== -1) menuTemplate.unshift({ label: l('spellchecker.remove'), @@ -181,14 +182,17 @@ webContents.on('context-menu', (_, props) => { }); let dictDir = path.join(electron.remote.app.getPath('userData'), 'spellchecker'); + if(process.platform === 'win32') //get the path in DOS (8-character) format as special characters cause problems otherwise exec(`for /d %I in ("${dictDir}") do @echo %~sI`, (_, stdout) => dictDir = stdout.trim()); -electron.webFrame.setSpellCheckProvider('', {spellCheck: (words, callback) => callback(words.filter((x) => spellchecker.isMisspelled(x)))}); + +// electron.webFrame.setSpellCheckProvider('', {spellCheck: (words, callback) => callback(words.filter((x) => spellchecker.isMisspelled(x)))}); function onSettings(s: GeneralSettings): void { settings = s; - spellchecker.setDictionary(s.spellcheckLang, dictDir); - for(const word of s.customDictionary) spellchecker.add(word); + + // spellchecker.setDictionary(s.spellcheckLang, dictDir); + // for(const word of s.customDictionary) spellchecker.add(word); } electron.ipcRenderer.on('settings', (_: Event, s: GeneralSettings) => onSettings(s)); diff --git a/electron/main.ts b/electron/main.ts index 5ae2250..ee85616 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -45,6 +45,8 @@ import {ensureDictionary, getAvailableDictionaries} from './dictionaries'; import * as windowState from './window_state'; import BrowserWindow = Electron.BrowserWindow; import MenuItem = Electron.MenuItem; +import { ElectronBlocker } from '@cliqz/adblocker-electron'; +import fetch from 'node-fetch'; // Module to control application life. const app = electron.app; @@ -124,7 +126,7 @@ function createWindow(): Electron.BrowserWindow | undefined { const lastState = windowState.getSavedWindowState(); const windowProperties: Electron.BrowserWindowConstructorOptions & {maximized: boolean} = { ...lastState, center: lastState.x === undefined, show: false, - webPreferences: { webviewTag: true, nodeIntegration: true } + webPreferences: { webviewTag: true, nodeIntegration: true, spellcheck: true } }; if(process.platform === 'darwin') { @@ -137,6 +139,39 @@ function createWindow(): Electron.BrowserWindow | undefined { const window = new electron.BrowserWindow(windowProperties); windows.push(window); + ElectronBlocker.fromPrebuiltAdsAndTracking(fetch) + .then( + (blocker) => { + blocker.enableBlockingInSession(electron.session.defaultSession); + + console.log('Got this far!!!!'); + + blocker.on('request-blocked', (request: Request) => { + console.log('blocked', request.url); + }); + + blocker.on('request-redirected', (request: Request) => { + console.log('redirected', request.url); + }); + + blocker.on('request-whitelisted', (request: Request) => { + console.log('whitelisted', request.url); + }); + + blocker.on('csp-injected', (request: Request) => { + console.log('csp', request.url); + }); + + blocker.on('script-injected', (script: string, url: string) => { + console.log('script', script.length, url); + }); + + blocker.on('style-injected', (style: string, url: string) => { + console.log('style', style.length, url); + }); + } + ); + window.loadFile( path.join(__dirname, 'window.html'), { @@ -144,6 +179,7 @@ function createWindow(): Electron.BrowserWindow | undefined { } ); + // window.loadURL(url.format({ //tslint:disable-line:no-floating-promises // pathname: path.join(__dirname, 'window.html'), // protocol: 'file:', diff --git a/electron/pack.js b/electron/pack.js index 50a60f8..a2dd977 100644 --- a/electron/pack.js +++ b/electron/pack.js @@ -20,7 +20,7 @@ const modules = path.join(__dirname, 'app', 'node_modules'); // fs.copyFileSync(require.resolve(keytarPath), path.join(modules, keytarPath)); const includedPaths = [ - 'spellchecker/build/Release/spellchecker.node', + // 'spellchecker/build/Release/spellchecker.node', 'keytar/build/Release/keytar.node', 'throat' ]; diff --git a/package.json b/package.json index fcd637e..1b7ba63 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,16 @@ "@f-list/vue-ts": "^1.0.3", "@fortawesome/fontawesome-free": "^5.9.0", "@types/lodash": "^4.14.134", + "@types/node-fetch": "^2.5.5", "@types/qs": "^6.9.1", "@types/sortablejs": "^1.7.2", "@vue/devtools": "^5.1.0", "axios": "^0.19.0", "bootstrap": "^4.3.1", - "css-loader": "^3.0.0", "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.0.0", "date-fns": "^1.30.1", - "electron": "^5.0.4", + "electron": "^8.2.0", "electron-log": "^3.0.1", "electron-packager": "^14.0.0", "electron-rebuild": "^1.8.4", @@ -42,8 +43,9 @@ "webpack": "^4.35.0" }, "dependencies": { + "@cliqz/adblocker-electron": "^1.13.0", "keytar": "^4.10.0", - "spellchecker": "^3.6.0" + "node-fetch": "^2.6.0" }, "optionalDependencies": { "appdmg": "^0.6.0", @@ -51,6 +53,6 @@ "electron-winstaller": "^3.0.4" }, "scripts": { - "postinstall": "electron-rebuild -fo spellchecker,keytar" + "postinstall": "electron-rebuild -fo keytar" } } diff --git a/yarn.lock b/yarn.lock index fa93359..8c55f36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,6 +25,37 @@ dependencies: regenerator-runtime "^0.13.4" +"@cliqz/adblocker-content@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.13.0.tgz#0301fd77b8b821893d53d0c6d02d3b26e028c4f7" + integrity sha512-2kStPzaON6qLe+/fY1mKnrRcmgnt2ZNJM6HJW+pcINquk6uEQ60R4kObbOJdVqtoKtGEH4OjyiOUUej2xxTxrg== + +"@cliqz/adblocker-electron-preload@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.13.0.tgz#83e90d196244d5498789df4e3f780855cb056348" + integrity sha512-kUQm/s3R8WxYKsXFCN15GW1G4VWvXxMI+37KtY/9Chbi23GwgYe8T8J1Qx+GxLWiQU7X4xFgvkjySw5Le57VKA== + dependencies: + "@cliqz/adblocker-content" "^1.13.0" + +"@cliqz/adblocker-electron@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.13.0.tgz#848244f7cdab7dbde2601b096664c9f57c817dc8" + integrity sha512-G6C88p0kDpucNx4lPSfv4HU96gT2XJifWajdND3oFX+zvhuq09eT3RHxzANLLAfKV2XnMZQ6OtfdmIzuZHZ3rQ== + dependencies: + "@cliqz/adblocker" "^1.13.0" + "@cliqz/adblocker-electron-preload" "^1.13.0" + tldts-experimental "^5.6.3" + +"@cliqz/adblocker@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.13.0.tgz#e3b77c9226dc5906d100a7e60f5e4f1636dbe574" + integrity sha512-6QQmUqsHBUOtPT7xRkSAojiT/mrLYagfmdMudlOVskF/+Rm78zLJBg0HxRGl4rCZsxTaFVl8Wy87dz32Xa4mTA== + dependencies: + "@remusao/smaz" "^1.7.1" + "@types/chrome" "^0.0.103" + "@types/firefox-webext-browser" "^70.0.1" + tldts-experimental "^5.6.3" + "@electron/get@^1.0.1", "@electron/get@^1.6.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5" @@ -68,6 +99,31 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz#2a98fea9fbb8a606ddc79a4680034e9d5591c550" integrity sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw== +"@remusao/smaz-compress@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.8.0.tgz#efdc3857cec1396349e52e44b89891e617448024" + integrity sha512-gDlnWyYmDppwdVZZkBuN8/gzpcqxFwEEev8QxyArWbOn/1rIXMfnm+bwY/N80rmakHTWaybL0yNxTMJSoVXrUw== + dependencies: + "@remusao/trie" "^1.3.0" + +"@remusao/smaz-decompress@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.8.0.tgz#32cea68586d6d67a4b30c561d1ccde527805e3d7" + integrity sha512-DDGL8wB2L1OUPbUEashqBQzuEVk1xmVOR+35lERkwl3Qg5UoiL//9GWSq38jq8XlTqUG5R+BY2dQa4XX2NDeeQ== + +"@remusao/smaz@^1.7.1": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.8.0.tgz#6b03c39f99afaafa2113772cae900fad896061c0" + integrity sha512-tpyluMIHQSCOX1VHBBrn7KP+S1m/fovJg9Tizo06qR9OYopYehDqkuBJGLnUthE3uhm7tbxb1XI2IN4tUjOFhw== + dependencies: + "@remusao/smaz-compress" "^1.8.0" + "@remusao/smaz-decompress" "^1.8.0" + +"@remusao/trie@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.3.0.tgz#146b6f7f223d29db7106c19b9f4d4fab2754986a" + integrity sha512-IykMLl0vr8L1sJzvtGR4izkNh1Ous2njaeC4NEvAcfALCdCo7Y4VpISU0I8DaZFU2lGAFKyeh2Jz4WaM/3hbEw== + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -80,11 +136,36 @@ dependencies: defer-to-connect "^1.0.1" +"@types/chrome@^0.0.103": + version "0.0.103" + resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.103.tgz#604f3d94ab4465cc8cde302c4916f4955eb7e8b6" + integrity sha512-s8So1IG1fIu2dg2MRV3k6W5OjlVaJriNXIxIWDHi+Rdz5dLeuzPKcWzkVlcaVL4gONfn44JKC0RhW+P0UohLfg== + dependencies: + "@types/filesystem" "*" + "@types/har-format" "*" + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@types/filesystem@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748" + integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== + dependencies: + "@types/filewriter" "*" + +"@types/filewriter@*": + version "0.0.28" + resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3" + integrity sha1-wFTor02d11205jq8dviFFocU1LM= + +"@types/firefox-webext-browser@^70.0.1": + version "70.0.1" + resolved "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-70.0.1.tgz#53a3915bfbe25e2c5ec439dbdbe6e303610012bb" + integrity sha512-hjHsTR9vKs+yikWbNS/s7TVCx15M/MEn+VYx47wtT/W/wORsIZDD75gfUfP7lkzi+IxRvKMQBB/5/wMFlfgvgQ== + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -94,6 +175,11 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/har-format@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.4.tgz#3275842095abb60d14b47fa798cc9ff708dab6d4" + integrity sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ== + "@types/lodash@^4.14.134": version "4.14.149" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" @@ -104,16 +190,19 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/node-fetch@^2.5.5": + version "2.5.5" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.5.tgz#cd264e20a81f4600a6c52864d38e7fef72485e92" + integrity sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "13.9.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72" integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== -"@types/node@^10.12.18": - version "10.17.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.17.tgz#7a183163a9e6ff720d86502db23ba4aade5999b8" - integrity sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q== - "@types/node@^12.0.12": version "12.12.30" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.30.tgz#3501e6f09b954de9c404671cefdbcc5d9d7c45f6" @@ -401,11 +490,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1272,7 +1356,7 @@ colors@^1.3.3: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1702,7 +1786,7 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.8: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -1716,7 +1800,7 @@ debug@=3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0: +debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -1927,21 +2011,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-download@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.1.tgz#02e69556705cc456e520f9e035556ed5a015ebe8" - integrity sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg== - dependencies: - debug "^3.0.0" - env-paths "^1.0.0" - fs-extra "^4.0.1" - minimist "^1.2.0" - nugget "^2.0.1" - path-exists "^3.0.0" - rc "^1.2.1" - semver "^5.4.1" - sumchecker "^2.0.2" - electron-log@^3.0.1: version "3.0.9" resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-3.0.9.tgz#53ff1fcdb2f3e4a73ea7096d2f7204121109ec6f" @@ -2030,15 +2099,6 @@ electron-winstaller@^3.0.4: pify "^4.0.1" temp "^0.9.0" -electron@^5.0.4: - version "5.0.13" - resolved "https://registry.yarnpkg.com/electron/-/electron-5.0.13.tgz#81d44f2078fb13d306279cf3854d3734f2c390b4" - integrity sha512-AM73AMZpb/5zm8eIXsIcp2eMdniD5WO+FqMtlIzhhtSjixflDm0pLtgudz0fHtiT/w6V+6YcpDVb4TtHtrJbHQ== - dependencies: - "@types/node" "^10.12.18" - electron-download "^4.1.0" - extract-zip "^1.0.3" - electron@^7.0.0: version "7.1.14" resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.14.tgz#1a58aa5968677a4fe564442f3b72771166c8904c" @@ -2048,6 +2108,15 @@ electron@^7.0.0: "@types/node" "^12.0.12" extract-zip "^1.0.3" +electron@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-8.2.0.tgz#f3e3de23a6178b5ad7baa70f4814d6332a3212c2" + integrity sha512-mnV43gKCrCUMHLmGws/DU/l8LhaxrFD53A4ofwtthdCqOZWGIdk1+eMphiVumXR5a3lC64XVvmXQ2k28i7F/zw== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + extract-zip "^1.0.3" + elliptic@^6.0.0: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" @@ -2137,11 +2206,6 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== -env-paths@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" - integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= - env-paths@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" @@ -2522,6 +2586,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -2561,7 +2634,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^4.0.0, fs-extra@^4.0.1: +fs-extra@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== @@ -3409,11 +3482,6 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3809,7 +3877,7 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.1.0, meow@^3.7.0: +meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= @@ -3931,7 +3999,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.3, minimist@^1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -4018,7 +4086,7 @@ murmur-32@^0.1.0: fmix "^0.1.0" imul "^1.0.0" -nan@2.14.0, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.4.0: +nan@2.14.0, nan@^2.12.1, nan@^2.13.2, nan@^2.4.0: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -4067,6 +4135,11 @@ node-abi@^2.11.0, node-abi@^2.7.0: dependencies: semver "^5.4.1" +node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -4245,19 +4318,6 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" -nugget@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" - integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA= - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^1.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -4297,11 +4357,6 @@ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -5035,14 +5090,6 @@ prettier@^1.18.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -pretty-bytes@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" - integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ= - dependencies: - get-stdin "^4.0.1" - meow "^3.1.0" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5053,14 +5100,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -5232,7 +5271,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.1, rc@^1.2.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -5294,16 +5333,6 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -5368,7 +5397,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.45.0, request@^2.87.0, request@^2.88.0: +request@^2.87.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -5735,13 +5764,6 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= - dependencies: - string-width "^1.0.1" - slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -5918,19 +5940,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= - -spellchecker@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/spellchecker/-/spellchecker-3.7.0.tgz#d63e6fd612352b0108e7bbf942f271665ff63c8b" - integrity sha512-saQT4BR9nivbK70s0YjyIlSbZzO6bfWRULcGL2JU7fi7wotOnWl70P0QoUwwLywNQJQ47osgCo6GmOlqzRTxbQ== - dependencies: - any-promise "^1.3.0" - nan "^2.14.0" - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -6081,11 +6090,6 @@ string_decoder@^1.0.0: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -6160,13 +6164,6 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -sumchecker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" - integrity sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4= - dependencies: - debug "^2.2.0" - sumchecker@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" @@ -6298,11 +6295,6 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -6311,14 +6303,6 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -6331,6 +6315,18 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tldts-core@^5.6.17: + version "5.6.17" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.17.tgz#32ecfd710173a1841fe4e1447ff827b98cacfed1" + integrity sha512-34o7eZ1DR2OxotxKCtFYceTHJRwSnFzhIz3hL6Mbker0aPlVysy/nFxixC8LUREo8ytzPd6HbsR2Tm/WVgrcwA== + +tldts-experimental@^5.6.3: + version "5.6.17" + resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.6.17.tgz#6c94e18fafb598784659d28e0127e99ee2dfbfb5" + integrity sha512-pdesifhl8cmjUFLrnVMG0YkO+VlJuKlfgmFUehBR20Ow1gPw/6oZAP0m2WVoejyCSWYC6TNjMSO720VuLNtEHg== + dependencies: + tldts-core "^5.6.17" + tmp-promise@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c" @@ -6899,13 +6895,6 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"