From 7ae079836480f72256f42aecd54f7d182cf49ce8 Mon Sep 17 00:00:00 2001 From: narcolepticinsomniac Date: Thu, 16 Apr 2020 06:17:12 -0400 Subject: [PATCH 01/43] fix FF shortcuts button (#900) --- background/background.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/background/background.js b/background/background.js index 844f6958..62a08400 100644 --- a/background/background.js +++ b/background/background.js @@ -11,6 +11,20 @@ var backgroundWorker = workerUtil.createWorker({ url: '/background/background-worker.js' }); +// eslint-disable-next-line no-var +var browserCommands, contextMenus; + +// ************************************************************************* +// browser commands +browserCommands = { + openManage, + openOptions: () => openManage({options: true}), + styleDisableAll(info) { + prefs.set('disableAll', info ? info.checked : !prefs.get('disableAll')); + }, + reload: () => chrome.runtime.reload(), +}; + window.API_METHODS = Object.assign(window.API_METHODS || {}, { deleteStyle: styleManager.deleteStyle, editSave: styleManager.editSave, @@ -71,8 +85,8 @@ window.API_METHODS = Object.assign(window.API_METHODS || {}, { }, optionsCustomizeHotkeys() { - return browser.runtime.openOptionsPage() - .then(() => new Promise(resolve => setTimeout(resolve, 100))) + return browserCommands.openOptions() + .then(() => new Promise(resolve => setTimeout(resolve, 500))) .then(() => msg.broadcastExtension({method: 'optionsCustomizeHotkeys'})); }, @@ -85,9 +99,6 @@ window.API_METHODS = Object.assign(window.API_METHODS || {}, { openManage }); -// eslint-disable-next-line no-var -var browserCommands, contextMenus; - // ************************************************************************* // register all listeners msg.on(onRuntimeMessage); @@ -147,17 +158,6 @@ chrome.runtime.onInstalled.addListener(({reason}) => { delete localStorage.codeMirrorThemes; }); -// ************************************************************************* -// browser commands -browserCommands = { - openManage, - openOptions: () => openManage({options: true}), - styleDisableAll(info) { - prefs.set('disableAll', info ? info.checked : !prefs.get('disableAll')); - }, - reload: () => chrome.runtime.reload(), -}; - // ************************************************************************* // context menus contextMenus = { From fea0d08f50ef9b67fe29a1cba89d35ac0c3ded48 Mon Sep 17 00:00:00 2001 From: tophf Date: Fri, 17 Apr 2020 14:34:52 +0300 Subject: [PATCH 02/43] fix infinite loop in colorizeInvisible (#889) --- vendor-overwrites/colorpicker/colorview.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/vendor-overwrites/colorpicker/colorview.js b/vendor-overwrites/colorpicker/colorview.js index 8614b524..f88fe07b 100644 --- a/vendor-overwrites/colorpicker/colorview.js +++ b/vendor-overwrites/colorpicker/colorview.js @@ -182,12 +182,13 @@ if (viewFrom > 0 || viewTo < cm.doc.size) { clearTimeout(state.colorizeTimer); - state.colorizeTimer = setTimeout(colorizeInvisible, 100, state, viewFrom, viewTo, 0); + state.line = 0; + state.colorizeTimer = setTimeout(colorizeInvisible, 100, state, viewFrom, viewTo); } } - function colorizeInvisible(state, viewFrom, viewTo, line) { + function colorizeInvisible(state, viewFrom, viewTo) { const {cm} = state; const {curOp} = cm; if (!curOp) cm.startOperation(); @@ -197,22 +198,19 @@ state.stopped = null; // before the visible range - if (viewFrom) { - state.line = line; - cm.doc.iter(line, viewFrom, lineHandle => colorizeLine(state, lineHandle)); - } + cm.eachLine(state.line, viewFrom, lineHandle => colorizeLine(state, lineHandle)); // after the visible range if (!state.stopped && viewTo < cm.doc.size) { - state.line = viewTo; - cm.doc.iter(viewTo, cm.doc.size, lineHandle => colorizeLine(state, lineHandle)); + state.line = Math.max(viewTo, state.line); + cm.eachLine(state.line, cm.doc.size, lineHandle => colorizeLine(state, lineHandle)); } updateMarkers(state); if (!curOp) cm.endOperation(); if (state.stopped) { - state.colorizeTimer = setTimeout(colorizeInvisible, 0, state, viewFrom, viewFrom, state.line); + state.colorizeTimer = setTimeout(colorizeInvisible, 0, state, viewFrom, viewTo); } } From 0b4e946c821e89c30eecac725f108783d80f18b8 Mon Sep 17 00:00:00 2001 From: narcolepticinsomniac Date: Fri, 17 Apr 2020 07:36:37 -0400 Subject: [PATCH 03/43] CM scrollbar pointer-events (#902) --- edit/edit.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/edit/edit.css b/edit/edit.css index 7b8d4bc5..5a674532 100644 --- a/edit/edit.css +++ b/edit/edit.css @@ -267,6 +267,10 @@ input:invalid { margin-top: 4em; } /************ section editor ***********/ +.CodeMirror-vscrollbar, +.CodeMirror-hscrollbar { + pointer-events: auto !important; /* FF bug */ +} .section-editor .section { margin: 0 0.7rem; padding: 1rem; From 23a718d8bc87bbfbf9a9b0b026168ddfa1a5b9a5 Mon Sep 17 00:00:00 2001 From: Rob Garrison Date: Mon, 20 Apr 2020 22:54:05 -0500 Subject: [PATCH 04/43] 1.5.11 --- manifest.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 6d8053f1..c9a130e6 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name": "Stylus", - "version": "1.5.10", + "version": "1.5.11", "minimum_chrome_version": "49", "description": "__MSG_description__", "homepage_url": "https://add0n.com/stylus.html", diff --git a/package.json b/package.json index 3f3acd3f..49277005 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Stylus", - "version": "1.5.10", + "version": "1.5.11", "description": "Redesign the web with Stylus, a user styles manager", "license": "GPL-3.0-only", "repository": "openstyles/stylus", From bdf32a7174cb2fd789f473410df97b80e2b310aa Mon Sep 17 00:00:00 2001 From: Rob Garrison Date: Wed, 22 Apr 2020 07:26:24 -0500 Subject: [PATCH 05/43] 1.5.12 --- manifest.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index c9a130e6..815e0a82 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name": "Stylus", - "version": "1.5.11", + "version": "1.5.12", "minimum_chrome_version": "49", "description": "__MSG_description__", "homepage_url": "https://add0n.com/stylus.html", diff --git a/package.json b/package.json index 49277005..76914a6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Stylus", - "version": "1.5.11", + "version": "1.5.12", "description": "Redesign the web with Stylus, a user styles manager", "license": "GPL-3.0-only", "repository": "openstyles/stylus", From c50b3cfddcf566efb5b4984f95d7b21347b3baf6 Mon Sep 17 00:00:00 2001 From: narcolepticinsomniac Date: Thu, 23 Apr 2020 09:43:04 -0400 Subject: [PATCH 06/43] Fix missing CWS page icon (#907) --- manifest.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index 815e0a82..c0d2e390 100644 --- a/manifest.json +++ b/manifest.json @@ -6,10 +6,10 @@ "homepage_url": "https://add0n.com/stylus.html", "manifest_version": 2, "icons": { - "16": "/images/icon/16.png", - "32": "/images/icon/32.png", - "48": "/images/icon/48.png", - "128": "/images/icon/128.png" + "16": "images/icon/16.png", + "32": "images/icon/32.png", + "48": "images/icon/48.png", + "128": "images/icon/128.png" }, "permissions": [ "tabs", @@ -98,10 +98,10 @@ ], "browser_action": { "default_icon": { - "16": "/images/icon/16w.png", - "32": "/images/icon/32w.png", - "19": "/images/icon/19w.png", - "38": "/images/icon/38w.png" + "16": "images/icon/16w.png", + "32": "images/icon/32w.png", + "19": "images/icon/19w.png", + "38": "images/icon/38w.png" }, "default_title": "Stylus", "default_popup": "popup.html" From 81b6137d8aef585711a1c50e138652a4582a70e1 Mon Sep 17 00:00:00 2001 From: narcolepticinsomniac Date: Tue, 28 Apr 2020 10:06:57 -0400 Subject: [PATCH 07/43] Max version Dropbox disable and no sync pull animations (#913) * Max version Dropbox disable and no sync pull animations Max version Dropbox disable and no sync pull animations. * Remove TODO * Kill sync animations entirely, add ref --- manage/manage.js | 2 +- options/options.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manage/manage.js b/manage/manage.js index ddafe0fd..e79d3ad8 100644 --- a/manage/manage.js +++ b/manage/manage.js @@ -548,7 +548,7 @@ function handleUpdate(style, {reason, method} = {}) { handleUpdateInstalled(entry, reason); } filterAndAppend({entry}).then(sorter.update); - if (!entry.matches('.hidden') && reason !== 'import') { + if (!entry.matches('.hidden') && reason !== 'import' && reason !== 'sync') { animateElement(entry); requestAnimationFrame(() => scrollElementIntoView(entry)); } diff --git a/options/options.js b/options/options.js index d5ab0ce3..817dfcef 100644 --- a/options/options.js +++ b/options/options.js @@ -9,8 +9,8 @@ setupRadioButtons(); enforceInputRange($('#popupWidth')); setTimeout(splitLongTooltips); -// TODO: add max version to re-enable once crbug.com/996859 is resolved -if (!FIREFOX && CHROME >= 3809) { +// https://github.com/openstyles/stylus/issues/822 +if (!FIREFOX && CHROME >= 3809 && CHROME < 4044) { const dropboxOption = $('option[value="dropbox"]'); dropboxOption.disabled = true; dropboxOption.setAttribute('title', t('hostDisabled')); From 7ab0651e4d160b7d896c00bde85b297ab0536448 Mon Sep 17 00:00:00 2001 From: tophf Date: Fri, 1 May 2020 08:52:18 +0300 Subject: [PATCH 08/43] add ":" to prop names in css autocomplete menu (#915) --- edit/codemirror-default.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/edit/codemirror-default.js b/edit/codemirror-default.js index 882390d5..3f8afc6d 100644 --- a/edit/codemirror-default.js +++ b/edit/codemirror-default.js @@ -372,7 +372,13 @@ CodeMirror.hint && (() => { } if (!editor || !style || !style.includes(USO_VAR)) { - return originalHelper(cm); + // add ":" after a property name + const res = originalHelper(cm); + const state = res && cm.getTokenAt(pos).state.state; + if (state === 'block' || state === 'maybeprop') { + res.list = res.list.map(str => str + ': '); + } + return res; } // USO vars in usercss mode editor From 43f6bdf4ed54446f372187a2e1c77d2575a795f7 Mon Sep 17 00:00:00 2001 From: tophf Date: Sat, 16 May 2020 22:50:04 +0300 Subject: [PATCH 09/43] use a separate loadTimeout for the actual data transfer (#931) --- js/messaging.js | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/js/messaging.js b/js/messaging.js index 93a4e5a7..cb8454e5 100644 --- a/js/messaging.js +++ b/js/messaging.js @@ -381,7 +381,8 @@ function download(url, { body, responseType = 'text', requiredStatusCode = 200, - timeout = 10e3, + timeout = 10e3, // connection timeout + loadTimeout = 2 * 60e3, // data transfer timeout (counted from the first remote response) headers = { 'Content-type': 'application/x-www-form-urlencoded', }, @@ -398,23 +399,41 @@ function download(url, { const usoVars = []; return new Promise((resolve, reject) => { + let xhr; const u = new URL(collapseUsoVars(url)); - if (u.protocol === 'file:' && FIREFOX) { + const onTimeout = () => { + if (xhr) xhr.abort(); + reject(new Error('Timeout fetching ' + u.href)); + }; + let timer = setTimeout(onTimeout, timeout); + const switchTimer = () => { + clearTimeout(timer); + timer = loadTimeout && setTimeout(onTimeout, loadTimeout); + }; + if (u.protocol === 'file:' && FIREFOX) { // TODO: maybe remove this since FF68+ can't do it anymore // https://stackoverflow.com/questions/42108782/firefox-webextensions-get-local-files-content-by-path // FIXME: add FetchController when it is available. - const timer = setTimeout(reject, timeout, new Error('Timeout fetching ' + u.href)); fetch(u.href, {mode: 'same-origin'}) .then(r => { - clearTimeout(timer); + switchTimer(); return r.status === 200 ? r.text() : Promise.reject(r.status); }) .catch(reject) - .then(resolve); + .then(text => { + clearTimeout(timer); + resolve(text); + }); return; } - const xhr = new XMLHttpRequest(); - xhr.timeout = timeout; + xhr = new XMLHttpRequest(); + xhr.onreadystatechange = () => { + if (xhr.readyState >= XMLHttpRequest.HEADERS_RECEIVED) { + xhr.onreadystatechange = null; + switchTimer(); + } + }; xhr.onloadend = event => { + clearTimeout(timer); if (event.type !== 'error' && ( xhr.status === requiredStatusCode || !requiredStatusCode || u.protocol === 'file:')) { From 367d1672c51dd72af89edfa2d82a6cab8e726818 Mon Sep 17 00:00:00 2001 From: mcpower Date: Sun, 17 May 2020 05:51:50 +1000 Subject: [PATCH 10/43] Add unlimitedStorage permission (#930) IndexedDB storage may be evicted by the browser at its discretion [1]. Granting the unlimitedStorage permission ensures that IndexedDB data will not be evicted [2], and allows the extension to store more than 5MB of data if needed [3]. [1]: https://web.dev/storage-for-the-web/#eviction [2]: https://crbug.com/680392#c5 [3]: https://developer.chrome.com/apps/declare_permissions#unlimitedStorage --- manifest.json | 1 + 1 file changed, 1 insertion(+) diff --git a/manifest.json b/manifest.json index c0d2e390..7d8114c7 100644 --- a/manifest.json +++ b/manifest.json @@ -18,6 +18,7 @@ "webRequestBlocking", "contextMenus", "storage", + "unlimitedStorage", "alarms", "identity", "" From 379c825408645cafe58a119eb93249fef0a1124f Mon Sep 17 00:00:00 2001 From: tophf Date: Sat, 23 May 2020 06:12:54 +0300 Subject: [PATCH 11/43] focus search field on Ctrl-F in manager (#935) --- manage/incremental-search.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/manage/incremental-search.js b/manage/incremental-search.js index 5c0201a2..293371ae 100644 --- a/manage/incremental-search.js +++ b/manage/incremental-search.js @@ -73,18 +73,22 @@ onDOMready().then(() => { } function maybeRefocus(event) { - if (event.altKey || event.ctrlKey || event.metaKey || - event.target.matches('[type="text"], [type="search"], [type="number"]') || - $('#message-box')) { + if (event.altKey || event.metaKey || $('#message-box')) { return; } + const inTextInput = event.target.matches('[type=text], [type=search], [type=number]'); const {which: k, key} = event; - // focus search field on "/" key - if (key === '/' || !key && k === 191 && !event.shiftKey) { + // focus search field on "/" or Ctrl-F key + if (event.ctrlKey + ? (event.code === 'KeyF' || !event.code && k === 70) && !event.shiftKey + : (key === '/' || !key && k === 191 && !event.shiftKey) && !inTextInput) { event.preventDefault(); $('#search').focus(); return; } + if (event.ctrlKey || inTextInput) { + return; + } const time = performance.now(); if ( // 0-9 From a8fe66550b76e574fb635534dc9ebeebc019d2a4 Mon Sep 17 00:00:00 2001 From: tophf Date: Sat, 30 May 2020 06:33:29 +0300 Subject: [PATCH 12/43] Fixes for csslint parserlib (#947) * css parser: vars in @supports(--var: foo) * css parser: @keyframes inside @supports and @media --- vendor-overwrites/csslint/parserlib.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vendor-overwrites/csslint/parserlib.js b/vendor-overwrites/csslint/parserlib.js index da4095ca..306dbaae 100644 --- a/vendor-overwrites/csslint/parserlib.js +++ b/vendor-overwrites/csslint/parserlib.js @@ -4017,7 +4017,7 @@ self.parserlib = (() => { const stream = this._tokenStream; if (stream.match(Tokens.LPAREN)) { this._ws(); - if (stream.match(Tokens.IDENT)) { + if (stream.match([Tokens.IDENT, Tokens.CUSTOM_PROP])) { // look ahead for not keyword, // if not given, continue with declaration condition. const ident = lower(stream._token.value); @@ -5421,6 +5421,7 @@ self.parserlib = (() => { ]), supports: new Map([ + [Tokens.KEYFRAMES_SYM, Parser.prototype._keyframes], [Tokens.MEDIA_SYM, Parser.prototype._media], [Tokens.SUPPORTS_SYM, Parser.prototype._supports], [Tokens.DOCUMENT_SYM, Parser.prototype._documentMisplaced], @@ -5428,6 +5429,7 @@ self.parserlib = (() => { ]), media: new Map([ + [Tokens.KEYFRAMES_SYM, Parser.prototype._keyframes], [Tokens.MEDIA_SYM, Parser.prototype._media], [Tokens.DOCUMENT_SYM, Parser.prototype._documentMisplaced], [Tokens.SUPPORTS_SYM, Parser.prototype._supports], From a7a9ee72051b8c65d9aaae1a473ba6019c105deb Mon Sep 17 00:00:00 2001 From: tophf Date: Sun, 31 May 2020 08:43:56 +0300 Subject: [PATCH 13/43] use major browser version in CHROME constant (#946) --- background/background.js | 2 +- background/icon-manager.js | 2 +- js/messaging.js | 8 +++----- manage/manage.js | 2 +- options/options.js | 4 ++-- popup/popup.js | 2 +- 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/background/background.js b/background/background.js index 62a08400..6d6ea071 100644 --- a/background/background.js +++ b/background/background.js @@ -217,7 +217,7 @@ function createContextMenus(ids) { if (chrome.contextMenus) { // circumvent the bug with disabling check marks in Chrome 62-64 - const toggleCheckmark = CHROME >= 3172 && CHROME <= 3288 ? + const toggleCheckmark = CHROME >= 62 && CHROME <= 64 ? (id => chrome.contextMenus.remove(id, () => createContextMenus([id]) + ignoreChromeError())) : ((id, checked) => chrome.contextMenus.update(id, {checked}, ignoreChromeError)); diff --git a/background/icon-manager.js b/background/icon-manager.js index 7319b32e..0ea14d03 100644 --- a/background/icon-manager.js +++ b/background/icon-manager.js @@ -3,7 +3,7 @@ 'use strict'; const iconManager = (() => { - const ICON_SIZES = FIREFOX || CHROME >= 2883 && !VIVALDI ? [16, 32] : [19, 38]; + const ICON_SIZES = FIREFOX || CHROME >= 55 && !VIVALDI ? [16, 32] : [19, 38]; const staleBadges = new Set(); prefs.subscribe([ diff --git a/js/messaging.js b/js/messaging.js index cb8454e5..82f009a5 100644 --- a/js/messaging.js +++ b/js/messaging.js @@ -4,15 +4,13 @@ /* global promisify */ 'use strict'; -const CHROME = Boolean(chrome.app) && parseInt(navigator.userAgent.match(/Chrom\w+\/(?:\d+\.){2}(\d+)|$/)[1]); +const CHROME = Boolean(chrome.app) && parseInt(navigator.userAgent.match(/Chrom\w+\/(\d+)|$/)[1]); const OPERA = Boolean(chrome.app) && parseFloat(navigator.userAgent.match(/\bOPR\/(\d+\.\d+)|$/)[1]); const VIVALDI = Boolean(chrome.app) && navigator.userAgent.includes('Vivaldi'); -// FIXME: who use this? -// const ANDROID = !chrome.windows; let FIREFOX = !chrome.app && parseFloat(navigator.userAgent.match(/\bFirefox\/(\d+\.\d+)|$/)[1]); // see PR #781 -const CHROME_HAS_BORDER_BUG = CHROME >= 3167 && CHROME <= 3704; +const CHROME_HAS_BORDER_BUG = CHROME >= 62 && CHROME <= 74; if (!CHROME && !chrome.browserAction.openPopup) { // in FF pre-57 legacy addons can override useragent so we assume the worst @@ -62,7 +60,7 @@ const URLS = { // Chrome 61.0.3161+ doesn't run content scripts on NTP https://crrev.com/2978953002/ // TODO: remove when "minimum_chrome_version": "61" or higher - chromeProtectsNTP: CHROME >= 3161, + chromeProtectsNTP: CHROME >= 61, userstylesOrgJson: 'https://userstyles.org/styles/chrome/', diff --git a/manage/manage.js b/manage/manage.js index e79d3ad8..bbec8d5b 100644 --- a/manage/manage.js +++ b/manage/manage.js @@ -625,7 +625,7 @@ function switchUI({styleOnly} = {}) { filter: none; opacity: 1; } - `) + (CHROME >= 3004 ? ` + `) + (CHROME >= 58 ? ` .newUI .entry { contain: strict; } diff --git a/options/options.js b/options/options.js index 817dfcef..0d99be13 100644 --- a/options/options.js +++ b/options/options.js @@ -10,7 +10,7 @@ enforceInputRange($('#popupWidth')); setTimeout(splitLongTooltips); // https://github.com/openstyles/stylus/issues/822 -if (!FIREFOX && CHROME >= 3809 && CHROME < 4044) { +if (!FIREFOX && CHROME >= 76 && CHROME <= 81) { const dropboxOption = $('option[value="dropbox"]'); dropboxOption.disabled = true; dropboxOption.setAttribute('title', t('hostDisabled')); @@ -24,7 +24,7 @@ if (CHROME_HAS_BORDER_BUG) { } // collapse #advanced block in Chrome pre-66 (classic chrome://extensions UI) -if (!FIREFOX && !OPERA && CHROME < 3343) { +if (!FIREFOX && !OPERA && CHROME < 66) { const block = $('#advanced'); $('h1', block).onclick = event => { event.preventDefault(); diff --git a/popup/popup.js b/popup/popup.js index 7ec2f28b..f6aea8c9 100644 --- a/popup/popup.js +++ b/popup/popup.js @@ -15,7 +15,7 @@ const ABOUT_BLANK = 'about:blank'; const ENTRY_ID_PREFIX_RAW = 'style-'; const ENTRY_ID_PREFIX = '#' + ENTRY_ID_PREFIX_RAW; -if (CHROME >= 3345 && CHROME < 3533) { // Chrome 66-69 adds a gap, https://crbug.com/821143 +if (CHROME >= 66 && CHROME <= 69) { // Chrome 66-69 adds a gap, https://crbug.com/821143 document.head.appendChild($create('style', 'html { overflow: overlay }')); } From d9f5ef138cb2ac3866ba4fa995b0a8ec402de0c8 Mon Sep 17 00:00:00 2001 From: MATE Date: Mon, 25 May 2020 19:25:32 +0900 Subject: [PATCH 14/43] Add Korean translation --- _locales/ko/messages.json | 1640 ++++++++++++++++++++++++++++++++++++- 1 file changed, 1639 insertions(+), 1 deletion(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 9e26dfee..9b207cd9 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1 +1,1639 @@ -{} \ No newline at end of file +{ + "addStyleLabel": { + "message": "새 스타일 작성", + "description": "Label for the button to go to the add style page" + }, + "addStyleTitle": { + "message": "스타일 추가", + "description": "Title of the page for adding styles" + }, + "alphaChannel": { + "message": "투명도", + "description": "Label of color's opacity" + }, + "appliesAdd": { + "message": "추가", + "description": "Label for the button to add an 'applies' entry" + }, + "appliesDisplay": { + "message": "적용 대상: $applies$", + "description": "Text on the manage screen to describe what the style applies to", + "placeholders": { + "applies": { + "content": "$1" + } + } + }, + "appliesDisplayTruncatedSuffix": { + "message": "그 이상", + "description": "Text added to appliesDisplay when there are more sites for the style than are displayed" + }, + "appliesDomainOption": { + "message": "URL의 도메인이 다음과 같음", + "description": "Option to make the style apply to the entered string as a domain" + }, + "appliesHelp": { + "message": "'적용 대상'은 이 섹션에 작성한 스타일을 어느 URL에 적용할지 정합니다", + "description": "Help text for 'applies to' section" + }, + "appliesLabel": { + "message": "적용 대상", + "description": "Label for 'applies to' fields on the edit/add screen" + }, + "appliesLineWidgetLabel": { + "message": "'적용 대상' 정보 표시", + "description": "Label for the checkbox to display applies-to information in the single editor" + }, + "appliesLineWidgetWarning": { + "message": "경량화(Minify) 된 CSS에선 작동하지 않습니다.", + "description": "A warning that applies-to information won't show properly with minified CSS" + }, + "appliesRegexpOption": { + "message": "URL이 다음 정규 표현식과 일치함", + "description": "Option to make the style apply to the entered string as a regular expression" + }, + "appliesRemove": { + "message": "제거", + "description": "Label for the button to remove an 'applies' entry" + }, + "appliesRemoveError": { + "message": "마지막 '적용 대상' 항목은 제거할 수 없습니다", + "description": "Error displayed when the last 'applies' is going to be removed" + }, + "appliesSpecify": { + "message": "개별 지정", + "description": "Label for the button to make a style apply only to specific sites" + }, + "appliesToEverything": { + "message": "전부", + "description": "Text displayed for styles that apply to all sites" + }, + "appliesUrlPrefixOption": { + "message": "URL의 앞부분이 다음과 같음", + "description": "Option to make the style apply to the entered string as a URL prefix" + }, + "applyAllUpdates": { + "message": "모든 업데이트 적용", + "description": "Label for the button to apply all detected updates" + }, + "author": { + "message": "작성자", + "description": "Label for the style author" + }, + "backupButtons": { + "message": "백업", + "description": "Heading for backup" + }, + "backupMessage": { + "message": "파일을 선택하거나, 이 페이지로 파일을 드래그앤드롭하세요.", + "description": "Message for backup" + }, + "bckpInstStyles": { + "message": "스타일 내보내기", + "description": "" + }, + "checkAllUpdates": { + "message": "모든 스타일 업데이트 확인", + "description": "Label for the button to check all styles for updates" + }, + "checkAllUpdatesForce": { + "message": "한 번 더 확인해보세요. 아직 아무것도 수정하지 않았답니다!", + "description": "Label for the button to apply all detected updates" + }, + "checkForUpdate": { + "message": "업데이트 확인", + "description": "Label for the button to check a single style for an update" + }, + "checkingForUpdate": { + "message": "확인 중...", + "description": "Text to display when checking a style for an update" + }, + "clickToUninstall": { + "message": "클릭하여 제거", + "description": "Label for the overlay on a style thumbnail when installed via inline search in the popup" + }, + "cm_autoCloseBrackets": { + "message": "괄호 및 따옴표 자동으로 닫기", + "description": "Label for the checkbox in the style editor." + }, + "cm_autoCloseBracketsTooltip": { + "message": "()[]''\"\"의 여는 기호를 입력할 시, 닫는 기호를 자동으로 추가합니다", + "description": "Label for the checkbox in the style editor." + }, + "cm_autocompleteOnTyping": { + "message": "타이핑 자동완성", + "description": "Label for the checkbox in the style editor." + }, + "cm_colorpicker": { + "message": "CSS 색상에 Colorpicker(색상 선택기) 표시", + "description": "Label for the checkbox controlling colorpicker option for the style editor." + }, + "cm_indentWithTabs": { + "message": "자동 들여쓰기 시 탭 사용", + "description": "Label for the checkbox controlling tabs with smart indentation option for the style editor." + }, + "cm_keyMap": { + "message": "키 매핑", + "description": "Label for the drop-down list controlling the keymap for the style editor." + }, + "cm_lineWrapping": { + "message": "자동 줄바끔", + "description": "Label for the checkbox controlling word wrap option for the style editor." + }, + "cm_matchHighlight": { + "message": "하이라이트", + "description": "Label for the drop-down list controlling the automatic highlighting of current word/selection occurrences in the style editor." + }, + "cm_matchHighlightSelection": { + "message": "선택된 것만", + "description": "Style editor's 'highglight' drop-down list option: highlight the occurrences of currently selected text" + }, + "cm_matchHighlightToken": { + "message": "커서 위치의 토큰", + "description": "Style editor's 'highglight' drop-down list option: highlight the occurrences of the word/token under cursor even if nothing is selected" + }, + "cm_resizeGripHint": { + "message": "더블 클릭으로 높이 최대화/이전 높이로 복구할 수 있습니다", + "description": "Tooltip for the resize grip in style editor" + }, + "cm_selectByTokens": { + "message": "더블 클릭으로 토큰 선택", + "description": "Label for the checkbox in the editor." + }, + "cm_selectByTokensTooltip": { + "message": "토큰 예시: .foo-bar-2 #aabbcc 0.32 !important\n비활성화 시: 문장 부호로 구분된 단어 선택", + "description": "" + }, + "cm_smartIndent": { + "message": "자동 들여쓰기", + "description": "Label for the checkbox controlling smart indentation option for the style editor." + }, + "cm_tabSize": { + "message": "탭 크기", + "description": "Label for the text box controlling tab size option for the style editor." + }, + "cm_theme": { + "message": "테마", + "description": "Label for the style editor's CSS theme." + }, + "colorpickerSwitchFormatTooltip": { + "message": "16 진수-> RGB -> HSL 순서로 형식을 변환합니다.\nShift+클릭을 이용해 역순으로 변환할 수 있습니다.\nPgUp(PageUp), PgDn(PageDown) 키도 사용 가능합니다.", + "description": "Tooltip for the switch button in the color picker popup in the style editor." + }, + "colorpickerTooltip": { + "message": "색상 선택기 열기", + "description": "Tooltip for the colored squares shown before CSS colors in the style editor." + }, + "configOnChange": { + "message": "변경 시", + "description": "VERY SHORT label for the checkbox in style config dialog after the save button - when enabled the changes in the dialog are saved and applied automatically without the need to press the Save button" + }, + "configOnChangeTooltip": { + "message": "자동으로 변경 사항 저장 및 적용", + "description": "" + }, + "configureStyle": { + "message": "설정", + "description": "Label for the button to configure usercss userstyle" + }, + "configureStyleOnHomepage": { + "message": "홈페이지에서 설정", + "description": "Label for the button to configure userstyles.org userstyle" + }, + "confirmCancel": { + "message": "취소", + "description": "" + }, + "confirmClose": { + "message": "닫기", + "description": "'Close' button in a confirm dialog" + }, + "confirmDefault": { + "message": "기본값 사용", + "description": "'Set to default' button in a confirm dialog" + }, + "confirmDelete": { + "message": "삭제", + "description": "" + }, + "confirmDiscardChanges": { + "message": "변경 사항을 무시하시겠습니까?", + "description": "Generic label or title displayed when trying to close something (not a style) with unsaved changes" + }, + "confirmNo": { + "message": "아니오", + "description": "'No' button in a confirm dialog" + }, + "confirmOK": { + "message": "확인", + "description": "" + }, + "confirmSave": { + "message": "저장", + "description": "'Save' button in a confirm dialog" + }, + "confirmStop": { + "message": "중지", + "description": "'Stop' button in a confirm dialog" + }, + "confirmYes": { + "message": "예", + "description": "'Yes' button in a confirm dialog" + }, + "copied": { + "message": "클립보드에 복사됨", + "description": "Message shown when content has been copied to the clipboard" + }, + "copy": { + "message": "클립보드에 복사", + "description": "Tooltip for elements which can be copied" + }, + "dateInstalled": { + "message": "설치된 날짜", + "description": "Option text for the user to sort the style by install date" + }, + "dateUpdated": { + "message": "변경된 날짜", + "description": "Option text for the user to sort the style by last update date" + }, + "dbError": { + "message": "Stylus 데이터베이스를 사용하던 중 오류가 발생했습니다. 해결 방법 안내 웹페이지를 여시겠습니까?", + "description": "Prompt when a DB error is encountered" + }, + "defaultTheme": { + "message": "기본", + "description": "Default CodeMirror CSS theme option on the edit style page" + }, + "deleteStyleConfirm": { + "message": "이 스타일을 정말 삭제하시겠습니까?", + "description": "Confirmation before deleting a style" + }, + "deleteStyleLabel": { + "message": "삭제", + "description": "Label for the button to delete a style" + }, + "description": { + "message": "Stylus로 웹페이지를 새롭게 디자인해보세요. 유명한 사이트의 테마, 스킨도 간단하게 설치할 수 있는 사용자 스타일 관리자입니다.", + "description": "Extension description" + }, + "disableAllStyles": { + "message": "모든 스타일 비활성화", + "description": "Label for the checkbox that turns all enabled styles off." + }, + "disableStyleLabel": { + "message": "비활성화", + "description": "Label for the button to disable a style" + }, + "dragDropMessage": { + "message": "이 페이지 아무 곳에나 백업 파일을 놓으세요.", + "description": "Drag'n'drop message" + }, + "dragDropUsercssTabstrip": { + "message": "파일을 설치하려면, 파일을 탭 표시줄(탭 제목이 표시되는 영역)에 놓으세요.", + "description": "Message popup shown when erroneously dropping a usercss file into the manager page" + }, + "editDeleteText": { + "message": "삭제", + "description": "Label for the context menu item in the editor to delete selected text" + }, + "editGotoLine": { + "message": "줄 이동", + "description": "Go to line or line:column on Ctrl-G in style code editor" + }, + "editStyleHeading": { + "message": "스타일 수정", + "description": "Title of the page for editing styles" + }, + "editStyleLabel": { + "message": "수정", + "description": "Label for the button to go to the edit style page" + }, + "editStyleTitle": { + "message": " $stylename$ 스타일 수정", + "description": "Title of the page for editing styles", + "placeholders": { + "stylename": { + "content": "$1" + } + } + }, + "editorStylesButton": { + "message": "편집기 스타일 찾기", + "description": "Find styles for the editor" + }, + "enableStyleLabel": { + "message": "활성화", + "description": "Label for the button to enable a style" + }, + "excludeStyleByDomainLabel": { + "message": "현재 도메인 제외", + "description": "" + }, + "excludeStyleByUrlLabel": { + "message": "현재 URL 제외", + "description": "" + }, + "exportLabel": { + "message": "내보내기", + "description": "Label for the button to export a style ('edit' page) or all styles ('manage' page)" + }, + "externalFeedback": { + "message": "피드백", + "description": "Label for the external link to send feedback for the style" + }, + "externalHomepage": { + "message": "홈페이지", + "description": "Label for the external link to style's homepage" + }, + "externalLink": { + "message": "외부 링크", + "description": "Label for external links" + }, + "externalSupport": { + "message": "지원", + "description": "Label for the external link to style's support site" + }, + "externalUsercssDocument": { + "message": "Usercss 안내 문서", + "description": "Label for the external link to usercss documentation" + }, + "filteredStyles": { + "message": "$numTotal$개 중 $numShown$개 표시", + "description": "TL note - make this message short", + "placeholders": { + "numTotal": { + "content": "$2" + }, + "numShown": { + "content": "$1" + } + } + }, + "filteredStylesAllHidden": { + "message": "현재 적용된 필터와 일치하는 스타일이 없습니다", + "description": "Text shown when no styles match currently applied filter in the style manager" + }, + "findStyles": { + "message": "스타일 찾기", + "description": "Text for a link that gets a list of styles for the current site" + }, + "findStylesForSite": { + "message": "현재 사이트에 맞는 스타일 찾기", + "description": "Text for a link that gets a list of styles for the current site" + }, + "findStylesInline": { + "message": "팝업창 내에서", + "description": "Text for a checkbox that opens search results 'inline' (within the Stylus popup window)" + }, + "findStylesInlineTooltip": { + "message": "이 창에서 검색 결과 표시", + "description": "Text for a checkbox that displays search results within the Stylus popup." + }, + "genericAdd": { + "message": "추가", + "description": "Used in various places for an action that adds something" + }, + "genericClone": { + "message": "복제", + "description": "Used in various places for an action that clones something" + }, + "genericDisabledLabel": { + "message": "비활성화됨", + "description": "Used in various lists/options to indicate that something is disabled" + }, + "genericEnabledLabel": { + "message": "활성화됨", + "description": "Used in various lists/options to indicate that something is enabled" + }, + "genericError": { + "message": "에러", + "description": "Used in various places to indicate some error occurred." + }, + "genericHistoryLabel": { + "message": "기록", + "description": "Used in various places to show a history log of something" + }, + "genericNext": { + "message": "다음", + "description": "Used in various places to select/perform the next step/action" + }, + "genericPrevious": { + "message": "이전", + "description": "Used in various places to select/perform the previous step/action" + }, + "genericResetLabel": { + "message": "초기화", + "description": "Used in various parts of UI to indicate that something may be reset to its original state" + }, + "genericSavedMessage": { + "message": "저장됨", + "description": "Used in various parts of the UI to indicate that something was saved" + }, + "genericTitle": { + "message": "제목", + "description": "Used in various parts of the UI to indicate the title of something" + }, + "genericUnknown": { + "message": "알 수 없음", + "description": "Used in various parts of the UI to indicate if something is unknown (e.g. an unknown date)" + }, + "helpAlt": { + "message": "도움말", + "description": "Alternate text for help buttons" + }, + "helpKeyMapCommand": { + "message": "명령어를 입력하세요", + "description": "Placeholder text of inputbox in keymap help popup on the edit style page. Must be very short" + }, + "helpKeyMapHotkey": { + "message": "단축키를 입력하세요", + "description": "Placeholder text of inputbox in keymap help popup on the edit style page. Must be very short" + }, + "hostDisabled": { + "message": "이 호스트는 현재 사용 중인 브라우저 버전의 버그로 인해 비활성화되었습니다", + "description": "Tooltip for cloud host disabled" + }, + "importAppendLabel": { + "message": "스타일에 추가", + "description": "Label for the button to import a style and append to the existing sections" + }, + "importAppendTooltip": { + "message": "가져온 스타일을 현재 스타일에 추가", + "description": "Tooltip for the button to import a style and append to the existing sections" + }, + "importLabel": { + "message": "가져오기", + "description": "Label for the button to import a style ('edit' page) or all styles ('manage' page)" + }, + "importReplaceLabel": { + "message": "스타일 덮어쓰기", + "description": "Label for the button to import and overwrite current style" + }, + "importReplaceTooltip": { + "message": "현재 스타일을 버리고, 가져온 스타일로 덮어씁니다.", + "description": "Label for the button to import and overwrite current style" + }, + "importReportLegendAdded": { + "message": "추가됨", + "description": "Text after the number of styles added in the report shown after importing styles" + }, + "importReportLegendIdentical": { + "message": "중복 생략됨", + "description": "Text after the number of styles skipped due to being identical to the already installed ones in the report shown after importing styles" + }, + "importReportLegendInvalid": { + "message": "유효하지 않아 생략됨", + "description": "Text after the number of styles skipped due to being invalid (not a Stylus/Stylish backup file probably) in the report shown after importing styles" + }, + "importReportLegendUpdatedBoth": { + "message": "메타데이터, 코드 모두 업데이트됨", + "description": "Text after the number of styles updated entirely in the report shown after importing styles" + }, + "importReportLegendUpdatedCode": { + "message": "코드가 업데이트됨", + "description": "Text after the number of styles with updated code (meta info is unchanged) in the report shown after importing styles" + }, + "importReportLegendUpdatedMeta": { + "message": "메타데이터 업데이트됨", + "description": "Text after the number of styles with updated meta info like name/url in the report shown after importing styles" + }, + "importReportTitle": { + "message": "스타일 가져오기 완료", + "description": "Title of the report shown after importing styles" + }, + "importReportUnchanged": { + "message": "변경사항 없음", + "description": "Message in the report shown after importing styles" + }, + "importReportUndone": { + "message": "스타일 되돌려짐", + "description": "Text after the number of styles reverted in the message box shown after undoing the import of styles" + }, + "importReportUndoneTitle": { + "message": "가져오기가 취소되었습니다.", + "description": "Title of the message box shown after undoing the import of styles" + }, + "installButton": { + "message": "스타일 설치", + "description": "Label for install button" + }, + "installButtonInstalled": { + "message": "스타일 설치됨", + "description": "Text displayed when the style is successfully installed" + }, + "installButtonReinstall": { + "message": "스타일 재설치", + "description": "Label for reinstall button" + }, + "installButtonUpdate": { + "message": "스타일 업데이트", + "description": "Label for update button" + }, + "installUpdate": { + "message": "업데이트 설치", + "description": "Label for the button to install an update for a single style" + }, + "installUpdateFrom": { + "message": "현재 스타일은 $url$에서 업데이트되었습니다", + "description": "Label to describe where the style gets update", + "placeholders": { + "url": { + "content": "$1" + } + } + }, + "installUpdateFromLabel": { + "message": "업데이트 확인", + "description": "Label for the checkbox to save current URL for update check" + }, + "license": { + "message": "라이센스", + "description": "Label for the license" + }, + "linkGetHelp": { + "message": "도움말", + "description": "Homepage link text on the manage page e.g. https://add0n.com/stylus.html#features with chat/FAQ/intro/info" + }, + "linkGetStyles": { + "message": "스타일 찾기", + "description": "Help link text on the manage page e.g. https://userstyles.org" + }, + "linkStylusWiki": { + "message": "위키", + "description": "Wiki link text on the manage page e.g. https://github.com/openstyles/stylus/wiki" + }, + "linkTranslate": { + "message": "번역", + "description": "Transifex link text on the manage page" + }, + "linterCSSLintIncompatible": { + "message": "CSSLint는 $preprocessorname$ 전처리기를 지원하지 않습니다.", + "description": "The label to display when the preprocessor isn't compatible with CSSLint", + "placeholders": { + "preprocessorname": { + "content": "$1" + } + } + }, + "linterCSSLintSettings": { + "message": "(규칙 설정: 0 = 비활성화, 1 = 경고(warning), 2 = 에러)", + "description": "CSSLint rule config values" + }, + "linterConfigPopupTitle": { + "message": "$linter$ 규칙 설정", + "description": "Stylelint or CSSLint popup header", + "placeholders": { + "linter": { + "content": "$1" + } + } + }, + "linterConfigTooltip": { + "message": "현재 Linter를 설정하려면 클릭하세요", + "description": "Icon tooltip to indicate that it opens a popup with the selected linter configuration" + }, + "linterInvalidConfigError": { + "message": "유효하지 않은 설정으로 인해 저장할 수 없음:", + "description": "Invalid linter config will show a message followed by a list of invalid entries" + }, + "linterIssues": { + "message": "문제점", + "description": "Label for the CSS linter issues block on the style edit page" + }, + "linterIssuesHelp": { + "message": "이 문제점은 $link$에 의해 발견됨:", + "description": "Help popup message for the selected CSS linter issues block on the style edit page", + "placeholders": { + "link": { + "content": "$1" + } + } + }, + "linterJSONError": { + "message": "유효하지 않은 JSON 형식입니다", + "description": "Setting linter config with invalid JSON" + }, + "linterResetMessage": { + "message": "실수로 초기화한 경우, 텍스트 박스 내에서 Ctrl+Z (혹은 Cmd+Z)를 눌러 취소할 수 있습니다", + "description": "Reset button tooltip to inform user on how to undo an accidental reset" + }, + "linterRulesLink": { + "message": "전체 규칙 목록 보기", + "description": "Stylelint or CSSLint rules label added immediately before a link" + }, + "liveReloadError": { + "message": "파일을 주시하는 동안 오류가 발생함", + "description": "The label of live-reload error" + }, + "liveReloadInstallHint": { + "message": "외부 요인으로 인한 변경 시 스타일을 자동으로 업데이트하려면 이 탭을 열어두세요.", + "description": "The label of live-reload feature" + }, + "liveReloadInstallHintFF": { + "message": "외부 요인으로 인한 변경 시 스타일을 자동으로 업데이트하려면 이 탭과 원래 탭을 모두 열어두세요.", + "description": "The extra hint of live-reload feature shown only for file:// URLs in Firefox" + }, + "liveReloadLabel": { + "message": "실시간 리로드", + "description": "The label of live-reload feature" + }, + "manageFavicons": { + "message": "적용 대상 열에 Favicon(사이트 아이콘) 표시", + "description": "Label for the checkbox that toggles applies-to favicons in the new UI on manage page" + }, + "manageFaviconsGray": { + "message": "회색으로 표시", + "description": "Label for the checkbox that toggles grayed out mode of applies-to favicons in the new UI on manage page" + }, + "manageFaviconsHelp": { + "message": "Stylus는 https://www.google.com/s2/favicons 외부 서비스를 이용합니다", + "description": "Label for the checkbox that toggles applies-to favicons in the new UI on manage page" + }, + "manageFilters": { + "message": "필터", + "description": "Label for filters container" + }, + "manageHeading": { + "message": "설치한 스타일 목록", + "description": "Heading for the manage page" + }, + "manageMaxTargets": { + "message": "적용 대상 항목 수", + "description": "Label for the numeric input box to limit max number of applies-to targets in the new UI on manage page" + }, + "manageNewStyleAsUsercss": { + "message": "Usercss로 작성", + "description": "VERY SHORT label for the checkbox next to the 'Write new style' button in the style manager" + }, + "manageNewUI": { + "message": "새로운 관리 페이지 UI 레이아웃", + "description": "Label for the checkbox that toggles the new UI on manage page" + }, + "manageOnlyDisabled": { + "message": "비활성화된 스타일만", + "description": "Checkbox to show only disabled styles" + }, + "manageOnlyEnabled": { + "message": "활성화된 스타일만", + "description": "Checkbox to show only enabled styles" + }, + "manageOnlyExternal": { + "message": "외부에서 설치한 스타일만", + "description": "Checkbox to show only externally installed styles i.e. updatable" + }, + "manageOnlyLocal": { + "message": "로컬에서 생성한 스타일만", + "description": "Checkbox to show only locally created styles i.e. non-updatable" + }, + "manageOnlyLocalTooltip": { + "message": "(userstyles.org 페이지에서 설치하지 않은 스타일)", + "description": "Tooltip for the checkbox to show only locally created styles i.e. non-updatable" + }, + "manageOnlyNonUsercss": { + "message": "Usercss가 아닌 스타일만", + "description": "Checkbox to show only non-Usercss (standard) styles" + }, + "manageOnlyUpdates": { + "message": "업데이트 혹은 문제점이 있는 것만", + "description": "Checkbox to show only styles that have updates after check-all-styles-for-updates was performed" + }, + "manageOnlyUsercss": { + "message": "Usercss 스타일만", + "description": "Checkbox to show only Usercss styles" + }, + "menuShowBadge": { + "message": "활성화된 스타일 개수 표시", + "description": "Label (must be very short) for the checkbox in the toolbar button context menu controlling toolbar badge text." + }, + "meta_invalidCheckboxDefault": { + "message": "@var 체크박스가 유효하지 않습니다. 값은 0, 1중 하나여야 합니다.", + "description": "Error displayed when the value of @var checkbox is invalid" + }, + "meta_invalidColor": { + "message": "@var 색상이 유효하지 않습니다. $color$은(는) 색상이 아닙니다.", + "description": "Error displayed when the value of @var color is invalid", + "placeholders": { + "color": { + "content": "$1" + } + } + }, + "meta_invalidRange": { + "message": "@var $type$이(가) 유효하지 않습니다. 값은 숫자나 배열이어야 합니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeMultipleUnits": { + "message": "@var $type$이(가) 유효하지 않습니다. 구성단위가 여러 개 정의되었습니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeTooManyValues": { + "message": "@var $type$이(가) 유효하지 않습니다. 배열의 요소가 너무 많습니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeValue": { + "message": "@var $type$이(가) 유효하지 않습니다. 배열 요소는 숫자, 문자열, null 중 하나여야 합니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeDefault": { + "message": "@var $type$이(가) 유효하지 않습니다. 기본 값이 null입니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeMin": { + "message": "@var $type$이(가) 유효하지 않습니다. 기본값이 최솟값보다 작습니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeMax": { + "message": "@var $type$이(가) 유효하지 않습니다. 기본값이 최댓값보다 큽니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeStep": { + "message": "@var $type$이(가) 유효하지 않습니다. 기본값이 단계의 변수가 아닙니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + } + } + }, + "meta_invalidRangeUnits": { + "message": "@var $type$이(가) 유효하지 않습니다. '$units$'은(는) 유효한 구성단위가 아닙니다.", + "description": "Error displayed when the value of @var range or @var number is invalid", + "placeholders": { + "type": { + "content": "$1" + }, + "units": { + "content": "$2" + } + } + }, + "meta_invalidSelect": { + "message": "유효하지 않은 @var 선택입니다. 기본 값은 배열이나 오브젝트여야 합니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectValue": { + "message": "유효하지 않은 @var 선택입니다. 배열, 오브젝트 내 값은 문자열이어야 합니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectEmptyOptions": { + "message": "유효하지 않은 @var 선택입니다. 옵션 목록이 비었습니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectLabel": { + "message": "유효하지 않은 @var 선택입니다. 옵션 라벨이 비었습니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectMultipleDefaults": { + "message": "유효하지 않은 @var 선택입니다. 기본 옵션이 여러 번 정의되었습니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectNameDuplicated": { + "message": "유효하지 않은 @var 선택입니다. 옵션명이 중복되었습니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidSelectValueMismatch": { + "message": "유효하지 않은 @var 선택입니다. 옵션 목록에 값이 존재하지 않습니다.", + "description": "Error displayed when the value of @var select is invalid" + }, + "meta_invalidURLProtocol": { + "message": "$protocol$은(는) 유효하지 않은 URL 프로토콜입니다. http, https만 허용됩니다.", + "description": "Error displayed when the protocol of the URL is invalid", + "placeholders": { + "protocol": { + "content": "$1" + } + } + }, + "meta_invalidVersion": { + "message": "유효하지 않은 버전 숫자입니다. $version$은(는) 유의적 버전 패턴과 일치하지 않습니다.", + "description": "Error displayed when @version is invalid", + "placeholders": { + "version": { + "content": "$1" + } + } + }, + "meta_invalidNumber": { + "message": "숫자를 입력하세요", + "description": "Error displayed when the value is expected to be a number" + }, + "meta_invalidString": { + "message": "따옴표로 묶인 문자열을 입력하세요", + "description": "Error displayed when the value is expected to be a quoted string" + }, + "meta_invalidWord": { + "message": "단어를 입력하세요", + "description": "Error displayed when the value is expected to be a word" + }, + "meta_missingChar": { + "message": "$chars$ 문자를 입력하세요", + "description": "Error displayed when the value is expected to be some characters", + "placeholders": { + "chars": { + "content": "$1" + } + } + }, + "meta_missingEOT": { + "message": "EOT 데이터를 입력하세요", + "description": "Error displayed when the value is expected to be an EOT list" + }, + "meta_missingMandatory": { + "message": "필수 메타 데이터인 $keys$이(가) 누락되었습니다", + "description": "Error displayed when mandatory keys are missing", + "placeholders": { + "keys": { + "content": "$1" + } + } + }, + "meta_unknownJSONLiteral": { + "message": "유효하지 않은 JSON입니다. $literal$은(는) 유효한 JSON 리터럴이 아닙니다.", + "description": "Error displayed when JSON value is invalid", + "placeholders": { + "literal": { + "content": "$1" + } + } + }, + "meta_unknownMeta": { + "message": "알 수 없는 메타데이터 $key$", + "description": "Error displayed when unknown metadata is parsed", + "placeholders": { + "key": { + "content": "$1" + } + } + }, + "meta_unknownVarType": { + "message": "알 수 없는 @$varkey$ 타입: $vartype$", + "description": "Error displayed when unknown variable type is parsed", + "placeholders": { + "varkey": { + "content": "$1" + }, + "vartype": { + "content": "$2" + } + } + }, + "meta_unknownPreprocessor": { + "message": "알 수 없는 @preprocessor $preprocessor$", + "description": "Error displayed when unknown @preprocessor is parsed", + "placeholders": { + "preprocessor": { + "content": "$1" + } + } + }, + "noStylesForSite": { + "message": "현재 사이트에 설치한 스타일이 없습니다.", + "description": "Text displayed when no styles are installed for the current site" + }, + "openManage": { + "message": "관리", + "description": "Link to open the manage page." + }, + "openOptions": { + "message": "옵션", + "description": "Go to Options UI" + }, + "openStylesManager": { + "message": "스타일 관리자 열기", + "description": "Label for the style maanger opener in the browser action context menu." + }, + "optionsActions": { + "message": "동작", + "description": "" + }, + "optionsAdvanced": { + "message": "고급", + "description": "" + }, + "optionsAdvancedContextDelete": { + "message": "편집기 컨텍스트 메뉴에 '삭제' 추가", + "description": "" + }, + "optionsAdvancedExposeIframes": { + "message": "iframe을 HTML[stylus-iframe]으로 노출", + "description": "" + }, + "optionsAdvancedExposeIframesNote": { + "message": "최상위 사이트 도메인을 각 iframe에 노출합니다.\n다음과 같이 iframe용 CSS를 작성할 수 있습니다:\nhtml[stylus-iframe$$=\"twitter.com\"] h1 { display:none }", + "description": "Add attribute to iframe; make sure to include the double $$ in the css example, or the `$=` will be omitted in the displayed text." + }, + "optionsAdvancedNewStyleAsUsercss": { + "message": "새로운 스타일을 Usercss로 작성", + "description": "" + }, + "optionsBadgeDisabled": { + "message": "비활성화 시의 배경 색", + "description": "" + }, + "optionsBadgeNormal": { + "message": "배경 색", + "description": "" + }, + "optionsCheck": { + "message": "스타일 업데이트", + "description": "" + }, + "optionsCheckUpdate": { + "message": "사용 가능한 모든 업데이트 확인 및 설치", + "description": "" + }, + "optionsCustomizeBadge": { + "message": "툴바 아이콘 뱃지", + "description": "" + }, + "optionsCustomizeIcon": { + "message": "툴바 아이콘", + "description": "" + }, + "optionsCustomizePopup": { + "message": "팝업", + "description": "" + }, + "optionsCustomizeUpdate": { + "message": "업데이트", + "description": "" + }, + "optionsCustomizeSync": { + "message": "클라우드에 동기화", + "description": "" + }, + "optionsHeading": { + "message": "옵션", + "description": "Heading for options section on manage page." + }, + "optionsIconDark": { + "message": "어두운 브라우저 테마", + "description": "" + }, + "optionsIconLight": { + "message": "밝은 브라우저 테마", + "description": "" + }, + "optionsOpen": { + "message": "열기", + "description": "" + }, + "optionsOpenManager": { + "message": "스타일 관리", + "description": "" + }, + "optionsPopupWidth": { + "message": "팝업 너비 (픽셀 단위)", + "description": "" + }, + "optionsReset": { + "message": "기본 값으로 설정 초기화", + "description": "" + }, + "optionsResetButton": { + "message": "설정 초기화", + "description": "" + }, + "optionsSubheading": { + "message": "추가 옵션", + "description": "Subheading for options section on manage page." + }, + "optionsUpdateImportNote": { + "message": "Stylish나 구버전 스타일 백업을 가져왔을 경우, 스타일들을 최신 버전으로 유지하려면 스타일 매니저에서 한 번씩 수동으로 업데이트 검사를 진행해 주세요.", + "description": "" + }, + "optionsUpdateInterval": { + "message": "Userstyle 자동 업데이트 간격 (시간 단위, 0일시 업데이트하지 않음)", + "description": "" + }, + "optionsSyncNone": { + "message": "없음", + "description": "" + }, + "optionsSyncConnect": { + "message": "연결", + "description": "" + }, + "optionsSyncDisconnect": { + "message": "연결 끊기", + "description": "" + }, + "optionsSyncSyncNow": { + "message": "지금 동기화", + "description": "" + }, + "optionsSyncLogin": { + "message": "로그인", + "description": "" + }, + "optionsSyncStatusPull": { + "message": "스타일 다운로드 중 ($loaded$/$total$)", + "description": "", + "placeholders": { + "loaded": { + "content": "$1" + }, + "total": { + "content": "$2" + } + } + }, + "optionsSyncStatusPush": { + "message": "스타일 업로드 중 ($loaded$/$total$)", + "description": "", + "placeholders": { + "loaded": { + "content": "$1" + }, + "total": { + "content": "$2" + } + } + }, + "optionsSyncStatusSyncing": { + "message": "동기화 중...", + "description": "" + }, + "optionsSyncStatusConnecting": { + "message": "연결 중...", + "description": "" + }, + "optionsSyncStatusConnected": { + "message": "연결됨", + "description": "" + }, + "optionsSyncStatusDisconnecting": { + "message": "연결 끊는 중...", + "description": "" + }, + "optionsSyncStatusDisconnected": { + "message": "연결 끊김", + "description": "" + }, + "paginationCurrent": { + "message": "현재 페이지", + "description": "Tooltip for the current page index in search results" + }, + "paginationEstimated": { + "message": "예상 페이지 수", + "description": "Tooltip for the total page count in search results" + }, + "paginationNext": { + "message": "다음 페이지", + "description": "Tooltip for the '->' (next page) button in search results" + }, + "paginationPrevious": { + "message": "이전 페이지", + "description": "Tooltip for the '<-' button in search results" + }, + "paginationTotal": { + "message": "총 페이지 수", + "description": "" + }, + "parseUsercssError": { + "message": "Stylus가 Usercss 데이터를 해석하는데 실패했습니다:", + "description": "The error message to show when stylus failed to parse usercss" + }, + "popupAutoResort": { + "message": "팝업 내에서 스타일 토글 시 재정렬", + "description": "Label for the checkbox controlling popup resorting." + }, + "popupBorders": { + "message": "양옆에 흰색 테두리 추가", + "description": "" + }, + "popupBordersTooltip": { + "message": "측면 테두리를 칠하지 않으므로 새로운 Chrome의 다크 테마에서 유용합니다", + "description": "" + }, + "popupHotkeysInfo": { + "message": "<1>-<9>,<0> (숫자패드 포함) - N번째 스타일 토글 (0은 10)\n- 해당 글자로 시작하는 첫 번째 스타일 토글\n 토글 대신 편집기 열기\n 나열된 스타일 활성화\n 나열된 스타일 비활성화\n, <`> (백틱) - 처음에 활성화한 스타일을 토글합니다. 팝업이 열려 있는 동안에는 나중에 활성화한 스타일에 적용되지 않습니다. 따라서 검사 후 초기 선택 항목을 복원할 수 있습니다. 간단하게, 모두 비활성화한 다음 로 다시 전환하세요.\n자세한 내용은 위키를 참고 바랍니다", + "description": "NOTE1: preserve < and > symbols so that is styled as a key.\nNOTE2: the last line is displayed as a text of the link to the wiki page.\nNOTE3: this is the list of hotkeys displayed after clicking the right edge of the extension popup." + }, + "popupHotkeysTooltip": { + "message": "사용 가능한 단축키를 확인하려면 클릭하세요", + "description": "Tooltip displayed when hovering the right edge of the extension popup" + }, + "popupManageTooltip": { + "message": "Shift+클릭이나 우클릭으로 스타일 관리자를 열면 현재 사이트에 적용 가능한 스타일들이 표시됩니다.", + "description": "Tooltip for the 'Manage' button in the popup." + }, + "popupMenuButtonTooltip": { + "message": "상호작용 메뉴", + "description": "Tooltip for menu button in popup." + }, + "popupOpenEditInWindow": { + "message": "새 창에서 편집기 열기", + "description": "Label for the checkbox controlling 'edit' action behavior in the popup." + }, + "popupOpenEditInWindowTooltip": { + "message": "이 옵션은 편집기가 열린 탭을 브라우저 창에서 분리함으로써 활성화할 수도 있습니다.\n편집기 탭만 다른 브라우저 창으로 합치면 비활성화됩니다.", + "description": "Label for the checkbox controlling 'edit' action behavior in the popup." + }, + "popupStylesFirst": { + "message": "스타일 목록을 커맨드 버튼 상단에 표시", + "description": "Label for the checkbox controlling section order in the popup." + }, + "prefShowBadge": { + "message": "현재 사이트에서 활성화된 스타일 개수", + "description": "Label for the checkbox controlling toolbar badge text." + }, + "previewLabel": { + "message": "실시간 미리보기", + "description": "Label for the checkbox in style editor to enable live preview while editing." + }, + "previewTooltip": { + "message": "변경 사항은 저장되지 않고 일시적으로 적용됩니다.\n영구적으로 변경하려면 스타일을 저장하세요.", + "description": "Tooltip for the checkbox in style editor to enable live preview while editing." + }, + "reload": { + "message": "Stylus 확장 프로그램 리로드", + "description": "Context menu reload" + }, + "replace": { + "message": "바꾸기", + "description": "Label before the replace input field in the editor shown on Ctrl-H" + }, + "replaceAll": { + "message": "모두 바꾸기", + "description": "Label before the replace input field in the editor shown on 'replaceAll' hotkey" + }, + "replaceWith": { + "message": "바꿀 내용", + "description": "Label before the replace-with input field in the editor shown on Ctrl-H etc." + }, + "retrieveBckp": { + "message": "스타일 가져오기", + "description": "" + }, + "search": { + "message": "검색", + "description": "Label before the search input field in the editor shown on Ctrl-F" + }, + "searchCaseSensitive": { + "message": "대소문자 구분", + "description": "Tooltip for the 'Aa' icon that enables case-sensitive search in the editor shown on Ctrl-F" + }, + "searchNumberOfResults": { + "message": "일치하는 개수", + "description": "Tooltip for the number of found search results in the editor shown on Ctrl-F" + }, + "searchNumberOfResults2": { + "message": "코드 및 적용 대상 값 내에서 일치하는 개수", + "description": "Tooltip for the number of found search results in the editor shown on Ctrl-F" + }, + "searchRegexp": { + "message": "정규 표현식 검색은 /re/ 문법을 사용합니다", + "description": "Label after the search input field in the editor shown on Ctrl-F" + }, + "searchResultInstallCount": { + "message": "총 설치 수", + "description": "Text for label that shows the number of times a search result was installed" + }, + "searchResultNoneFound": { + "message": "이 사이트에 맞는 스타일을 찾지 못했습니다.", + "description": "Error text in the popup when inline search didn't find any site-specific styles" + }, + "searchResultRating": { + "message": "평가", + "description": "Text for label that shows the search result's rating" + }, + "searchResultUpdated": { + "message": "업데이트됨", + "description": "Text for label that shows the search result's last update date" + }, + "searchResultWeeklyCount": { + "message": "주간 설치 수", + "description": "Text for label that shows the number of times a search result was installed during last week" + }, + "searchStyles": { + "message": "검색 내용", + "description": "Label for the search filter textbox on the Manage styles page" + }, + "searchStylesHelp": { + "message": " 키를 누르면 검색 상자로 포커스가 이동합니다.\n일반 텍스트: 이름, 코드, 홈페이지 및 적용 대상 URL을 대상으로 검색합니다. 3 글자 미만의 단어는 무시됩니다.\n전체 URL에 일치하는 스타일: 접두사를 붙여서 검색하세요. 예시: \n정규 표현식: 슬래시 및 플래그를 포함하세요. 예시: \n단어와 정확히 일치: 쿼리를 큰따옴표로 묶으세요. 예시: <\".header ~ div\">", + "description": "Text in the minihelp displayed when clicking (i) icon to the right of the search input field on the Manage styles page" + }, + "sectionAdd": { + "message": "섹션 추가", + "description": "Label for the button to add a section" + }, + "sectionCode": { + "message": "코드", + "description": "Label for the code for a section" + }, + "sectionRemove": { + "message": "섹션 제거", + "description": "Label for the button to remove a section" + }, + "sectionRestore": { + "message": "제거된 섹션 복구", + "description": "Label for the button to restore a removed section" + }, + "shortcuts": { + "message": "단축키", + "description": "Go to shortcut configuration" + }, + "shortcutsNote": { + "message": "키보드 단축키 정의", + "description": "" + }, + "sortDateNewestFirst": { + "message": "최신 순으로", + "description": "Text added to indicate that sorting a date would add the newest entries at the top" + }, + "sortDateOldestFirst": { + "message": "오래된 순으로", + "description": "Text added to indicate that sorting a date would add the oldest entries at the top" + }, + "sortLabel": { + "message": "설치한 스타일들을 어떻게 정렬할지 선택합니다", + "description": "Title on the sort select to indicate it is used for sorting entries" + }, + "sortLabelTitleAsc": { + "message": "제목 오름차순", + "description": "Text added to option group to indicate a block of options that apply a title ascending (A to Z) sort" + }, + "sortLabelTitleDesc": { + "message": "제목 내림차순", + "description": "Text added to option group to indicate a block of options that apply a title descending (Z to A) sort" + }, + "sortStylesHelp": { + "message": "설치한 스타일들을 정렬할 방식을 드롭 다운 목록에서 선택합니다. 기본 설정은 각 제목을 오름차순(A to Z)으로 정렬하고, \"제목 내림차순\" 을 선택 시 내림차순(Z to A)으로 정렬합니다.\n여러 기준에 따라 항목을 정렬할 수 있는 다른 사전 설정도 있습니다. 여러 개의 열이 있는 테이블을 정렬하고, 각 선택 옵션 내의 카테고리들이(+ 기호 사이) 열 또는 그룹을 나타낸다고 생각해보세요.\n예를 들어, 설정이 \"활성화됨 (first) + 제목\"인 경우, 모든 활성화된 항목이 목록의 맨 위에 정렬되도록 정렬된 후, Entry 제목 오름차순 정렬(A to Z)이 활성화된 항목과 비활성화된 항목 모두에 별도로 적용됩니다.", + "description": "Text in the minihelp displayed when clicking (i) icon to the right of the sort input field on the Manage styles page" + }, + "sortStylesHelpTitle": { + "message": "내용 정렬", + "description": "Label for the sort info popup on the Manage styles page" + }, + "styleBadRegexp": { + "message": "유효하지 않은 정규 표현식입니다.", + "description": "Validation message for a bad regexp in a style" + }, + "styleBeautifyIndentConditional": { + "message": "@media, @supports 들여쓰기", + "description": "CSS-beautifier option" + }, + "styleBeautifyPreserveNewlines": { + "message": "개행 문자 유지", + "description": "CSS-beautifier option" + }, + "styleCancelEditLabel": { + "message": "관리 페이지로 돌아가기", + "description": "Label for cancel button for style editing" + }, + "styleChangesNotSaved": { + "message": "스타일의 변경 사항을 저장하지 않았습니다.", + "description": "Text for the prompt when changes are made to a style and the user tries to leave without saving" + }, + "styleEnabledLabel": { + "message": "활성화됨", + "description": "Label for the enabled state of styles" + }, + "styleFromMozillaFormatError": { + "message": "Mozilla 형식 데이터를 가져오는데 실패했습니다", + "description": "Label for the import error" + }, + "styleFromMozillaFormatPrompt": { + "message": "Mozilla 형식의 코드를 붙여넣으세요", + "description": "Prompt in the dialog displayed after clicking 'Import from Mozilla format' button" + }, + "styleInstall": { + "message": "Stylus에 '$stylename$'을(를) 설치하시겠습니까?", + "description": "Confirmation when installing a style", + "placeholders": { + "stylename": { + "content": "$1" + } + } + }, + "styleInstallFailed": { + "message": "userstyle 설치에 실패했습니다.\n$error$", + "description": "Warning when installation failed", + "placeholders": { + "error": { + "content": "$1" + } + } + }, + "styleInstallOverwrite": { + "message": "'$stylename$'은(는) 이미 설치되어 있습니다. 덮어쓰시겠습니까?\n버전: $oldVersion$ -> $newVersion$", + "description": "Confirmation when re-installing a style", + "placeholders": { + "stylename": { + "content": "$1" + }, + "newVersion": { + "content": "$3" + }, + "oldVersion": { + "content": "$2" + } + } + }, + "styleMissingName": { + "message": "이름을 입력하세요", + "description": "Error displayed when user saves without providing a name" + }, + "styleMozillaFormatHeading": { + "message": "Mozilla 형식", + "description": "Heading for the section with buttons to import/export Mozilla format of the style" + }, + "styleNotAppliedRegexpProblemTooltip": { + "message": "잘못된 'regexp()'의 사용으로 인해 스타일을 적용할 수 없습니다", + "description": "Tooltip in the popup for styles that were not applied at all" + }, + "styleRegexpInvalidExplanation": { + "message": "일부 `regexp()` 규칙은 컴파일할 수 없습니다.", + "description": "" + }, + "styleRegexpPartialExplanation": { + "message": "이 스타일은 부분 일치 정규 표현식을 사용합니다. CSS4 @document 사양은 전체 URL 일치를 사용할 것을 강제하고 있으므로, 해당 CSS 섹션은 페이지에 적용되지 않았습니다. 이 스타일은 초기부터 `regexp()` 규칙을 바르게 확인하지 않는 것으로 알려진 Stylish-for-Chrome에서 생성되었을 것으로 추정됩니다.", + "description": "" + }, + "styleRegexpProblemTooltip": { + "message": "잘못된 'regexp()' 사용으로 인해 몇몇 섹션을 적용할 수 없습니다.", + "description": "Tooltip in the popup for styles that were applied only partially" + }, + "styleRegexpTestButton": { + "message": "정규 표현식 테스트", + "description": "RegExp test button label in the editor shown when applies-to list has a regexp value" + }, + "styleRegexpTestFull": { + "message": "일치하는 탭 목록", + "description": "RegExp test report: label for the fully matching expressions" + }, + "styleRegexpTestInvalid": { + "message": "유효하지 않은 정규 표현식 생략됨", + "description": "RegExp test report: label for the invalid expressions" + }, + "styleRegexpTestNone": { + "message": "일치하는 탭 없음", + "description": "RegExp test report: label for expressions that didn't match any tabs" + }, + "styleRegexpTestNote": { + "message": "참고: 정규 표현식 입력 필드에서 이스케이프 처리는 단일 \\ 를 사용하세요. CSS에서 따옴표로 묶인 문자열의 사양에 따라 스타일 코드에서 자동으로 \\\\ 로 변환됩니다. ", + "description": "RegExp test report: a note displayed at the bottom of the dialog" + }, + "styleRegexpTestPartial": { + "message": "완전히 일치하지는 않으므로 생략됨", + "description": "RegExp test report: label for the partially matching expressions" + }, + "styleRegexpTestTitle": { + "message": "열린 탭 중 일치하는 목록 (URL 클릭 시 해당 탭으로 이동)", + "description": "RegExp test report: title of the report" + }, + "styleSaveLabel": { + "message": "저장", + "description": "Label for save button for style editing" + }, + "styleToMozillaFormatHelp": { + "message": "Mozilla 형식 코드는 userstyles.org에 올리거나 기존 Firefox용 Stylish에 사용할 수 있습니다", + "description": "Help info for the Mozilla format header section that converts the code to/from Mozilla format" + }, + "styleToMozillaFormatTitle": { + "message": "Mozilla 형식으로 변환한 스타일", + "description": "Title of the popup with the style code in Mozilla format, shown after pressing the Export button on Edit style page" + }, + "styleUpdate": { + "message": "'$stylename$'을(를) 정말 수정하시겠습니까?", + "description": "Confirmation when updating a style", + "placeholders": { + "stylename": { + "content": "$1" + } + } + }, + "styleUpdateDiscardChanges": { + "message": "이 스타일은 편집기 외부에서 변경되었습니다. 스타일을 다시 로딩하시겠습니까?", + "description": "Confirmation to update the style in the editor" + }, + "stylusUnavailableForURL": { + "message": "Stylus는 이러한 페이지에서는 작동할 수 없습니다.", + "description": "Note in the toolbar pop-up when on a URL Stylus can't affect" + }, + "stylusUnavailableForURLdetails": { + "message": "브라우저 보안 상의 이유로, 확장 프로그램은 브라우저 내장 페이지(chrome://version, Chrome 61의 표준 새 탭 페이지, about:addons 등)나 타 확장 프로그램의 페이지에 영향을 미칠 수 없습니다. 각 브라우저의 확장 프로그램 스토어(Chrome 웹 스토어, AMO 등) 접근 또한 마찬가지입니다.", + "description": "Sub-note in the toolbar pop-up when on a URL Stylus can't affect" + }, + "syncStorageErrorSaving": { + "message": "값을 저장할 수 없습니다. 텍스트의 양을 줄이세요.", + "description": "Displayed when trying to save an excessively big value via storage.sync API" + }, + "toggleStyle": { + "message": "스타일 토글", + "description": "Label for the checkbox to enable/disable a style" + }, + "undo": { + "message": "취소", + "description": "Button label" + }, + "undoGlobal": { + "message": "모든 섹션에서 실행 취소", + "description": "CSS-beautify global Undo button label" + }, + "unreachableAMO": { + "message": "Firefox가 해당 사이트의 접근을 금지했습니다.", + "description": "Note in the popup displayed when opened on addons.mozilla.org" + }, + "unreachableAMOHint": { + "message": "접근을 허용하려면 를 열고, 목록을 우클릭 한 후, '새로 만들기'를 클릭하고, '불린값'을 선택하고, 을 붙여 넣고 확인을 누르고, , 확인 후 페이지를 새로 고침하세요.", + "description": "Note in the popup when opened on addons.mozilla.org in Firefox >= 59" + }, + "unreachableAMOHintNewFF": { + "message": "Firefox 60 이상 버전에서는 내의 에서 AMO 도메인을 제거해야 합니다.", + "description": "Note in the popup when opened on addons.mozilla.org in Firefox >= 59" + }, + "unreachableAMOHintOldFF": { + "message": "Firefox 59 버전 이상에서만 이처럼 CSP 보호 정책이 적용된 사이트에 웹 확장 기능으로 스타일 요소를 추가할 수 있도록 설정 가능합니다.", + "description": "Note in the popup when opened on addons.mozilla.org in Firefox < 59" + }, + "unreachableContentScript": { + "message": "페이지와 통신할 수 없습니다. 탭을 다시 로딩(새로 고침) 해보세요.", + "description": "Note in the toolbar popup usually on file:// URLs after [re]loading Stylus" + }, + "unreachableFileHint": { + "message": "Stylus가 file:// URL에 접근할 수 있도록 하려면 chrome://extensions 페이지에서 파일 URL에 대한 액세스를 허용해야 합니다.", + "description": "Note in the toolbar popup for file:// URLs" + }, + "InaccessibleFileHint": { + "message": "Stylus는 일부 파일 형식(예: pdf, json 파일 등)에 접근할 수 없습니다.", + "description": "Note in the toolbar popup for some file types that cannot be accessed" + }, + "updateAllCheckSucceededNoUpdate": { + "message": "이용 가능한 업데이트가 없습니다.", + "description": "Text that displays when an update all check completed and no updates are available" + }, + "updateAllCheckSucceededSomeEdited": { + "message": "로컬 수정 사항이 사라지는 것을 방지하기 위해, 일부 업데이트 가능한 스타일이 선택에서 누락되었을 수 있습니다. 이를 강제로 업데이트하려면 각각을 직접 선택하거나, 다른 전체 스타일 검사(따로 수정한 사항은 덮어씌워집니다)를 시행하세요.", + "description": "Text that displays when an update all check completed and no updates are available" + }, + "updateCheckFailBadResponseCode": { + "message": "업데이트 실패. 서버의 응답 에러코드는 $code$입니다.", + "description": "Text that displays when an update check failed because the response code indicates an error", + "placeholders": { + "code": { + "content": "$1" + } + } + }, + "updateCheckFailServerUnreachable": { + "message": "업데이트 실패. 서버와 연결할 수 없습니다.", + "description": "Text that displays when an update check failed because the update server is unreachable" + }, + "updateCheckHistory": { + "message": "업데이트 검사 기록", + "description": "" + }, + "updateCheckManualUpdateForce": { + "message": "업데이트 설치 (로컬 수정 사항은 덮어씌워집니다)", + "description": "Additional text displayed when an update check skipped updating the style to avoid losing local modifications" + }, + "updateCheckManualUpdateHint": { + "message": "로컬 수정 사항을 무시하고 업데이트를 덮어씌웁니다.", + "description": "Additional text displayed when an update check skipped updating the style to avoid losing local modifications" + }, + "updateCheckSkippedLocallyEdited": { + "message": "이 스타일은 로컬에서 수정되었습니다.", + "description": "Text that displays when an update check skipped updating the style to avoid losing local modifications" + }, + "updateCheckSkippedMaybeLocallyEdited": { + "message": "이 스타일은 로컬에서 수정되었을 수 있습니다.", + "description": "Text that displays when an update check skipped updating the style to avoid losing possible local modifications" + }, + "updateCheckSucceededNoUpdate": { + "message": "스타일이 최신 상태입니다.", + "description": "Text that displays when an update check completed and no update is available" + }, + "updateCompleted": { + "message": "업데이트가 완료됐습니다.", + "description": "Text that displays when an update completed" + }, + "updatesCurrentlyInstalled": { + "message": "설치된 업데이트:", + "description": "Text that displays when an update is installed on options page. Followed by the number of currently installed updates." + }, + "usercssAvoidOverwriting": { + "message": "기존에 존재하는 스타일이 덮어씌워지는 것을 방지하려면 @name이나 @namespace 값을 변경하세요.", + "description": "Shown in a message box when attempting to save a new Usercss style that would overwrite an existing one." + }, + "usercssConfigIncomplete": { + "message": "설정 대화상자가 열리고 나서 스타일이 수정되거나 삭제되었습니다. 스타일의 메타 데이터와 충돌이 일어나는 것을 방지하기 위해, 현재 변수들은 저장되지 않습니다:", + "description": "" + }, + "usercssEditorNamePlaceholder": { + "message": "코드에 @name을 지정하세요", + "description": "Placeholder text for the empty name input field when creating a new Usercss style" + }, + "usercssReplaceTemplateConfirmation": { + "message": "현재 코드로 새 Usercss 스타일의 기본 템플릿을 대체하시겠습니까?", + "description": "" + }, + "usercssReplaceTemplateName": { + "message": "@name을 비우면 기본 템플릿이 대체됩니다.", + "description": "The text shown after @name when creating a new Usercss style" + }, + "usercssReplaceTemplateSectionBody": { + "message": "코드를 여기 입력하세요", + "description": "The code placeholder comment in a new style created by clicking 'Write style' in the popup" + }, + "versionInvalidOlder": { + "message": "설치되어 있는 스타일이 더 높은 버전입니다.", + "description": "Displayed when the version of style is older than the installed one" + }, + "writeStyleFor": { + "message": "스타일 작성 대상:", + "description": "Label for toolbar pop-up that precedes the links to write a new style" + }, + "writeStyleForURL": { + "message": "현재 URL", + "description": "Text for link in toolbar pop-up to write a new style for the current URL" + }, + "syncDropboxStyles": { + "message": "Dropbox 내보내기", + "description": "" + }, + "syncDropboxDeprecated": { + "message": "Dropbox 가져오기/내보내기는 옵션 페이지의 더 발전된 스타일 동기화 기능으로 대체되었습니다.", + "description": "" + }, + "retrieveDropboxSync": { + "message": "Dropbox 가져오기", + "description": "" + }, + "overwriteFileExport": { + "message": "기존 파일을 덮어쓰시겠습니까?", + "description": "" + }, + "exportSavedSuccess": { + "message": "파일 저장에 성공했습니다.", + "description": "" + }, + "noFileToImport": { + "message": "스타일을 가져오려면, 먼저 내보내야 합니다.", + "description": "" + }, + "connectingDropbox": { + "message": "Dropbox 연결 중...", + "description": "" + }, + "connectingDropboxNotAllowed": { + "message": "Dropbox 연결은 웹 스토어에서 직접 설치한 앱에서만 가능합니다.", + "description": "" + }, + "gettingStyles": { + "message": "모든 스타일 가져오는 중...", + "description": "" + }, + "zipStyles": { + "message": "스타일 압축 중...", + "description": "" + }, + "unzipStyles": { + "message": "스타일 압축 푸는 중...", + "description": "" + }, + "readingStyles": { + "message": "스타일 읽어들이는 중...", + "description": "" + }, + "uploadingFile": { + "message": "파일 업로드 중...", + "description": "" + } +} \ No newline at end of file From 39c62e684e85b024447fe95ed66023e8124a5041 Mon Sep 17 00:00:00 2001 From: tophf Date: Mon, 1 Jun 2020 03:14:42 +0300 Subject: [PATCH 15/43] throttle DOM updates in manager while importing (#950) --- manage/import-export.js | 6 ++++++ manage/manage.js | 44 +++++++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/manage/import-export.js b/manage/import-export.js index 18abd480..0c1c3bd8 100644 --- a/manage/import-export.js +++ b/manage/import-export.js @@ -1,11 +1,15 @@ /* global messageBox styleSectionsEqual API onDOMready tryJSONparse scrollElementIntoView $ $$ API $create t animateElement styleJSONseemsValid */ +/* exported bulkChangeQueue bulkChangeTime */ 'use strict'; const STYLISH_DUMP_FILE_EXT = '.txt'; const STYLUS_BACKUP_FILE_EXT = '.json'; +let bulkChangeQueue = []; +let bulkChangeTime = 0; + onDOMready().then(() => { $('#file-all-styles').onclick = event => { event.preventDefault(); @@ -136,6 +140,8 @@ function importFromString(jsonString) { items.push({info, item}); } }); + bulkChangeQueue.length = 0; + bulkChangeTime = performance.now(); return API.importManyStyles(items.map(i => i.item)) .then(styles => { for (let i = 0; i < styles.length; i++) { diff --git a/manage/manage.js b/manage/manage.js index bbec8d5b..b6ccfef6 100644 --- a/manage/manage.js +++ b/manage/manage.js @@ -8,6 +8,7 @@ global messageBox getStyleWithNoCode URLS enforceInputRange t tWordBreak formatDate getOwnTab getActiveTab openURL animateElement sessionStorageHash debounce scrollElementIntoView CHROME VIVALDI FIREFOX router + bulkChangeTime:true bulkChangeQueue */ 'use strict'; @@ -16,6 +17,8 @@ let installed; const ENTRY_ID_PREFIX_RAW = 'style-'; const ENTRY_ID_PREFIX = '#' + ENTRY_ID_PREFIX_RAW; +const BULK_THROTTLE_MS = 100; + const newUI = { enabled: prefs.get('manage.newUI'), favicons: prefs.get('manage.newUI.favicons'), @@ -62,11 +65,13 @@ function onRuntimeMessage(msg) { switch (msg.method) { case 'styleUpdated': case 'styleAdded': - API.getStyle(msg.style.id, true) - .then(style => handleUpdate(style, msg)); - break; case 'styleDeleted': - handleDelete(msg.style.id); + bulkChangeQueue.push(msg); + if (performance.now() - bulkChangeTime < BULK_THROTTLE_MS) { + debounce(handleBulkChange, BULK_THROTTLE_MS); + } else { + handleBulkChange(); + } break; case 'styleApply': case 'styleReplaceAll': @@ -529,6 +534,26 @@ Object.assign(handleEvent, { }); +function handleBulkChange() { + for (const msg of bulkChangeQueue) { + const {id} = msg.style; + if (msg.method === 'styleDeleted') { + handleDelete(id); + bulkChangeTime = performance.now(); + } else { + handleUpdateForId(id, msg); + } + } + bulkChangeQueue.length = 0; +} + +function handleUpdateForId(id, opts) { + return API.getStyle(id, true).then(style => { + handleUpdate(style, opts); + bulkChangeTime = performance.now(); + }); +} + function handleUpdate(style, {reason, method} = {}) { if (reason === 'editPreview' || reason === 'editPreviewEnd') return; let entry; @@ -677,15 +702,14 @@ function onVisibilityChange() { // page restored without reloading via history navigation (currently only in FF) // the catch here is that DOM may be outdated so we'll at least refresh the just edited style // assuming other changes aren't important enough to justify making a complicated DOM sync - case 'visible': - if (sessionStorage.justEditedStyleId) { - API.getStyle(Number(sessionStorage.justEditedStyleId), true) - .then(style => { - handleUpdate(style, {method: 'styleUpdated'}); - }); + case 'visible': { + const id = sessionStorage.justEditedStyleId; + if (id) { + handleUpdateForId(Number(id), {method: 'styleUpdated'}); delete sessionStorage.justEditedStyleId; } break; + } // going away case 'hidden': history.replaceState({scrollY: window.scrollY}, document.title); From a1b0eb7df1f05c0a9e2ee0ecf204a5ab192a219a Mon Sep 17 00:00:00 2001 From: tophf Date: Mon, 1 Jun 2020 07:54:49 +0300 Subject: [PATCH 16/43] show sublime bookmarks (#951) * remove redundant setGutterMarker optimization * show sublime bookmarks --- edit/codemirror-default.css | 6 ++++++ edit/codemirror-default.js | 36 ++++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/edit/codemirror-default.css b/edit/codemirror-default.css index 61dd10f2..6adbf962 100644 --- a/edit/codemirror-default.css +++ b/edit/codemirror-default.css @@ -18,6 +18,12 @@ outline: -webkit-focus-ring-color auto 5px; outline-offset: -2px; } +.CodeMirror-bookmark { + background: linear-gradient(to right, currentColor, transparent); + position: absolute; + width: 2em; + opacity: .5; +} @supports (-moz-appearance:none) { /* restrict to FF */ .CodeMirror-focused { diff --git a/edit/codemirror-default.js b/edit/codemirror-default.js index 3f8afc6d..4b43b378 100644 --- a/edit/codemirror-default.js +++ b/edit/codemirror-default.js @@ -8,6 +8,8 @@ prefs.reset('editor.keyMap'); } + const CM_BOOKMARK = 'CodeMirror-bookmark'; + const CM_BOOKMARK_GUTTER = CM_BOOKMARK + 'gutter'; const defaults = { autoCloseBrackets: prefs.get('editor.autoCloseBrackets'), mode: 'css', @@ -15,6 +17,7 @@ lineWrapping: prefs.get('editor.lineWrapping'), foldGutter: true, gutters: [ + CM_BOOKMARK_GUTTER, 'CodeMirror-linenumbers', 'CodeMirror-foldgutter', ...(prefs.get('editor.linter') ? ['CodeMirror-lint-markers'] : []), @@ -242,22 +245,27 @@ CodeMirror.commands[name] = (...args) => editor[name](...args); } - // speedup: reuse the old folding marks - // TODO: remove when https://github.com/codemirror/CodeMirror/pull/6010 is shipped in /vendor - const {setGutterMarker} = CodeMirror.prototype; - CodeMirror.prototype.setGutterMarker = function (line, gutterID, value) { - const o = this.state.foldGutter.options; - if (typeof o.indicatorOpen === 'string' || - typeof o.indicatorFolded === 'string') { - const old = line.gutterMarkers && line.gutterMarkers[gutterID]; - // old className can contain other names set by CodeMirror so we'll use classList - if (old && value && old.classList.contains(value.className) || - !old && !value) { - return line; - } + const elBookmark = document.createElement('div'); + elBookmark.className = CM_BOOKMARK; + elBookmark.textContent = '\u00A0'; + const clearMarker = function () { + const line = this.lines[0]; + CodeMirror.TextMarker.prototype.clear.apply(this); + if (!line.markedSpans.some(span => span.marker.sublimeBookmark)) { + this.doc.setGutterMarker(line, CM_BOOKMARK_GUTTER, null); } - return setGutterMarker.apply(this, arguments); }; + const {markText} = CodeMirror.prototype; + Object.assign(CodeMirror.prototype, { + markText() { + const marker = markText.apply(this, arguments); + if (marker.sublimeBookmark) { + this.doc.setGutterMarker(marker.lines[0], CM_BOOKMARK_GUTTER, elBookmark.cloneNode(true)); + marker.clear = clearMarker; + } + return marker; + }, + }); // CodeMirror convenience commands Object.assign(CodeMirror.commands, { From 60d314b165c34da6adbf2e34fb7bb8d09da16758 Mon Sep 17 00:00:00 2001 From: narcolepticinsomniac Date: Tue, 2 Jun 2020 02:33:07 -0400 Subject: [PATCH 17/43] Improve delete confirmation autofocus visual indication (#956) --- manage/manage.js | 2 ++ msgbox/msgbox.css | 9 +++++++++ popup/popup.css | 7 +++++++ 3 files changed, 18 insertions(+) diff --git a/manage/manage.js b/manage/manage.js index b6ccfef6..26c26c01 100644 --- a/manage/manage.js +++ b/manage/manage.js @@ -454,6 +454,8 @@ Object.assign(handleEvent, { API.deleteStyle(id); } }); + const deleteButton = $('#message-box-buttons > button'); + if (deleteButton) deleteButton.removeAttribute('data-focused-via-click'); }, external(event) { diff --git a/msgbox/msgbox.css b/msgbox/msgbox.css index 0afaa940..32e6c865 100644 --- a/msgbox/msgbox.css +++ b/msgbox/msgbox.css @@ -134,6 +134,15 @@ text-align: center; } +.danger #message-box-buttons > button:not([data-focused-via-click]):first-child:focus { + outline: red auto 1px; +} + +/* FF ignores color with 'auto' */ +.firefox .danger #message-box-buttons > button:not([data-focused-via-click]):first-child:focus { + outline: red solid 1px; +} + .non-windows #message-box-buttons { text-align: right; direction: rtl; diff --git a/popup/popup.css b/popup/popup.css index 9e0e509a..5706b877 100644 --- a/popup/popup.css +++ b/popup/popup.css @@ -341,6 +341,13 @@ a.configure[target="_blank"] .svg-icon.config { overflow: hidden; text-overflow: ellipsis; } +#confirm button[data-cmd="ok"]:not([data-focused-via-click]):focus { + outline: red auto 1px; +} +/* FF ignores color with 'auto' */ +.firefox #confirm button[data-cmd="ok"]:not([data-focused-via-click]):focus { + outline: red solid 1px; +} .menu-items-wrapper { width: 80%; max-height: 80%; From 015bda764a8f95492e5e4f92a41fc5ef40478447 Mon Sep 17 00:00:00 2001 From: tophf Date: Tue, 2 Jun 2020 11:08:02 +0300 Subject: [PATCH 18/43] update deps + split devdeps/deps (#953) --- package-lock.json | 2789 ++++++++--------- package.json | 24 +- vendor/codemirror/README.md | 2 +- vendor/codemirror/addon/dialog/dialog.js | 4 +- vendor/codemirror/addon/edit/matchbrackets.js | 12 +- vendor/codemirror/addon/hint/show-hint.js | 27 +- vendor/codemirror/addon/lint/lint.js | 29 +- .../codemirror/addon/search/searchcursor.js | 2 +- vendor/codemirror/keymap/emacs.js | 3 +- vendor/codemirror/keymap/sublime.js | 2 + vendor/codemirror/keymap/vim.js | 63 +- vendor/codemirror/lib/codemirror.css | 10 +- vendor/codemirror/lib/codemirror.js | 76 +- vendor/codemirror/mode/css/css.js | 181 +- .../codemirror/mode/javascript/javascript.js | 19 +- vendor/codemirror/mode/stylus/stylus.js | 2 +- vendor/codemirror/theme/zenburn.css | 2 +- vendor/uuid/LICENSE | 2 +- vendor/uuid/README.md | 2 +- vendor/uuid/uuid.min.js | 2 +- 20 files changed, 1559 insertions(+), 1694 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2ee26f60..e5542949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,27 +1,46 @@ { "name": "Stylus", - "version": "1.5.9", + "version": "1.5.12", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.1" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.1", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/polyfill": { @@ -44,13 +63,13 @@ } }, "@babel/runtime-corejs3": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.4.tgz", - "integrity": "sha512-+wpLqy5+fbQhvbllvlJEVRIpYj+COUWnnsm+I4jZlA8Lo7/MJmBhGTCHyk1/RWfOqBRJ2MbadddG6QltTKTlrg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz", + "integrity": "sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg==", "dev": true, "requires": { "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "@cliqz-oss/firefox-client": { @@ -71,21 +90,12 @@ "requires": { "@cliqz-oss/firefox-client": "0.3.1", "es6-promise": "^2.0.1" - }, - "dependencies": { - "es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", - "dev": true - } } }, "@eight04/read-write-lock": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@eight04/read-write-lock/-/read-write-lock-0.1.0.tgz", - "integrity": "sha512-a/94gK+/GRZeTyFmJCIPlWGlgpOT3qmIRp5ByJkoxtkpspSsMbdYZKd/wNXdPYf4auRyepEM3+EkawQnscjJXQ==", - "dev": true + "integrity": "sha512-a/94gK+/GRZeTyFmJCIPlWGlgpOT3qmIRp5ByJkoxtkpspSsMbdYZKd/wNXdPYf4auRyepEM3+EkawQnscjJXQ==" }, "@sindresorhus/is": { "version": "0.14.0", @@ -102,6 +112,12 @@ "defer-to-connect": "^1.0.1" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -115,9 +131,9 @@ "dev": true }, "@types/node": { - "version": "13.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.1.tgz", - "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==", + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.6.tgz", + "integrity": "sha512-FbNmu4F67d3oZMWBV6Y4MaPER+0EpE9eIYf2yaHhCWovc1dlXCZkqGX4NLHfVVr6umt20TNBdRzrNJIzIKfdbw==", "dev": true }, "JSONSelect": { @@ -129,19 +145,18 @@ "JSV": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "dev": true + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" }, "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", "dev": true }, "acorn-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", - "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "adbkit": { @@ -200,24 +215,25 @@ } }, "addons-linter": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-1.20.0.tgz", - "integrity": "sha512-EIyJnIkvXhBKgOzVFR873uGa4ny07odIl8i8qWxHAuVJWM/ZQtLouAbndA+cVRDbD66sK6HsO1oWN6WkdCr/uA==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-1.23.0.tgz", + "integrity": "sha512-4ozo5E+KnsU9h94J496WQs6NYSnofxtw5/Sy63PmeB5FJ3KWERx1S9D8A+ixMAIMgaSiexHpp5alp9yjE0t4gg==", "dev": true, "requires": { - "ajv": "6.10.2", + "@babel/runtime": "7.9.2", + "ajv": "6.12.0", "ajv-merge-patch": "4.1.0", "chalk": "3.0.0", "cheerio": "1.0.0-rc.3", "columnify": "1.5.4", "common-tags": "1.8.0", "deepmerge": "4.2.2", - "dispensary": "0.49.0", - "es6-promisify": "6.0.2", + "dispensary": "0.51.2", + "es6-promisify": "6.1.0", "eslint": "5.16.0", "eslint-plugin-no-unsafe-innerhtml": "1.0.16", "eslint-visitor-keys": "1.1.0", - "espree": "6.1.2", + "espree": "6.2.1", "esprima": "4.0.1", "first-chunk-stream": "3.0.0", "fluent-syntax": "0.13.0", @@ -225,36 +241,44 @@ "glob": "7.1.6", "is-mergeable-object": "1.1.1", "jed": "1.1.1", - "mdn-browser-compat-data": "1.0.3", - "os-locale": "4.0.0", - "pino": "5.15.0", - "postcss": "7.0.26", + "mdn-browser-compat-data": "1.0.15", + "os-locale": "5.0.0", + "pino": "6.0.0", + "postcss": "7.0.27", "probe-image-size": "5.0.0", - "regenerator-runtime": "0.13.3", "relaxed-json": "1.0.3", - "semver": "7.1.1", + "semver": "7.1.3", "source-map-support": "0.5.16", "strip-bom-stream": "4.0.0", "tosource": "1.0.0", "upath": "1.2.0", "whatwg-url": "8.0.0", - "yargs": "15.1.0", + "yargs": "15.3.1", "yauzl": "2.10.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -316,10 +340,31 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "es6-promisify": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz", - "integrity": "sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "eslint": { @@ -445,11 +490,33 @@ "estraverse": "^4.1.1" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true + } + } }, "figures": { "version": "2.0.0", @@ -566,6 +633,16 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -587,6 +664,38 @@ "mimic-fn": "^1.0.0" } }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -598,9 +707,24 @@ } }, "semver": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", - "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "string-width": { @@ -636,6 +760,77 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } } } }, @@ -646,15 +841,18 @@ "dev": true }, "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "dev": true, + "requires": { + "debug": "4" + } }, "agentkeepalive": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", - "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz", + "integrity": "sha512-waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==", "dev": true, "requires": { "debug": "^4.1.0", @@ -673,9 +871,9 @@ } }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -709,6 +907,12 @@ "string-width": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -731,16 +935,33 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -785,74 +1006,19 @@ } } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, "archiver": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-4.0.1.tgz", + "integrity": "sha512-/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q==", "dev": true, "requires": { "archiver-utils": "^2.1.0", "async": "^2.6.3", "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.2" - }, - "dependencies": { - "bl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", - "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", - "dev": true, - "requires": { - "readable-stream": "^3.0.1" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", - "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", - "dev": true, - "requires": { - "bl": "^3.0.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } + "glob": "^7.1.6", + "readable-stream": "^3.6.0", + "tar-stream": "^2.1.2", + "zip-stream": "^3.0.1" } }, "archiver-utils": { @@ -873,25 +1039,20 @@ "readable-stream": "^2.0.0" }, "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } - }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true } } }, @@ -1012,12 +1173,24 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -1025,9 +1198,9 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, "babel-code-frame": { @@ -1151,9 +1324,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "bcrypt-pbkdf": { @@ -1171,24 +1344,23 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", "dev": true, "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } } }, "bluebird": { @@ -1311,9 +1483,9 @@ } }, "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -1373,43 +1545,44 @@ } }, "cacache": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-14.0.0.tgz", - "integrity": "sha512-+Nr/BnA/tjAUXza9gH8F+FSP+1HvWqCKt4c95dQr4EDVJVafbzmPZpLKCkLYexs6vSd2B/1TOXrAoNnqVPfvRA==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", "dev": true, "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.2", "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "minipass": "^3.0.0", + "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", + "move-file": "^2.0.0", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "tar": "^6.0.0", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", "unique-filename": "^1.1.1" }, "dependencies": { - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", - "dev": true + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } } } }, @@ -1445,15 +1618,6 @@ "responselike": "^1.0.2" }, "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -1498,14 +1662,55 @@ "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "chardet": { @@ -1549,561 +1754,13 @@ }, "dependencies": { "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } + "nan": "^2.12.1" } }, "glob-parent": { @@ -2130,22 +1787,33 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "chrome-launcher": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.12.0.tgz", - "integrity": "sha512-rBUP4tvWToiileDi3UR0SbWKoUoDCYTRmVND2sdoBL1xANBgVz8V9h1yQluj3MEQaBJg0fRw7hW82uOPrJus7A==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.1.tgz", + "integrity": "sha512-q8UiCNAknw6kCUvCVBTAEw1BwT0vaxabCrSjN3B/NWohp12YBD9+DalymYElSoKRD4KpVSu4CCl0us4v/J81Sg==", "dev": true, "requires": { "@types/node": "*", "is-wsl": "^2.1.0", "lighthouse-logger": "^1.0.0", - "mkdirp": "0.5.1", - "rimraf": "^2.6.1" + "mkdirp": "^0.5.3", + "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ci-info": { @@ -2205,9 +1873,9 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "cliui": { @@ -2219,17 +1887,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "clone": { @@ -2260,10 +1917,9 @@ "dev": true }, "codemirror": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.51.0.tgz", - "integrity": "sha512-vyuYYRv3eXL0SCuZA4spRFlKNzQAewHcipRQCOKgRy7VNAvZxTKzbItdbCl4S5AgPZ5g3WkHp+ibWQwv9TLG7Q==", - "dev": true + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.54.0.tgz", + "integrity": "sha512-Pgf3surv4zvw+KaW3doUU7pGjF0BPU8/sj7eglWJjzni46U/DDW8pu3nZY0QgQKUcICDXRkq8jZmq0y6KhxM3Q==" }, "collection-visit": { "version": "1.0.0", @@ -2351,24 +2007,30 @@ "dev": true }, "compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-3.0.0.tgz", + "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", "dev": true, "requires": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.7" }, "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } } } @@ -2389,15 +2051,32 @@ "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, "configstore": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.0.tgz", - "integrity": "sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^5.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", @@ -2405,20 +2084,6 @@ "xdg-basedir": "^4.0.0" } }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2432,9 +2097,9 @@ "dev": true }, "core-js-pure": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz", - "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", "dev": true }, "core-util-is": { @@ -2453,26 +2118,24 @@ } }, "crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", "dev": true, "requires": { "crc": "^3.4.4", - "readable-stream": "^2.0.0" + "readable-stream": "^3.4.0" } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "crypto-random-string": { @@ -2522,7 +2185,6 @@ "version": "0.4.5", "resolved": "https://registry.npmjs.org/db-to-cloud/-/db-to-cloud-0.4.5.tgz", "integrity": "sha512-3E5eYVIlZmX0ZRgSZ3WJF+lxs8eCFOJWruw8GLHbKDGK5tIZ13Bxsge+eFXbYBQUidzW7y3xuxD8MdpjDLY7eQ==", - "dev": true, "requires": { "@eight04/read-write-lock": "^0.1.0", "universal-base64": "^2.1.0" @@ -2679,12 +2341,6 @@ } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2704,25 +2360,50 @@ "dev": true }, "dispensary": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/dispensary/-/dispensary-0.49.0.tgz", - "integrity": "sha512-szH0vDORmGWEfwQgIqrhmrMpSGU2yXL3z7oe0NGx4sCbmnJdXXr5SQvRccPNCPrRuRPn2zPIITvwD9Lf+pcOew==", + "version": "0.51.2", + "resolved": "https://registry.npmjs.org/dispensary/-/dispensary-0.51.2.tgz", + "integrity": "sha512-liUDx/g1xFEBFoOL6308Vr0aYAZlGAyXGcOvuXVa/6qVBZT4QZrv4pVNeb5QOeD5C/Flta+A+qTnLkLnhgs40g==", "dev": true, "requires": { - "async": "~3.1.0", + "async": "~3.2.0", "natural-compare-lite": "~1.4.0", - "pino": "~5.15.0", + "pino": "~6.0.0", "request": "~2.88.0", "sha.js": "~2.4.4", "source-map-support": "~0.5.4", - "yargs": "~15.1.0" + "yargs": "~15.3.0" }, "dependencies": { "async": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz", - "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } } } }, @@ -2785,15 +2466,6 @@ "is-obj": "^2.0.0" } }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "dtrace-provider": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", @@ -2846,23 +2518,23 @@ } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "endent": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.0.tgz", - "integrity": "sha512-V9cYHc4IcnE9hYCuZat9YVUxIsK3gLB3gEUnr07rqElI+3TB+yC/wmMTNZ7L4xDmDFwg4Lypl5Gc3i+23komhA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", "dev": true, "requires": { "dedent": "^0.7.0", "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.3" + "objectorarray": "^1.0.4" } }, "entities": { @@ -2887,9 +2559,9 @@ } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", @@ -2965,19 +2637,16 @@ "dev": true }, "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", + "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", "dev": true }, "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz", + "integrity": "sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==", + "dev": true }, "es6-set": { "version": "0.1.5", @@ -3045,22 +2714,22 @@ } }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz", + "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", + "eslint-utils": "^2.0.0", "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "espree": "^7.0.0", + "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", @@ -3073,26 +2742,25 @@ "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", + "levn": "^0.4.1", "lodash": "^4.17.14", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3107,9 +2775,9 @@ }, "dependencies": { "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", "dev": true }, "acorn-jsx": { @@ -3324,6 +2992,16 @@ "number-is-nan": "^1.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3336,6 +3014,26 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "progress": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", @@ -3352,15 +3050,6 @@ "onetime": "^1.0.0" } }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "run-async": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", @@ -3461,6 +3150,15 @@ } } }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, "write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", @@ -3483,9 +3181,9 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -3498,13 +3196,13 @@ "dev": true }, "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", + "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", "dev": true, "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" } }, @@ -3515,12 +3213,20 @@ "dev": true }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } } }, "esrecurse": { @@ -3561,18 +3267,20 @@ "dev": true }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz", + "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, "exit-hook": { @@ -3819,16 +3527,10 @@ "pend": "~1.2.0" } }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -3843,13 +3545,6 @@ "flat-cache": "^2.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -3884,9 +3579,9 @@ } }, "firefox-profile": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.0.tgz", - "integrity": "sha512-3d7JPnFC3GrwGW8wonAqy2E4YCI7A8MO7yVDkqS09uQ3tLvMLCY3Ytt4ntvVXvyzjVMRmrLW9W/CubnnzrdLCA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.1.tgz", + "integrity": "sha512-8q7DnwVIXvuJuBm1shr5ivRh0Ih2ytWwOIMwHInDSlVyrjQVXy7Ik0frItDdWb/P5CIpQFcMk9fPsUwNqi2lyQ==", "dev": true, "requires": { "adm-zip": "~0.4.x", @@ -3941,6 +3636,38 @@ "lodash": "^4.14.0" } }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -3952,6 +3679,15 @@ "universalify": "^0.1.0" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -3961,6 +3697,42 @@ "remove-trailing-separator": "^1.0.1" } }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -3996,17 +3768,6 @@ "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, "flatstr": { @@ -4016,9 +3777,9 @@ "dev": true }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "fluent-syntax": { @@ -4027,15 +3788,6 @@ "integrity": "sha512-0Bk1AsliuYB550zr4JV9AYhsETsD3ELXUQzdXGJfIc1Ni/ukAfBdQInDhVMYJUaT2QxoamNslwkYF7MlOrPUwg==", "dev": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4075,22 +3827,15 @@ "dev": true }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", "dev": true, "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true - } + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, "fs-minipass": { @@ -4102,18 +3847,6 @@ "minipass": "^3.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4205,9 +3938,9 @@ "dev": true }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { "pump": "^3.0.0" @@ -4239,6 +3972,12 @@ "shelljs": "0.7.7" }, "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, "shelljs": { "version": "0.7.7", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", @@ -4267,9 +4006,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -4285,9 +4024,9 @@ } }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -4322,12 +4061,23 @@ "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "graceful-readlink": { @@ -4387,8 +4137,7 @@ "has-color": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" }, "has-flag": { "version": "3.0.0", @@ -4452,34 +4201,22 @@ "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", - "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-Z2EICWNJou7Tr9Bd2M2UqDJq3A9F2ePG9w3lIpjoyuSyXFP9QbniJVu3XQYytuw5ebmG7dXSXO9PgAjJG8DDKA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "http-proxy-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz", - "integrity": "sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { - "agent-base": "5", + "@tootallnate/once": "1", + "agent-base": "6", "debug": "4" } }, @@ -4495,15 +4232,21 @@ } }, "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "agent-base": "5", + "agent-base": "6", "debug": "4" } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -4523,15 +4266,9 @@ } }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "ignore": { @@ -4597,24 +4334,76 @@ "dev": true }, "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", + "chalk": "^3.0.0", "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.15", "mute-stream": "0.0.8", - "run-async": "^2.2.0", + "run-async": "^2.4.0", "rxjs": "^6.5.3", "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "interpret": { @@ -4624,9 +4413,9 @@ "dev": true }, "invert-kv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.0.tgz", - "integrity": "sha512-JzF8q2BeZA1ZkE3XROwRpoMQ9ObMgTtp0JH8EXewlbkikuOj2GPLIpUipdO+VL8QsTr2teAJD02EFGGL5cO7uw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true }, "ip": { @@ -4751,6 +4540,12 @@ } } }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -4779,9 +4574,9 @@ } }, "is-installed-globally": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { "global-dirs": "^2.0.1", @@ -4866,12 +4661,6 @@ "isobject": "^3.0.1" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -4900,9 +4689,9 @@ "dev": true }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-symbol": { @@ -4933,10 +4722,13 @@ "dev": true }, "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } }, "is-yarn-global": { "version": "0.3.0", @@ -4997,9 +4789,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5067,12 +4859,13 @@ "dev": true }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, "jsonify": { @@ -5085,7 +4878,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz", "integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==", - "dev": true, "requires": { "JSV": "^4.0.x", "nomnom": "^1.5.x" @@ -5188,6 +4980,23 @@ "dev": true, "requires": { "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, "lcid": { @@ -5201,17 +5010,16 @@ }, "less-bundle": { "version": "github:openstyles/less-bundle#ef6ad8536047fc391f3fb5ffe5d22fbeccf81a96", - "from": "github:openstyles/less-bundle#v0.1.0", - "dev": true + "from": "github:openstyles/less-bundle#v0.1.0" }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "lighthouse-logger": { @@ -5360,13 +5168,12 @@ "lz-string-unsafe": { "version": "1.4.4-fork-1", "resolved": "https://registry.npmjs.org/lz-string-unsafe/-/lz-string-unsafe-1.4.4-fork-1.tgz", - "integrity": "sha512-b6Ixv8tfyiZ8b0wb6VdJSLDHs3E+UbeNo81n1tTOjzXWy8ys2fleV9T3buVBIeKiMnBMo8c87FvAsRilS+BQhw==", - "dev": true + "integrity": "sha512-b6Ixv8tfyiZ8b0wb6VdJSLDHs3E+UbeNo81n1tTOjzXWy8ys2fleV9T3buVBIeKiMnBMo8c87FvAsRilS+BQhw==" }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -5381,26 +5188,26 @@ } }, "make-fetch-happen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-7.1.1.tgz", - "integrity": "sha512-7fNjiOXNZhNGQzG5P15nU97aZQtzPU2GVgVd7pnqnl5gnpLzMAD8bAe5YG4iW2s0PTqaZy9xGv4Wfqe872kRNQ==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz", + "integrity": "sha512-rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==", "dev": true, "requires": { "agentkeepalive": "^4.1.0", - "cacache": "^14.0.0", - "http-cache-semantics": "^4.0.3", - "http-proxy-agent": "^3.0.0", - "https-proxy-agent": "^4.0.0", + "cacache": "^15.0.0", + "http-cache-semantics": "^4.0.4", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^5.1.1", - "minipass": "^3.0.0", + "minipass": "^3.1.3", "minipass-collect": "^1.0.2", "minipass-fetch": "^1.1.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^7.0.1" + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" } }, "map-age-cleaner": { @@ -5434,9 +5241,9 @@ "dev": true }, "mdn-browser-compat-data": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.3.tgz", - "integrity": "sha512-5n7c20IVrUiuOPSuhbkd5xoJPSzEEGsoMrmrdEtPHIw6gRPzonydcsguAmqGfSBd4d2DRoDQg533sijLUpeJLg==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.15.tgz", + "integrity": "sha512-0jxT4ZqqCzJJfktX9d4NKgfRENy60kFzhVNV0mXNHvlnw8KrMe2cKOlEKs/Bz+odlgO0rRZAxU0OKiptqVhAXg==", "dev": true, "requires": { "extend": "3.0.2" @@ -5453,6 +5260,12 @@ "p-is-promise": "^2.1.0" } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -5475,18 +5288,18 @@ } }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.43.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -5517,9 +5330,9 @@ "dev": true }, "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -5557,9 +5370,9 @@ } }, "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", + "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", "dev": true, "requires": { "minipass": "^3.0.0" @@ -5606,41 +5419,36 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" }, "dependencies": { "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", + "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==", "dev": true, "optional": true }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "path-exists": "^4.0.0" } }, "ms": { @@ -5718,9 +5526,9 @@ } }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "dev": true, "optional": true }, @@ -5821,6 +5629,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -5828,7 +5645,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "dev": true, "requires": { "chalk": "~0.4.0", "underscore": "~1.6.0" @@ -5837,14 +5653,12 @@ "ansi-styles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" }, "chalk": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, "requires": { "ansi-styles": "~1.0.0", "has-color": "~0.1.0", @@ -5854,8 +5668,7 @@ "strip-ansi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" } } }, @@ -5872,12 +5685,12 @@ "dev": true }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" } }, "nth-check": { @@ -5945,10 +5758,14 @@ "dev": true }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } }, "object-keys": { "version": "1.1.1", @@ -5987,13 +5804,10 @@ } }, "objectorarray": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.3.tgz", - "integrity": "sha512-kPoflSYkAf/Onvjr4ZLaq37vDuOXjVzfwLCRuORRzYGdXkHa/vacPT0RgR+KmtkwOYFcxTMM62BRrZk8GGKHjw==", - "dev": true, - "requires": { - "tape": "^4.8.0" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", + "dev": true }, "once": { "version": "1.4.0", @@ -6023,17 +5837,17 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "ordered-json": { @@ -6058,12 +5872,12 @@ "dev": true }, "os-locale": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-4.0.0.tgz", - "integrity": "sha512-HsSR1+2l6as4Wp2SGZxqLnuFHxVvh1Ir9pvZxyujsC13egZVe7P0YeBLN0ijQzM/twrO5To3ia3jzBXAvpMTEA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", + "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, "requires": { - "execa": "^1.0.0", + "execa": "^4.0.0", "lcid": "^3.0.0", "mem": "^5.0.0" } @@ -6092,12 +5906,6 @@ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", @@ -6105,9 +5913,9 @@ "dev": true }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6123,9 +5931,9 @@ } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -6224,9 +6032,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { @@ -6248,17 +6056,17 @@ "dev": true }, "pino": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-5.15.0.tgz", - "integrity": "sha512-7+FXMTA3H3sNP5+2miY2K9JKnAAW5GKuhHfNWsukFCsPprGQY3ctqpwbV74wAHW3Nl93cEEQ1G82MgOLM8P7TQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.0.0.tgz", + "integrity": "sha512-3RfX2L76o7v230FP1fZ3Fo/WX7Su+P1Ld+pvBm2j+MyUjtA/KqDYxMkzBqzcX3R00zbC7Gf/HqIzyuu3tgvi9Q==", "dev": true, "requires": { "fast-redact": "^2.0.0", "fast-safe-stringify": "^2.0.7", "flatstr": "^1.0.12", "pino-std-serializers": "^2.4.2", - "quick-format-unescaped": "^3.0.3", - "sonic-boom": "^0.7.5" + "quick-format-unescaped": "^4.0.1", + "sonic-boom": "^1.0.0" } }, "pino-std-serializers": { @@ -6280,9 +6088,9 @@ "dev": true }, "postcss": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", - "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -6290,6 +6098,28 @@ "supports-color": "^6.1.0" }, "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -6302,9 +6132,9 @@ } }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prepend-http": { @@ -6327,9 +6157,9 @@ } }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "progress": { @@ -6355,9 +6185,9 @@ } }, "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "pump": { @@ -6383,9 +6213,9 @@ "dev": true }, "quick-format-unescaped": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz", - "integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz", + "integrity": "sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==", "dev": true }, "rc": { @@ -6409,18 +6239,14 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { @@ -6432,6 +6258,23 @@ "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, "readline2": { @@ -6472,9 +6315,9 @@ } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true }, "regex-not": { @@ -6498,9 +6341,9 @@ } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "registry-auth-token": { @@ -6529,6 +6372,19 @@ "requires": { "chalk": "^2.4.2", "commander": "^2.6.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "remove-trailing-separator": { @@ -6655,15 +6511,6 @@ "signal-exit": "^3.0.2" } }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dev": true, - "requires": { - "through": "~2.3.4" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -6677,31 +6524,19 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "rx-lite": { "version": "3.1.2", @@ -6710,9 +6545,9 @@ "dev": true }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -6755,14 +6590,12 @@ "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, "semver-bundle": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/semver-bundle/-/semver-bundle-0.1.1.tgz", "integrity": "sha512-AXZEjNFlP6BzqRlWQNF3NBGsDw/clPcuUAk1mUl+ypnSplG20CDLQj5ofmaj40vlUHt40duxH3d/x/RXItLAHA==", - "dev": true, "requires": { "semver": "^5.5.0" } @@ -6787,8 +6620,7 @@ "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==" }, "set-blocking": { "version": "2.0.0", @@ -6830,18 +6662,18 @@ } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shell-quote": { @@ -6959,14 +6791,6 @@ "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "tough-cookie": { @@ -6978,13 +6802,19 @@ "psl": "^1.1.24", "punycode": "^1.4.1" } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "slice-ansi": { @@ -7151,32 +6981,23 @@ } }, "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "dev": true, "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - } + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" } }, "sonic-boom": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.6.tgz", - "integrity": "sha512-k9E2QQ4zxuVRLDW+ZW6ISzJs3wlEorVdmM7ApDgor7wsGKSDG5YGHsGmgLY4XYh4DMlr/2ap2BWAE7yTFJtWnQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.0.1.tgz", + "integrity": "sha512-o9tx+bonVEXSaPtptyXQXpP8l6UV9Bi3im2geZskvWw2a/o/hrbWI7EBbbv+rOx6Hubnzun9GgH4WfbgEA3MFQ==", "dev": true, "requires": { + "atomic-sleep": "^1.0.0", "flatstr": "^1.0.12" } }, @@ -7267,12 +7088,11 @@ } }, "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1", "minipass": "^3.1.1" } }, @@ -7372,48 +7192,48 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, - "string.prototype.trim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", - "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" } }, "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -7426,20 +7246,12 @@ } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } + "ansi-regex": "^5.0.0" } }, "strip-bom": { @@ -7467,29 +7279,27 @@ "strip-bom-buf": "^2.0.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true }, "stylelint-bundle": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/stylelint-bundle/-/stylelint-bundle-8.0.0.tgz", - "integrity": "sha512-kASuh8U4SbfDh12plCbwmIvttR8P/+Y33OwJ2t5GZuradF2Hk9dP27U5cPyqK8HAPw7wbr/LHYwkjQiSL7gh3A==", - "dev": true + "integrity": "sha512-kASuh8U4SbfDh12plCbwmIvttR8P/+Y33OwJ2t5GZuradF2Hk9dP27U5cPyqK8HAPw7wbr/LHYwkjQiSL7gh3A==" }, "stylus-lang-bundle": { "version": "0.54.5", "resolved": "https://registry.npmjs.org/stylus-lang-bundle/-/stylus-lang-bundle-0.54.5.tgz", - "integrity": "sha512-UGd0rNe1aiXAMzOUNiIoH7Y4qVN6poYHZTt/tM6vJ4UWS8negVxds4H25Rm+TDJH8clkd+R8n+3VIaa3C7LbVw==", - "dev": true + "integrity": "sha512-UGd0rNe1aiXAMzOUNiIoH7Y4qVN6poYHZTt/tM6vJ4UWS8negVxds4H25Rm+TDJH8clkd+R8n+3VIaa3C7LbVw==" }, "supports-color": { "version": "5.5.0", @@ -7521,6 +7331,12 @@ "string-width": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -7543,47 +7359,25 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - } - } - }, - "tape": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.0.tgz", - "integrity": "sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw==", - "dev": true, - "requires": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.0", - "object-inspect": "~1.7.0", - "resolve": "~1.14.2", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "tar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", - "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "requires": { - "chownr": "^1.1.3", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.0", @@ -7592,26 +7386,24 @@ }, "dependencies": { "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true } } }, "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", "dev": true, "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" } }, "term-size": { @@ -7740,9 +7532,9 @@ } }, "tr46": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.0.tgz", - "integrity": "sha512-LrErSqfhdUw73AC/eXV2fEmNkvgSYxfm5lvxnLvuVgoVDknvD28Pa5FeDGc8RuVouDxUD3GnHHFv7xnBp7As5w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", "dev": true, "requires": { "punycode": "^2.1.1" @@ -7755,9 +7547,9 @@ "dev": true }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "tunnel-agent": { @@ -7782,12 +7574,12 @@ "dev": true }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { @@ -7820,8 +7612,7 @@ "underscore": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" }, "union-value": { "version": "1.0.1", @@ -7865,13 +7656,12 @@ "universal-base64": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/universal-base64/-/universal-base64-2.1.0.tgz", - "integrity": "sha512-WeOkACVnIXJZr/qlv7++Rl1zuZOHN96v2yS5oleUuv8eJOs5j9M5U3xQEIoWqn1OzIuIcgw0fswxWnUVGDfW6g==", - "dev": true + "integrity": "sha512-WeOkACVnIXJZr/qlv7++Rl1zuZOHN96v2yS5oleUuv8eJOs5j9M5U3xQEIoWqn1OzIuIcgw0fswxWnUVGDfW6g==" }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true }, "unset-value": { @@ -8035,7 +7825,6 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/usercss-meta/-/usercss-meta-0.9.0.tgz", "integrity": "sha512-S6AuhI11jc2xh6DIx3xR+4EU5/YiV0lLIvDhJgE5BTJTkcBEXrScJUIKVvzApGRou3lSLV0Qi4fVbSsN9BR6Ig==", - "dev": true, "requires": { "semver-regex": "^2.0.0" } @@ -8047,15 +7836,14 @@ "dev": true }, "uuid": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.0-beta.0.tgz", - "integrity": "sha512-Am22LVM3UXB0DTzQAeDSsZwP5eyqjIhmff330hqkxGvIxX8RRrUYLtKJ0eYxiBgjeQdUaMONpBZbJachMShxBw==", - "dev": true + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", + "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==" }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "verror": { @@ -8070,12 +7858,12 @@ } }, "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", + "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", "dev": true, "requires": { - "chokidar": "^2.0.2", + "chokidar": "^2.1.8", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" } @@ -8090,9 +7878,9 @@ } }, "web-ext": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-4.1.0.tgz", - "integrity": "sha512-nhAeZ3BHI4rCT/J+s7JHg0U3G6qUMV8Bi44ohWm8X6GjlQV8tGcD6rkvN4Zk2zzMGaF9sHUOcRjyN79Ih8P/PQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-4.2.0.tgz", + "integrity": "sha512-WM03BEeC7CVw4PV8lwXKO6ag00MYdwMMe1SAJJfxz0uNMbTu7cYoH6Ia+e2DnAzpeOJLKCeL1IXvgxZSwVp4/Q==", "dev": true, "requires": { "@babel/polyfill": "7.7.0", @@ -8100,19 +7888,19 @@ "@cliqz-oss/firefox-client": "0.3.1", "@cliqz-oss/node-firefox-connect": "1.2.1", "adbkit": "2.11.1", - "addons-linter": "1.20.0", + "addons-linter": "1.23.0", "bunyan": "1.8.12", "camelcase": "5.3.1", - "chrome-launcher": "0.12.0", + "chrome-launcher": "0.13.1", "debounce": "1.2.0", "decamelize": "3.2.0", "es6-error": "4.1.1", "event-to-promise": "0.8.0", - "firefox-profile": "1.3.0", + "firefox-profile": "1.3.1", "fx-runner": "1.0.11", "git-rev-sync": "2.0.0", "import-fresh": "3.2.1", - "mkdirp": "0.5.1", + "mkdirp": "1.0.3", "multimatch": "4.0.0", "mz": "2.7.0", "node-notifier": "6.0.0", @@ -8125,12 +7913,24 @@ "strip-json-comments": "3.0.1", "tmp": "0.1.0", "update-notifier": "4.0.0", - "watchpack": "1.6.0", - "ws": "7.2.1", + "watchpack": "1.6.1", + "ws": "7.2.3", "yargs": "15.1.0", "zip-dir": "1.0.2" }, "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, "tmp": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", @@ -8177,9 +7977,9 @@ "dev": true }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -8247,15 +8047,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -8275,9 +8066,9 @@ } }, "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -8287,9 +8078,9 @@ } }, "ws": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", - "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", "dev": true }, "xdg-basedir": { @@ -8365,13 +8156,23 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true + }, + "yargs-parser": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -8415,66 +8216,14 @@ } }, "zip-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz", - "integrity": "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-3.0.1.tgz", + "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", "dev": true, "requires": { "archiver-utils": "^2.1.0", - "compress-commons": "^2.1.1", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "compress-commons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - } - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "compress-commons": "^3.0.0", + "readable-stream": "^3.6.0" } } } diff --git a/package.json b/package.json index 76914a6f..ddcf67f0 100644 --- a/package.json +++ b/package.json @@ -5,26 +5,28 @@ "license": "GPL-3.0-only", "repository": "openstyles/stylus", "author": "Stylus Team", - "devDependencies": { - "archiver": "^3.1.1", - "codemirror": "^5.51.0", + "dependencies": { + "codemirror": "^5.54.0", "db-to-cloud": "^0.4.5", - "endent": "^1.4.0", - "eslint": "^6.8.0", - "fs-extra": "^8.1.0", "jsonlint": "^1.6.3", "less-bundle": "github:openstyles/less-bundle#v0.1.0", "lz-string-unsafe": "^1.4.4-fork-1", - "make-fetch-happen": "^7.1.1", "semver-bundle": "^0.1.1", - "shx": "^0.3.2", "stylelint-bundle": "^8.0.0", "stylus-lang-bundle": "^0.54.5", + "usercss-meta": "^0.9.0", + "uuid": "^8.1.0" + }, + "devDependencies": { + "archiver": "^4.0.1", + "endent": "^1.4.0", + "eslint": "^7.1.0", + "fs-extra": "^9.0.0", + "make-fetch-happen": "^8.0.7", + "shx": "^0.3.2", "sync-version": "^1.0.1", "tiny-glob": "^0.2.6", - "usercss-meta": "^0.9.0", - "uuid": "^7.0.0-beta.0", - "web-ext": "^4.1.0", + "web-ext": "^4.2.0", "webext-tx-fix": "^0.3.3" }, "scripts": { diff --git a/vendor/codemirror/README.md b/vendor/codemirror/README.md index 1d07a8fa..6351e86e 100644 --- a/vendor/codemirror/README.md +++ b/vendor/codemirror/README.md @@ -1,4 +1,4 @@ -## codemirror v5.51.0 +## codemirror v5.54.0 Following files are copied from npm (node_modules): diff --git a/vendor/codemirror/addon/dialog/dialog.js b/vendor/codemirror/addon/dialog/dialog.js index 23b06a83..5f1f4aa4 100644 --- a/vendor/codemirror/addon/dialog/dialog.js +++ b/vendor/codemirror/addon/dialog/dialog.js @@ -82,7 +82,9 @@ if (e.keyCode == 13) callback(inp.value, e); }); - if (options.closeOnBlur !== false) CodeMirror.on(inp, "blur", close); + if (options.closeOnBlur !== false) CodeMirror.on(dialog, "focusout", function (evt) { + if (evt.relatedTarget !== null) close(); + }); } else if (button = dialog.getElementsByTagName("button")[0]) { CodeMirror.on(button, "click", function() { close(); diff --git a/vendor/codemirror/addon/edit/matchbrackets.js b/vendor/codemirror/addon/edit/matchbrackets.js index 2a147282..2c47e070 100644 --- a/vendor/codemirror/addon/edit/matchbrackets.js +++ b/vendor/codemirror/addon/edit/matchbrackets.js @@ -118,16 +118,24 @@ } CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) { - if (old && old != CodeMirror.Init) { - cm.off("cursorActivity", doMatchBrackets); + function clear(cm) { if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) { cm.state.matchBrackets.currentlyHighlighted(); cm.state.matchBrackets.currentlyHighlighted = null; } } + + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchBrackets); + cm.off("focus", doMatchBrackets) + cm.off("blur", clear) + clear(cm); + } if (val) { cm.state.matchBrackets = typeof val == "object" ? val : {}; cm.on("cursorActivity", doMatchBrackets); + cm.on("focus", doMatchBrackets) + cm.on("blur", clear) } }); diff --git a/vendor/codemirror/addon/hint/show-hint.js b/vendor/codemirror/addon/hint/show-hint.js index 374cddfe..c55deab3 100644 --- a/vendor/codemirror/addon/hint/show-hint.js +++ b/vendor/codemirror/addon/hint/show-hint.js @@ -85,11 +85,16 @@ }, pick: function(data, i) { - var completion = data.list[i]; - if (completion.hint) completion.hint(this.cm, data, completion); - else this.cm.replaceRange(getText(completion), completion.from || data.from, - completion.to || data.to, "complete"); - CodeMirror.signal(data, "pick", completion); + var completion = data.list[i], self = this; + this.cm.operation(function() { + if (completion.hint) + completion.hint(self.cm, data, completion); + else + self.cm.replaceRange(getText(completion), completion.from || data.from, + completion.to || data.to, "complete"); + CodeMirror.signal(data, "pick", completion); + self.cm.scrollIntoView(); + }) this.close(); }, @@ -99,9 +104,14 @@ this.debounce = 0; } + var identStart = this.startPos; + if(this.data) { + identStart = this.data.from; + } + var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || - pos.ch < this.startPos.ch || this.cm.somethingSelected() || + pos.ch < identStart.ch || this.cm.somethingSelected() || (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { this.close(); } else { @@ -370,10 +380,11 @@ scrollToActive: function() { var node = this.hints.childNodes[this.selectedHint] + var firstNode = this.hints.firstChild; if (node.offsetTop < this.hints.scrollTop) - this.hints.scrollTop = node.offsetTop - 3; + this.hints.scrollTop = node.offsetTop - firstNode.offsetTop; else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) - this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; + this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + firstNode.offsetTop; }, screenAmount: function() { diff --git a/vendor/codemirror/addon/lint/lint.js b/vendor/codemirror/addon/lint/lint.js index aa75ba0e..5bc1af18 100644 --- a/vendor/codemirror/addon/lint/lint.js +++ b/vendor/codemirror/addon/lint/lint.js @@ -12,11 +12,14 @@ "use strict"; var GUTTER_ID = "CodeMirror-lint-markers"; - function showTooltip(e, content) { + function showTooltip(cm, e, content) { var tt = document.createElement("div"); - tt.className = "CodeMirror-lint-tooltip"; + tt.className = "CodeMirror-lint-tooltip cm-s-" + cm.options.theme; tt.appendChild(content.cloneNode(true)); - document.body.appendChild(tt); + if (cm.state.lint.options.selfContain) + cm.getWrapperElement().appendChild(tt); + else + document.body.appendChild(tt); function position(e) { if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position); @@ -38,8 +41,8 @@ setTimeout(function() { rm(tt); }, 600); } - function showTooltipFor(e, content, node) { - var tooltip = showTooltip(e, content); + function showTooltipFor(cm, e, content, node) { + var tooltip = showTooltip(cm, e, content); function hide() { CodeMirror.off(node, "mouseout", hide); if (tooltip) { hideTooltip(tooltip); tooltip = null; } @@ -78,7 +81,7 @@ state.marked.length = 0; } - function makeMarker(labels, severity, multiple, tooltips) { + function makeMarker(cm, labels, severity, multiple, tooltips) { var marker = document.createElement("div"), inner = marker; marker.className = "CodeMirror-lint-marker-" + severity; if (multiple) { @@ -87,7 +90,7 @@ } if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) { - showTooltipFor(e, labels, inner); + showTooltipFor(cm, e, labels, inner); }); return marker; @@ -113,9 +116,9 @@ var tip = document.createElement("div"); tip.className = "CodeMirror-lint-message-" + severity; if (typeof ann.messageHTML != 'undefined') { - tip.innerHTML = ann.messageHTML; + tip.innerHTML = ann.messageHTML; } else { - tip.appendChild(document.createTextNode(ann.message)); + tip.appendChild(document.createTextNode(ann.message)); } return tip; } @@ -186,7 +189,7 @@ } if (state.hasGutter) - cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1, + cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, anns.length > 1, state.options.tooltips)); } if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm); @@ -199,14 +202,14 @@ state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500); } - function popupTooltips(annotations, e) { + function popupTooltips(cm, annotations, e) { var target = e.target || e.srcElement; var tooltip = document.createDocumentFragment(); for (var i = 0; i < annotations.length; i++) { var ann = annotations[i]; tooltip.appendChild(annotationTooltip(ann)); } - showTooltipFor(e, tooltip, target); + showTooltipFor(cm, e, tooltip, target); } function onMouseOver(cm, e) { @@ -220,7 +223,7 @@ var ann = spans[i].__annotation; if (ann) annotations.push(ann); } - if (annotations.length) popupTooltips(annotations, e); + if (annotations.length) popupTooltips(cm, annotations, e); } CodeMirror.defineOption("lint", false, function(cm, val, old) { diff --git a/vendor/codemirror/addon/search/searchcursor.js b/vendor/codemirror/addon/search/searchcursor.js index 816bf774..d5869578 100644 --- a/vendor/codemirror/addon/search/searchcursor.js +++ b/vendor/codemirror/addon/search/searchcursor.js @@ -240,7 +240,7 @@ var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to)) // Implements weird auto-growing behavior on null-matches for - // backwards-compatiblity with the vim code (unfortunately) + // backwards-compatibility with the vim code (unfortunately) while (result && CodeMirror.cmpPos(result.from, result.to) == 0) { if (reverse) { if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1) diff --git a/vendor/codemirror/keymap/emacs.js b/vendor/codemirror/keymap/emacs.js index fe62d44f..fe4882eb 100644 --- a/vendor/codemirror/keymap/emacs.js +++ b/vendor/codemirror/keymap/emacs.js @@ -404,7 +404,8 @@ "Ctrl-X H": "selectAll", "Ctrl-Q Tab": repeated("insertTab"), - "Ctrl-U": addPrefixMap + "Ctrl-U": addPrefixMap, + "fallthrough": "default" }); var prefixMap = {"Ctrl-G": clearPrefix}; diff --git a/vendor/codemirror/keymap/sublime.js b/vendor/codemirror/keymap/sublime.js index cfdf71ed..7edf172e 100644 --- a/vendor/codemirror/keymap/sublime.js +++ b/vendor/codemirror/keymap/sublime.js @@ -628,6 +628,7 @@ "Cmd-K Cmd-C": "showInCenter", "Cmd-K Cmd-G": "clearBookmarks", "Cmd-K Cmd-Backspace": "delLineLeft", + "Cmd-K Cmd-1": "foldAll", "Cmd-K Cmd-0": "unfoldAll", "Cmd-K Cmd-J": "unfoldAll", "Ctrl-Shift-Up": "addCursorToPrevLine", @@ -689,6 +690,7 @@ "Ctrl-K Ctrl-C": "showInCenter", "Ctrl-K Ctrl-G": "clearBookmarks", "Ctrl-K Ctrl-Backspace": "delLineLeft", + "Ctrl-K Ctrl-1": "foldAll", "Ctrl-K Ctrl-0": "unfoldAll", "Ctrl-K Ctrl-J": "unfoldAll", "Ctrl-Alt-Up": "addCursorToPrevLine", diff --git a/vendor/codemirror/keymap/vim.js b/vendor/codemirror/keymap/vim.js index ce5983d8..b5be59cc 100644 --- a/vendor/codemirror/keymap/vim.js +++ b/vendor/codemirror/keymap/vim.js @@ -234,7 +234,6 @@ { name: 'undo', shortName: 'u' }, { name: 'redo', shortName: 'red' }, { name: 'set', shortName: 'se' }, - { name: 'set', shortName: 'se' }, { name: 'setlocal', shortName: 'setl' }, { name: 'setglobal', shortName: 'setg' }, { name: 'sort', shortName: 'sor' }, @@ -295,16 +294,16 @@ clearFatCursorMark(cm); var ranges = cm.listSelections(), result = [] for (var i = 0; i < ranges.length; i++) { - var range = ranges[i] + var range = ranges[i]; if (range.empty()) { - if (range.anchor.ch < cm.getLine(range.anchor.line).length) { + var lineLength = cm.getLine(range.anchor.line).length; + if (range.anchor.ch < lineLength) { result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1), - {className: "cm-fat-cursor-mark"})) + {className: "cm-fat-cursor-mark"})); } else { - var widget = document.createElement("span") - widget.textContent = "\u00a0" - widget.className = "cm-fat-cursor-mark" - result.push(cm.setBookmark(range.anchor, {widget: widget})) + result.push(cm.markText(Pos(range.anchor.line, lineLength - 1), + Pos(range.anchor.line, lineLength), + {className: "cm-fat-cursor-mark"})); } } } @@ -1603,10 +1602,10 @@ } if (vim.visualMode) { if (!(vim.visualBlock && newHead.ch === Infinity)) { - newHead = clipCursorToContent(cm, newHead, vim.visualBlock); + newHead = clipCursorToContent(cm, newHead); } if (newAnchor) { - newAnchor = clipCursorToContent(cm, newAnchor, true); + newAnchor = clipCursorToContent(cm, newAnchor); } newAnchor = newAnchor || oldAnchor; sel.anchor = newAnchor; @@ -2200,8 +2199,7 @@ vimGlobalState.registerController.pushText( args.registerName, 'delete', text, args.linewise, vim.visualBlock); - var includeLineBreak = vim.insertMode - return clipCursorToContent(cm, finalHead, includeLineBreak); + return clipCursorToContent(cm, finalHead); }, indent: function(cm, args, ranges) { var vim = cm.state.vim; @@ -2460,8 +2458,7 @@ vim.visualLine = !!actionArgs.linewise; vim.visualBlock = !!actionArgs.blockwise; head = clipCursorToContent( - cm, Pos(anchor.line, anchor.ch + repeat - 1), - true /** includeLineBreak */); + cm, Pos(anchor.line, anchor.ch + repeat - 1)); vim.sel = { anchor: anchor, head: head @@ -2837,10 +2834,11 @@ * Clips cursor to ensure that line is within the buffer's range * If includeLineBreak is true, then allow cur.ch == lineLength. */ - function clipCursorToContent(cm, cur, includeLineBreak) { + function clipCursorToContent(cm, cur) { + var vim = cm.state.vim; + var includeLineBreak = vim.insertMode || vim.visualMode; var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() ); - var maxCh = lineLength(cm, line) - 1; - maxCh = (includeLineBreak) ? maxCh + 1 : maxCh; + var maxCh = lineLength(cm, line) - 1 + !!includeLineBreak; var ch = Math.min(Math.max(0, cur.ch), maxCh); return Pos(line, ch); } @@ -3206,9 +3204,7 @@ vim.visualLine = false; vim.visualBlock = false; CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"}); - if (vim.fakeCursor) { - vim.fakeCursor.clear(); - } + clearFakeCursor(vim); } // Remove any trailing newlines from the selection. For @@ -4186,7 +4182,8 @@ } function makePrompt(prefix, desc) { var raw = '' + - (prefix || "") + ''; + (prefix || "") + ''; if (desc) raw += ' ' + desc + ''; return raw; @@ -4459,7 +4456,7 @@ } // Parse command name. - var commandMatch = inputStream.match(/^(\w+)/); + var commandMatch = inputStream.match(/^(\w+|!!|@@|[!#&*<=>@~])/); if (commandMatch) { result.commandName = commandMatch[1]; } else { @@ -5357,14 +5354,34 @@ updateFakeCursor(cm); } } + /** + * Keeps track of a fake cursor to support visual mode cursor behavior. + */ function updateFakeCursor(cm) { + var className = 'cm-animate-fat-cursor'; var vim = cm.state.vim; var from = clipCursorToContent(cm, copyCursor(vim.sel.head)); var to = offsetCursor(from, 0, 1); + clearFakeCursor(vim); + // In visual mode, the cursor may be positioned over EOL. + if (from.ch == cm.getLine(from.line).length) { + var widget = document.createElement("span"); + widget.textContent = "\u00a0"; + widget.className = className; + vim.fakeCursorBookmark = cm.setBookmark(from, {widget: widget}); + } else { + vim.fakeCursor = cm.markText(from, to, {className: className}); + } + } + function clearFakeCursor(vim) { if (vim.fakeCursor) { vim.fakeCursor.clear(); + vim.fakeCursor = null; + } + if (vim.fakeCursorBookmark) { + vim.fakeCursorBookmark.clear(); + vim.fakeCursorBookmark = null; } - vim.fakeCursor = cm.markText(from, to, {className: 'cm-animate-fat-cursor'}); } function handleExternalSelection(cm, vim) { var anchor = cm.getCursor('anchor'); diff --git a/vendor/codemirror/lib/codemirror.css b/vendor/codemirror/lib/codemirror.css index bc910fb9..56896500 100644 --- a/vendor/codemirror/lib/codemirror.css +++ b/vendor/codemirror/lib/codemirror.css @@ -164,17 +164,17 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} .CodeMirror-scroll { overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ + /* 50px is the magic margin used to hide the element's real scrollbars */ /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; + margin-bottom: -50px; margin-right: -50px; + padding-bottom: 50px; height: 100%; outline: none; /* Prevent dragging from highlighting the element */ position: relative; } .CodeMirror-sizer { position: relative; - border-right: 30px solid transparent; + border-right: 50px solid transparent; } /* The fake, visible scrollbars. Used to force redraw during scrolling @@ -212,7 +212,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} height: 100%; display: inline-block; vertical-align: top; - margin-bottom: -30px; + margin-bottom: -50px; } .CodeMirror-gutter-wrapper { position: absolute; diff --git a/vendor/codemirror/lib/codemirror.js b/vendor/codemirror/lib/codemirror.js index 3a1f0a99..b6eaa723 100644 --- a/vendor/codemirror/lib/codemirror.js +++ b/vendor/codemirror/lib/codemirror.js @@ -204,7 +204,7 @@ } // Number of pixels added to scroller and sizer to hide scrollbar - var scrollerGap = 30; + var scrollerGap = 50; // Returned or thrown by various protocols to signal 'I'm not // handling this'. @@ -485,14 +485,15 @@ for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} order.push(new BidiSpan(0, start, i$7)); } else { - var pos = i$7, at = order.length; + var pos = i$7, at = order.length, isRTL = direction == "rtl" ? 1 : 0; for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} for (var j$2 = pos; j$2 < i$7;) { if (countsAsNum.test(types[j$2])) { - if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); } + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; } var nstart = j$2; for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + at += isRTL; pos = j$2; } else { ++j$2; } } @@ -1200,7 +1201,7 @@ var prop = lineClass[1] ? "bgClass" : "textClass"; if (output[prop] == null) { output[prop] = lineClass[2]; } - else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) + else if (!(new RegExp("(?:^|\\s)" + lineClass[2] + "(?:$|\\s)")).test(output[prop])) { output[prop] += " " + lineClass[2]; } } } return type @@ -3550,7 +3551,7 @@ } function setScrollTop(cm, val, forceScroll) { - val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val); + val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); if (cm.display.scroller.scrollTop == val && !forceScroll) { return } cm.doc.scrollTop = val; cm.display.scrollbars.setScrollTop(val); @@ -3560,7 +3561,7 @@ // Sync scroller and scrollbar, ensure the gutter elements are // aligned. function setScrollLeft(cm, val, isScroller, forceScroll) { - val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); + val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } cm.doc.scrollLeft = val; alignHorizontally(cm); @@ -4049,7 +4050,8 @@ function restoreSelection(snapshot) { if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } snapshot.activeElt.focus(); - if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && + snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { var sel = window.getSelection(), range = document.createRange(); range.setEnd(snapshot.anchorNode, snapshot.anchorOffset); range.collapse(false); @@ -4147,6 +4149,8 @@ update.visible = visibleLines(cm.display, cm.doc, viewport); if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) { break } + } else if (first) { + update.visible = visibleLines(cm.display, cm.doc, viewport); } if (!updateDisplayIfNeeded(cm, update)) { break } updateHeightsInViewport(cm); @@ -6496,7 +6500,7 @@ text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())), origin: "paste"}; makeChange(cm.doc, change); - setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); + setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); })(); } }; @@ -6829,7 +6833,7 @@ function endOfLine(visually, cm, lineObj, lineNo, dir) { if (visually) { - if (cm.getOption("direction") == "rtl") { dir = -dir; } + if (cm.doc.direction == "rtl") { dir = -dir; } var order = getOrder(lineObj, cm.doc.direction); if (order) { var part = dir < 0 ? lst(order) : order[0]; @@ -7084,7 +7088,7 @@ var line = getLine(cm.doc, start.line); var order = getOrder(line, cm.doc.direction); if (!order || order[0].level == 0) { - var firstNonWS = Math.max(0, line.text.search(/\S/)); + var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) } @@ -7187,6 +7191,7 @@ var lastStoppedKey = null; function onKeyDown(e) { var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } cm.curOp.focus = activeElt(); if (signalDOMEvent(cm, e)) { return } // IE does strange things with escape. @@ -7230,6 +7235,7 @@ function onKeyPress(e) { var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } var keyCode = e.keyCode, charCode = e.charCode; if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} @@ -7378,8 +7384,8 @@ if (!behavior.addNew) { extendSelection(cm.doc, pos, null, null, behavior.extend); } // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) - if (webkit || ie && ie_version == 9) - { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); } + if ((webkit && !safari) || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); } else { display.input.focus(); } } @@ -7755,6 +7761,12 @@ } cm.display.input.readOnlyChanged(val); }); + + option("screenReaderLabel", null, function (cm, val) { + val = (val === '') ? null : val; + cm.display.input.screenReaderLabelChanged(val); + }); + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); option("dragDrop", true, dragDropChanged); option("allowDropFileTypes", null); @@ -8586,7 +8598,7 @@ clearCaches(this); scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); updateGutterSpace(this.display); - if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping) { estimateLineHeights(this); } signal(this, "refresh", this); }), @@ -8640,7 +8652,7 @@ var oldPos = pos; var origDir = dir; var lineObj = getLine(doc, pos.line); - var lineDir = visually && doc.cm && doc.cm.getOption("direction") == "rtl" ? -dir : dir; + var lineDir = visually && doc.direction == "rtl" ? -dir : dir; function findNextLine() { var l = pos.line + lineDir; if (l < doc.first || l >= doc.first + doc.size) { return false } @@ -8735,8 +8747,16 @@ var div = input.div = display.lineDiv; disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + function belongsToInput(e) { + for (var t = e.target; t; t = t.parentNode) { + if (t == div) { return true } + if (/\bCodeMirror-(?:line)?widget\b/.test(t.className)) { break } + } + return false + } + on(div, "paste", function (e) { - if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } // IE doesn't fire input events, so we schedule a read for the pasted content in this way if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); } }); @@ -8761,7 +8781,7 @@ }); function onCopyCut(e) { - if (signalDOMEvent(cm, e)) { return } + if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return } if (cm.somethingSelected()) { setLastCopied({lineWise: false, text: cm.getSelections()}); if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } @@ -8803,9 +8823,18 @@ on(div, "cut", onCopyCut); }; + ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.div.setAttribute('aria-label', label); + } else { + this.div.removeAttribute('aria-label'); + } + }; + ContentEditableInput.prototype.prepareSelection = function () { var result = prepareSelection(this.cm, false); - result.focus = this.cm.state.focused; + result.focus = document.activeElement == this.div; return result }; @@ -8901,7 +8930,7 @@ ContentEditableInput.prototype.focus = function () { if (this.cm.options.readOnly != "nocursor") { - if (!this.selectionInEditor()) + if (!this.selectionInEditor() || document.activeElement != this.div) { this.showSelection(this.prepareSelection(), true); } this.div.focus(); } @@ -9343,6 +9372,15 @@ this.textarea = this.wrapper.firstChild; }; + TextareaInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.textarea.setAttribute('aria-label', label); + } else { + this.textarea.removeAttribute('aria-label'); + } + }; + TextareaInput.prototype.prepareSelection = function () { // Redraw the selection and/or cursor var cm = this.cm, display = cm.display, doc = cm.doc; @@ -9733,7 +9771,7 @@ addLegacyProps(CodeMirror); - CodeMirror.version = "5.51.0"; + CodeMirror.version = "5.54.0"; return CodeMirror; diff --git a/vendor/codemirror/mode/css/css.js b/vendor/codemirror/mode/css/css.js index 05742c5c..441ba4ab 100644 --- a/vendor/codemirror/mode/css/css.js +++ b/vendor/codemirror/mode/css/css.js @@ -455,81 +455,98 @@ CodeMirror.defineMode("css", function(config, parserConfig) { "alignment-baseline", "anchor-point", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-fill-mode", "animation-iteration-count", "animation-name", "animation-play-state", - "animation-timing-function", "appearance", "azimuth", "backface-visibility", - "background", "background-attachment", "background-blend-mode", "background-clip", - "background-color", "background-image", "background-origin", "background-position", - "background-repeat", "background-size", "baseline-shift", "binding", - "bleed", "bookmark-label", "bookmark-level", "bookmark-state", - "bookmark-target", "border", "border-bottom", "border-bottom-color", - "border-bottom-left-radius", "border-bottom-right-radius", - "border-bottom-style", "border-bottom-width", "border-collapse", - "border-color", "border-image", "border-image-outset", + "animation-timing-function", "appearance", "azimuth", "backdrop-filter", + "backface-visibility", "background", "background-attachment", + "background-blend-mode", "background-clip", "background-color", + "background-image", "background-origin", "background-position", + "background-position-x", "background-position-y", "background-repeat", + "background-size", "baseline-shift", "binding", "bleed", "block-size", + "bookmark-label", "bookmark-level", "bookmark-state", "bookmark-target", + "border", "border-bottom", "border-bottom-color", "border-bottom-left-radius", + "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", + "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", - "border-image-width", "border-left", "border-left-color", - "border-left-style", "border-left-width", "border-radius", "border-right", - "border-right-color", "border-right-style", "border-right-width", - "border-spacing", "border-style", "border-top", "border-top-color", - "border-top-left-radius", "border-top-right-radius", "border-top-style", - "border-top-width", "border-width", "bottom", "box-decoration-break", - "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", - "caption-side", "caret-color", "clear", "clip", "color", "color-profile", "column-count", - "column-fill", "column-gap", "column-rule", "column-rule-color", - "column-rule-style", "column-rule-width", "column-span", "column-width", - "columns", "content", "counter-increment", "counter-reset", "crop", "cue", - "cue-after", "cue-before", "cursor", "direction", "display", - "dominant-baseline", "drop-initial-after-adjust", - "drop-initial-after-align", "drop-initial-before-adjust", - "drop-initial-before-align", "drop-initial-size", "drop-initial-value", - "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", - "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", - "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings", - "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", - "font-stretch", "font-style", "font-synthesis", "font-variant", - "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", - "font-variant-ligatures", "font-variant-numeric", "font-variant-position", - "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", - "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-gap", - "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-gap", - "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns", - "grid-template-rows", "hanging-punctuation", "height", "hyphens", - "icon", "image-orientation", "image-rendering", "image-resolution", - "inline-box-align", "justify-content", "justify-items", "justify-self", "left", "letter-spacing", - "line-break", "line-height", "line-stacking", "line-stacking-ruby", + "border-image-width", "border-left", "border-left-color", "border-left-style", + "border-left-width", "border-radius", "border-right", "border-right-color", + "border-right-style", "border-right-width", "border-spacing", "border-style", + "border-top", "border-top-color", "border-top-left-radius", + "border-top-right-radius", "border-top-style", "border-top-width", + "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", + "break-after", "break-before", "break-inside", "caption-side", "caret-color", + "clear", "clip", "color", "color-profile", "column-count", "column-fill", + "column-gap", "column-rule", "column-rule-color", "column-rule-style", + "column-rule-width", "column-span", "column-width", "columns", "contain", + "content", "counter-increment", "counter-reset", "crop", "cue", "cue-after", + "cue-before", "cursor", "direction", "display", "dominant-baseline", + "drop-initial-after-adjust", "drop-initial-after-align", + "drop-initial-before-adjust", "drop-initial-before-align", "drop-initial-size", + "drop-initial-value", "elevation", "empty-cells", "fit", "fit-position", + "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", + "flex-shrink", "flex-wrap", "float", "float-offset", "flow-from", "flow-into", + "font", "font-family", "font-feature-settings", "font-kerning", + "font-language-override", "font-optical-sizing", "font-size", + "font-size-adjust", "font-stretch", "font-style", "font-synthesis", + "font-variant", "font-variant-alternates", "font-variant-caps", + "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", + "font-variant-position", "font-variation-settings", "font-weight", "gap", + "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", "grid-auto-rows", + "grid-column", "grid-column-end", "grid-column-gap", "grid-column-start", + "grid-gap", "grid-row", "grid-row-end", "grid-row-gap", "grid-row-start", + "grid-template", "grid-template-areas", "grid-template-columns", + "grid-template-rows", "hanging-punctuation", "height", "hyphens", "icon", + "image-orientation", "image-rendering", "image-resolution", "inline-box-align", + "inset", "inset-block", "inset-block-end", "inset-block-start", "inset-inline", + "inset-inline-end", "inset-inline-start", "isolation", "justify-content", + "justify-items", "justify-self", "left", "letter-spacing", "line-break", + "line-height", "line-height-step", "line-stacking", "line-stacking-ruby", "line-stacking-shift", "line-stacking-strategy", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", - "margin-bottom", "margin-left", "margin-right", "margin-top", - "marks", "marquee-direction", "marquee-loop", - "marquee-play-count", "marquee-speed", "marquee-style", "max-height", - "max-width", "min-height", "min-width", "mix-blend-mode", "move-to", "nav-down", "nav-index", - "nav-left", "nav-right", "nav-up", "object-fit", "object-position", - "opacity", "order", "orphans", "outline", - "outline-color", "outline-offset", "outline-style", "outline-width", - "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", - "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", - "page", "page-break-after", "page-break-before", "page-break-inside", - "page-policy", "pause", "pause-after", "pause-before", "perspective", - "perspective-origin", "pitch", "pitch-range", "place-content", "place-items", "place-self", "play-during", "position", - "presentation-level", "punctuation-trim", "quotes", "region-break-after", - "region-break-before", "region-break-inside", "region-fragment", - "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", - "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", - "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin", - "shape-outside", "size", "speak", "speak-as", "speak-header", - "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", - "tab-size", "table-layout", "target", "target-name", "target-new", - "target-position", "text-align", "text-align-last", "text-decoration", + "margin-bottom", "margin-left", "margin-right", "margin-top", "marks", + "marquee-direction", "marquee-loop", "marquee-play-count", "marquee-speed", + "marquee-style", "max-block-size", "max-height", "max-inline-size", + "max-width", "min-block-size", "min-height", "min-inline-size", "min-width", + "mix-blend-mode", "move-to", "nav-down", "nav-index", "nav-left", "nav-right", + "nav-up", "object-fit", "object-position", "offset", "offset-anchor", + "offset-distance", "offset-path", "offset-position", "offset-rotate", + "opacity", "order", "orphans", "outline", "outline-color", "outline-offset", + "outline-style", "outline-width", "overflow", "overflow-style", + "overflow-wrap", "overflow-x", "overflow-y", "padding", "padding-bottom", + "padding-left", "padding-right", "padding-top", "page", "page-break-after", + "page-break-before", "page-break-inside", "page-policy", "pause", + "pause-after", "pause-before", "perspective", "perspective-origin", "pitch", + "pitch-range", "place-content", "place-items", "place-self", "play-during", + "position", "presentation-level", "punctuation-trim", "quotes", + "region-break-after", "region-break-before", "region-break-inside", + "region-fragment", "rendering-intent", "resize", "rest", "rest-after", + "rest-before", "richness", "right", "rotate", "rotation", "rotation-point", + "row-gap", "ruby-align", "ruby-overhang", "ruby-position", "ruby-span", + "scale", "scroll-behavior", "scroll-margin", "scroll-margin-block", + "scroll-margin-block-end", "scroll-margin-block-start", "scroll-margin-bottom", + "scroll-margin-inline", "scroll-margin-inline-end", + "scroll-margin-inline-start", "scroll-margin-left", "scroll-margin-right", + "scroll-margin-top", "scroll-padding", "scroll-padding-block", + "scroll-padding-block-end", "scroll-padding-block-start", + "scroll-padding-bottom", "scroll-padding-inline", "scroll-padding-inline-end", + "scroll-padding-inline-start", "scroll-padding-left", "scroll-padding-right", + "scroll-padding-top", "scroll-snap-align", "scroll-snap-type", + "shape-image-threshold", "shape-inside", "shape-margin", "shape-outside", + "size", "speak", "speak-as", "speak-header", "speak-numeral", + "speak-punctuation", "speech-rate", "stress", "string-set", "tab-size", + "table-layout", "target", "target-name", "target-new", "target-position", + "text-align", "text-align-last", "text-combine-upright", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-skip", - "text-decoration-style", "text-emphasis", "text-emphasis-color", - "text-emphasis-position", "text-emphasis-style", "text-height", - "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow", - "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position", - "text-wrap", "top", "transform", "transform-origin", "transform-style", - "transition", "transition-delay", "transition-duration", - "transition-property", "transition-timing-function", "unicode-bidi", - "user-select", "vertical-align", "visibility", "voice-balance", "voice-duration", - "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", - "voice-volume", "volume", "white-space", "widows", "width", "will-change", "word-break", - "word-spacing", "word-wrap", "z-index", + "text-decoration-skip-ink", "text-decoration-style", "text-emphasis", + "text-emphasis-color", "text-emphasis-position", "text-emphasis-style", + "text-height", "text-indent", "text-justify", "text-orientation", + "text-outline", "text-overflow", "text-rendering", "text-shadow", + "text-size-adjust", "text-space-collapse", "text-transform", + "text-underline-position", "text-wrap", "top", "transform", "transform-origin", + "transform-style", "transition", "transition-delay", "transition-duration", + "transition-property", "transition-timing-function", "translate", + "unicode-bidi", "user-select", "vertical-align", "visibility", "voice-balance", + "voice-duration", "voice-family", "voice-pitch", "voice-range", "voice-rate", + "voice-stress", "voice-volume", "volume", "white-space", "widows", "width", + "will-change", "word-break", "word-spacing", "word-wrap", "writing-mode", "z-index", // SVG-specific "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color", "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events", @@ -543,16 +560,28 @@ CodeMirror.defineMode("css", function(config, parserConfig) { ], propertyKeywords = keySet(propertyKeywords_); var nonStandardPropertyKeywords_ = [ + "border-block", "border-block-color", "border-block-end", + "border-block-end-color", "border-block-end-style", "border-block-end-width", + "border-block-start", "border-block-start-color", "border-block-start-style", + "border-block-start-width", "border-block-style", "border-block-width", + "border-inline", "border-inline-color", "border-inline-end", + "border-inline-end-color", "border-inline-end-style", + "border-inline-end-width", "border-inline-start", "border-inline-start-color", + "border-inline-start-style", "border-inline-start-width", + "border-inline-style", "border-inline-width", "margin-block", + "margin-block-end", "margin-block-start", "margin-inline", "margin-inline-end", + "margin-inline-start", "padding-block", "padding-block-end", + "padding-block-start", "padding-inline", "padding-inline-end", + "padding-inline-start", "scroll-snap-stop", "scrollbar-3d-light-color", "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", - "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside", - "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", - "searchfield-results-decoration", "zoom" + "scrollbar-track-color", "searchfield-cancel-button", "searchfield-decoration", + "searchfield-results-button", "searchfield-results-decoration", "shape-inside", "zoom" ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_); var fontProperties_ = [ - "font-family", "src", "unicode-range", "font-variant", "font-feature-settings", - "font-stretch", "font-weight", "font-style" + "font-display", "font-family", "src", "unicode-range", "font-variant", + "font-feature-settings", "font-stretch", "font-weight", "font-style" ], fontProperties = keySet(fontProperties_); var counterDescriptors_ = [ diff --git a/vendor/codemirror/mode/javascript/javascript.js b/vendor/codemirror/mode/javascript/javascript.js index 16943a9e..c6577630 100644 --- a/vendor/codemirror/mode/javascript/javascript.js +++ b/vendor/codemirror/mode/javascript/javascript.js @@ -98,9 +98,11 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { } else if (ch == "`") { state.tokenize = tokenQuasi; return tokenQuasi(stream, state); - } else if (ch == "#") { + } else if (ch == "#" && stream.peek() == "!") { stream.skipToEnd(); - return ret("error", "error"); + return ret("meta", "meta"); + } else if (ch == "#" && stream.eatWhile(wordRE)) { + return ret("variable", "property") } else if (ch == "<" && stream.match("!--") || ch == "-" && stream.match("->")) { stream.skipToEnd() return ret("comment", "comment") @@ -113,6 +115,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { if (ch == ">") stream.eat(ch) } } + if (ch == "?" && stream.eat(".")) return ret(".") return ret("operator", "operator", stream.current()); } else if (wordRE.test(ch)) { stream.eatWhile(wordRE); @@ -417,7 +420,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { } function parenExpr(type) { if (type != "(") return pass() - return cont(pushlex(")"), expression, expect(")"), poplex) + return cont(pushlex(")"), maybeexpression, expect(")"), poplex) } function expressionInner(type, value, noComma) { if (cx.state.fatArrowAt == cx.stream.start) { @@ -446,7 +449,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { } function maybeoperatorComma(type, value) { - if (type == ",") return cont(expression); + if (type == ",") return cont(maybeexpression); return maybeoperatorNoComma(type, value, false); } function maybeoperatorNoComma(type, value, noComma) { @@ -455,7 +458,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); if (type == "operator") { if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me); - if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false)) + if (isTS && value == "<" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, false)) return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me); if (value == "?") return cont(expression, expect(":"), expr); return cont(expr); @@ -757,11 +760,11 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { } if (type == "variable" || cx.style == "keyword") { cx.marked = "property"; - return cont(isTS ? classfield : functiondef, classBody); + return cont(classfield, classBody); } - if (type == "number" || type == "string") return cont(isTS ? classfield : functiondef, classBody); + if (type == "number" || type == "string") return cont(classfield, classBody); if (type == "[") - return cont(expression, maybetype, expect("]"), isTS ? classfield : functiondef, classBody) + return cont(expression, maybetype, expect("]"), classfield, classBody) if (value == "*") { cx.marked = "keyword"; return cont(classBody); diff --git a/vendor/codemirror/mode/stylus/stylus.js b/vendor/codemirror/mode/stylus/stylus.js index dbe241d6..653958e8 100644 --- a/vendor/codemirror/mode/stylus/stylus.js +++ b/vendor/codemirror/mode/stylus/stylus.js @@ -76,7 +76,7 @@ if (ch == "#") { stream.next(); // Hex color - if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b/i)) { + if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i)) { return ["atom", "atom"]; } // ID selector diff --git a/vendor/codemirror/theme/zenburn.css b/vendor/codemirror/theme/zenburn.css index 781c40ac..4eb4247c 100644 --- a/vendor/codemirror/theme/zenburn.css +++ b/vendor/codemirror/theme/zenburn.css @@ -11,7 +11,7 @@ .cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; } .cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; } .cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; } -.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; } +.cm-s-zenburn.CodeMirror { background-color: #3f3f3f; color: #dcdccc; } .cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; } .cm-s-zenburn span.cm-comment { color: #7f9f7f; } .cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; } diff --git a/vendor/uuid/LICENSE b/vendor/uuid/LICENSE index 8c84e398..f8969d33 100644 --- a/vendor/uuid/LICENSE +++ b/vendor/uuid/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2010-2016 Robert Kieffer and other contributors +Copyright (c) 2010-2020 Robert Kieffer and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/uuid/README.md b/vendor/uuid/README.md index 718a07c3..623fe75e 100644 --- a/vendor/uuid/README.md +++ b/vendor/uuid/README.md @@ -1,4 +1,4 @@ -## uuid v7.0.0-beta.0 +## uuid v8.1.0 Following files are copied from npm (node_modules): diff --git a/vendor/uuid/uuid.min.js b/vendor/uuid/uuid.min.js index 110b26e5..61da7182 100644 --- a/vendor/uuid/uuid.min.js +++ b/vendor/uuid/uuid.min.js @@ -1 +1 @@ -!function(o,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(o=o||self).uuidv4=e()}(this,(function(){"use strict";var o="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),e=new Uint8Array(16);function r(){if(!o)throw new Error("uuid: This browser does not seem to support crypto.getRandomValues(). If you need to support this browser, please provide a custom random number generator through options.rng.");return o(e)}for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);return function(o,e,t){var u=e&&t||0;"string"==typeof o&&(e="binary"===o?new Array(16):null,o=null);var i=(o=o||{}).random||(o.rng||r)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e)for(var s=0;s<16;++s)e[u+s]=i[s];return e||function(o,e){var r=e||0,t=n;return[t[o[r++]],t[o[r++]],t[o[r++]],t[o[r++]],"-",t[o[r++]],t[o[r++]],"-",t[o[r++]],t[o[r++]],"-",t[o[r++]],t[o[r++]],"-",t[o[r++]],t[o[r++]],t[o[r++]],t[o[r++]],t[o[r++]],t[o[r++]]].join("")}(i)}})); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).uuidv4=e()}(this,(function(){"use strict";var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),e=new Uint8Array(16);function n(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(e)}for(var o=[],r=0;r<256;++r)o.push((r+256).toString(16).substr(1));return function(t,e,r){"string"==typeof t&&(e="binary"===t?new Uint8Array(16):null,t=null);var u=(t=t||{}).random||(t.rng||n)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,e){for(var i=r||0,d=0;d<16;++d)e[i+d]=u[d];return e}return function(t,e){var n=e||0,r=o;return(r[t[n+0]]+r[t[n+1]]+r[t[n+2]]+r[t[n+3]]+"-"+r[t[n+4]]+r[t[n+5]]+"-"+r[t[n+6]]+r[t[n+7]]+"-"+r[t[n+8]]+r[t[n+9]]+"-"+r[t[n+10]]+r[t[n+11]]+r[t[n+12]]+r[t[n+13]]+r[t[n+14]]+r[t[n+15]]).toLowerCase()}(u)}})); \ No newline at end of file From 2ffad1b6bb8eda7739edaaaa3c0e5c1a92eca6ae Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 11 Jun 2020 06:48:48 +0200 Subject: [PATCH 19/43] Add Github Actions (#958) The tests do spew a few warnings but no errors so this should pass. I did not bother adding macOS/Windows to the test matrix as there's probably nothing platform-dependant in this repo, but it could be done on request. --- .github/workflows/ci.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..b7714d1c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: ci +on: [push, pull_request] + +jobs: + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + node: ['10', '12', '14'] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + - run: npm install + - run: npm test From e1ed3bf222ee75f68dd2c7ae76a9de5137a1dd2f Mon Sep 17 00:00:00 2001 From: tophf Date: Wed, 17 Jun 2020 16:13:28 +0300 Subject: [PATCH 20/43] update CSSLint (#967) * refactor Tokens to enable goto-symbol and find-usages * refactor * CSS Text Module L3 (ED 2020-06-08) * CSS Fonts Module L4 parts (ED 2020-06-11) * CSS Scrollbars Module L1 (ED 2020-02-24) * skip all successfully parsed parts after var() --- vendor-overwrites/csslint/parserlib.js | 277 +++++++++++++------------ 1 file changed, 140 insertions(+), 137 deletions(-) diff --git a/vendor-overwrites/csslint/parserlib.js b/vendor-overwrites/csslint/parserlib.js index 306dbaae..7d2586c4 100644 --- a/vendor-overwrites/csslint/parserlib.js +++ b/vendor-overwrites/csslint/parserlib.js @@ -319,7 +319,7 @@ self.parserlib = (() => { 'drop-initial-before-align': 'caps-height | baseline | use-script | before-edge | text-before-edge | ' + 'after-edge | text-after-edge | central | middle | ideographic | alphabetic | ' + 'hanging | mathematical', - 'drop-initial-size': 'auto | line | | ', + 'drop-initial-size': 'auto | line | ', 'drop-initial-value': '', // E @@ -347,19 +347,28 @@ self.parserlib = (() => { 'flood-opacity': '', 'font': ' | caption | icon | menu | message-box | small-caption | status-bar', 'font-family': '', - 'font-feature-settings': ' | normal', + 'font-feature-settings': '# | normal', 'font-kerning': 'auto | normal | none', + 'font-language-override': 'normal | ', + 'font-optical-sizing': 'auto | none', + 'font-palette': 'none | normal | light | dark | ', 'font-size': '', 'font-size-adjust': ' | none', 'font-stretch': '', 'font-style': '', + 'font-synthesis': 'none | [ weight || style ]', + 'font-synthesis-style': 'auto | none', + 'font-synthesis-weight': 'auto | none', + 'font-synthesis-small-caps': 'auto | none', 'font-variant': ' | normal | none', 'font-variant-alternates': ' | normal', 'font-variant-caps': ' | normal', 'font-variant-east-asian': ' | normal', + 'font-variant-emoji': 'auto | text | emoji | unicode', 'font-variant-ligatures': ' | normal | none', 'font-variant-numeric': ' | normal', 'font-variant-position': 'normal | sub | super', + 'font-variation-settings': 'normal | [ ]#', 'font-weight': '', '-ms-flex-align': 'start | end | center | stretch | baseline', '-ms-flex-order': '', @@ -392,7 +401,7 @@ self.parserlib = (() => { 'grid-gap': ' ?', // H - 'hanging-punctuation': 1, + 'hanging-punctuation': 'none | [ first || [ force-end | allow-end ] || last ]', 'height': 'auto | ', 'hyphenate-after': ' | auto', 'hyphenate-before': ' | auto', @@ -431,7 +440,7 @@ self.parserlib = (() => { 'left': '', 'letter-spacing': ' | normal', 'line-height': '', - 'line-break': 'auto | loose | normal | strict', + 'line-break': 'auto | loose | normal | strict | anywhere', 'line-stacking': 1, 'line-stacking-ruby': 'exclude-ruby | include-ruby', 'line-stacking-shift': 'consider-shifts | disregard-shifts', @@ -502,7 +511,7 @@ self.parserlib = (() => { 'overflow-block': '', 'overflow-inline': '', 'overflow-style': 1, - 'overflow-wrap': 'normal | break-word', + 'overflow-wrap': 'normal | break-word | anywhere', 'overflow-x': '', 'overflow-y': '', @@ -564,6 +573,8 @@ self.parserlib = (() => { // S 'scale': 'none | {1,3}', + 'scrollbar-color': 'auto | dark | light | {2}', + 'scrollbar-width': 'auto | thin | none', 'shape-inside': 'auto | outside-shape | [ || shape-box ] | | display', 'shape-rendering': 'auto | optimizeSpeed | crispEdges | geometricPrecision', 'size': 1, @@ -588,14 +599,14 @@ self.parserlib = (() => { // T 'table-layout': 'auto | fixed', - 'tab-size': ' | ', + 'tab-size': ' | ', 'target': 1, 'target-name': 1, 'target-new': 1, 'target-position': 1, - 'text-align': 'start | end | left | right | center | justify | match-parent | justify-all', - 'text-align-all': 'start | end | left | right | center | justify | match-parent', - 'text-align-last': 'auto | start | end | left | right | center | justify', + 'text-align': ' | justify-all', + 'text-align-all': '', + 'text-align-last': ' | auto', 'text-anchor': 'start | middle | end', 'text-decoration': ' || || ', 'text-decoration-color': '', @@ -607,13 +618,13 @@ self.parserlib = (() => { 'text-emphasis-style': '', 'text-emphasis-position': '[ over | under ] && [ right | left ]?', 'text-height': 1, - 'text-indent': ' | ', - 'text-justify': 'auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida', + 'text-indent': ' && hanging? && each-line?', + 'text-justify': 'auto | none | inter-word | inter-character', 'text-outline': 1, 'text-overflow': 'clip | ellipsis', 'text-rendering': 'auto | optimizeSpeed | optimizeLegibility | geometricPrecision', 'text-shadow': 'none | [ ? && {2,3} ]#', - 'text-transform': 'capitalize | uppercase | lowercase | none', + 'text-transform': 'none | [ capitalize | uppercase | lowercase ] || full-width || full-size-kana', 'text-underline-position': 'auto | [ under || [ left | right ] ]', 'text-wrap': 'normal | none | avoid', 'top': '', @@ -650,15 +661,14 @@ self.parserlib = (() => { 'volume': 1, // W - 'white-space': 'normal | pre | nowrap | pre-wrap | pre-line | -pre-wrap |' + - ' -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap', + 'white-space': 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line', 'white-space-collapse': 1, 'widows': '', 'width': 'auto | ', 'will-change': '', - 'word-break': 'normal | keep-all | break-all', + 'word-break': 'normal | keep-all | break-all | break-word', 'word-spacing': ' | normal', - 'word-wrap': 'normal | break-word', + 'word-wrap': 'normal | break-word | anywhere', 'writing-mode': 'horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | ' + 'bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb', @@ -711,7 +721,7 @@ self.parserlib = (() => { '': '', - '': 'normal | | ', + '': 'normal | ', '': 'space-between | space-around | space-evenly | stretch', '': 'center | start | end | flex-start | flex-end', @@ -747,17 +757,17 @@ self.parserlib = (() => { '': '', '': 'nowrap | wrap | wrap-reverse', - '': ' | | | ', - '': 'normal | ultra-condensed | extra-condensed | condensed | semi-condensed | ' + + '': ' | | ', + '': 'normal | | ultra-condensed | extra-condensed | condensed | semi-condensed | ' + 'semi-expanded | expanded | extra-expanded | ultra-expanded', - '': 'normal | italic | oblique', + '': 'normal | italic | oblique ?', '': 'small-caps | all-small-caps | petite-caps | all-petite-caps | ' + 'unicase | titling-caps', '': 'normal | small-caps', - '': 'normal | bold | bolder | lighter | ' + - '100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900', + '': 'normal | bold | bolder | lighter | ', - '': 'serif | sans-serif | cursive | fantasy | monospace', + '': 'serif | sans-serif | cursive | fantasy | monospace | system-ui | emoji | ' + + 'math | fangsong | ui-serif | ui-sans-serif | ui-monospace | ui-rounded', '': ' | fill-box | stroke-box | view-box', @@ -798,7 +808,7 @@ self.parserlib = (() => { '': part => part.type === 'integer', - '': ' | | | normal', + '': ' | | normal', '': function (part) { // eslint-disable-next-line no-use-before-define @@ -868,6 +878,8 @@ self.parserlib = (() => { '': part => part.type === 'string', + '': 'start | end | left | right | center | justify | match-parent', + '': 'solid | double | dotted | dashed | wavy', '