diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 833abf8..10a66d5 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -7,6 +7,9 @@ assignees: ''
---
+**Wersja dodatku?**
+Do odnalezienia w ustawieniach, lub w menu menadżera skryptów (np. Tampermonkey)
+
**Co się stało się?**
W skrócie, screenshoty / logi z konsoli mile widziane.
@@ -20,3 +23,5 @@ Jakie były Twoje oczekiwania, co powinno było się stać?
**Dodatkowe info**
:)
+
+_nie ustawiaj żadnych dodatkowych informacji w panelu po prawej, wypełnij tylko tę formatkę i tytuł i zapisz raport._
diff --git a/dist/whhelper-dev.user.js b/dist/whhelper-dev.user.js
index 3d6e1d6..e72908a 100644
--- a/dist/whhelper-dev.user.js
+++ b/dist/whhelper-dev.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name WykopHelper - DEV
-// @version 0.70
+// @version 0.72
// @updateURL https://cdn.jsdelivr.net/gh/plwpl/WykopHelper/dist/whhelper-dev.user.js
// @downloadURL https://cdn.jsdelivr.net/gh/plwpl/WykopHelper/dist/whhelper-dev.user.js
// @description Zestaw narzędzi pomocnych na wykopie.
@@ -64,6 +64,7 @@
CLASSNAME: {
// wykop.pl elements
WOODLE: 'woodle',
+ YT_EMBED: 'embed-youtube',
// custom WH elements
BUTTON: 'buttonWH',
},
@@ -208,7 +209,7 @@
},
};
- const badge = `
+ const badge$1 = `
.${DOM.BADGE.CLASSNAME.MARK_BUTTON} {
display: inline-block;
padding: .2rem .2rem;
@@ -294,7 +295,7 @@
}
`;
- const settings = `
+ const settings$4 = `
.${DOM.SETTINGS.CLASSNAME.WH_USER_TABLE_CONTAINER} {
padding: 1rem;
}
@@ -396,8 +397,8 @@
}
`;
const styles = {
- badge,
- settings,
+ badge: badge$1,
+ settings: settings$4,
modal
};
@@ -521,9 +522,9 @@
}
};
- const settings$1 = getLocalStorage('settings');
+ const settings$3 = getLocalStorage('settings');
- const defaultColor = settings$1.BADGE.DEFAULT_COLOR;
+ const defaultColor = settings$3.BADGE.DEFAULT_COLOR;
const buttonMarkup = `Oznacz `;
const buttonBulkMarkup = `
Strony oznaczone jako potencjalnie szerzące rosyjską propagandę na wykopie zostały wyznaczone na podstawie następujących źródeł:
Raport "The Weaponization of Culture: Kremlin's traditional agenda and the export of values to Central Europe" [PDF]
@@ -632,7 +633,70 @@
document.body.insertAdjacentHTML('afterbegin', styleMarkup);
};
- const { BADGE: EL } = DOM;
+ /**
+ * Handles removal of comments of users that are blacklisted.
+ */
+ const handleRemovalOfBlacklisted = () => {
+ const blacklist = getLocalStorage('blacklist');
+ const isBlacklisted = nick => blacklist.includes(nick);
+ $$(DOM.BADGE.SELECTOR.NICK).forEach(el => {
+ if (isBlacklisted(el.innerText)) {
+ if (el.closest(DOM.COMMON.SELECTOR.COMMENT)) {
+ el.closest(DOM.COMMON.SELECTOR.COMMENT).remove();
+ } else if (el.closest(DOM.COMMON.SELECTOR.THREAD)) {
+ el.closest(DOM.COMMON.SELECTOR.THREAD).remove();
+ }
+ }
+ });
+ };
+
+ /**
+ * Function removes provided nick from the blacklist.
+ * @param {String} nick - nick to remove from blacklist
+ */
+ const removeFromBlackList = nickToRemove => {
+ const blacklist = getLocalStorage('blacklist');
+ const isBlacklisted = nick => blacklist.includes(nick);
+
+ if (isBlacklisted(nickToRemove)) {
+ const newBlacklist = blacklist.filter(el => el !== nickToRemove);
+
+ localStorage.setItem(
+ STORAGE_KEY_NAMES.BLACKLIST,
+ JSON.stringify(newBlacklist)
+ );
+ }
+ };
+
+ /**
+ * Decides how user profile is handled (wykop.pl/ludzie/*)
+ */
+ const handleBlacklistedProfile = () => {
+ /** nick from location.path */
+ const nick = location.pathname.split('/')[2];
+ const blacklist = getLocalStorage('blacklist');
+ const isBlacklisted = nick => blacklist.includes(nick);
+
+ /**
+ * if nick is blacklisted, make it greyed out, and add a padlock emoji
+ */
+ if (isBlacklisted(nick)) {
+ $(`${DOM.BADGE.SELECTOR.USER_PROFILE_NICK}:not(:first-child)`).style.filter = 'grayscale(65%)';
+ // eslint-disable-next-line max-len
+ $(DOM.BADGE.SELECTOR.USER_PROFILE_NICK_ELEMENT).insertAdjacentHTML('beforeend', `🔐 `);
+ }
+
+ /**
+ * If user clicks on the padlock, remove user from blacklist
+ */
+ document.addEventListener('click', event => {
+ if (event.target.id === DOM.BADGE.ID.PROFILE_BLACKLISTED) {
+ removeFromBlackList(nick);
+ }
+ });
+ };
+
+ const { BADGE: EL$4 } = DOM;
const handleBadges = () => {
/**
@@ -683,19 +747,19 @@
};
// function returns a nodeList with all elements containing line with nick, time since comment made, [+][-]
- const getAllNickElements = () => $$(EL.SELECTOR.NICK_ELEMENTS);
+ const getAllNickElements = () => $$(EL$4.SELECTOR.NICK_ELEMENTS);
//used on element - preferably one returned from getAllNickElements() - returns string with nick name.
const getNick = el => {
if (
- (!$(EL.SELECTOR.NICK, el) || $(EL.SELECTOR.NICK, el) === null) &&
- (!$(EL.SELECTOR.NICK_DELETED, el) || $(EL.SELECTOR.NICK_DELETED, el) === null)) {
+ (!$(EL$4.SELECTOR.NICK, el) || $(EL$4.SELECTOR.NICK, el) === null) &&
+ (!$(EL$4.SELECTOR.NICK_DELETED, el) || $(EL$4.SELECTOR.NICK_DELETED, el) === null)) {
throw new Error(`getNick didn't work for ${el}`);
}
- if ($(EL.SELECTOR.NICK, el) !== null) {
- return $(EL.SELECTOR.NICK, el).innerText;
- } else if ($(EL.SELECTOR.NICK_DELETED, el) !== null) {
- return $(EL.SELECTOR.NICK_DELETED, el).innerText;
+ if ($(EL$4.SELECTOR.NICK, el) !== null) {
+ return $(EL$4.SELECTOR.NICK, el).innerText;
+ } else if ($(EL$4.SELECTOR.NICK_DELETED, el) !== null) {
+ return $(EL$4.SELECTOR.NICK_DELETED, el).innerText;
}
// @TODO: add something to handle nicks on the right panel, apparently there is different DOM structure there which causes this above to throw error as nullish
};
@@ -703,11 +767,11 @@
// const getAllElementsWithNick = nick => $$(`.${EL.CLASSNAME.NICK}[class*="color"][href*="ludzie/${nick}"]`);
// used on author element, returned from getAllNickElements(), checks if person has already been marked with a badge
- const isNotAwarded = element => !$(`.${EL.CLASSNAME.BADGE}`, element);
+ const isNotAwarded = element => !$(`.${EL$4.CLASSNAME.BADGE}`, element);
// used on author element, returned from getAllNickElements(), checks if person has already been given a button
const hasButtonAppended = element =>
- !!$(`.${EL.CLASSNAME.MARK_BUTTON}`, element);
+ !!$(`.${EL$4.CLASSNAME.MARK_BUTTON}`, element);
const getDefaultBadgeLabelFromSettings = () => settings.BADGE.DEFAULT_NAME;
const getDefaultBadgeColorFromSettings = () => settings.BADGE.DEFAULT_COLOR;
@@ -723,7 +787,7 @@
const userData = getNickData(nick) ? getNickData(nick) : null;
const label = userData ? userData.label : getDefaultBadgeLabelFromSettings();
const color = userData && userData.color ? userData.color : getDefaultBadgeColorFromSettings();
- element.insertAdjacentHTML("afterbegin", badge$1(nick, label, true, color));
+ element.insertAdjacentHTML("afterbegin", badge(nick, label, true, color));
} else if (!hasButtonAppended(element)) {
element.insertAdjacentHTML("beforeend", buttonMarkup);
}
@@ -734,8 +798,8 @@
};
const addMarkAllButton = () => {
- if (document.getElementById(EL.ID.VOTES_CONTAINER)) {
- const nav = document.getElementById(EL.ID.VOTES_CONTAINER).closest('.rbl-block').querySelector('.nav ul + ul');
+ if (document.getElementById(EL$4.ID.VOTES_CONTAINER)) {
+ const nav = document.getElementById(EL$4.ID.VOTES_CONTAINER).closest('.rbl-block').querySelector('.nav ul + ul');
nav ? nav.insertAdjacentHTML("beforeend", buttonBulkMarkup) : '';
}
};
@@ -754,25 +818,25 @@
// if user is marked, and there isn't a badge next to his nick, inject it.
if (isMarked(nick) && isNotAwarded(element)) {
- element.insertAdjacentHTML("afterbegin", badge$1(nick));
+ element.insertAdjacentHTML("afterbegin", badge(nick));
}
// if user is marked and there already is a badge next to him - update text on the badge
if (dataChange && isMarked(nick) && !isNotAwarded(element)) {
- $(`.${EL.CLASSNAME.BADGE}`, element).remove();
+ $(`.${EL$4.CLASSNAME.BADGE}`, element).remove();
const nickData = getNickData(nick);
- element.insertAdjacentHTML("afterbegin", badge$1(nick, nickData.label, true, nickData.color));
+ element.insertAdjacentHTML("afterbegin", badge(nick, nickData.label, true, nickData.color));
}
// if user is marked - remove button to mark him as it's not needed anymore
if (
isMarked(nick) &&
- $(`.${EL.CLASSNAME.MARK_BUTTON}`, element) &&
- !$(`.${EL.CLASSNAME.MARK_BUTTON_CLICKED}`, element)
+ $(`.${EL$4.CLASSNAME.MARK_BUTTON}`, element) &&
+ !$(`.${EL$4.CLASSNAME.MARK_BUTTON_CLICKED}`, element)
) {
- $(`.${EL.CLASSNAME.MARK_BUTTON}`, element).remove();
+ $(`.${EL$4.CLASSNAME.MARK_BUTTON}`, element).remove();
}
// if user isn't marked and there is badge next to him (double negation here, might think on renaming it later on) - remove it
if (!isMarked(nick) && !isNotAwarded(element)) {
- $(`.${EL.CLASSNAME.BADGE}`, element).remove();
+ $(`.${EL$4.CLASSNAME.BADGE}`, element).remove();
}
});
@@ -787,19 +851,19 @@
// First, get nick of the author. Then, get link of the offending comment.
const addNewMarked = event => {
const nick = getNick(
- event.target.closest(`.${EL.CLASSNAME.NICK_ELEMENT}`)
+ event.target.closest(`.${EL$4.CLASSNAME.NICK_ELEMENT}`)
);
// verified accounts need be handled slightly differently
// event.target = .buttonWH
const link = event.target
- .closest(`.${EL.CLASSNAME.NICK_ELEMENT}`)
+ .closest(`.${EL$4.CLASSNAME.NICK_ELEMENT}`)
.querySelector(`.verified`)
? event.target
- .closest(`.${EL.CLASSNAME.NICK_ELEMENT}`)
- .querySelector(`.${EL.CLASSNAME.NICK_VERIFIED_BADGE} + a`).href
+ .closest(`.${EL$4.CLASSNAME.NICK_ELEMENT}`)
+ .querySelector(`.${EL$4.CLASSNAME.NICK_VERIFIED_BADGE} + a`).href
: event.target
- .closest(`.${EL.CLASSNAME.NICK_ELEMENT}`)
+ .closest(`.${EL$4.CLASSNAME.NICK_ELEMENT}`)
.querySelector("a + a").href;
const content = event.target
@@ -813,7 +877,7 @@
.closest('.wblock')
.querySelector('.text .media-content a').href : null;
- event.target.classList.add(EL.CLASSNAME.MARK_BUTTON_CLICKED);
+ event.target.classList.add(EL$4.CLASSNAME.MARK_BUTTON_CLICKED);
event.target.innerText = "\u2714";
addNickToArrays(nick, link, content, media);
@@ -845,6 +909,8 @@
JSON.stringify(unique)
);
+ removeFromBlackList(nick);
+
setTimeout(() => {
updateView();
}, 780);
@@ -952,14 +1018,14 @@
}
}
updateView(true);
- }
+ } else ;
});
};
//Add all users that up/down-voted a thread
const markAllWhoVoted = () => {
const link = window.location.href;
- const userCards = $$(`#${EL.ID.VOTES_CONTAINER} .${EL.CLASSNAME.VOTES_USERCARD}`);
+ const userCards = $$(`#${EL$4.ID.VOTES_CONTAINER} .${EL$4.CLASSNAME.VOTES_USERCARD}`);
let action;
if ($('#voters').closest('li').classList.contains('active')) {
@@ -990,7 +1056,7 @@
// on button click, add new marked user
document.getElementById("itemsStream").addEventListener("click", event => {
const target = event.target;
- if (target.classList.contains(EL.CLASSNAME.MARK_BUTTON)) {
+ if (target.classList.contains(EL$4.CLASSNAME.MARK_BUTTON)) {
addNewMarked(event);
}
if (target.classList.contains("affect") && target.closest(".more")) {
@@ -998,82 +1064,42 @@
markUsers();
}, 500);
}
- if (target.classList.contains(EL.CLASSNAME.BADGE)) {
+ if (target.classList.contains(EL$4.CLASSNAME.BADGE)) {
const nick = target.dataset.whusername;
- showUserModal(EL.DYNAMIC.DATASET.USERNAME(nick));
+ showUserModal(EL$4.DYNAMIC.DATASET.USERNAME(nick));
}
});
if (isPath.userProfile()) {
- $(`.${EL.CLASSNAME.USER_PROFILE}`).addEventListener("click", event => {
+ $(`.${EL$4.CLASSNAME.USER_PROFILE}`).addEventListener("click", event => {
const target = event.target;
- if (target.classList.contains(EL.CLASSNAME.BADGE)) {
+ if (target.classList.contains(EL$4.CLASSNAME.BADGE)) {
const nick = target.dataset.whusername;
- showUserModal(EL.DYNAMIC.DATASET.USERNAME(nick));
+ showUserModal(EL$4.DYNAMIC.DATASET.USERNAME(nick));
}
});
}
- if (document.getElementById(EL.ID.VOTES_CONTAINER)) {
- document.getElementById(EL.ID.VOTES_CONTAINER)
+ if (document.getElementById(EL$4.ID.VOTES_CONTAINER)) {
+ document.getElementById(EL$4.ID.VOTES_CONTAINER)
.closest('.rbl-block').querySelector('.nav').addEventListener("click", event => {
const target = event.target;
- if (target.classList.contains(EL.CLASSNAME.MARK_ALL_BUTTON)) {
+ if (target.classList.contains(EL$4.CLASSNAME.MARK_ALL_BUTTON)) {
markAllWhoVoted();
- $(`.${EL.CLASSNAME.MARK_ALL_BUTTON}`).innerText = 'Zrobione :)';
+ $(`.${EL$4.CLASSNAME.MARK_ALL_BUTTON}`).innerText = 'Zrobione :)';
setTimeout(() => {
- $(`.${EL.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display = 'none';
- $(`.${EL.CLASSNAME.MARK_ALL_BUTTON}`).innerText = 'Oznacz wszystkich poni\u017Cej';
+ $(`.${EL$4.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display = 'none';
+ $(`.${EL$4.CLASSNAME.MARK_ALL_BUTTON}`).innerText = 'Oznacz wszystkich poni\u017Cej';
}, 500);
}
if (target.closest('#voters') || target.closest('#votersBury')) {
- $(`.${EL.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display = 'block';
+ $(`.${EL$4.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display = 'block';
}
});
}
};
- /**
- * Handles removal of comments of users that are blacklisted.
- */
- const handleRemovalOfBlacklisted = () => {
- const blacklist = getLocalStorage('blacklist');
- const isBlacklisted = nick => blacklist.includes(nick);
- $$(DOM.BADGE.SELECTOR.NICK).forEach(el => {
- if (isBlacklisted(el.innerText)) {
- if (el.closest(DOM.COMMON.SELECTOR.COMMENT)) {
- el.closest(DOM.COMMON.SELECTOR.COMMENT).remove();
- } else if (el.closest(DOM.COMMON.SELECTOR.THREAD)) {
- el.closest(DOM.COMMON.SELECTOR.THREAD).remove();
- }
- }
- });
- };
-
- const handleBlacklistedProfile = () => {
- const nick = location.pathname.split('/')[2];
- const blacklist = getLocalStorage('blacklist');
- const isBlacklisted = nick => blacklist.includes(nick);
-
- if (isBlacklisted(nick)) {
- $(`${DOM.BADGE.SELECTOR.USER_PROFILE_NICK}:not(:first-child)`).style.filter = 'grayscale(65%)';
- // eslint-disable-next-line max-len
- $(DOM.BADGE.SELECTOR.USER_PROFILE_NICK_ELEMENT).insertAdjacentHTML('beforeend', `🔐 `);
- }
-
- document.addEventListener('click', event => {
- if (event.target.id === DOM.BADGE.ID.PROFILE_BLACKLISTED) {
- const newBlacklist = blacklist.filter(el => el !== nick);
- localStorage.setItem(
- STORAGE_KEY_NAMES.BLACKLIST,
- JSON.stringify(newBlacklist)
- );
- location.reload();
- }
- });
- };
-
- const { BADGE: EL$1 } = DOM;
+ const { BADGE: EL$3 } = DOM;
let uniqueNicksSet = getLocalStorage("unique");
@@ -1090,9 +1116,9 @@
* used on author element, returned from getAllNickElements(), checks if person has already been marked with a badge
* @param {HTMLElement} element - element to check
*/
- const isNotAwarded = element => !$(`.${EL$1.CLASSNAME.BADGE}`, element);
+ const isNotAwarded = element => !$(`.${EL$3.CLASSNAME.BADGE}`, element);
- let settings$3 = getLocalStorage("settings");
+ let settings$1 = getLocalStorage("settings");
/**
* gets user data from objects inside marked users array.
@@ -1124,8 +1150,8 @@
/**
* @returns {String} default name for badge set in settings by user.
*/
- const getDefaultBadgeLabelFromSettings = () => settings$3.BADGE.DEFAULT_NAME;
- const getDefaultBadgeColorFromSettings = () => settings$3.BADGE.DEFAULT_COLOR;
+ const getDefaultBadgeLabelFromSettings = () => settings$1.BADGE.DEFAULT_NAME;
+ const getDefaultBadgeColorFromSettings = () => settings$1.BADGE.DEFAULT_COLOR;
const { BADGE: EL$2 } = DOM;
@@ -1140,7 +1166,7 @@
const color = userData ? userData.color : getDefaultBadgeColorFromSettings();
if (isMarked(nick) && isNotAwarded(nickElement)) {
- nickElement.insertAdjacentHTML("afterbegin", badge$1(nick, label, true, color));
+ nickElement.insertAdjacentHTML("afterbegin", badge(nick, label, true, color));
}
};
@@ -1155,7 +1181,7 @@
`;
- const settings$4 = getLocalStorage('settings');
+ const settings = getLocalStorage('settings');
const handleDomainCheck = () => {
/**
@@ -1163,7 +1189,7 @@
* @return {boolean} True if yes, false otherwise
*/
const isSettingActive = () => {
- if (settings$4.GENERAL.WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA) {
+ if (settings.GENERAL.WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA) {
return true;
}
@@ -1171,7 +1197,7 @@
};
const processDomains = () => {
- const domains = settings$4.GENERAL.SUSPECT_DOMAINS || [];
+ const domains = settings.GENERAL.SUSPECT_DOMAINS || [];
const processedDomains = domains.map(domain => {
const https = 'https://' + domain;
@@ -1197,7 +1223,7 @@
const threadLink = $(DOM.DOMAIN_CHECKER.SELECTOR.THREAD_LINK).href;
const url = new URL(threadLink);
const threadLinkHostname = url.protocol + '//' + url.hostname;
- const annotationMarkup = annotation(settings$4.GENERAL.SUSPECT_DOMAINS_LABEL);
+ const annotationMarkup = annotation(settings.GENERAL.SUSPECT_DOMAINS_LABEL);
if (suspectDomains.includes(threadLinkHostname)) {
$(`.${DOM.DOMAIN_CHECKER.CLASSNAME.WYKOP_ITEM_INTRO}`).insertAdjacentHTML('beforebegin', annotationMarkup);
@@ -1424,15 +1450,16 @@
* - add it as a default in /utils/handleLocalStorage
* - add HTML for it in /model/modules/settings.model
* - add check in appropriate module. If you want it to be ON by default, you will need to make it so using /utils/runOnceOnUpdate
+ * - add module to index.js
*/
- const { SETTINGS: EL$3 } = DOM;
+ const { SETTINGS: EL$1 } = DOM;
/**
* Inserts navigation item on a /ustawienia/ page with link to WykopHelper settings
*/
const createSettingsPage = () => {
- $(EL$3.SELECTOR.LAST_NAV_ELEMENT).insertAdjacentHTML('beforeend', settingsModel.settingsNav);
+ $(EL$1.SELECTOR.LAST_NAV_ELEMENT).insertAdjacentHTML('beforeend', settingsModel.settingsNav);
};
const handleSettings = () => {
@@ -1441,7 +1468,7 @@
const uniqueNicksSet = getLocalStorage('unique');
const blacklist = getLocalStorage('blacklist');
- const settingsFormElement = $(EL$3.SELECTOR.SETTINGS_FORM_ELEMENT);
+ const settingsFormElement = $(EL$1.SELECTOR.SETTINGS_FORM_ELEMENT);
/**
* clears localstorage. Doesn't remove items, but sets them to empty array
@@ -1456,7 +1483,7 @@
* Creates table with marked users.
*/
const generateUserTables = () => {
- const tableBody = $(`.${EL$3.CLASSNAME.WH_USER_TABLE_BODY}`);
+ const tableBody = $(`.${EL$1.CLASSNAME.WH_USER_TABLE_BODY}`);
markedUsers.forEach(el => {
tableBody.insertAdjacentHTML(
@@ -1469,13 +1496,13 @@
};
const toggleUserTableVisibility = () => {
- $(`.${EL$3.CLASSNAME.WH_USER_TABLE_CONTAINER}`)
- .classList.toggle(`${EL$3.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`);
+ $(`.${EL$1.CLASSNAME.WH_USER_TABLE_CONTAINER}`)
+ .classList.toggle(`${EL$1.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`);
- if ($(`.${EL$3.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`)) {
- document.getElementById(EL$3.ID.SHOW_MARKED_TABLE).textContent = settingsModel.textContent.SHOW_ALL_MARKED;
+ if ($(`.${EL$1.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`)) {
+ document.getElementById(EL$1.ID.SHOW_MARKED_TABLE).textContent = settingsModel.textContent.SHOW_ALL_MARKED;
} else {
- document.getElementById(EL$3.ID.SHOW_MARKED_TABLE).textContent = settingsModel.textContent.HIDE_TABLE;
+ document.getElementById(EL$1.ID.SHOW_MARKED_TABLE).textContent = settingsModel.textContent.HIDE_TABLE;
}
};
@@ -1505,7 +1532,7 @@
}
}).then(result => {
if (result.isConfirmed) {
- let list = $(`#${EL$3.ID.SUSPECT_DOMAINS_SETTINGS_TEXTAREA}`).value;
+ let list = $(`#${EL$1.ID.SUSPECT_DOMAINS_SETTINGS_TEXTAREA}`).value;
list.replace('https://', '').replace('http://', '').replace('www.', '').replace(' ', '');
const arrayList = list.split('\n');
settings.GENERAL.SUSPECT_DOMAINS = arrayList;
@@ -1548,8 +1575,8 @@
width: "80%",
}).then(result => {
if (result.isConfirmed) {
- const imported = $(`#${EL$3.ID.IMPORT_TEXTAREA}`).value;
- const checkboxValue = $(`input[type="radio"][name="${EL$3.SELECTOR.IMPORT_CHECKBOX_NAME}"]:checked`).value;
+ const imported = $(`#${EL$1.ID.IMPORT_TEXTAREA}`).value;
+ const checkboxValue = $(`input[type="radio"][name="${EL$1.SELECTOR.IMPORT_CHECKBOX_NAME}"]:checked`).value;
if (checkboxValue && checkboxValue === 'settings') {
localStorage.setItem(STORAGE_KEY_NAMES.WH_SETTINGS, imported);
@@ -1580,7 +1607,7 @@
width: "80%",
}).then(result => {
if (result.isConfirmed) {
- const exportedData = $(`#${EL$3.ID.EXPORT_TEXTAREA}`);
+ const exportedData = $(`#${EL$1.ID.EXPORT_TEXTAREA}`);
exportedData.select();
document.execCommand('copy');
}
@@ -1595,7 +1622,7 @@
inputs.forEach(el => {
const category = el.getAttribute('category');
- if (el.id !== EL$3.ID.ALLOW_WIPE_MARKED_LIST && el.type === 'checkbox') {
+ if (el.id !== EL$1.ID.ALLOW_WIPE_MARKED_LIST && el.type === 'checkbox') {
el.checked = settings[category][el.name];
} else if (el.type === 'text' && el.name !== 'nsQ') {
el.value = settings[category][el.name] || '';
@@ -1606,8 +1633,8 @@
};
const renderSettings = () => {
- $(EL$3.SELECTOR.ACTIVE_NAV_ELEMENT).classList.remove('active');
- $(`.${EL$3.CLASSNAME.WH_NAV_SETTINGS_LINK}`).classList.add('active');
+ $(EL$1.SELECTOR.ACTIVE_NAV_ELEMENT).classList.remove('active');
+ $(`.${EL$1.CLASSNAME.WH_NAV_SETTINGS_LINK}`).classList.add('active');
settingsFormElement.innerHTML = '';
settingsFormElement.innerHTML = settingsModel.settingsMarkup;
@@ -1628,7 +1655,7 @@
const category = event.target.getAttribute('category');
const name = event.target.name;
- if (event.target.type === 'checkbox' && event.target.id !== EL$3.ID.ALLOW_WIPE_MARKED_LIST) {
+ if (event.target.type === 'checkbox' && event.target.id !== EL$1.ID.ALLOW_WIPE_MARKED_LIST) {
settings[category][name] = !settings[category][name];
localStorage.setItem(STORAGE_KEY_NAMES.WH_SETTINGS, JSON.stringify(settings));
}
@@ -1639,47 +1666,47 @@
}, {passive: true});
settingsFormElement.addEventListener('click', event => {
- if (event.target.id === EL$3.ID.SHOW_MARKED_TABLE) {
+ if (event.target.id === EL$1.ID.SHOW_MARKED_TABLE) {
event.preventDefault();
toggleUserTableVisibility();
}
- if (event.target.id === EL$3.ID.ALLOW_WIPE_MARKED_LIST) {
+ if (event.target.id === EL$1.ID.ALLOW_WIPE_MARKED_LIST) {
event.target.disabled = true;
- document.getElementById(EL$3.ID.REMOVE_ALL_MARKED).disabled = false;
- document.getElementById(EL$3.ID.REMOVE_ALL_MARKED).style.opacity = 1;
+ document.getElementById(EL$1.ID.REMOVE_ALL_MARKED).disabled = false;
+ document.getElementById(EL$1.ID.REMOVE_ALL_MARKED).style.opacity = 1;
}
- if (event.target.id === EL$3.ID.REMOVE_ALL_MARKED) {
+ if (event.target.id === EL$1.ID.REMOVE_ALL_MARKED) {
event.preventDefault();
wipeAllMarkedUsers();
}
- if (event.target.id === EL$3.ID.SUSPECT_DOMAINS_SETTINGS_LINK) {
+ if (event.target.id === EL$1.ID.SUSPECT_DOMAINS_SETTINGS_LINK) {
showModalWithPropagandaExplanation();
}
- if (event.target.id === EL$3.ID.WARN_ON_RELOAD_INFO_LINK) {
+ if (event.target.id === EL$1.ID.WARN_ON_RELOAD_INFO_LINK) {
showModalWithWarnOnReloadExplanation();
}
- if (event.target.id === EL$3.ID.IMPORT_BUTTON) {
+ if (event.target.id === EL$1.ID.IMPORT_BUTTON) {
event.preventDefault();
showModalWithImport();
}
- if (event.target.id === EL$3.ID.EXPORT_BUTTON) {
+ if (event.target.id === EL$1.ID.EXPORT_BUTTON) {
event.preventDefault();
showModalWithExport();
}
}, {passive: false});
document.addEventListener('click', event => {
- if (event.target.id === EL$3.ID.EXPORT_SETTINGS_BUTTON) {
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = '';
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(settings);
+ if (event.target.id === EL$1.ID.EXPORT_SETTINGS_BUTTON) {
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = '';
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(settings);
}
- if (event.target.id === EL$3.ID.EXPORT_MARKED_BUTTON) {
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = '';
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(markedUsers);
+ if (event.target.id === EL$1.ID.EXPORT_MARKED_BUTTON) {
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = '';
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(markedUsers);
}
- if (event.target.id === EL$3.ID.EXPORT_BLACKLIST_BUTTON) {
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = '';
- $(`#${EL$3.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(blacklist);
+ if (event.target.id === EL$1.ID.EXPORT_BLACKLIST_BUTTON) {
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = '';
+ $(`#${EL$1.ID.EXPORT_TEXTAREA}`).innerText = JSON.stringify(blacklist);
}
}, {passive: true});
@@ -1741,20 +1768,15 @@
/* eslint max-len: 0 */
const changesArray = [
- 'W ustawieniach mo\u017Cna wybra\u0107 domy\u015Blny kolor odznaki, kt\xF3ry b\u0119dzie nadawany ka\u017Cdemu nowemu oznaczonemu.',
- '...Ale kolor ten mo\u017Cna zmieni\u0107 dla ka\u017Cdego z osobna - w popupie aktywowanym klikni\u0119ciem w odznak\u0119 przy danym userze.',
- 'Dodatkowo, w popupie usera mo\u017Cna zadecydowa\u0107 o wrzuceniu usera na super czarn\u0105 list\u0119. Ale ostro\u017Cnie - po zczarnolistowaniu, posty danego u\u017Cytkownika b\u0119d\u0105 ca\u0142kowicie usuwane, a nie tylko chowane jak w wykopowej czarnej li\u015Bcie. P\xF3\u017Aniej - aby u\u017Cytkownikowi wybaczy\u0107, i z czarnej listy go zdj\u0105\u0107 - nale\u017Cy uda\u0107 si\u0119 do jego profilu (wykop.pl/ludzie/NICK) i klikn\u0105\u0107 na ikon\u0119 k\u0142\xF3dki przy jego nicku. O tym, \u017Ce dany user jest zczarnolistowany, \u015Bwiadczy w jego profilu ta k\u0142\xF3dka, oraz lekko przytumiony nick.',
- 'Dodano funkcj\u0119, aktywowan\u0105 w ustawieniach, umo\u017Cliwiaj\u0105c\u0105 usuwanie tekstu "via [nazwa aplikacji]" w komentarzach u\u017Cytkownik\xF3w. Przy d\u0142u\u017Cszych nickach, albo przy stosowaniu innych dodatk\xF3w (np. pokazuj\u0105cych czy dany user wykopa\u0142 czy zakopa\u0142 znalezisko) ta ma\u0142o u\u017Cyteczna informacja o aplikacji jakiej kto\u015B u\u017Cywa potrafi spowodowa\u0107 nachodzenie na siebie r\xF3\u017Cnych tekst\xF3w.',
- 'W ustawieniach mo\u017Cna r\xF3wnie\u017C od teraz eksportowa\u0107 i importowa\u0107 swoje ustawienia i listy oznaczonych i czarnolistowanych u\u017Cytkownik\xF3w. Na razie jest to proces raczej r\u0119czny (wymaga kopiowania i przeklejania ci\u0105g\xF3w znak\xF3w mi\u0119dzy przegl\u0105darkami); mo\u017Cliwe, \u017Ce w przysz\u0142o\u015Bci co\u015B tutaj zostanie udoskonalone, chocia\u017C nie ukrywam, \u017Ce wynika to z mojej niech\u0119ci do u\u017Cywania zewn\u0119trznych us\u0142ug - bo wtedy wchodzi\u0142yby w gr\u0119 kwestie prywatno\u015Bci, dost\u0119p\xF3w, \u015Bledzenia i tak dalej i tak dalej... a tego chc\u0119 za wszelk\u0105 cen\u0119 unikn\u0105\u0107.',
- 'Od teraz odznaka b\u0119dzie si\u0119 wy\u015Bwietla\u0107 dok\u0142adnie tak, jak to ustawisz w ustawieniach b\u0105d\u017A konkretnemu userowi. Do tej pory wymuszana by\u0142a konwencja rozpoczynania tekstu wielk\u0105 liter\u0105, a reszta ma\u0142ymi - ale ju\u017C nie jest. Je\u015Bli chcesz, mo\u017Cesz nawet pisa\u0107 po pOkEmOnOwEmU :)',
- 'Par\u0119 wizualnych zmian (ikony itp.; nic prze\u0142omowego). Redesign ca\u0142o\u015Bci, a zw\u0142aszcza popupu odznaki, wkr\xF3tce - bo powoli robi si\u0119 ma\u0142o estetyczny ba\u0142agan.',
- 'Znikn\u0119\u0142o sporo pomniejszych bug\xF3w.',
- 'Z pewno\u015Bci\u0105 pojawi\u0142o si\u0119 sporo nowych bug\xF3w :)'
+ 'Dodana opcja "naprawiania" link\xF3w do YT; po jej w\u0142\u0105czeniu w ustawieniach, osadzone filmy z YT nie b\u0119d\u0105 ju\u017C linkowa\u0107 do jakiej\u015B francuskiej strony z wyra\u017Caniem zgody na kto-wie-co, tylko bezpo\u015Brednio do filmu.',
+ 'Poprawki w funkcjonalno\u015Bci usuwania informacji o postowaniu przez aplikacj\u0119;',
+ 'Usuni\u0119ty b\u0142\u0105d uniemo\u017Cliwiaj\u0105cy korzystanie z funkcjonalno\u015Bci oznaczania autora w\u0105tku na mikroblogu;',
+ 'Usuni\u0119ty b\u0142\u0105d kt\xF3ry powodowa\u0142, \u017Ce je\u015Bli X zosta\u0142 dodany na czarn\u0105 list\u0119, a potem zosta\u0142o usuni\u0119te odznaczenie, to zostawa\u0142 na czarnej li\u015Bcie na zawsze.'
];
const listItem = text => `${text} `;
- const version = `0.70`;
+ const version = `0.72`;
const welcomeText = {
title: "WykopHelper zainstalowany!",
@@ -1823,11 +1845,11 @@ Dodatek WykopHelper został właśnie zaktualizowany do wersji ${version
});
};
- const { BADGE: EL$4 } = DOM;
+ const { BADGE: EL } = DOM;
const isTextareaEmpty = () => {
- const replyForm = $(EL$4.SELECTOR.REPLY_FORM);
- const commentForm = $(EL$4.SELECTOR.COMMENT_FORM);
+ const replyForm = $(EL.SELECTOR.REPLY_FORM);
+ const commentForm = $(EL.SELECTOR.COMMENT_FORM);
// for whatever reason, chrome just can't handle belows checks the way they should work (so simply assigning the check to const); instead of simple boolean false if it encounters something like undef or null, it throws all sorts of different errors. Hence, it's done like that. Took about an hour experimenting.
let isCommentNotEmpty = false;
@@ -1989,7 +2011,10 @@ Dodatek WykopHelper został właśnie zaktualizowany do wersji ${version
const handleRemoval = () => {
$$(`.${DOM.BADGE.CLASSNAME.NICK_ELEMENT}`).forEach(el => {
// tests show that using style.display = 'none' is significantly (around 3 times) faster than remove().
- el.querySelector('a + small').style.display = 'none';
+ const postedViaAppElement = el.querySelector('a + small');
+ if (postedViaAppElement) {
+ postedViaAppElement.style.display = 'none';
+ }
});
};
@@ -2041,4 +2066,4 @@ Dodatek WykopHelper został właśnie zaktualizowany do wersji ${version
highlightOp();
}
-}());
+})();
diff --git a/dist/whhelper.user.js b/dist/whhelper.user.js
index 9a6ba30..c5f92a5 100644
--- a/dist/whhelper.user.js
+++ b/dist/whhelper.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name WykopHelper
-// @version 0.70
+// @version 0.72
// @updateURL https://cdn.jsdelivr.net/gh/plwpl/WykopHelper/dist/whhelper.user.js
// @downloadURL https://cdn.jsdelivr.net/gh/plwpl/WykopHelper/dist/whhelper.user.js
// @description Zestaw narzędzi pomocnych na wykopie. Pełna, niezminifikowana wersja kodu dostępna na githubie - PLWpl/WykopHelper
@@ -9,4 +9,4 @@
// @require https://cdn.jsdelivr.net/npm/sweetalert2@10
// @grant none
// ==/UserScript==
-!function(){"use strict";const e=location.href,t=()=>!!(e.indexOf("wykop.pl")>-1),n=()=>e.indexOf("wykop.pl/link/")>-1||e.indexOf("wykop.pl/mikroblog/")>-1||e.indexOf("wykop.pl/wpis/")>-1||e.indexOf("wykop.pl/moj/")>-1||e.indexOf("wykop.pl/ludzie/")>-1||e.indexOf("wykop.pl/tag/")>-1,o=()=>!!(e.indexOf("wykop.pl/ustawienia/")>-1),a=()=>!!(e.indexOf("wykop.pl/ustawienia/wykophelper")>-1),i=()=>!!(e.indexOf("wykop.pl/link/")>-1),l=()=>!!(e.indexOf("wykop.pl/wpis/")>-1),r=()=>!!(e.indexOf("wykop.pl/ludzie/")>-1),s=(e,t=document)=>t.querySelector(e),E=(e,t=document)=>t.querySelectorAll(e),c="whMarkedUsers",A="whUniqueNicks",T="whSettings",S="whBlacklist",d={COMMON:{CLASSNAME:{WOODLE:"woodle",BUTTON:"buttonWH"},ID:{COMMENTS_STREAM:"itemsStream"},SELECTOR:{TAGS:".fix-tagline > .tag.affect.create[href]",COMMENT:'[data-type="comment"]',THREAD:'[data-type="entrycomment"]'}},BADGE:{CLASSNAME:{NICK_ELEMENT:"author",NICK_VERIFIED_BADGE:"verified",NICK:"showProfileSummary",VOTES_USERCARD:"usercard",USER_PROFILE:"user-profile",BADGE:"badgeWH",BADGE_UNCLICKABLE:"badgeWH--unclickable",BADGE_CLICKABLE:"badgeWH--clickable",MARK_BUTTON:"buttonWH",MARK_BUTTON_CLICKED:"buttonWH--clicked",MARK_ALL_BUTTON_ELEMENT:"buttonWH--markAllContainer",MARK_ALL_BUTTON:"buttonWH--markAll",MODAL_BUTTON:"modalWH-button",MODAL_BUTTON_REMOVE:"modalWH-button--remove",MODAL_TEXT:"modalWH-text",PROFILE_BLACKLISTED:"whProfile--blacklistedIcon"},ID:{VOTES_CONTAINER:"votesContainer",PROFILE_BLACKLISTED:"whBlacklistedIcon"},SELECTOR:{NICK_ELEMENTS:".grid-main li div.author",NICK:".showProfileSummary > b",NICK_DELETED:".author > .color-1002",REPLY_FORM:".replyForm textarea",COMMENT_FORM:"#commentFormContainer textarea",USER_PROFILE_NICK_ELEMENT:".user-profile h2",USER_PROFILE_NICK:".user-profile h2 span"},DYNAMIC:{DATASET:{USERNAME:e=>"[data-whusername='"+e}}},SETTINGS:{CLASSNAME:{SETTINGS_NAV:"whSettingsLink",SETTINGS_GENERAL:"settings--general",SETTINGS_BADGE:"settings--badge",SETTINGS_SPECIAL:"settings--special",SETTINGS_BOX:"settings__box",WH_NAV_SETTINGS_LINK:"whSettingsLink",WH_USER_TABLE:"tableWH",WH_USER_TABLE_ROW:"tableWH__row",WH_USER_TABLE_HEAD:"tableWH__head",WH_USER_TABLE_HEADING:"tableWH__heading",WH_USER_TABLE_CONTAINER:"tableWH__container",WH_USER_TABLE_CONTAINER_HIDDEN:"tableWH__container--hidden",WH_USER_TABLE_BODY:"tableWH__body",WH_USER_TABLE_REMOVE_BUTTON:"tableWH__nick-remove",WH_USER_TABLE_BADGE_COLOR:"tableWH__badgeColor",WH_SETTINGS_CROSSED:"settings__crossed"},ID:{SHOW_MARKED_TABLE:"showAllMarked",ALLOW_WIPE_MARKED_LIST:"allowWipeAllMarked",REMOVE_ALL_MARKED:"whsettings__remove-all-marked",SUSPECT_DOMAINS_SETTING:"warnOnSuspectDomain",SUSPECT_DOMAINS_SETTINGS_LINK:"suspectDomainsSettings",SUSPECT_DOMAINS_SETTINGS_TEXTAREA:"suspectDomains",WARN_ON_RELOAD_SETTING:"warnOnReload",WARN_ON_RELOAD_INFO_LINK:"warnOnReloadInfo",IMPORT_BUTTON:"buttonImport",EXPORT_BUTTON:"buttonExport",IMPORT_TEXTAREA:"importArea",EXPORT_TEXTAREA:"exportArea",EXPORT_SETTINGS_BUTTON:"buttonExportSettings",EXPORT_MARKED_BUTTON:"buttonExportMarkedUsers",EXPORT_BLACKLIST_BUTTON:"buttonExportBlacklist",IMPORT_SETTINGS_BUTTON:"buttonImportSettings",IMPORT_MARKED_BUTTON:"buttonImportMarkedUsers",IMPORT_BLACKLIST_BUTTON:"buttonImportBlacklist"},SELECTOR:{LAST_NAV_ELEMENT:"#site .nav > ul > li:last-child",ACTIVE_NAV_ELEMENT:"#site .nav > ul .active",SETTINGS_FORM_ELEMENT:"#site .grid-main .settings",IMPORT_CHECKBOX_NAME:"whImportExportChoice"}},HIGHLIGHT_OP:{CLASSNAME:{HIGHLIGHT_BUTTON:"button--highlightOp",AUTHOR_COMMENTS:"authorComment"},SELECTOR:{OP_THREAD:'[data-type="entry"]'}},EMBED:{CLASSNAME:{EMBED_FILE:"embedFile"}},DOMAIN_CHECKER:{CLASSNAME:{WYKOP_ITEM_INTRO:"bspace",WYKOP_ITEM_ANNOTATION:"annotation"},ID:{},SELECTOR:{THREAD_LINK:".article h2 a"}},MODAL:{CLASSNAME:{LINK:"whModalLink",LIST:"whModal__list",LIST_ITEM:"whModal__list-item",INPUT_LABEL:"whModal__label",INPUT_TEXT:"whModal__inputText",SCROLLABLE_TEXT:"whModal__scrollableText"},ID:{BADGE_TEXT:"whModal_badgeText",BADGE_COLOR:"whModal_badgeColor",BLACKLIST:"whModal_blacklist"}}},L={badge:`\n.${d.BADGE.CLASSNAME.MARK_BUTTON} {\n display: inline-block;\n padding: .2rem .2rem;\n border: 1px solid #9999996e;\n cursor: pointer;\n margin-left: .5rem;\n color: #808080ba;\n border-radius: .3rem;\n font-size: .7rem;\n line-height: .7rem;\n transition: .3s all;\n}\n.${d.BADGE.CLASSNAME.MARK_BUTTON}:hover {\n border-color: green;\n}\n.${d.BADGE.CLASSNAME.MARK_BUTTON_CLICKED} {\n border-color: green;\n opacity: 0;\n}\n.${d.BADGE.CLASSNAME.BADGE} {\n color: var(--badgeColor);\n font-weight: bold;\n margin-right: .3rem;\n border: 1px solid currentColor;\n padding: .1rem .2rem;\n position: relative;\n top: .1rem;\n}\n.${d.BADGE.CLASSNAME.BADGE_CLICKABLE} {\n cursor: pointer;\n}\n.${d.BADGE.CLASSNAME.BADGE_UNCLICKABLE} {\n cursor: default;\n}\n.${d.BADGE.CLASSNAME.MODAL_BUTTON} {\n display: block;\n padding: .4rem .8rem;\n border: 1px solid #9999996e;\n cursor: pointer;\n color: #808080ba;\n border-radius: .3rem;\n font-size: 1rem;\n line-height: 1rem;\n transition: .3s all;\n}\n.author .${d.BADGE.CLASSNAME.MODAL_TEXT} {\n position: relative;\n margin-bottom: .5rem;\n top: unset;\n right: unset;\n left: unset;\n bottom: unset;\n}\n\n.${d.BADGE.CLASSNAME.MARK_ALL_BUTTON} {\n top: 0.8rem;\n position: relative;\n}\n\n.${d.BADGE.CLASSNAME.PROFILE_BLACKLISTED} {\n cursor: pointer;\n}\n\n.${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON} {\n position: absolute;\n top: .1rem;\n left: 0;\n}\n\n@media screen and (min-width: 722px) {\n .${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON} {\n top: 6rem;\n left: 1rem;\n }\n}\n\n.${d.DOMAIN_CHECKER.CLASSNAME.MODAL_TEXT_LIST} {\n margin-top:1rem;list-style-type: circle;font-size:1rem;\n}\n\n.${d.DOMAIN_CHECKER.CLASSNAME.MODAL_TEXT_LIST_ITEM} {\n text-align:left;margin-left:2rem;margin-bottom:.7rem\n}\n`,settings:`\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_CONTAINER} {\n padding: 1rem;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_CONTAINER_HIDDEN} {\n display: none;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} {\n counter-reset: row-num;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} .${d.SETTINGS.CLASSNAME.WH_USER_TABLE_ROW} {\n counter-increment: row-num;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} .${d.SETTINGS.CLASSNAME.WH_USER_TABLE_ROW} td:first-child::before {\n content: counter(row-num) ". ";\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_HEAD} {\n font-weight: bold;\n border-bottom: 2px solid currentColor;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_BADGE_COLOR} {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n background: var(--settingsBadgeColor);\n border-radius: .5rem;\n}\n.${d.SETTINGS.CLASSNAME.WH_SETTINGS_CROSSED} {\n opacity: .4;\n text-decoration: line-through;\n cursor: not-allowed;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_REMOVE_BUTTON} {\n cursor: pointer;\n color: #c0392b;\n}\n.${d.SETTINGS.CLASSNAME.SETTINGS_BOX} {\n border-bottom: 1px solid #d3d3d329;\n border-left: 1px solid #d3d3d329;\n border-right: 1px solid #d3d3d329;\n}\n.${d.MODAL.CLASSNAME.LINK} {\n color: #862828;\n}\n.${d.MODAL.CLASSNAME.LINK}:hover {\n color: #4a1313 !important;\n}\n`,modal:`\n.swal2-popup.swal2-modal.swal2-show {\n background-color: #1b1b1b !important;\n border: 1px solid #ff5917 !important;\n}\n.swal2-icon.swal2-info {\n border-color: #542621 !important;\n color: #c0392b !important;\n}\n\n.swal2-title {\n color: #a2a2a2 !important;\n}\n\n.swal2-content {\n color: #888;\n text-align: unset;\n}\n\n.swal2-styled.swal2-confirm {\n background-color: #e74c3c6b !important;\n}\n.${d.MODAL.CLASSNAME.LIST} {\n margin-top: 1rem;\n list-style-type: square;\n}\n.${d.MODAL.CLASSNAME.LIST_ITEM} {\n text-align: left;\n margin-left: 2rem;\n margin-bottom: .7rem\n}\n\n.${d.MODAL.CLASSNAME.INPUT_LABEL} {\n text-transform: none;\n align-items: center;\n display: inline-flex;\n margin: .3rem 0;\n}\n\n.${d.MODAL.CLASSNAME.INPUT_TEXT}, .${d.MODAL.CLASSNAME.INPUT_TEXT}:focus {\n color: #464646 !important;\n}\n\n.${d.MODAL.CLASSNAME.SCROLLABLE_TEXT} {\n margin-top:.5rem;\n border:1px solid gray;\n padding: 1rem;\n text-align:left;\n overflow-y: auto;\n max-height: 15rem;\n}\n`},_={BADGE:{HIDE_MARKED_USERS:!1,DEFAULT_NAME:"Debil",DEFAULT_COLOR:"#ff0000"},GENERAL:{WARN_ON_RELOAD:!1,WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA:!0,SUSPECT_DOMAINS_LABEL:"Uważaj! Źródło tego znaleziska jest podejrzewane o szerzenie rosyjskiej propagandy.",SUSPECT_DOMAINS:["alternews.pl","alexjones.pl","dziennik-polityczny.com","koniec-swiata.org","magnapolonia.org","narodowcy.net","nczas.com","mysl.pl","ndie.pl","neon24.pl","newsweb.pl","parezja.pl","prostozmostu24.pl","prawdaobiektywna.pl","reporters.pl","sioe.pl","wmeritum.pl","wolnosc24.pl","wolna-polska.pl","wprawo.pl","wsensie.pl","zmianynaziemi.pl","sputniknews.com","rt.com","ruptly.tv","prawica.net","xportal.pl","kresy.pl","bdp.xportal.pl","geopolityka.org","pravda.ru","voiceofrussia.com","ria.ru","ligakobietpolskich.pl","ronik.org.pl","obserwatorpolityczny.pl","mysl-polska.pl"],REMOVE_WOODLE:!1,REMOVE_COMMENTS:"",REMOVE_ALL_COMMENTS:!1,REMOVE_POSTED_VIA_APP:!1}},N=[],p=[],O=[],m=()=>{localStorage.getItem(T)||localStorage.setItem(T,JSON.stringify(_))},u=(e="marked")=>{switch(e){case"settings":return m(),JSON.parse(localStorage.getItem(T));case"unique":return localStorage.getItem(A)||localStorage.setItem(A,JSON.stringify(N)),JSON.parse(localStorage.getItem(A));case"marked":return localStorage.getItem(c)||localStorage.setItem(c,JSON.stringify(p)),JSON.parse(localStorage.getItem(c));case"blacklist":return localStorage.getItem(S)||localStorage.setItem(S,JSON.stringify(O)),JSON.parse(localStorage.getItem(S));default:throw new Error(`Unknown storage type: ${e}. Pick either "unique", "marked", "blacklist" or "settings"`)}},I=u("settings").BADGE.DEFAULT_COLOR,M=`Oznacz `,w=`Oznacz wszystkich poniżej `,g=(e,t="debil",n=!0,o=I)=>`${t} `,C=u("settings"),y=(d.MODAL.CLASSNAME.LIST,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,`\n \n Treść komunikatu ostrzegającego, gdy znalezisko pochodzi z podejrzanego źródła:\n \n \n \n Lista domen uznawanych za podejrzane:\n \n \n \n Same domeny, bez "https://" czy "www."; każda domena w osobnej linijce.\n \n`),D=`\n Wybierz, jaki typ danych importujesz:
\n \n Ustawienia \n \n Oznaczeni użytkownicy \n \n Czarna lista \n \n Wklej swoje przenoszone dane poniżej:\n \n \n`,k=`\n Wybierz, co chcesz wyeksportować:
\n USTAWIENIA \n OZNACZONYCH UŻYTKOWNIKÓW \n CZARNĄ LISTĘ \n \n DANE:\n \n \n Po skopiowaniu edytuj dane TYLKO jeśli wiesz, co robisz - inaczej możesz uszkodzić i stracić wszystkie swoje dane, co wymusi konieczność reinstalacji dodatku "na świeżo". \n`,R=(e,t="")=>{const n=``;document.body.insertAdjacentHTML("afterbegin",n)},{BADGE:h}=d,b=()=>{let e=u("unique"),t=u("marked"),n=u("settings");const o=t=>(e=u("unique"),!!e.includes(t)),a=(a,i,l="",r="",s=n.BADGE.DEFAULT_NAME,E=n.BADGE.DEFAULT_COLOR)=>{o(a)||((t=>{const n=[...e,t];localStorage.setItem(A,JSON.stringify(n))})(a),((e,n,o,a,i,l)=>{t=u("marked");const r=[...t,{nick:e,link:n,label:o,content:a,media:i,color:l}];localStorage.setItem(c,JSON.stringify(r))})(a,i,s,l,r,E))},i=()=>E(h.SELECTOR.NICK_ELEMENTS),l=e=>{if(!(s(h.SELECTOR.NICK,e)&&null!==s(h.SELECTOR.NICK,e)||s(h.SELECTOR.NICK_DELETED,e)&&null!==s(h.SELECTOR.NICK_DELETED,e)))throw new Error("getNick didn't work for "+e);return null!==s(h.SELECTOR.NICK,e)?s(h.SELECTOR.NICK,e).innerText:null!==s(h.SELECTOR.NICK_DELETED,e)?s(h.SELECTOR.NICK_DELETED,e).innerText:void 0},T=e=>!s("."+h.CLASSNAME.BADGE,e),_=()=>{try{i().forEach(e=>{const t=l(e);if(o(t)&&T(e)){const o=O(t)?O(t):null,a=o?o.label:n.BADGE.DEFAULT_NAME,i=o&&o.color?o.color:n.BADGE.DEFAULT_COLOR;e.insertAdjacentHTML("afterbegin",g(t,a,!0,i))}else(e=>!!s("."+h.CLASSNAME.MARK_BUTTON,e))(e)||e.insertAdjacentHTML("beforeend",M)})}catch(e){}},N=e=>{_();i().forEach(t=>{const n=l(t);if(o(n)&&T(t)&&t.insertAdjacentHTML("afterbegin",g(n)),e&&o(n)&&!T(t)){s("."+h.CLASSNAME.BADGE,t).remove();const e=O(n);t.insertAdjacentHTML("afterbegin",g(n,e.label,!0,e.color))}o(n)&&s("."+h.CLASSNAME.MARK_BUTTON,t)&&!s("."+h.CLASSNAME.MARK_BUTTON_CLICKED,t)&&s("."+h.CLASSNAME.MARK_BUTTON,t).remove(),o(n)||T(t)||s("."+h.CLASSNAME.BADGE,t).remove()}),r()&&setTimeout(()=>{location.reload()},200)},p=(e,t,n)=>{const o=u("marked");for(let a of o.entries())if(a[1].nick===e){a[1][t]=n;const e=o.filter(e=>null!=e);localStorage.setItem(c,JSON.stringify(e))}N(!0)},O=e=>{if(!e)throw new Error("getNickData requires nick to be provided.");const t=u("marked");for(let n=0;n{const o=s(n).dataset.whusername,a=O(o),i=u("blacklist"),l=((e,t)=>{return{title:""+e.nick,content:`\n Przyczyna oznaczenia
:\n \n Link do komentarza lub znaleziska
\n \n Treść odznaki: \n Kolor odznaki: \n Czarna lista: \n
\n `,button:"Usuń oznaczenie",buttonClose:"Zapisz"};var n})(a,i.includes(o));Swal.fire({title:l.title,html:l.content,icon:"info",allowEnterKey:!1,showCancelButton:!1,showCloseButton:!0,showDenyButton:!0,confirmButtonText:l.button,denyButtonText:l.buttonClose,denyButtonColor:"#0a8658",width:"80%"}).then(n=>{if(n.isConfirmed)(n=>{for(let[e,o]of t.entries())if(o.nick===n){delete t[e];const n=t.filter(e=>null!=e);localStorage.setItem(c,JSON.stringify(n))}const o=e.filter(e=>e!==n);localStorage.setItem(A,JSON.stringify(o)),setTimeout(()=>{N()},780)})(o),Swal.fire("Usunięto!","Użytkownik nie będzie już więcej oznaczany.","info").then(()=>{r()&&location.reload()});else if(n.isDenied){const e=s("#"+d.MODAL.ID.BADGE_TEXT).dataset.label,t=s("#"+d.MODAL.ID.BADGE_TEXT).value,n=s("#"+d.MODAL.ID.BADGE_COLOR).dataset.color,a=s("#"+d.MODAL.ID.BADGE_COLOR).value,l=s("#"+d.MODAL.ID.BLACKLIST).dataset.blocked,r=s("#"+d.MODAL.ID.BLACKLIST).checked;if(t!==e&&p(o,"label",t),a!==n&&p(o,"color",a),l!==r){let e;r?(i.push(o),localStorage.setItem(S,JSON.stringify(i))):r||(e=i.filter(e=>e!==o),localStorage.setItem(S,JSON.stringify(e)))}N(!0)}})};R(L.badge),R(L.modal),_(),(()=>{if(document.getElementById(h.ID.VOTES_CONTAINER)){const e=document.getElementById(h.ID.VOTES_CONTAINER).closest(".rbl-block").querySelector(".nav ul + ul");e&&e.insertAdjacentHTML("beforeend",w)}})(),document.getElementById("itemsStream").addEventListener("click",e=>{const t=e.target;if(t.classList.contains(h.CLASSNAME.MARK_BUTTON)&&(e=>{const t=l(e.target.closest("."+h.CLASSNAME.NICK_ELEMENT)),n=e.target.closest("."+h.CLASSNAME.NICK_ELEMENT).querySelector(".verified")?e.target.closest("."+h.CLASSNAME.NICK_ELEMENT).querySelector(`.${h.CLASSNAME.NICK_VERIFIED_BADGE} + a`).href:e.target.closest("."+h.CLASSNAME.NICK_ELEMENT).querySelector("a + a").href,o=e.target.closest(".wblock").querySelector(".text p").innerHTML,i=e.target.closest(".wblock").querySelector(".text .media-content a")?e.target.closest(".wblock").querySelector(".text .media-content a").href:null;e.target.classList.add(h.CLASSNAME.MARK_BUTTON_CLICKED),e.target.innerText="✔",a(t,n,o,i),setTimeout(()=>{e.target.remove()},700),setTimeout(()=>{N()},780)})(e),t.classList.contains("affect")&&t.closest(".more")&&setTimeout(()=>{_()},500),t.classList.contains(h.CLASSNAME.BADGE)){const e=t.dataset.whusername;m(h.DYNAMIC.DATASET.USERNAME(e))}}),r()&&s("."+h.CLASSNAME.USER_PROFILE).addEventListener("click",e=>{const t=e.target;if(t.classList.contains(h.CLASSNAME.BADGE)){const e=t.dataset.whusername;m(h.DYNAMIC.DATASET.USERNAME(e))}}),document.getElementById(h.ID.VOTES_CONTAINER)&&document.getElementById(h.ID.VOTES_CONTAINER).closest(".rbl-block").querySelector(".nav").addEventListener("click",e=>{const t=e.target;t.classList.contains(h.CLASSNAME.MARK_ALL_BUTTON)&&((()=>{const e=window.location.href,t=E(`#${h.ID.VOTES_CONTAINER} .${h.CLASSNAME.VOTES_USERCARD}`);let n;s("#voters").closest("li").classList.contains("active")?n="wykop":s("#votersBury").closest("li").classList.contains("active")&&(n="zakop"),t.forEach(t=>{const o=s("a",t).title;a(o,e,(e=>`Użytkownik ${e}ał podlinkowane znalezisko.`)(n))}),setTimeout(()=>{N()},780)})(),s("."+h.CLASSNAME.MARK_ALL_BUTTON).innerText="Zrobione :)",setTimeout(()=>{s("."+h.CLASSNAME.MARK_ALL_BUTTON_ELEMENT).style.display="none",s("."+h.CLASSNAME.MARK_ALL_BUTTON).innerText="Oznacz wszystkich poniżej"},500)),(t.closest("#voters")||t.closest("#votersBury"))&&(s("."+h.CLASSNAME.MARK_ALL_BUTTON_ELEMENT).style.display="block")})},z=()=>{const e=u("blacklist");E(d.BADGE.SELECTOR.NICK).forEach(t=>{var n;n=t.innerText,e.includes(n)&&(t.closest(d.COMMON.SELECTOR.COMMENT)?t.closest(d.COMMON.SELECTOR.COMMENT).remove():t.closest(d.COMMON.SELECTOR.THREAD)&&t.closest(d.COMMON.SELECTOR.THREAD).remove())})},{BADGE:B}=d;let f=u("unique");let v=u("settings");const G=e=>{if(!e)throw new Error("getNickData requires nick to be provided.");const t=u("marked");for(let n=0;n{const e=s(U.SELECTOR.USER_PROFILE_NICK_ELEMENT),t=s(U.SELECTOR.USER_PROFILE_NICK).textContent,n=G(t)?G(t):null,o=n?n.label:v.BADGE.DEFAULT_NAME,a=n?n.color:v.BADGE.DEFAULT_COLOR;var i;(e=>(f=u("unique"),!!f.includes(e)))(t)&&(i=e,!s("."+B.CLASSNAME.BADGE,i))&&e.insertAdjacentHTML("afterbegin",g(t,o,!0,a))},x=u("settings"),P=()=>{const e=()=>{if(!s(d.DOMAIN_CHECKER.SELECTOR.THREAD_LINK).href)return;const e=(x.GENERAL.SUSPECT_DOMAINS||[]).map(e=>["https://"+e,"https://www."+e,"http://"+e,"http://www."+e]).flat(),t=s(d.DOMAIN_CHECKER.SELECTOR.THREAD_LINK).href,n=new URL(t),o=n.protocol+"//"+n.hostname,a=((e,t="alert")=>`\n \n`)(x.GENERAL.SUSPECT_DOMAINS_LABEL);e.includes(o)&&s("."+d.DOMAIN_CHECKER.CLASSNAME.WYKOP_ITEM_INTRO).insertAdjacentHTML("beforebegin",a)};x.GENERAL.WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA&&e()},K=()=>{u("settings").BADGE.HIDE_MARKED_USERS&&E("."+d.BADGE.CLASSNAME.BADGE).forEach(e=>{e.closest(".wblock").innerHTML='Tu był komentarz użytkownika, którego oznaczyłeś z pomocą WykopHelpera. Jeśli chcesz widzieć takie komentarze, edytuj swoje ustawienia w localStorage (bo zapewne tam aktywowałeś to ustawienie, czyż nie? :) ).
'})},{SETTINGS:{CLASSNAME:W,ID:$}}=d,j={settingsMarkup:`\n\n \n ᴅᴏᴄs ‖ ᴄʜᴀɴɢᴇʟᴏɢ \n \n WykopHelper - Ustawienia \n\x3c!-- GENERAL --\x3e\n \n
\n
\n
Ostrzegaj przy próbie zamknięcia/przeładowania strony gdy wykryto pisanie komentarza \n
\n
\n
\n
Oznaczaj znaleziska z podejrzanych źródeł \n
\n
\n \n Usuwaj woodle (okolicznościowy obrazek na belce) \n
\n
\n \n Usuwaj info o tym, że dany komentarz został wysłany przez aplikację (np. "via Android") \n
\n
\n \n Usuń komentarze we wszystkich znaleziskach \n
\n
\n Usuń komentarze tylko w znaleziskach z następującymi tagami: \n \n
\n
\n\x3c!-- BADGE --\x3e\n \n\x3c!-- Export and import --\x3e\n \n
\n Jeśli chcesz, możesz eksportować swoje ustawienia bądź bazę oznaczonych użytkowników, albo też ją zaimportować na innym komputerze. O proces przenosin musisz zadbać sam/a - możesz do tego wykorzystać na przykład plik tekstowy "notatnika". \n IMPORTUJ \n EKSPORTUJ \n
\n
\n\x3c!-- SPECIAL --\x3e\n \n
\n Jeśli chcesz wyczyścić listę oznaczonych wcześniej użytkowników, możesz to zrobić poniżej. W związku z tym, że jest to akcja nieodwracalna, musisz najpierw potwierdzić, że na pewno taki jest Twój cel. Uwaga - po kliknięciu przycisku akcja wykonywana jest natychmiast, bez dodatkowych potwierdzeń! \n
\n
\n \n Zaznacz by odblokować możliwość wyczyszczenia listy \n
\n
\n Wyczyść \n
\n
\n Pokaż wszystkich oznaczonych użytkowników \n
\n
\n \n`,settingsUserTable:`\n\n
WykopHelper - Lista oznaczonych użytkowników \n
\n \n \n no. \n Nick \n Nazwa \n Kolor \n Link \n Usuń \n \n \n \n \n
\n
\n`,settingsNav:`WykopHelper ✨ `,settingsUserTableRow:(e,t,n,o)=>`\n\n \n ${e} \n ${t} \n \n 🔗 \n ✗ \n \n`,textContent:{SHOW_ALL_MARKED:"Pokaż wszystkich oznaczonych użytkowników",HIDE_TABLE:"Schowaj tabelę",RUSSIAN_PROPAGANDA_MODAL_TITLE:"Skąd lista stron z propagandą?",WARN_ON_RELOAD_MODAL_TITLE:"Ostrożnie z tym ficzerem... :("}},{SETTINGS:V}=d,X=()=>{let e=u("settings");const t=u(),n=u("unique"),o=u("blacklist"),a=s(V.SELECTOR.SETTINGS_FORM_ELEMENT),i=()=>{Swal.fire({html:D,icon:"info",iconHtml:' ',iconColor:"#fff",showCancelButton:!0,showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"Zapisz nowe",showLoaderOnConfirm:!0,cancelButtonText:"Anuluj",width:"80%"}).then(e=>{if(e.isConfirmed){const e=s("#"+V.ID.IMPORT_TEXTAREA).value,t=s(`input[type="radio"][name="${V.SELECTOR.IMPORT_CHECKBOX_NAME}"]:checked`).value;t&&"settings"===t?localStorage.setItem(T,e):t&&"markedUsers"===t?(localStorage.setItem(c,e),localStorage.setItem(A,(e=>{const t=JSON.parse(e).map(e=>e.nick);return JSON.stringify(t)})(e))):t&&"blacklist"===t?localStorage.setItem(S,e):alert("Nie wybrano typu danych: czy importujesz ustawienia, czy oznaczonych użytkowników?")}})},l=()=>{s(V.SELECTOR.ACTIVE_NAV_ELEMENT).classList.remove("active"),s("."+V.CLASSNAME.WH_NAV_SETTINGS_LINK).classList.add("active"),a.innerHTML="",a.innerHTML=j.settingsMarkup,a.removeAttribute("method"),a.removeAttribute("action"),a.insertAdjacentHTML("afterend",j.settingsUserTable),(()=>{const n=s("."+V.CLASSNAME.WH_USER_TABLE_BODY);t.forEach(t=>{n.insertAdjacentHTML("beforeend",j.settingsUserTableRow(t.nick,t.label||e.BADGE.DEFAULT_NAME,t.link,t.color||e.BADGE.DEFAULT_COLOR))})})(),E("input").forEach(t=>{const n=t.getAttribute("category");t.id!==V.ID.ALLOW_WIPE_MARKED_LIST&&"checkbox"===t.type?t.checked=e[n][t.name]:"text"===t.type&&"nsQ"!==t.name?t.value=e[n][t.name]||"":"color"===t.type&&(t.value=e[n][t.name])})},r=()=>{a.addEventListener("change",t=>{const n=t.target.getAttribute("category"),o=t.target.name;"checkbox"===t.target.type&&t.target.id!==V.ID.ALLOW_WIPE_MARKED_LIST&&(e[n][o]=!e[n][o],localStorage.setItem(T,JSON.stringify(e))),"color"===t.target.type&&(e[n][o]=t.target.value,localStorage.setItem(T,JSON.stringify(e)))},{passive:!0}),a.addEventListener("click",t=>{t.target.id===V.ID.SHOW_MARKED_TABLE&&(t.preventDefault(),s("."+V.CLASSNAME.WH_USER_TABLE_CONTAINER).classList.toggle(V.CLASSNAME.WH_USER_TABLE_CONTAINER+"--hidden"),s(`.${V.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`)?document.getElementById(V.ID.SHOW_MARKED_TABLE).textContent=j.textContent.SHOW_ALL_MARKED:document.getElementById(V.ID.SHOW_MARKED_TABLE).textContent=j.textContent.HIDE_TABLE),t.target.id===V.ID.ALLOW_WIPE_MARKED_LIST&&(t.target.disabled=!0,document.getElementById(V.ID.REMOVE_ALL_MARKED).disabled=!1,document.getElementById(V.ID.REMOVE_ALL_MARKED).style.opacity=1),t.target.id===V.ID.REMOVE_ALL_MARKED&&(t.preventDefault(),localStorage.setItem(A,"[]"),localStorage.setItem(c,"[]"),location.reload()),t.target.id===V.ID.SUSPECT_DOMAINS_SETTINGS_LINK&&Swal.fire({html:y,icon:"info",iconHtml:' ',iconColor:"#fff",showCancelButton:!0,showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"Zapisz",cancelButtonText:"Anuluj",width:"80%",willOpen:t=>{s("#suspectDomainsLabel",t).value=e.GENERAL.SUSPECT_DOMAINS_LABEL,s("#suspectDomains",t).value=e.GENERAL.SUSPECT_DOMAINS.join("\n")}}).then(t=>{if(t.isConfirmed){let t=s("#"+V.ID.SUSPECT_DOMAINS_SETTINGS_TEXTAREA).value;t.replace("https://","").replace("http://","").replace("www.","").replace(" ","");const n=t.split("\n");e.GENERAL.SUSPECT_DOMAINS=n;const o=s("#suspectDomainsLabel").value;e.GENERAL.SUSPECT_DOMAINS_LABEL=o,localStorage.setItem(T,JSON.stringify(e))}}),t.target.id===V.ID.WARN_ON_RELOAD_INFO_LINK&&Swal.fire({title:j.textContent.WARN_ON_RELOAD_MODAL_TITLE,html:"\n Ten ficzer jest eksperymentalny. Obecnie prawdopodobnie udało mi się wyeliminować błędy, które sprawiały, że w przeszłości (nie)działał jak chciał, ale mimo wszystko - proponuję najpierw przetestować, czy działa jak trzeba również u Ciebie, zanim zaczniesz na nim polegać dla ochrony przed utratą treści :) \n",icon:"info",showCancelButton:!1,confirmButtonColor:"#3085d6",confirmButtonText:"OK",width:"80%"}),t.target.id===V.ID.IMPORT_BUTTON&&(t.preventDefault(),i()),t.target.id===V.ID.EXPORT_BUTTON&&(t.preventDefault(),Swal.fire({html:k,icon:"info",iconHtml:' ',iconColor:"#fff",showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"SKOPIUJ DO SCHOWKA",width:"80%"}).then(e=>{e.isConfirmed&&(s("#"+V.ID.EXPORT_TEXTAREA).select(),document.execCommand("copy"))}))},{passive:!1}),document.addEventListener("click",n=>{n.target.id===V.ID.EXPORT_SETTINGS_BUTTON&&(s("#"+V.ID.EXPORT_TEXTAREA).innerText="",s("#"+V.ID.EXPORT_TEXTAREA).innerText=JSON.stringify(e)),n.target.id===V.ID.EXPORT_MARKED_BUTTON&&(s("#"+V.ID.EXPORT_TEXTAREA).innerText="",s("#"+V.ID.EXPORT_TEXTAREA).innerText=JSON.stringify(t)),n.target.id===V.ID.EXPORT_BLACKLIST_BUTTON&&(s("#"+V.ID.EXPORT_TEXTAREA).innerText="",s("#"+V.ID.EXPORT_TEXTAREA).innerText=JSON.stringify(o))},{passive:!0}),a.addEventListener("keyup",t=>{const n=t.target.getAttribute("category"),o=t.target.name;"text"===t.target.type&&(e[n][o]=t.target.value,localStorage.setItem(T,JSON.stringify(e)))},{passive:!0})};R(L.settings),R(L.modal),l(),r(),s("."+d.SETTINGS.CLASSNAME.WH_USER_TABLE).addEventListener("click",e=>{const o=e.target;o.classList.contains(""+d.SETTINGS.CLASSNAME.WH_USER_TABLE_REMOVE_BUTTON)&&((e=>{for(let[n,o]of t.entries())if(o.nick===e){delete t[n];const e=t.filter(e=>null!=e);localStorage.setItem(c,JSON.stringify(e))}const o=n.filter(t=>t!==e);localStorage.setItem(A,JSON.stringify(o))})(o.dataset.whuserremove),o.closest("tr").remove())})},F="WykopHelper zainstalowany!",J='Miłego używania dodatku! Jeśli masz jakiekolwiek problemy, pytania lub sugestie, zgłoś je tutaj. ',q="Super!",Y={title:"WykopHelper zaktualizowany!",content:`\nDodatek WykopHelper został właśnie zaktualizowany do wersji 0.70 . Wprowadzone zmiany to: \n
\n ${["W ustawieniach można wybrać domyślny kolor odznaki, który będzie nadawany każdemu nowemu oznaczonemu.","...Ale kolor ten można zmienić dla każdego z osobna - w popupie aktywowanym kliknięciem w odznakę przy danym userze.","Dodatkowo, w popupie usera można zadecydować o wrzuceniu usera na super czarną listę. Ale ostrożnie - po zczarnolistowaniu, posty danego użytkownika będą całkowicie usuwane, a nie tylko chowane jak w wykopowej czarnej liście. Później - aby użytkownikowi wybaczyć, i z czarnej listy go zdjąć - należy udać się do jego profilu (wykop.pl/ludzie/NICK) i kliknąć na ikonę kłódki przy jego nicku. O tym, że dany user jest zczarnolistowany, świadczy w jego profilu ta kłódka, oraz lekko przytumiony nick.",'Dodano funkcję, aktywowaną w ustawieniach, umożliwiającą usuwanie tekstu "via [nazwa aplikacji]" w komentarzach użytkowników. Przy dłuższych nickach, albo przy stosowaniu innych dodatków (np. pokazujących czy dany user wykopał czy zakopał znalezisko) ta mało użyteczna informacja o aplikacji jakiej ktoś używa potrafi spowodować nachodzenie na siebie różnych tekstów.',"W ustawieniach można również od teraz eksportować i importować swoje ustawienia i listy oznaczonych i czarnolistowanych użytkowników. Na razie jest to proces raczej ręczny (wymaga kopiowania i przeklejania ciągów znaków między przeglądarkami); możliwe, że w przyszłości coś tutaj zostanie udoskonalone, chociaż nie ukrywam, że wynika to z mojej niechęci do używania zewnętrznych usług - bo wtedy wchodziłyby w grę kwestie prywatności, dostępów, śledzenia i tak dalej i tak dalej... a tego chcę za wszelką cenę uniknąć.","Od teraz odznaka będzie się wyświetlać dokładnie tak, jak to ustawisz w ustawieniach bądź konkretnemu userowi. Do tej pory wymuszana była konwencja rozpoczynania tekstu wielką literą, a reszta małymi - ale już nie jest. Jeśli chcesz, możesz nawet pisać po pOkEmOnOwEmU :)","Parę wizualnych zmian (ikony itp.; nic przełomowego). Redesign całości, a zwłaszcza popupu odznaki, wkrótce - bo powoli robi się mało estetyczny bałagan.","Zniknęło sporo pomniejszych bugów.","Z pewnością pojawiło się sporo nowych bugów :)"].map(e=>{return t=e,`${t} `;var t}).join("")}\n \n`,button:"Okej!"},Z=`Pokaż OPa `,{BADGE:Q}=d,ee=()=>{u("settings").GENERAL.WARN_ON_RELOAD&&window.addEventListener("beforeunload",e=>{(()=>{const e=s(Q.SELECTOR.REPLY_FORM),t=s(Q.SELECTOR.COMMENT_FORM);let n=!1,o=!1;return e&&e.value.length>0&&(o=e&&e.value.split(" ").length>5),t&&t.value.length>0&&(n=t&&t.value.split(" ").length>5),!o&&!n})()||(e.preventDefault(),e.returnValue="Wygląda na to, że jesteś w trakcie pisania komentarza. Czy na pewno chcesz opuścić stronę?")})},te=()=>{u("settings").GENERAL.REMOVE_WOODLE&&(s("."+d.COMMON.CLASSNAME.WOODLE).style.display="none")},ne=()=>{const e=u("settings").GENERAL.REMOVE_BY_TAG,t=e?e.replace(" ","").replace("#","").split(","):"";let n;window.dataLayer2[1]?(n=Object.assign({},window.dataLayer2[1]),delete n.action,delete n.event,delete n.logged,delete n.method):(n=[],document.querySelectorAll(d.COMMON.SELECTOR.TAGS).forEach(e=>{n.push(e.textContent.replace("#",""))}));const o=e=>t.includes(e),a=()=>{Object.values(n).some(o)&&s("#"+d.COMMON.ID.COMMENTS_STREAM)&&s("#"+d.COMMON.ID.COMMENTS_STREAM).remove()};t.length>0&&a()},oe=()=>{u("settings").GENERAL.REMOVE_ALL_COMMENTS&&s("#"+d.COMMON.ID.COMMENTS_STREAM)&&s("#"+d.COMMON.ID.COMMENTS_STREAM).remove()},ae=()=>{u("settings").GENERAL.REMOVE_POSTED_VIA_APP&&E("."+d.BADGE.CLASSNAME.NICK_ELEMENT).forEach(e=>{e.querySelector("a + small").style.display="none"})};String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)},R(L.modal,"whInitModalStyle"),localStorage.getItem("WHupdate")&&localStorage.getItem("WHupdate")<"0.70"?(Swal.fire({title:Y.title,html:Y.content,showCloseButton:!0,icon:"info",iconHtml:' ',width:"80%",confirmButtonText:Y.button}),localStorage.setItem("WHupdate","0.70"),(()=>{if(!localStorage.getItem(S)){const e=[];localStorage.setItem(S,JSON.stringify(e))}})()):localStorage.getItem("WHupdate")||(Swal.fire({title:F,html:J,icon:"warning",iconHtml:' ',width:"80%",confirmButtonText:q}),localStorage.setItem("WHupdate","0.70")),m(),t()&&te(),n()&&(b(),z(),ee(),document.addEventListener("paste",e=>{if(s("."+d.EMBED.CLASSNAME.EMBED_FILE)&&e.clipboardData.files[0]){const t=s(`.${d.EMBED.CLASSNAME.EMBED_FILE} input`);t.files=e.clipboardData.files;const n=new Event("UIEvent");n.initEvent("change",!1,!0),t.dispatchEvent(n)}},{passive:!0}),K(),ae()),r()&&(H(),(()=>{const e=location.pathname.split("/")[2],t=u("blacklist");(e=>t.includes(e))(e)&&(s(d.BADGE.SELECTOR.USER_PROFILE_NICK+":not(:first-child)").style.filter="grayscale(65%)",s(d.BADGE.SELECTOR.USER_PROFILE_NICK_ELEMENT).insertAdjacentHTML("beforeend",`🔐 `)),document.addEventListener("click",n=>{if(n.target.id===d.BADGE.ID.PROFILE_BLACKLISTED){const n=t.filter(t=>t!==e);localStorage.setItem(S,JSON.stringify(n)),location.reload()}})})()),o()&&s(V.SELECTOR.LAST_NAV_ELEMENT).insertAdjacentHTML("beforeend",j.settingsNav),a()&&X(),i()&&(P(),ne(),oe()),l()&&(s(`${d.HIGHLIGHT_OP.SELECTOR.OP_THREAD} .${d.BADGE.CLASSNAME.NICK_ELEMENT}`).insertAdjacentHTML("afterbegin",Z),s("."+d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON).addEventListener("click",()=>{const e=s(".night")?"rgb(7, 68, 91)":"#ffeac1";E("."+d.HIGHLIGHT_OP.CLASSNAME.AUTHOR_COMMENTS).forEach(t=>{t.style.backgroundColor=e}),s("."+d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON).remove()}))}();
+!function(){"use strict";const e=location.href,t=()=>!!(e.indexOf("wykop.pl")>-1),n=()=>e.indexOf("wykop.pl/link/")>-1||e.indexOf("wykop.pl/mikroblog/")>-1||e.indexOf("wykop.pl/wpis/")>-1||e.indexOf("wykop.pl/moj/")>-1||e.indexOf("wykop.pl/ludzie/")>-1||e.indexOf("wykop.pl/tag/")>-1,o=()=>!!(e.indexOf("wykop.pl/ustawienia/")>-1),a=()=>!!(e.indexOf("wykop.pl/ustawienia/wykophelper")>-1),l=()=>!!(e.indexOf("wykop.pl/link/")>-1),i=()=>!!(e.indexOf("wykop.pl/wpis/")>-1),r=()=>!!(e.indexOf("wykop.pl/ludzie/")>-1),s=(e,t=document)=>t.querySelector(e),E=(e,t=document)=>t.querySelectorAll(e),c="whMarkedUsers",A="whUniqueNicks",T="whSettings",S="whBlacklist",d={COMMON:{CLASSNAME:{WOODLE:"woodle",YT_EMBED:"embed-youtube",BUTTON:"buttonWH"},ID:{COMMENTS_STREAM:"itemsStream"},SELECTOR:{TAGS:".fix-tagline > .tag.affect.create[href]",COMMENT:'[data-type="comment"]',THREAD:'[data-type="entrycomment"]'}},BADGE:{CLASSNAME:{NICK_ELEMENT:"author",NICK_VERIFIED_BADGE:"verified",NICK:"showProfileSummary",VOTES_USERCARD:"usercard",USER_PROFILE:"user-profile",BADGE:"badgeWH",BADGE_UNCLICKABLE:"badgeWH--unclickable",BADGE_CLICKABLE:"badgeWH--clickable",MARK_BUTTON:"buttonWH",MARK_BUTTON_CLICKED:"buttonWH--clicked",MARK_ALL_BUTTON_ELEMENT:"buttonWH--markAllContainer",MARK_ALL_BUTTON:"buttonWH--markAll",MODAL_BUTTON:"modalWH-button",MODAL_BUTTON_REMOVE:"modalWH-button--remove",MODAL_TEXT:"modalWH-text",PROFILE_BLACKLISTED:"whProfile--blacklistedIcon"},ID:{VOTES_CONTAINER:"votesContainer",PROFILE_BLACKLISTED:"whBlacklistedIcon"},SELECTOR:{NICK_ELEMENTS:".grid-main li div.author",NICK:".showProfileSummary > b",NICK_DELETED:".author > .color-1002",REPLY_FORM:".replyForm textarea",COMMENT_FORM:"#commentFormContainer textarea",USER_PROFILE_NICK_ELEMENT:".user-profile h2",USER_PROFILE_NICK:".user-profile h2 span"},DYNAMIC:{DATASET:{USERNAME:e=>`[data-whusername='${e}`}}},SETTINGS:{CLASSNAME:{SETTINGS_NAV:"whSettingsLink",SETTINGS_GENERAL:"settings--general",SETTINGS_BADGE:"settings--badge",SETTINGS_SPECIAL:"settings--special",SETTINGS_BOX:"settings__box",WH_NAV_SETTINGS_LINK:"whSettingsLink",WH_USER_TABLE:"tableWH",WH_USER_TABLE_ROW:"tableWH__row",WH_USER_TABLE_HEAD:"tableWH__head",WH_USER_TABLE_HEADING:"tableWH__heading",WH_USER_TABLE_CONTAINER:"tableWH__container",WH_USER_TABLE_CONTAINER_HIDDEN:"tableWH__container--hidden",WH_USER_TABLE_BODY:"tableWH__body",WH_USER_TABLE_REMOVE_BUTTON:"tableWH__nick-remove",WH_USER_TABLE_BADGE_COLOR:"tableWH__badgeColor",WH_SETTINGS_CROSSED:"settings__crossed"},ID:{SHOW_MARKED_TABLE:"showAllMarked",ALLOW_WIPE_MARKED_LIST:"allowWipeAllMarked",REMOVE_ALL_MARKED:"whsettings__remove-all-marked",SUSPECT_DOMAINS_SETTING:"warnOnSuspectDomain",SUSPECT_DOMAINS_SETTINGS_LINK:"suspectDomainsSettings",SUSPECT_DOMAINS_SETTINGS_TEXTAREA:"suspectDomains",WARN_ON_RELOAD_SETTING:"warnOnReload",WARN_ON_RELOAD_INFO_LINK:"warnOnReloadInfo",IMPORT_BUTTON:"buttonImport",EXPORT_BUTTON:"buttonExport",IMPORT_TEXTAREA:"importArea",EXPORT_TEXTAREA:"exportArea",EXPORT_SETTINGS_BUTTON:"buttonExportSettings",EXPORT_MARKED_BUTTON:"buttonExportMarkedUsers",EXPORT_BLACKLIST_BUTTON:"buttonExportBlacklist",IMPORT_SETTINGS_BUTTON:"buttonImportSettings",IMPORT_MARKED_BUTTON:"buttonImportMarkedUsers",IMPORT_BLACKLIST_BUTTON:"buttonImportBlacklist"},SELECTOR:{LAST_NAV_ELEMENT:"#site .nav > ul > li:last-child",ACTIVE_NAV_ELEMENT:"#site .nav > ul .active",SETTINGS_FORM_ELEMENT:"#site .grid-main .settings",IMPORT_CHECKBOX_NAME:"whImportExportChoice"}},HIGHLIGHT_OP:{CLASSNAME:{HIGHLIGHT_BUTTON:"button--highlightOp",AUTHOR_COMMENTS:"authorComment"},SELECTOR:{OP_THREAD:'[data-type="entry"]'}},EMBED:{CLASSNAME:{EMBED_FILE:"embedFile"}},DOMAIN_CHECKER:{CLASSNAME:{WYKOP_ITEM_INTRO:"bspace",WYKOP_ITEM_ANNOTATION:"annotation"},ID:{},SELECTOR:{THREAD_LINK:".article h2 a"}},MODAL:{CLASSNAME:{LINK:"whModalLink",LIST:"whModal__list",LIST_ITEM:"whModal__list-item",INPUT_LABEL:"whModal__label",INPUT_TEXT:"whModal__inputText",SCROLLABLE_TEXT:"whModal__scrollableText"},ID:{BADGE_TEXT:"whModal_badgeText",BADGE_COLOR:"whModal_badgeColor",BLACKLIST:"whModal_blacklist"}}},L={badge:`\n.${d.BADGE.CLASSNAME.MARK_BUTTON} {\n display: inline-block;\n padding: .2rem .2rem;\n border: 1px solid #9999996e;\n cursor: pointer;\n margin-left: .5rem;\n color: #808080ba;\n border-radius: .3rem;\n font-size: .7rem;\n line-height: .7rem;\n transition: .3s all;\n}\n.${d.BADGE.CLASSNAME.MARK_BUTTON}:hover {\n border-color: green;\n}\n.${d.BADGE.CLASSNAME.MARK_BUTTON_CLICKED} {\n border-color: green;\n opacity: 0;\n}\n.${d.BADGE.CLASSNAME.BADGE} {\n color: var(--badgeColor);\n font-weight: bold;\n margin-right: .3rem;\n border: 1px solid currentColor;\n padding: .1rem .2rem;\n position: relative;\n top: .1rem;\n}\n.${d.BADGE.CLASSNAME.BADGE_CLICKABLE} {\n cursor: pointer;\n}\n.${d.BADGE.CLASSNAME.BADGE_UNCLICKABLE} {\n cursor: default;\n}\n.${d.BADGE.CLASSNAME.MODAL_BUTTON} {\n display: block;\n padding: .4rem .8rem;\n border: 1px solid #9999996e;\n cursor: pointer;\n color: #808080ba;\n border-radius: .3rem;\n font-size: 1rem;\n line-height: 1rem;\n transition: .3s all;\n}\n.author .${d.BADGE.CLASSNAME.MODAL_TEXT} {\n position: relative;\n margin-bottom: .5rem;\n top: unset;\n right: unset;\n left: unset;\n bottom: unset;\n}\n\n.${d.BADGE.CLASSNAME.MARK_ALL_BUTTON} {\n top: 0.8rem;\n position: relative;\n}\n\n.${d.BADGE.CLASSNAME.PROFILE_BLACKLISTED} {\n cursor: pointer;\n}\n\n.${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON} {\n position: absolute;\n top: .1rem;\n left: 0;\n}\n\n@media screen and (min-width: 722px) {\n .${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON} {\n top: 6rem;\n left: 1rem;\n }\n}\n\n.${d.DOMAIN_CHECKER.CLASSNAME.MODAL_TEXT_LIST} {\n margin-top:1rem;list-style-type: circle;font-size:1rem;\n}\n\n.${d.DOMAIN_CHECKER.CLASSNAME.MODAL_TEXT_LIST_ITEM} {\n text-align:left;margin-left:2rem;margin-bottom:.7rem\n}\n`,settings:`\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_CONTAINER} {\n padding: 1rem;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_CONTAINER_HIDDEN} {\n display: none;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} {\n counter-reset: row-num;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} .${d.SETTINGS.CLASSNAME.WH_USER_TABLE_ROW} {\n counter-increment: row-num;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE} .${d.SETTINGS.CLASSNAME.WH_USER_TABLE_ROW} td:first-child::before {\n content: counter(row-num) ". ";\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_HEAD} {\n font-weight: bold;\n border-bottom: 2px solid currentColor;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_BADGE_COLOR} {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n background: var(--settingsBadgeColor);\n border-radius: .5rem;\n}\n.${d.SETTINGS.CLASSNAME.WH_SETTINGS_CROSSED} {\n opacity: .4;\n text-decoration: line-through;\n cursor: not-allowed;\n}\n.${d.SETTINGS.CLASSNAME.WH_USER_TABLE_REMOVE_BUTTON} {\n cursor: pointer;\n color: #c0392b;\n}\n.${d.SETTINGS.CLASSNAME.SETTINGS_BOX} {\n border-bottom: 1px solid #d3d3d329;\n border-left: 1px solid #d3d3d329;\n border-right: 1px solid #d3d3d329;\n}\n.${d.MODAL.CLASSNAME.LINK} {\n color: #862828;\n}\n.${d.MODAL.CLASSNAME.LINK}:hover {\n color: #4a1313 !important;\n}\n`,modal:`\n.swal2-popup.swal2-modal.swal2-show {\n background-color: #1b1b1b !important;\n border: 1px solid #ff5917 !important;\n}\n.swal2-icon.swal2-info {\n border-color: #542621 !important;\n color: #c0392b !important;\n}\n\n.swal2-title {\n color: #a2a2a2 !important;\n}\n\n.swal2-content {\n color: #888;\n text-align: unset;\n}\n\n.swal2-styled.swal2-confirm {\n background-color: #e74c3c6b !important;\n}\n.${d.MODAL.CLASSNAME.LIST} {\n margin-top: 1rem;\n list-style-type: square;\n}\n.${d.MODAL.CLASSNAME.LIST_ITEM} {\n text-align: left;\n margin-left: 2rem;\n margin-bottom: .7rem\n}\n\n.${d.MODAL.CLASSNAME.INPUT_LABEL} {\n text-transform: none;\n align-items: center;\n display: inline-flex;\n margin: .3rem 0;\n}\n\n.${d.MODAL.CLASSNAME.INPUT_TEXT}, .${d.MODAL.CLASSNAME.INPUT_TEXT}:focus {\n color: #464646 !important;\n}\n\n.${d.MODAL.CLASSNAME.SCROLLABLE_TEXT} {\n margin-top:.5rem;\n border:1px solid gray;\n padding: 1rem;\n text-align:left;\n overflow-y: auto;\n max-height: 15rem;\n}\n`},_={BADGE:{HIDE_MARKED_USERS:!1,DEFAULT_NAME:"Debil",DEFAULT_COLOR:"#ff0000"},GENERAL:{WARN_ON_RELOAD:!1,WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA:!0,SUSPECT_DOMAINS_LABEL:"Uważaj! Źródło tego znaleziska jest podejrzewane o szerzenie rosyjskiej propagandy.",SUSPECT_DOMAINS:["alternews.pl","alexjones.pl","dziennik-polityczny.com","koniec-swiata.org","magnapolonia.org","narodowcy.net","nczas.com","mysl.pl","ndie.pl","neon24.pl","newsweb.pl","parezja.pl","prostozmostu24.pl","prawdaobiektywna.pl","reporters.pl","sioe.pl","wmeritum.pl","wolnosc24.pl","wolna-polska.pl","wprawo.pl","wsensie.pl","zmianynaziemi.pl","sputniknews.com","rt.com","ruptly.tv","prawica.net","xportal.pl","kresy.pl","bdp.xportal.pl","geopolityka.org","pravda.ru","voiceofrussia.com","ria.ru","ligakobietpolskich.pl","ronik.org.pl","obserwatorpolityczny.pl","mysl-polska.pl"],REMOVE_WOODLE:!1,REMOVE_COMMENTS:"",REMOVE_ALL_COMMENTS:!1,REMOVE_POSTED_VIA_APP:!1}},N=[],O=[],p=[],m=()=>{localStorage.getItem(T)||localStorage.setItem(T,JSON.stringify(_))},I=(e="marked")=>{switch(e){case"settings":return m(),JSON.parse(localStorage.getItem(T));case"unique":return localStorage.getItem(A)||localStorage.setItem(A,JSON.stringify(N)),JSON.parse(localStorage.getItem(A));case"marked":return localStorage.getItem(c)||localStorage.setItem(c,JSON.stringify(O)),JSON.parse(localStorage.getItem(c));case"blacklist":return localStorage.getItem(S)||localStorage.setItem(S,JSON.stringify(p)),JSON.parse(localStorage.getItem(S));default:throw new Error(`Unknown storage type: ${e}. Pick either "unique", "marked", "blacklist" or "settings"`)}},M=I("settings").BADGE.DEFAULT_COLOR,u=`Oznacz `,C=`Oznacz wszystkich poniżej `,g=(e,t="debil",n=!0,o=M)=>`${t} `,D=I("settings");d.MODAL.CLASSNAME.LIST,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK,d.MODAL.CLASSNAME.LIST_ITEM,d.MODAL.CLASSNAME.LINK;const w=`\n \n Treść komunikatu ostrzegającego, gdy znalezisko pochodzi z podejrzanego źródła:\n \n \n \n Lista domen uznawanych za podejrzane:\n \n \n \n Same domeny, bez "https://" czy "www."; każda domena w osobnej linijce.\n \n`,R=`\n Wybierz, jaki typ danych importujesz:
\n \n Ustawienia \n \n Oznaczeni użytkownicy \n \n Czarna lista \n \n Wklej swoje przenoszone dane poniżej:\n \n \n`,y=`\n Wybierz, co chcesz wyeksportować:
\n USTAWIENIA \n OZNACZONYCH UŻYTKOWNIKÓW \n CZARNĄ LISTĘ \n \n DANE:\n \n \n Po skopiowaniu edytuj dane TYLKO jeśli wiesz, co robisz - inaczej możesz uszkodzić i stracić wszystkie swoje dane, co wymusi konieczność reinstalacji dodatku "na świeżo". \n`,h=(e,t="")=>{const n=``;document.body.insertAdjacentHTML("afterbegin",n)},b=()=>{const e=I("blacklist");E(d.BADGE.SELECTOR.NICK).forEach((t=>{var n;n=t.innerText,e.includes(n)&&(t.closest(d.COMMON.SELECTOR.COMMENT)?t.closest(d.COMMON.SELECTOR.COMMENT).remove():t.closest(d.COMMON.SELECTOR.THREAD)&&t.closest(d.COMMON.SELECTOR.THREAD).remove())}))},k=e=>{const t=I("blacklist");if(n=e,t.includes(n)){const n=t.filter((t=>t!==e));localStorage.setItem(S,JSON.stringify(n))}var n},{BADGE:B}=d,f=()=>{let e=I("unique"),t=I("marked"),n=I("settings");const o=t=>(e=I("unique"),!!e.includes(t)),a=(a,l,i="",r="",s=n.BADGE.DEFAULT_NAME,E=n.BADGE.DEFAULT_COLOR)=>{o(a)||((t=>{const n=[...e,t];localStorage.setItem(A,JSON.stringify(n))})(a),((e,n,o,a,l,i)=>{t=I("marked");const r=[...t,{nick:e,link:n,label:o,content:a,media:l,color:i}];localStorage.setItem(c,JSON.stringify(r))})(a,l,s,i,r,E))},l=()=>E(B.SELECTOR.NICK_ELEMENTS),i=e=>{if(!(s(B.SELECTOR.NICK,e)&&null!==s(B.SELECTOR.NICK,e)||s(B.SELECTOR.NICK_DELETED,e)&&null!==s(B.SELECTOR.NICK_DELETED,e)))throw new Error(`getNick didn't work for ${e}`);return null!==s(B.SELECTOR.NICK,e)?s(B.SELECTOR.NICK,e).innerText:null!==s(B.SELECTOR.NICK_DELETED,e)?s(B.SELECTOR.NICK_DELETED,e).innerText:void 0},T=e=>!s(`.${B.CLASSNAME.BADGE}`,e),_=()=>{try{l().forEach((e=>{const t=i(e);if(o(t)&&T(e)){const o=p(t)?p(t):null,a=o?o.label:n.BADGE.DEFAULT_NAME,l=o&&o.color?o.color:n.BADGE.DEFAULT_COLOR;e.insertAdjacentHTML("afterbegin",g(t,a,!0,l))}else(e=>!!s(`.${B.CLASSNAME.MARK_BUTTON}`,e))(e)||e.insertAdjacentHTML("beforeend",u)}))}catch(e){}},N=e=>{_();l().forEach((t=>{const n=i(t);if(o(n)&&T(t)&&t.insertAdjacentHTML("afterbegin",g(n)),e&&o(n)&&!T(t)){s(`.${B.CLASSNAME.BADGE}`,t).remove();const e=p(n);t.insertAdjacentHTML("afterbegin",g(n,e.label,!0,e.color))}o(n)&&s(`.${B.CLASSNAME.MARK_BUTTON}`,t)&&!s(`.${B.CLASSNAME.MARK_BUTTON_CLICKED}`,t)&&s(`.${B.CLASSNAME.MARK_BUTTON}`,t).remove(),o(n)||T(t)||s(`.${B.CLASSNAME.BADGE}`,t).remove()})),r()&&setTimeout((()=>{location.reload()}),200)},O=(e,t,n)=>{const o=I("marked");for(let a of o.entries())if(a[1].nick===e){a[1][t]=n;const e=o.filter((e=>null!=e));localStorage.setItem(c,JSON.stringify(e))}N(!0)},p=e=>{if(!e)throw new Error("getNickData requires nick to be provided.");const t=I("marked");for(let n=0;n{const o=s(n).dataset.whusername,a=p(o),l=I("blacklist"),i=((e,t)=>{return{title:`${e.nick}`,content:`\n Przyczyna oznaczenia
:\n \n Link do komentarza lub znaleziska
\n \n Treść odznaki: \n Kolor odznaki: \n Czarna lista: \n
\n `,button:"Usuń oznaczenie",buttonClose:"Zapisz"};var n})(a,l.includes(o));Swal.fire({title:i.title,html:i.content,icon:"info",allowEnterKey:!1,showCancelButton:!1,showCloseButton:!0,showDenyButton:!0,confirmButtonText:i.button,denyButtonText:i.buttonClose,denyButtonColor:"#0a8658",width:"80%"}).then((n=>{if(n.isConfirmed)(n=>{for(let[e,o]of t.entries())if(o.nick===n){delete t[e];const n=t.filter((e=>null!=e));localStorage.setItem(c,JSON.stringify(n))}const o=e.filter((e=>e!==n));localStorage.setItem(A,JSON.stringify(o)),k(n),setTimeout((()=>{N()}),780)})(o),Swal.fire("Usunięto!","Użytkownik nie będzie już więcej oznaczany.","info").then((()=>{r()&&location.reload()}));else if(n.isDenied){const e=s(`#${d.MODAL.ID.BADGE_TEXT}`).dataset.label,t=s(`#${d.MODAL.ID.BADGE_TEXT}`).value,n=s(`#${d.MODAL.ID.BADGE_COLOR}`).dataset.color,a=s(`#${d.MODAL.ID.BADGE_COLOR}`).value,i=s(`#${d.MODAL.ID.BLACKLIST}`).dataset.blocked,r=s(`#${d.MODAL.ID.BLACKLIST}`).checked;if(t!==e&&O(o,"label",t),a!==n&&O(o,"color",a),i!==r){let e;r?(l.push(o),localStorage.setItem(S,JSON.stringify(l))):r||(e=l.filter((e=>e!==o)),localStorage.setItem(S,JSON.stringify(e)))}N(!0)}}))};h(L.badge),h(L.modal),_(),(()=>{if(document.getElementById(B.ID.VOTES_CONTAINER)){const e=document.getElementById(B.ID.VOTES_CONTAINER).closest(".rbl-block").querySelector(".nav ul + ul");e&&e.insertAdjacentHTML("beforeend",C)}})(),document.getElementById("itemsStream").addEventListener("click",(e=>{const t=e.target;if(t.classList.contains(B.CLASSNAME.MARK_BUTTON)&&(e=>{const t=i(e.target.closest(`.${B.CLASSNAME.NICK_ELEMENT}`)),n=e.target.closest(`.${B.CLASSNAME.NICK_ELEMENT}`).querySelector(".verified")?e.target.closest(`.${B.CLASSNAME.NICK_ELEMENT}`).querySelector(`.${B.CLASSNAME.NICK_VERIFIED_BADGE} + a`).href:e.target.closest(`.${B.CLASSNAME.NICK_ELEMENT}`).querySelector("a + a").href,o=e.target.closest(".wblock").querySelector(".text p").innerHTML,l=e.target.closest(".wblock").querySelector(".text .media-content a")?e.target.closest(".wblock").querySelector(".text .media-content a").href:null;e.target.classList.add(B.CLASSNAME.MARK_BUTTON_CLICKED),e.target.innerText="✔",a(t,n,o,l),setTimeout((()=>{e.target.remove()}),700),setTimeout((()=>{N()}),780)})(e),t.classList.contains("affect")&&t.closest(".more")&&setTimeout((()=>{_()}),500),t.classList.contains(B.CLASSNAME.BADGE)){const e=t.dataset.whusername;m(B.DYNAMIC.DATASET.USERNAME(e))}})),r()&&s(`.${B.CLASSNAME.USER_PROFILE}`).addEventListener("click",(e=>{const t=e.target;if(t.classList.contains(B.CLASSNAME.BADGE)){const e=t.dataset.whusername;m(B.DYNAMIC.DATASET.USERNAME(e))}})),document.getElementById(B.ID.VOTES_CONTAINER)&&document.getElementById(B.ID.VOTES_CONTAINER).closest(".rbl-block").querySelector(".nav").addEventListener("click",(e=>{const t=e.target;t.classList.contains(B.CLASSNAME.MARK_ALL_BUTTON)&&((()=>{const e=window.location.href,t=E(`#${B.ID.VOTES_CONTAINER} .${B.CLASSNAME.VOTES_USERCARD}`);let n;s("#voters").closest("li").classList.contains("active")?n="wykop":s("#votersBury").closest("li").classList.contains("active")&&(n="zakop"),t.forEach((t=>{const o=s("a",t).title;a(o,e,(e=>`Użytkownik ${e}ał podlinkowane znalezisko.`)(n))})),setTimeout((()=>{N()}),780)})(),s(`.${B.CLASSNAME.MARK_ALL_BUTTON}`).innerText="Zrobione :)",setTimeout((()=>{s(`.${B.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display="none",s(`.${B.CLASSNAME.MARK_ALL_BUTTON}`).innerText="Oznacz wszystkich poniżej"}),500)),(t.closest("#voters")||t.closest("#votersBury"))&&(s(`.${B.CLASSNAME.MARK_ALL_BUTTON_ELEMENT}`).style.display="block")}))},{BADGE:z}=d;let v=I("unique");let G=I("settings");const U=e=>{if(!e)throw new Error("getNickData requires nick to be provided.");const t=I("marked");for(let n=0;n{const e=s(H.SELECTOR.USER_PROFILE_NICK_ELEMENT),t=s(H.SELECTOR.USER_PROFILE_NICK).textContent,n=U(t)?U(t):null,o=n?n.label:G.BADGE.DEFAULT_NAME,a=n?n.color:G.BADGE.DEFAULT_COLOR;var l;(e=>(v=I("unique"),!!v.includes(e)))(t)&&(l=e,!s(`.${z.CLASSNAME.BADGE}`,l))&&e.insertAdjacentHTML("afterbegin",g(t,o,!0,a))},x=I("settings"),P=()=>{const e=()=>{if(!s(d.DOMAIN_CHECKER.SELECTOR.THREAD_LINK).href)return;const e=(x.GENERAL.SUSPECT_DOMAINS||[]).map((e=>["https://"+e,"https://www."+e,"http://"+e,"http://www."+e])).flat(),t=s(d.DOMAIN_CHECKER.SELECTOR.THREAD_LINK).href,n=new URL(t),o=n.protocol+"//"+n.hostname,a=((e,t="alert")=>`\n \n`)(x.GENERAL.SUSPECT_DOMAINS_LABEL);e.includes(o)&&s(`.${d.DOMAIN_CHECKER.CLASSNAME.WYKOP_ITEM_INTRO}`).insertAdjacentHTML("beforebegin",a)};x.GENERAL.WARN_ON_SUSPECTED_RUSSIAN_PROPAGANDA&&e()},K=()=>{I("settings").BADGE.HIDE_MARKED_USERS&&E(`.${d.BADGE.CLASSNAME.BADGE}`).forEach((e=>{e.closest(".wblock").innerHTML='Tu był komentarz użytkownika, którego oznaczyłeś z pomocą WykopHelpera. Jeśli chcesz widzieć takie komentarze, edytuj swoje ustawienia w localStorage (bo zapewne tam aktywowałeś to ustawienie, czyż nie? :) ).
'}))},{SETTINGS:{CLASSNAME:W,ID:j}}=d,X={settingsMarkup:`\n\n \n ᴅᴏᴄs ‖ ᴄʜᴀɴɢᴇʟᴏɢ \n \n WykopHelper - Ustawienia \n\x3c!-- GENERAL --\x3e\n \n
\n
\n
Ostrzegaj przy próbie zamknięcia/przeładowania strony gdy wykryto pisanie komentarza \n
\n
\n
\n
Oznaczaj znaleziska z podejrzanych źródeł \n
\n
\n \n Usuwaj woodle (okolicznościowy obrazek na belce) \n
\n
\n \n Usuwaj info o tym, że dany komentarz został wysłany przez aplikację (np. "via Android") \n
\n
\n \n Usuń komentarze we wszystkich znaleziskach \n
\n
\n Usuń komentarze tylko w znaleziskach z następującymi tagami: \n \n
\n
\n\x3c!-- BADGE --\x3e\n \n\x3c!-- Export and import --\x3e\n \n
\n Jeśli chcesz, możesz eksportować swoje ustawienia bądź bazę oznaczonych użytkowników, albo też ją zaimportować na innym komputerze. O proces przenosin musisz zadbać sam/a - możesz do tego wykorzystać na przykład plik tekstowy "notatnika". \n IMPORTUJ \n EKSPORTUJ \n
\n
\n\x3c!-- SPECIAL --\x3e\n \n
\n Jeśli chcesz wyczyścić listę oznaczonych wcześniej użytkowników, możesz to zrobić poniżej. W związku z tym, że jest to akcja nieodwracalna, musisz najpierw potwierdzić, że na pewno taki jest Twój cel. Uwaga - po kliknięciu przycisku akcja wykonywana jest natychmiast, bez dodatkowych potwierdzeń! \n
\n
\n \n Zaznacz by odblokować możliwość wyczyszczenia listy \n
\n
\n Wyczyść \n
\n
\n Pokaż wszystkich oznaczonych użytkowników \n
\n
\n \n`,settingsUserTable:`\n\n
WykopHelper - Lista oznaczonych użytkowników \n
\n \n \n no. \n Nick \n Nazwa \n Kolor \n Link \n Usuń \n \n \n \n \n
\n
\n`,settingsNav:`WykopHelper ✨ `,settingsUserTableRow:(e,t,n,o)=>`\n\n \n ${e} \n ${t} \n \n 🔗 \n ✗ \n \n`,textContent:{SHOW_ALL_MARKED:"Pokaż wszystkich oznaczonych użytkowników",HIDE_TABLE:"Schowaj tabelę",RUSSIAN_PROPAGANDA_MODAL_TITLE:"Skąd lista stron z propagandą?",WARN_ON_RELOAD_MODAL_TITLE:"Ostrożnie z tym ficzerem... :("}},{SETTINGS:V}=d,F=()=>{let e=I("settings");const t=I(),n=I("unique"),o=I("blacklist"),a=s(V.SELECTOR.SETTINGS_FORM_ELEMENT),l=()=>{Swal.fire({html:R,icon:"info",iconHtml:' ',iconColor:"#fff",showCancelButton:!0,showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"Zapisz nowe",showLoaderOnConfirm:!0,cancelButtonText:"Anuluj",width:"80%"}).then((e=>{if(e.isConfirmed){const e=s(`#${V.ID.IMPORT_TEXTAREA}`).value,t=s(`input[type="radio"][name="${V.SELECTOR.IMPORT_CHECKBOX_NAME}"]:checked`).value;t&&"settings"===t?localStorage.setItem(T,e):t&&"markedUsers"===t?(localStorage.setItem(c,e),localStorage.setItem(A,(e=>{const t=JSON.parse(e).map((e=>e.nick));return JSON.stringify(t)})(e))):t&&"blacklist"===t?localStorage.setItem(S,e):alert("Nie wybrano typu danych: czy importujesz ustawienia, czy oznaczonych użytkowników?")}}))},i=()=>{s(V.SELECTOR.ACTIVE_NAV_ELEMENT).classList.remove("active"),s(`.${V.CLASSNAME.WH_NAV_SETTINGS_LINK}`).classList.add("active"),a.innerHTML="",a.innerHTML=X.settingsMarkup,a.removeAttribute("method"),a.removeAttribute("action"),a.insertAdjacentHTML("afterend",X.settingsUserTable),(()=>{const n=s(`.${V.CLASSNAME.WH_USER_TABLE_BODY}`);t.forEach((t=>{n.insertAdjacentHTML("beforeend",X.settingsUserTableRow(t.nick,t.label||e.BADGE.DEFAULT_NAME,t.link,t.color||e.BADGE.DEFAULT_COLOR))}))})(),E("input").forEach((t=>{const n=t.getAttribute("category");t.id!==V.ID.ALLOW_WIPE_MARKED_LIST&&"checkbox"===t.type?t.checked=e[n][t.name]:"text"===t.type&&"nsQ"!==t.name?t.value=e[n][t.name]||"":"color"===t.type&&(t.value=e[n][t.name])}))},r=()=>{a.addEventListener("change",(t=>{const n=t.target.getAttribute("category"),o=t.target.name;"checkbox"===t.target.type&&t.target.id!==V.ID.ALLOW_WIPE_MARKED_LIST&&(e[n][o]=!e[n][o],localStorage.setItem(T,JSON.stringify(e))),"color"===t.target.type&&(e[n][o]=t.target.value,localStorage.setItem(T,JSON.stringify(e)))}),{passive:!0}),a.addEventListener("click",(t=>{t.target.id===V.ID.SHOW_MARKED_TABLE&&(t.preventDefault(),s(`.${V.CLASSNAME.WH_USER_TABLE_CONTAINER}`).classList.toggle(`${V.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`),s(`.${V.CLASSNAME.WH_USER_TABLE_CONTAINER}--hidden`)?document.getElementById(V.ID.SHOW_MARKED_TABLE).textContent=X.textContent.SHOW_ALL_MARKED:document.getElementById(V.ID.SHOW_MARKED_TABLE).textContent=X.textContent.HIDE_TABLE),t.target.id===V.ID.ALLOW_WIPE_MARKED_LIST&&(t.target.disabled=!0,document.getElementById(V.ID.REMOVE_ALL_MARKED).disabled=!1,document.getElementById(V.ID.REMOVE_ALL_MARKED).style.opacity=1),t.target.id===V.ID.REMOVE_ALL_MARKED&&(t.preventDefault(),localStorage.setItem(A,"[]"),localStorage.setItem(c,"[]"),location.reload()),t.target.id===V.ID.SUSPECT_DOMAINS_SETTINGS_LINK&&Swal.fire({html:w,icon:"info",iconHtml:' ',iconColor:"#fff",showCancelButton:!0,showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"Zapisz",cancelButtonText:"Anuluj",width:"80%",willOpen:t=>{s("#suspectDomainsLabel",t).value=e.GENERAL.SUSPECT_DOMAINS_LABEL,s("#suspectDomains",t).value=e.GENERAL.SUSPECT_DOMAINS.join("\n")}}).then((t=>{if(t.isConfirmed){let t=s(`#${V.ID.SUSPECT_DOMAINS_SETTINGS_TEXTAREA}`).value;t.replace("https://","").replace("http://","").replace("www.","").replace(" ","");const n=t.split("\n");e.GENERAL.SUSPECT_DOMAINS=n;const o=s("#suspectDomainsLabel").value;e.GENERAL.SUSPECT_DOMAINS_LABEL=o,localStorage.setItem(T,JSON.stringify(e))}})),t.target.id===V.ID.WARN_ON_RELOAD_INFO_LINK&&Swal.fire({title:X.textContent.WARN_ON_RELOAD_MODAL_TITLE,html:"\n Ten ficzer jest eksperymentalny. Obecnie prawdopodobnie udało mi się wyeliminować błędy, które sprawiały, że w przeszłości (nie)działał jak chciał, ale mimo wszystko - proponuję najpierw przetestować, czy działa jak trzeba również u Ciebie, zanim zaczniesz na nim polegać dla ochrony przed utratą treści :) \n",icon:"info",showCancelButton:!1,confirmButtonColor:"#3085d6",confirmButtonText:"OK",width:"80%"}),t.target.id===V.ID.IMPORT_BUTTON&&(t.preventDefault(),l()),t.target.id===V.ID.EXPORT_BUTTON&&(t.preventDefault(),Swal.fire({html:y,icon:"info",iconHtml:' ',iconColor:"#fff",showCloseButton:!0,confirmButtonColor:"#0a8658",confirmButtonText:"SKOPIUJ DO SCHOWKA",width:"80%"}).then((e=>{e.isConfirmed&&(s(`#${V.ID.EXPORT_TEXTAREA}`).select(),document.execCommand("copy"))})))}),{passive:!1}),document.addEventListener("click",(n=>{n.target.id===V.ID.EXPORT_SETTINGS_BUTTON&&(s(`#${V.ID.EXPORT_TEXTAREA}`).innerText="",s(`#${V.ID.EXPORT_TEXTAREA}`).innerText=JSON.stringify(e)),n.target.id===V.ID.EXPORT_MARKED_BUTTON&&(s(`#${V.ID.EXPORT_TEXTAREA}`).innerText="",s(`#${V.ID.EXPORT_TEXTAREA}`).innerText=JSON.stringify(t)),n.target.id===V.ID.EXPORT_BLACKLIST_BUTTON&&(s(`#${V.ID.EXPORT_TEXTAREA}`).innerText="",s(`#${V.ID.EXPORT_TEXTAREA}`).innerText=JSON.stringify(o))}),{passive:!0}),a.addEventListener("keyup",(t=>{const n=t.target.getAttribute("category"),o=t.target.name;"text"===t.target.type&&(e[n][o]=t.target.value,localStorage.setItem(T,JSON.stringify(e)))}),{passive:!0})};h(L.settings),h(L.modal),i(),r(),s(`.${d.SETTINGS.CLASSNAME.WH_USER_TABLE}`).addEventListener("click",(e=>{const o=e.target;o.classList.contains(`${d.SETTINGS.CLASSNAME.WH_USER_TABLE_REMOVE_BUTTON}`)&&((e=>{for(let[n,o]of t.entries())if(o.nick===e){delete t[n];const e=t.filter((e=>null!=e));localStorage.setItem(c,JSON.stringify(e))}const o=n.filter((t=>t!==e));localStorage.setItem(A,JSON.stringify(o))})(o.dataset.whuserremove),o.closest("tr").remove())}))},J="0.72",q="WykopHelper zainstalowany!",Y='Miłego używania dodatku! Jeśli masz jakiekolwiek problemy, pytania lub sugestie, zgłoś je tutaj. ',Z="Super!",Q={title:"WykopHelper zaktualizowany!",content:`\nDodatek WykopHelper został właśnie zaktualizowany do wersji 0.72 . Wprowadzone zmiany to: \n
\n ${['Dodana opcja "naprawiania" linków do YT; po jej włączeniu w ustawieniach, osadzone filmy z YT nie będą już linkować do jakiejś francuskiej strony z wyrażaniem zgody na kto-wie-co, tylko bezpośrednio do filmu.',"Poprawki w funkcjonalności usuwania informacji o postowaniu przez aplikację;","Usunięty błąd uniemożliwiający korzystanie z funkcjonalności oznaczania autora wątku na mikroblogu;","Usunięty błąd który powodował, że jeśli X został dodany na czarną listę, a potem zostało usunięte odznaczenie, to zostawał na czarnej liście na zawsze."].map((e=>{return t=e,`${t} `;var t})).join("")}\n \n`,button:"Okej!"},ee=`Pokaż OPa `,{BADGE:te}=d,ne=()=>{I("settings").GENERAL.WARN_ON_RELOAD&&window.addEventListener("beforeunload",(e=>{(()=>{const e=s(te.SELECTOR.REPLY_FORM),t=s(te.SELECTOR.COMMENT_FORM);let n=!1,o=!1;return e&&e.value.length>0&&(o=e&&e.value.split(" ").length>5),t&&t.value.length>0&&(n=t&&t.value.split(" ").length>5),!o&&!n})()||(e.preventDefault(),e.returnValue="Wygląda na to, że jesteś w trakcie pisania komentarza. Czy na pewno chcesz opuścić stronę?")}))},oe=()=>{I("settings").GENERAL.REMOVE_WOODLE&&(s(`.${d.COMMON.CLASSNAME.WOODLE}`).style.display="none")},ae=()=>{const e=I("settings").GENERAL.REMOVE_BY_TAG,t=e?e.replace(" ","").replace("#","").split(","):"";let n;window.dataLayer2[1]?(n=Object.assign({},window.dataLayer2[1]),delete n.action,delete n.event,delete n.logged,delete n.method):(n=[],document.querySelectorAll(d.COMMON.SELECTOR.TAGS).forEach((e=>{n.push(e.textContent.replace("#",""))})));const o=e=>t.includes(e),a=()=>{Object.values(n).some(o)&&s(`#${d.COMMON.ID.COMMENTS_STREAM}`)&&s(`#${d.COMMON.ID.COMMENTS_STREAM}`).remove()};t.length>0&&a()},le=()=>{I("settings").GENERAL.REMOVE_ALL_COMMENTS&&s(`#${d.COMMON.ID.COMMENTS_STREAM}`)&&s(`#${d.COMMON.ID.COMMENTS_STREAM}`).remove()},ie=()=>{I("settings").GENERAL.REMOVE_POSTED_VIA_APP&&E(`.${d.BADGE.CLASSNAME.NICK_ELEMENT}`).forEach((e=>{const t=e.querySelector("a + small");t&&(t.style.display="none")}))};String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)},h(L.modal,"whInitModalStyle"),localStorage.getItem("WHupdate")&&localStorage.getItem("WHupdate") ',width:"80%",confirmButtonText:Q.button}),localStorage.setItem("WHupdate",J),(()=>{if(!localStorage.getItem(S)){const e=[];localStorage.setItem(S,JSON.stringify(e))}})()):localStorage.getItem("WHupdate")||(Swal.fire({title:q,html:Y,icon:"warning",iconHtml:' ',width:"80%",confirmButtonText:Z}),localStorage.setItem("WHupdate",J)),m(),t()&&oe(),n()&&(f(),b(),ne(),document.addEventListener("paste",(e=>{if(s(`.${d.EMBED.CLASSNAME.EMBED_FILE}`)&&e.clipboardData.files[0]){const t=s(`.${d.EMBED.CLASSNAME.EMBED_FILE} input`);t.files=e.clipboardData.files;const n=new Event("UIEvent");n.initEvent("change",!1,!0),t.dispatchEvent(n)}}),{passive:!0}),K(),ie()),r()&&($(),(()=>{const e=location.pathname.split("/")[2],t=I("blacklist");(e=>t.includes(e))(e)&&(s(`${d.BADGE.SELECTOR.USER_PROFILE_NICK}:not(:first-child)`).style.filter="grayscale(65%)",s(d.BADGE.SELECTOR.USER_PROFILE_NICK_ELEMENT).insertAdjacentHTML("beforeend",`🔐 `)),document.addEventListener("click",(t=>{t.target.id===d.BADGE.ID.PROFILE_BLACKLISTED&&k(e)}))})()),o()&&s(V.SELECTOR.LAST_NAV_ELEMENT).insertAdjacentHTML("beforeend",X.settingsNav),a()&&F(),l()&&(P(),ae(),le()),i()&&(s(`${d.HIGHLIGHT_OP.SELECTOR.OP_THREAD} .${d.BADGE.CLASSNAME.NICK_ELEMENT}`).insertAdjacentHTML("afterbegin",ee),s(`.${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON}`).addEventListener("click",(()=>{const e=s(".night")?"rgb(7, 68, 91)":"#ffeac1";E(`.${d.HIGHLIGHT_OP.CLASSNAME.AUTHOR_COMMENTS}`).forEach((t=>{t.style.backgroundColor=e})),s(`.${d.HIGHLIGHT_OP.CLASSNAME.HIGHLIGHT_BUTTON}`).remove()})))}();
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..93fb7c2
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4433 @@
+{
+ "name": "wykop-helper",
+ "version": "0.72",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "wykop-helper",
+ "version": "0.72",
+ "license": "ISC",
+ "dependencies": {
+ "@babel/eslint-parser": "^7.13.14",
+ "rollup-plugin-ascii": "0.0.3",
+ "rollup-plugin-banner": "^0.2.1",
+ "rollup-plugin-eslint": "^7.0.0",
+ "rollup-plugin-terser": "^7.0.2"
+ },
+ "devDependencies": {}
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "dependencies": {
+ "@babel/highlight": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.16.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz",
+ "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz",
+ "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.16.7",
+ "@babel/helper-compilation-targets": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.16.7",
+ "@babel/helpers": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/eslint-parser": {
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz",
+ "integrity": "sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA==",
+ "dependencies": {
+ "eslint-scope": "^5.1.1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.11.0",
+ "eslint": "^7.5.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz",
+ "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
+ "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
+ "peer": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.16.4",
+ "@babel/helper-validator-option": "^7.16.7",
+ "browserslist": "^4.17.5",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
+ "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
+ "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-get-function-arity": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-get-function-arity": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
+ "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
+ "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
+ "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
+ "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.16.7",
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
+ "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
+ "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
+ "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz",
+ "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==",
+ "peer": true,
+ "dependencies": {
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
+ "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz",
+ "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==",
+ "peer": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
+ "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz",
+ "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.16.7",
+ "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-hoist-variables": "^7.16.7",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/types": "^7.16.7",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz",
+ "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
+ "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
+ "peer": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.2.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
+ "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
+ "peer": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "peer": true
+ },
+ "node_modules/@types/node": {
+ "version": "17.0.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.7.tgz",
+ "integrity": "sha512-1QUk+WAUD4t8iR+Oj+UgI8oJa6yyxaB8a8pHaC8uqM6RrS1qbL7bf3Pwl5rHv0psm2CuDErgho6v5N+G+5fwtQ=="
+ },
+ "node_modules/acorn": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
+ "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "peer": true
+ },
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
+ "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
+ "peer": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001286",
+ "electron-to-chromium": "^1.4.17",
+ "escalade": "^3.1.1",
+ "node-releases": "^2.0.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001295",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz",
+ "integrity": "sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==",
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "peer": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.31",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.31.tgz",
+ "integrity": "sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ==",
+ "peer": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "peer": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
+ "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
+ "peer": true,
+ "dependencies": {
+ "@eslint/eslintrc": "^1.0.5",
+ "@humanwhocodes/config-array": "^0.9.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.0",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.1.0",
+ "espree": "^9.3.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^6.0.1",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "peer": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/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==",
+ "peer": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/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==",
+ "peer": true
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
+ "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "peer": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+ "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "peer": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
+ "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
+ "peer": true,
+ "dependencies": {
+ "acorn": "^8.7.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^3.1.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+ "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
+ "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4="
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "peer": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
+ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
+ "peer": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "peer": true,
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dependencies": {
+ "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"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "peer": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/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==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/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=="
+ },
+ "node_modules/inquirer/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "node_modules/jest-worker": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "peer": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "node_modules/json5": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "peer": true,
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "peer": true
+ },
+ "node_modules/lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "peer": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.15.2.tgz",
+ "integrity": "sha1-BoHXOIdBu8Ot2qZQYJkmJMbAnpw=",
+ "dependencies": {
+ "vlq": "^0.2.1"
+ }
+ },
+ "node_modules/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=="
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
+ "peer": true
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "peer": true,
+ "dependencies": {
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "peer": true
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "peer": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "2.62.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.62.0.tgz",
+ "integrity": "sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==",
+ "peer": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rollup-plugin-ascii": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-ascii/-/rollup-plugin-ascii-0.0.3.tgz",
+ "integrity": "sha1-IFem1lwAVz0cpbJknOTlMbBCzec=",
+ "dependencies": {
+ "acorn": "^3.2.0",
+ "estree-walker": "^0.2.1",
+ "jsesc": "^2.2.0",
+ "magic-string": "^0.15.1",
+ "rollup-pluginutils": "^1.5.0"
+ }
+ },
+ "node_modules/rollup-plugin-ascii/node_modules/acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/rollup-plugin-banner": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-banner/-/rollup-plugin-banner-0.2.1.tgz",
+ "integrity": "sha512-Bs1uIPCsGpKIkNOwmBsCqn+dJ/xaojWk9PNlvd+1MEScddr1yUQlO6McAXi72wJyNWYL+9u9EI2JAZMpLRH92w==",
+ "dependencies": {
+ "lodash.template": "^4.4.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-eslint/-/rollup-plugin-eslint-7.0.0.tgz",
+ "integrity": "sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ==",
+ "dependencies": {
+ "eslint": "^6.0.0",
+ "rollup-pluginutils": "^2.7.1"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/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==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/estree-walker": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dependencies": {
+ "flat-cache": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dependencies": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dependencies": {
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "engines": {
+ "node": ">=6.5.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/rollup-pluginutils": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
+ "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+ "dependencies": {
+ "estree-walker": "^0.6.1"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/rollup-plugin-eslint/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/rollup-plugin-terser": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.0.0"
+ }
+ },
+ "node_modules/rollup-pluginutils": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
+ "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
+ "dependencies": {
+ "estree-walker": "^0.2.1",
+ "minimatch": "^3.0.2"
+ }
+ },
+ "node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "peer": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
+ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
+ },
+ "node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dependencies": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
+ "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
+ "dependencies": {
+ "commander": "^2.20.0",
+ "source-map": "~0.7.2",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "acorn": "^8.5.0"
+ },
+ "peerDependenciesMeta": {
+ "acorn": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser/node_modules/source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
+ },
+ "node_modules/vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow=="
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "peer": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "node_modules/write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dependencies": {
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "peer": true
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "requires": {
+ "@babel/highlight": "^7.16.7"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.16.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz",
+ "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==",
+ "peer": true
+ },
+ "@babel/core": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz",
+ "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==",
+ "peer": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.16.7",
+ "@babel/helper-compilation-targets": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.16.7",
+ "@babel/helpers": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/eslint-parser": {
+ "version": "7.16.5",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz",
+ "integrity": "sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA==",
+ "requires": {
+ "eslint-scope": "^5.1.1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz",
+ "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
+ "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
+ "peer": true,
+ "requires": {
+ "@babel/compat-data": "^7.16.4",
+ "@babel/helper-validator-option": "^7.16.7",
+ "browserslist": "^4.17.5",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
+ "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
+ "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
+ "peer": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
+ "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
+ "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
+ "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
+ "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
+ "peer": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.16.7",
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
+ "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
+ "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
+ "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
+ "peer": true
+ },
+ "@babel/helpers": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz",
+ "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==",
+ "peer": true,
+ "requires": {
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
+ "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz",
+ "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==",
+ "peer": true
+ },
+ "@babel/template": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
+ "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
+ "peer": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz",
+ "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==",
+ "peer": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.16.7",
+ "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-hoist-variables": "^7.16.7",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/types": "^7.16.7",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz",
+ "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==",
+ "peer": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
+ "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
+ "peer": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.2.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "peer": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ }
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
+ "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
+ "peer": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "peer": true
+ },
+ "@types/node": {
+ "version": "17.0.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.7.tgz",
+ "integrity": "sha512-1QUk+WAUD4t8iR+Oj+UgI8oJa6yyxaB8a8pHaC8uqM6RrS1qbL7bf3Pwl5rHv0psm2CuDErgho6v5N+G+5fwtQ=="
+ },
+ "acorn": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
+ "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "peer": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "peer": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "requires": {
+ "type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "peer": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
+ "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
+ "peer": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001286",
+ "electron-to-chromium": "^1.4.17",
+ "escalade": "^3.1.1",
+ "node-releases": "^2.0.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001295",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz",
+ "integrity": "sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==",
+ "peer": 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==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "peer": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "peer": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.4.31",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.31.tgz",
+ "integrity": "sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ==",
+ "peer": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "peer": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "peer": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "eslint": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
+ "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
+ "peer": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.0.5",
+ "@humanwhocodes/config-array": "^0.9.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.0",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.1.0",
+ "espree": "^9.3.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^6.0.1",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "peer": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "peer": 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==",
+ "peer": 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==",
+ "peer": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true
+ },
+ "eslint-scope": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
+ "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "peer": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+ "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "peer": true
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "peer": true
+ },
+ "globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "peer": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "peer": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "peer": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "peer": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "peer": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ },
+ "espree": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
+ "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
+ "peer": true,
+ "requires": {
+ "acorn": "^8.7.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^3.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+ "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "peer": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
+ "estree-walker": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
+ "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "peer": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "peer": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
+ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
+ "peer": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true,
+ "peer": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "peer": true
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "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"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "peer": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "peer": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "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==",
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "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=="
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "jest-worker": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "peer": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "json5": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "peer": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "peer": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "peer": true
+ },
+ "lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "peer": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.15.2.tgz",
+ "integrity": "sha1-BoHXOIdBu8Ot2qZQYJkmJMbAnpw=",
+ "requires": {
+ "vlq": "^0.2.1"
+ }
+ },
+ "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=="
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node-releases": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
+ "peer": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "peer": true,
+ "requires": {
+ "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"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "peer": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "peer": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "peer": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "peer": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "peer": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rollup": {
+ "version": "2.62.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.62.0.tgz",
+ "integrity": "sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==",
+ "peer": true,
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "rollup-plugin-ascii": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-ascii/-/rollup-plugin-ascii-0.0.3.tgz",
+ "integrity": "sha1-IFem1lwAVz0cpbJknOTlMbBCzec=",
+ "requires": {
+ "acorn": "^3.2.0",
+ "estree-walker": "^0.2.1",
+ "jsesc": "^2.2.0",
+ "magic-string": "^0.15.1",
+ "rollup-pluginutils": "^1.5.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
+ }
+ }
+ },
+ "rollup-plugin-banner": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-banner/-/rollup-plugin-banner-0.2.1.tgz",
+ "integrity": "sha512-Bs1uIPCsGpKIkNOwmBsCqn+dJ/xaojWk9PNlvd+1MEScddr1yUQlO6McAXi72wJyNWYL+9u9EI2JAZMpLRH92w==",
+ "requires": {
+ "lodash.template": "^4.4.0"
+ }
+ },
+ "rollup-plugin-eslint": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-eslint/-/rollup-plugin-eslint-7.0.0.tgz",
+ "integrity": "sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ==",
+ "requires": {
+ "eslint": "^6.0.0",
+ "rollup-pluginutils": "^2.7.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "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=="
+ }
+ }
+ },
+ "eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ }
+ },
+ "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==",
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
+ },
+ "espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "estree-walker": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "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="
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rollup-pluginutils": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
+ "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+ "requires": {
+ "estree-walker": "^0.6.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "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="
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "rollup-plugin-terser": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
+ }
+ },
+ "rollup-pluginutils": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
+ "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
+ "requires": {
+ "estree-walker": "^0.2.1",
+ "minimatch": "^3.0.2"
+ }
+ },
+ "run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "peer": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "peer": true
+ },
+ "signal-exit": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
+ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "peer": true
+ },
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "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=="
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "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==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "terser": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
+ "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.7.2",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "peer": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "peer": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "peer": true
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
+ },
+ "vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow=="
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "peer": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "peer": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index fb879e1..76da2ee 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wykop-helper",
- "version": "0.70",
+ "version": "0.72",
"description": "",
"main": "index.js",
"scripts": {
@@ -9,11 +9,12 @@
},
"author": "PLW",
"license": "ISC",
- "devDependencies": {
- "babel-eslint": "^10.1.0",
+ "devDependencies": {},
+ "dependencies": {
+ "@babel/eslint-parser": "^7.13.14",
"rollup-plugin-ascii": "0.0.3",
"rollup-plugin-banner": "^0.2.1",
"rollup-plugin-eslint": "^7.0.0",
- "rollup-plugin-terser": "^6.1.0"
+ "rollup-plugin-terser": "^7.0.2"
}
}
diff --git a/rollup.config.js b/rollup.config.js
index 81fd245..3119c0b 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -1,14 +1,14 @@
import {terser} from 'rollup-plugin-terser';
-import { eslint } from "rollup-plugin-eslint";
+// import { eslint } from "rollup-plugin-eslint";
import banner from 'rollup-plugin-banner';
import ascii from 'rollup-plugin-ascii';
export default {
input: 'src/index.js',
plugins: [
- eslint({
- fix: true,
- }),
+ // eslint({
+ // fix: true,
+ // }),
ascii()
],
output: [
diff --git a/src/constants/domSelectors.js b/src/constants/domSelectors.js
index 58bea98..5be59c7 100644
--- a/src/constants/domSelectors.js
+++ b/src/constants/domSelectors.js
@@ -3,6 +3,7 @@ export const DOM = {
CLASSNAME: {
// wykop.pl elements
WOODLE: 'woodle',
+ YT_EMBED: 'embed-youtube',
// custom WH elements
BUTTON: 'buttonWH',
},
diff --git a/src/model/utils/update.js b/src/model/utils/update.js
index 89c0558..2e91e75 100644
--- a/src/model/utils/update.js
+++ b/src/model/utils/update.js
@@ -2,20 +2,15 @@ import DOM from "../../constants/domSelectors";
/* eslint max-len: 0 */
const changesArray = [
- 'W ustawieniach można wybrać domyślny kolor odznaki, który będzie nadawany każdemu nowemu oznaczonemu.',
- '...Ale kolor ten można zmienić dla każdego z osobna - w popupie aktywowanym kliknięciem w odznakę przy danym userze.',
- 'Dodatkowo, w popupie usera można zadecydować o wrzuceniu usera na super czarną listę. Ale ostrożnie - po zczarnolistowaniu, posty danego użytkownika będą całkowicie usuwane, a nie tylko chowane jak w wykopowej czarnej liście. Później - aby użytkownikowi wybaczyć, i z czarnej listy go zdjąć - należy udać się do jego profilu (wykop.pl/ludzie/NICK) i kliknąć na ikonę kłódki przy jego nicku. O tym, że dany user jest zczarnolistowany, świadczy w jego profilu ta kłódka, oraz lekko przytumiony nick.',
- 'Dodano funkcję, aktywowaną w ustawieniach, umożliwiającą usuwanie tekstu "via [nazwa aplikacji]" w komentarzach użytkowników. Przy dłuższych nickach, albo przy stosowaniu innych dodatków (np. pokazujących czy dany user wykopał czy zakopał znalezisko) ta mało użyteczna informacja o aplikacji jakiej ktoś używa potrafi spowodować nachodzenie na siebie różnych tekstów.',
- 'W ustawieniach można również od teraz eksportować i importować swoje ustawienia i listy oznaczonych i czarnolistowanych użytkowników. Na razie jest to proces raczej ręczny (wymaga kopiowania i przeklejania ciągów znaków między przeglądarkami); możliwe, że w przyszłości coś tutaj zostanie udoskonalone, chociaż nie ukrywam, że wynika to z mojej niechęci do używania zewnętrznych usług - bo wtedy wchodziłyby w grę kwestie prywatności, dostępów, śledzenia i tak dalej i tak dalej... a tego chcę za wszelką cenę uniknąć.',
- 'Od teraz odznaka będzie się wyświetlać dokładnie tak, jak to ustawisz w ustawieniach bądź konkretnemu userowi. Do tej pory wymuszana była konwencja rozpoczynania tekstu wielką literą, a reszta małymi - ale już nie jest. Jeśli chcesz, możesz nawet pisać po pOkEmOnOwEmU :)',
- 'Parę wizualnych zmian (ikony itp.; nic przełomowego). Redesign całości, a zwłaszcza popupu odznaki, wkrótce - bo powoli robi się mało estetyczny bałagan.',
- 'Zniknęło sporo pomniejszych bugów.',
- 'Z pewnością pojawiło się sporo nowych bugów :)'
+ 'Dodana opcja "naprawiania" linków do YT; po jej włączeniu w ustawieniach, osadzone filmy z YT nie będą już linkować do jakiejś francuskiej strony z wyrażaniem zgody na kto-wie-co, tylko bezpośrednio do filmu.',
+ 'Poprawki w funkcjonalności usuwania informacji o postowaniu przez aplikację;',
+ 'Usunięty błąd uniemożliwiający korzystanie z funkcjonalności oznaczania autora wątku na mikroblogu;',
+ 'Usunięty błąd który powodował, że jeśli X został dodany na czarną listę, a potem zostało usunięte odznaczenie, to zostawał na czarnej liście na zawsze.'
];
const listItem = text => `${text} `;
-export const version = `0.70`;
+export const version = `0.72`;
export const welcomeText = {
title: "WykopHelper zainstalowany!",
diff --git a/src/modules/badges.js b/src/modules/badges.js
index 8df8b21..daa80a0 100644
--- a/src/modules/badges.js
+++ b/src/modules/badges.js
@@ -8,6 +8,7 @@ import { buttonMarkup, badge, markedInBulk, buttonBulkMarkup } from "../model/mo
import { badgeUserModal } from "../model/utils/modals";
import { injectStyles } from "../utils/inject";
import { getLocalStorage } from "../utils/handleLocalStorage";
+import { removeFromBlackList } from "./handleBlacklist";
const { BADGE: EL } = DOM;
@@ -222,6 +223,8 @@ export const handleBadges = () => {
JSON.stringify(unique)
);
+ removeFromBlackList(nick);
+
setTimeout(() => {
updateView();
}, 780);
diff --git a/src/modules/handleBlacklist.js b/src/modules/handleBlacklist.js
index 3e49503..a100ee8 100644
--- a/src/modules/handleBlacklist.js
+++ b/src/modules/handleBlacklist.js
@@ -20,25 +20,48 @@ export const handleRemovalOfBlacklisted = () => {
})
}
+/**
+ * Function removes provided nick from the blacklist.
+ * @param {String} nick - nick to remove from blacklist
+ */
+export const removeFromBlackList = nickToRemove => {
+ const blacklist = getLocalStorage('blacklist');
+ const isBlacklisted = nick => blacklist.includes(nick);
+
+ if (isBlacklisted(nickToRemove)) {
+ const newBlacklist = blacklist.filter(el => el !== nickToRemove);
+
+ localStorage.setItem(
+ STORAGE_KEY_NAMES.BLACKLIST,
+ JSON.stringify(newBlacklist)
+ );
+ }
+}
+
+/**
+ * Decides how user profile is handled (wykop.pl/ludzie/*)
+ */
export const handleBlacklistedProfile = () => {
+ /** nick from location.path */
const nick = location.pathname.split('/')[2];
const blacklist = getLocalStorage('blacklist');
const isBlacklisted = nick => blacklist.includes(nick);
+ /**
+ * if nick is blacklisted, make it greyed out, and add a padlock emoji
+ */
if (isBlacklisted(nick)) {
$(`${DOM.BADGE.SELECTOR.USER_PROFILE_NICK}:not(:first-child)`).style.filter = 'grayscale(65%)';
// eslint-disable-next-line max-len
$(DOM.BADGE.SELECTOR.USER_PROFILE_NICK_ELEMENT).insertAdjacentHTML('beforeend', `🔐 `);
}
+ /**
+ * If user clicks on the padlock, remove user from blacklist
+ */
document.addEventListener('click', event => {
if (event.target.id === DOM.BADGE.ID.PROFILE_BLACKLISTED) {
- const newBlacklist = blacklist.filter(el => el !== nick);
- localStorage.setItem(
- STORAGE_KEY_NAMES.BLACKLIST,
- JSON.stringify(newBlacklist)
- );
- location.reload();
+ removeFromBlackList(nick);
}
});
}
\ No newline at end of file
diff --git a/src/modules/removePostedViaApp.js b/src/modules/removePostedViaApp.js
index 56a0003..8150650 100644
--- a/src/modules/removePostedViaApp.js
+++ b/src/modules/removePostedViaApp.js
@@ -20,7 +20,10 @@ export const removePostedViaApp = () => {
const handleRemoval = () => {
$$(`.${DOM.BADGE.CLASSNAME.NICK_ELEMENT}`).forEach(el => {
// tests show that using style.display = 'none' is significantly (around 3 times) faster than remove().
- el.querySelector('a + small').style.display = 'none';
+ const postedViaAppElement = el.querySelector('a + small');
+ if (postedViaAppElement) {
+ postedViaAppElement.style.display = 'none';
+ }
});
}
diff --git a/src/modules/settings.js b/src/modules/settings.js
index 0ad6068..07b7033 100644
--- a/src/modules/settings.js
+++ b/src/modules/settings.js
@@ -3,6 +3,7 @@
* - add it as a default in /utils/handleLocalStorage
* - add HTML for it in /model/modules/settings.model
* - add check in appropriate module. If you want it to be ON by default, you will need to make it so using /utils/runOnceOnUpdate
+ * - add module to index.js
*/
import { $, $$ } from '../utils/dom';