From 0c4c369927529eb7d47f56a3fd329c5e6a98320e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Fri, 19 May 2023 15:31:57 +0200 Subject: [PATCH 01/38] chore: Formater les fichiers CSS et HTML. --- .editorconfig | 5 +++- .metalint/htmlhint.config.js | 2 +- .metalint/prettier_css.config.js | 9 +++++++ .metalint/prettier_javascript.config.js | 9 +++++++ .metalint/prettier_tpl.config.js | 9 +++++++ src/engine/script.js | 2 +- src/engine/style.css | 4 +-- src/extension/background/page.html | 2 +- src/extension/popup/index.html | 12 ++++----- src/module/audio/audio.css | 3 ++- src/module/audio/audio.tpl | 4 +-- src/module/icon/icon.tpl | 2 +- src/module/image/image.tpl | 2 +- src/module/list/list.css | 3 ++- src/module/list/list.tpl | 4 +-- src/module/podcast/podcast.css | 3 ++- src/module/podcast/podcast.tpl | 4 +-- src/module/search/search.tpl | 6 ++--- src/module/single/single.css | 3 ++- src/module/single/single.tpl | 4 +-- src/module/tools/contrast/contrast.tpl | 4 +-- src/module/tools/findrss/findrss.css | 3 ++- src/module/tools/findrss/findrss.js | 4 +-- src/module/tools/findrss/findrss.tpl | 6 ++--- src/scraper/list/rss/rss.js | 4 +-- template/dashboard/3-columns.html | 31 ++++++++++++++--------- template/dashboard/4-columns.html | 33 ++++++++++++++++--------- 27 files changed, 111 insertions(+), 66 deletions(-) create mode 100644 .metalint/prettier_css.config.js create mode 100644 .metalint/prettier_javascript.config.js create mode 100644 .metalint/prettier_tpl.config.js diff --git a/.editorconfig b/.editorconfig index 2394693..706a109 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,5 +9,8 @@ indent_style = space indent_size = 2 max_line_length = 80 -[{*.js,*.ts}] +[*.js] +indent_size = 4 + +[*.css] indent_size = 4 diff --git a/.metalint/htmlhint.config.js b/.metalint/htmlhint.config.js index d370e8e..4e18771 100644 --- a/.metalint/htmlhint.config.js +++ b/.metalint/htmlhint.config.js @@ -17,7 +17,7 @@ export default { "attr-whitespace": true, "doctype-first": true, "doctype-html5": true, - "empty-tag-not-self-closed": true, + "empty-tag-not-self-closed": false, "head-script-disabled": true, "href-abs-or-rel": false, "html-lang-require": false, diff --git a/.metalint/prettier_css.config.js b/.metalint/prettier_css.config.js new file mode 100644 index 0000000..449047e --- /dev/null +++ b/.metalint/prettier_css.config.js @@ -0,0 +1,9 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default { + tabWidth: 4, +}; diff --git a/.metalint/prettier_javascript.config.js b/.metalint/prettier_javascript.config.js new file mode 100644 index 0000000..449047e --- /dev/null +++ b/.metalint/prettier_javascript.config.js @@ -0,0 +1,9 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default { + tabWidth: 4, +}; diff --git a/.metalint/prettier_tpl.config.js b/.metalint/prettier_tpl.config.js new file mode 100644 index 0000000..0921006 --- /dev/null +++ b/.metalint/prettier_tpl.config.js @@ -0,0 +1,9 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default { + parser: "html", +}; diff --git a/src/engine/script.js b/src/engine/script.js index 2b2b01f..ecb7029 100644 --- a/src/engine/script.js +++ b/src/engine/script.js @@ -74,6 +74,6 @@ document.head.append(link); // Activer les widgets. Array.from( - document.querySelectorAll(`body script[type="application/json"]`), + document.querySelectorAll('body script[type="application/json"]'), liven, ); diff --git a/src/engine/style.css b/src/engine/style.css index a31ac5d..1c84e7c 100644 --- a/src/engine/style.css +++ b/src/engine/style.css @@ -5,9 +5,9 @@ body { .widget { border-radius: 2px; box-shadow: - 0 2px 2px 0 rgba(0 0 0 / 14%), + 0 2px 2px 0 rgba(0 0 0 / 14%), 0 3px 1px -2px rgba(0 0 0 / 20%), - 0 1px 5px 0 rgba(0 0 0 / 12%); + 0 1px 5px 0 rgba(0 0 0 / 12%); margin: 4px; overflow: hidden; } diff --git a/src/extension/background/page.html b/src/extension/background/page.html index 202b1d7..732ffaf 100644 --- a/src/extension/background/page.html +++ b/src/extension/background/page.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> + <meta charset="utf-8" /> <title>Gout</title> </head> <body> diff --git a/src/extension/popup/index.html b/src/extension/popup/index.html index fe826cf..b02dca9 100644 --- a/src/extension/popup/index.html +++ b/src/extension/popup/index.html @@ -1,18 +1,18 @@ -<!DOCTYPE html> +<!doctype html> <html> <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Gout</title> - <link href="style.css" rel="stylesheet"> - <link href="/img/icon.svg" rel="shortcut icon"> + <link href="style.css" rel="stylesheet" /> + <link href="/img/icon.svg" rel="shortcut icon" /> </head> <body> <template> <li> <span></span> <button class="icon" title="Enlever"> - <img src="img/remove.svg" alt="remove"> + <img src="img/remove.svg" alt="remove" /> </button> </li> </template> diff --git a/src/module/audio/audio.css b/src/module/audio/audio.css index fcd3d1c..8299ca9 100644 --- a/src/module/audio/audio.css +++ b/src/module/audio/audio.css @@ -48,7 +48,8 @@ input::-moz-range-thumb { height: 12px; width: 12px; } -div:hover input, input.active { +div:hover input, +input.active { opacity: 80%; } div input:hover { diff --git a/src/module/audio/audio.tpl b/src/module/audio/audio.tpl index 352f206..06859f4 100644 --- a/src/module/audio/audio.tpl +++ b/src/module/audio/audio.tpl @@ -1,6 +1,6 @@ <template> <div> - <a rel="noopener noreferrer"><img></a> - <input type="range" value="0"> + <a rel="noopener noreferrer"><img /></a> + <input type="range" value="0" /> </div> </template> diff --git a/src/module/icon/icon.tpl b/src/module/icon/icon.tpl index 4b6d7f4..227c95a 100644 --- a/src/module/icon/icon.tpl +++ b/src/module/icon/icon.tpl @@ -1,5 +1,5 @@ <template> <div> - <a rel="noopener noreferrer"><img></a> + <a rel="noopener noreferrer"><img /></a> </div> </template> diff --git a/src/module/image/image.tpl b/src/module/image/image.tpl index 8ad81e1..a6e5f6c 100644 --- a/src/module/image/image.tpl +++ b/src/module/image/image.tpl @@ -1,7 +1,7 @@ <template> <template> <li> - <a rel="noopener noreferrer"><img></a> + <a rel="noopener noreferrer"><img /></a> </li> </template> diff --git a/src/module/list/list.css b/src/module/list/list.css index 11bc387..cfbcf4a 100644 --- a/src/module/list/list.css +++ b/src/module/list/list.css @@ -38,7 +38,8 @@ a { text-overflow: ellipsis; white-space: nowrap; } -a:visited, li.empty a { +a:visited, +li.empty a { color: black; } a[href]:hover { diff --git a/src/module/list/list.tpl b/src/module/list/list.tpl index 0c21c2a..1f6da6a 100644 --- a/src/module/list/list.tpl +++ b/src/module/list/list.tpl @@ -1,8 +1,6 @@ <template> <template> - <li> - <img> <a rel="noopener noreferrer"></a> - </li> + <li><img /> <a rel="noopener noreferrer"></a></li> </template> <ul></ul> diff --git a/src/module/podcast/podcast.css b/src/module/podcast/podcast.css index 5ff6bb6..0bb9392 100644 --- a/src/module/podcast/podcast.css +++ b/src/module/podcast/podcast.css @@ -40,7 +40,8 @@ a { text-overflow: ellipsis; white-space: nowrap; } -a:visited, li.empty a { +a:visited, +li.empty a { color: black; } a[href]:hover { diff --git a/src/module/podcast/podcast.tpl b/src/module/podcast/podcast.tpl index 915616d..b841739 100644 --- a/src/module/podcast/podcast.tpl +++ b/src/module/podcast/podcast.tpl @@ -1,9 +1,9 @@ <template> <template> <li> - <img> + <img /> <a rel="noopener noreferrer"></a> - <input type="range" value="0"> + <input type="range" value="0" /> <audio></audio> </li> </template> diff --git a/src/module/search/search.tpl b/src/module/search/search.tpl index e77fd73..8e9fed0 100644 --- a/src/module/search/search.tpl +++ b/src/module/search/search.tpl @@ -1,15 +1,15 @@ <template> <template> <li> - <img> + <img /> <span></span> </li> </template> <div> <form> - <img> - <input name="" list="suggestions" placeholder=""> + <img /> + <input name="" list="suggestions" placeholder="" /> <datalist id="suggestions" /> </form> <ul></ul> diff --git a/src/module/single/single.css b/src/module/single/single.css index dab9e33..8a55dd0 100644 --- a/src/module/single/single.css +++ b/src/module/single/single.css @@ -29,7 +29,8 @@ a { text-overflow: ellipsis; white-space: nowrap; } -a:visited, div.empty a { +a:visited, +div.empty a { color: black; } a[href]:hover { diff --git a/src/module/single/single.tpl b/src/module/single/single.tpl index 33b65b4..531ad96 100644 --- a/src/module/single/single.tpl +++ b/src/module/single/single.tpl @@ -1,5 +1,3 @@ <template> - <div> - <img> <a rel="noopener noreferrer"></a> - </div> + <div><img /> <a rel="noopener noreferrer"></a></div> </template> diff --git a/src/module/tools/contrast/contrast.tpl b/src/module/tools/contrast/contrast.tpl index c71e265..92884b2 100644 --- a/src/module/tools/contrast/contrast.tpl +++ b/src/module/tools/contrast/contrast.tpl @@ -1,5 +1,3 @@ <template> - <div> - <input type="color"> <span></span> - </div> + <div><input type="color" /> <span></span></div> </template> diff --git a/src/module/tools/findrss/findrss.css b/src/module/tools/findrss/findrss.css index 965c65d..4d413a4 100644 --- a/src/module/tools/findrss/findrss.css +++ b/src/module/tools/findrss/findrss.css @@ -67,7 +67,8 @@ a { text-overflow: ellipsis; white-space: nowrap; } -a:visited, li.empty a { +a:visited, +li.empty a { color: black; } a[href]:hover { diff --git a/src/module/tools/findrss/findrss.js b/src/module/tools/findrss/findrss.js index bd7df8d..b43520b 100644 --- a/src/module/tools/findrss/findrss.js +++ b/src/module/tools/findrss/findrss.js @@ -10,8 +10,8 @@ const extract = async function (url) { const doc = new DOMParser().parseFromString(text, "text/html"); const selector = - `link[type="application/rss+xml"][href], ` + - ` link[type="application/atom+xml"][href]`; + 'link[type="application/rss+xml"][href],' + + ' link[type="application/atom+xml"][href]'; return Array.from(doc.querySelectorAll(selector), (link) => ({ icon: import.meta.resolve("./img/rss.svg"), link: new URL(link.getAttribute("href"), url).href, diff --git a/src/module/tools/findrss/findrss.tpl b/src/module/tools/findrss/findrss.tpl index 93bd2f8..7b5ca29 100644 --- a/src/module/tools/findrss/findrss.tpl +++ b/src/module/tools/findrss/findrss.tpl @@ -1,13 +1,11 @@ <template> <template> - <li> - <img> <a rel="noopener noreferrer"></a> - </li> + <li><img /> <a rel="noopener noreferrer"></a></li> </template> <div> <form> - <input type="url"> + <input type="url" /> </form> <ul></ul> </div> diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index 41336c8..2c3bd58 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -18,7 +18,7 @@ export default class RSS { // eslint-disable-next-line array-func/from-map return Array.from(xml.querySelectorAll("item"), (item) => ({ audio: item - .querySelector(`enclosure[type^="audio/"]`) + .querySelector('enclosure[type^="audio/"]') ?.getAttribute("url"), date: item.querySelector("pubDate")?.textContent ?? @@ -27,7 +27,7 @@ export default class RSS { desc: item.querySelector("description")?.textContent ?? "", guid: item.querySelector("guid")?.textContent ?? "", img: item - .querySelector(`enclosure[type^="image/"]`) + .querySelector('enclosure[type^="image/"]') ?.getAttribute("url"), link: item.querySelector("link")?.textContent, title: item.querySelector("title").textContent, diff --git a/template/dashboard/3-columns.html b/template/dashboard/3-columns.html index 51db9a2..2c22ff9 100644 --- a/template/dashboard/3-columns.html +++ b/template/dashboard/3-columns.html @@ -1,21 +1,30 @@ -<!DOCTYPE html> +<!doctype html> <html lang="fr-FR"> <head> - <meta charset="utf-8"> - <link href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" - rel="shortcut icon"> + <meta charset="utf-8" /> + <link + href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" + rel="shortcut icon" + /> <title>Gout</title> - <script src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" - type="module"></script> + <script + src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" + type="module" + ></script> <style> - body { display: flex; } - div { display: flex; flex-direction: column; } + body { + display: flex; + } + div { + display: flex; + flex-direction: column; + } </style> </head> <body> <!-- Les largeurs des colonnes sont modifiables en changeant la valeur de la propriété width. --> - <div style="width: 33%;"> + <div style="width: 33%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la première colonne. Voici un exemple de structure d'un widget : @@ -27,11 +36,11 @@ </script> --> </div> - <div style="width: 33%;"> + <div style="width: 33%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la deuxième colonne. --> </div> - <div style="width: 33%;"> + <div style="width: 33%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la dernière colonne. --> </div> diff --git a/template/dashboard/4-columns.html b/template/dashboard/4-columns.html index b8ac213..bf75f5b 100644 --- a/template/dashboard/4-columns.html +++ b/template/dashboard/4-columns.html @@ -1,21 +1,30 @@ -<!DOCTYPE html> +<!doctype html> <html lang="fr-FR"> <head> - <meta charset="utf-8"> - <link href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" - rel="shortcut icon"> + <meta charset="utf-8" /> + <link + href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" + rel="shortcut icon" + /> <title>Gout</title> - <script src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" - type="module"></script> + <script + src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" + type="module" + ></script> <style> - body { display: flex; } - div { display: flex; flex-direction: column; } + body { + display: flex; + } + div { + display: flex; + flex-direction: column; + } </style> </head> <body> <!-- Les largeurs des colonnes sont modifiables en changeant la valeur de la propriété width. --> - <div style="width: 25%;"> + <div style="width: 25%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la première colonne. Voici un exemple de structure d'un widget : @@ -27,15 +36,15 @@ </script> --> </div> - <div style="width: 25%;"> + <div style="width: 25%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la deuxième colonne. --> </div> - <div style="width: 25%;"> + <div style="width: 25%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la troisième colonne. --> </div> - <div style="width: 25%;"> + <div style="width: 25%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la dernière colonne. --> </div> From c91d0fa7befa9582dad35712b2a3fdf630183f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 23 Sep 2023 17:19:09 +0200 Subject: [PATCH 02/38] fix: Corriger le nom des classes. --- src/engine/script.js | 9 ++++++--- src/module/audio/audio.js | 2 +- src/module/clock/clock.js | 2 +- src/module/icon/icon.js | 2 +- src/module/iframe/iframe.js | 2 +- src/module/image/image.js | 2 +- src/module/list/list.js | 2 +- src/module/notepad/notepad.js | 2 +- src/module/podcast/podcast.js | 2 +- src/module/search/search.js | 2 +- src/module/single/single.js | 2 +- src/module/text/text.js | 2 +- src/module/tools/contrast/contrast.js | 2 +- src/module/tools/findrss/findrss.js | 2 +- src/scraper/icon/ping/ping.js | 2 +- src/scraper/list/jsonfeed/jsonfeed.js | 2 +- src/scraper/list/rss/rss.js | 2 +- src/scraper/repeater/repeater.js | 2 +- src/scraper/search/opensearch/opensearch.js | 2 +- 19 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/engine/script.js b/src/engine/script.js index ecb7029..1dbb35d 100644 --- a/src/engine/script.js +++ b/src/engine/script.js @@ -44,9 +44,12 @@ const loadWidget = async function (widget) { // eslint-disable-next-line no-unsanitized/method const { default: Module } = await import(widget.module.url); - const name = "gout-" + hashCode(widget.module.url); - if (undefined === customElements.get(name)) { - customElements.define(name, Module); + if (null === customElements.getName(Module)) { + customElements.define( + `gout-${Module.name.toLowerCase()}` + + `-${hashCode(widget.module.url)}`, + Module, + ); } return new Module(widget.module.options ?? {}, scrapers); }; diff --git a/src/module/audio/audio.js b/src/module/audio/audio.js index e9bffa2..a697cbb 100644 --- a/src/module/audio/audio.js +++ b/src/module/audio/audio.js @@ -6,7 +6,7 @@ import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; -export default class Audio extends HTMLElement { +export default class AudioModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/clock/clock.js b/src/module/clock/clock.js index ee26e0a..2fa2252 100644 --- a/src/module/clock/clock.js +++ b/src/module/clock/clock.js @@ -19,7 +19,7 @@ const animate = function (time, center) { return element; }; -export default class Clock extends HTMLElement { +export default class ClockModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/icon/icon.js b/src/module/icon/icon.js index c4cf498..ddb20c4 100644 --- a/src/module/icon/icon.js +++ b/src/module/icon/icon.js @@ -6,7 +6,7 @@ import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; -export default class Icon extends HTMLElement { +export default class IconModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/iframe/iframe.js b/src/module/iframe/iframe.js index a9fe633..6831349 100644 --- a/src/module/iframe/iframe.js +++ b/src/module/iframe/iframe.js @@ -6,7 +6,7 @@ import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; -export default class IFrame extends HTMLElement { +export default class IFrameModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/image/image.js b/src/module/image/image.js index cd9289b..a0a529e 100644 --- a/src/module/image/image.js +++ b/src/module/image/image.js @@ -17,7 +17,7 @@ const hashCode = function (item) { ).toString(36); }; -export default class Image extends HTMLElement { +export default class ImageModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/list/list.js b/src/module/list/list.js index f763971..01072eb 100644 --- a/src/module/list/list.js +++ b/src/module/list/list.js @@ -17,7 +17,7 @@ const hashCode = function (item) { ).toString(36); }; -export default class List extends HTMLElement { +export default class ListModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/notepad/notepad.js b/src/module/notepad/notepad.js index e9d28d0..2132aa3 100644 --- a/src/module/notepad/notepad.js +++ b/src/module/notepad/notepad.js @@ -15,7 +15,7 @@ const hashCode = function (item) { ).toString(36); }; -export default class Notepad extends HTMLElement { +export default class NotepadModule extends HTMLElement { #options; #guid; diff --git a/src/module/podcast/podcast.js b/src/module/podcast/podcast.js index 2b68629..72bbcd5 100644 --- a/src/module/podcast/podcast.js +++ b/src/module/podcast/podcast.js @@ -49,7 +49,7 @@ const move = function (event) { audio.currentTime = li.querySelector("input").valueAsNumber; }; -export default class Podcast extends HTMLElement { +export default class PodcastModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/search/search.js b/src/module/search/search.js index 952d2f1..482d307 100644 --- a/src/module/search/search.js +++ b/src/module/search/search.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -export default class Search extends HTMLElement { +export default class SearchModule extends HTMLElement { #scrapers; #scraper; diff --git a/src/module/single/single.js b/src/module/single/single.js index 62c85c5..00df8ca 100644 --- a/src/module/single/single.js +++ b/src/module/single/single.js @@ -6,7 +6,7 @@ import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; -export default class Single extends HTMLElement { +export default class SingleModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/text/text.js b/src/module/text/text.js index 4ef71b5..5137bae 100644 --- a/src/module/text/text.js +++ b/src/module/text/text.js @@ -6,7 +6,7 @@ import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; -export default class Text extends HTMLElement { +export default class TextModule extends HTMLElement { #options; #scrapers; diff --git a/src/module/tools/contrast/contrast.js b/src/module/tools/contrast/contrast.js index 4041dd6..d52bcc1 100644 --- a/src/module/tools/contrast/contrast.js +++ b/src/module/tools/contrast/contrast.js @@ -127,7 +127,7 @@ for (let r = 0; 255 > r; r += 1) { } } -export default class Contrast extends HTMLElement { +export default class ContrastModule extends HTMLElement { #calculate() { const input = this.shadowRoot.querySelector("input"); input.title = input.value; diff --git a/src/module/tools/findrss/findrss.js b/src/module/tools/findrss/findrss.js index b43520b..27049a9 100644 --- a/src/module/tools/findrss/findrss.js +++ b/src/module/tools/findrss/findrss.js @@ -19,7 +19,7 @@ const extract = async function (url) { })); }; -export default class FindRSS extends HTMLElement { +export default class FindRSSModule extends HTMLElement { #options; #max; diff --git a/src/scraper/icon/ping/ping.js b/src/scraper/icon/ping/ping.js index 0e5036e..cccff66 100644 --- a/src/scraper/icon/ping/ping.js +++ b/src/scraper/icon/ping/ping.js @@ -19,7 +19,7 @@ const DEFAULT_COLORS = { "...": "#757575", }; -export default class Ping { +export default class PingScraper { #url; #colors; diff --git a/src/scraper/list/jsonfeed/jsonfeed.js b/src/scraper/list/jsonfeed/jsonfeed.js index 4e16ea1..0972a31 100644 --- a/src/scraper/list/jsonfeed/jsonfeed.js +++ b/src/scraper/list/jsonfeed/jsonfeed.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -export default class JSONFeed { +export default class JSONFeedScraper { #url; #complements; diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index 2c3bd58..c1f71f8 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -export default class RSS { +export default class RSSScraper { #url; #complements; diff --git a/src/scraper/repeater/repeater.js b/src/scraper/repeater/repeater.js index ac23950..7ae1f59 100644 --- a/src/scraper/repeater/repeater.js +++ b/src/scraper/repeater/repeater.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -export default class Repeater { +export default class RepeaterScraper { constructor(options) { // eslint-disable-next-line no-constructor-return return new Proxy( diff --git a/src/scraper/search/opensearch/opensearch.js b/src/scraper/search/opensearch/opensearch.js index 93cc406..f70150b 100644 --- a/src/scraper/search/opensearch/opensearch.js +++ b/src/scraper/search/opensearch/opensearch.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -export default class OpenSearch { +export default class OpenSearchScraper { #url; #suggestions; From ecd2315cb169af481a5ebdae7f3327a121e447e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 23 Sep 2023 17:30:11 +0200 Subject: [PATCH 03/38] chore: Remplacer standard-version par release-please. --- .github/workflows/release.yml | 17 +++++++++++++++++ .versionrc.json | 18 ------------------ package.json | 2 -- 3 files changed, 17 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/release.yml delete mode 100644 .versionrc.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3ed542e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,17 @@ +name: Release +on: + push: + branches: [main] + +jobs: + release-please: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Run Release Please + uses: google-github-actions/release-please-action@v3 + with: + release-type: node + extra-files: src/extension/manifest.json diff --git a/.versionrc.json b/.versionrc.json deleted file mode 100644 index 6a254b9..0000000 --- a/.versionrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "types": [ - { "type": "feat", "section": "Features" }, - { "type": "fix", "section": "Bug Fixes" }, - { "type": "chore", "hidden": true }, - { "type": "docs", "hidden": true }, - { "type": "style", "hidden": true }, - { "type": "refactor", "hidden": true }, - { "type": "perf", "section": "Performance Improvements" }, - { "type": "test", "hidden": true } - ], - "packageFiles": "package.json", - "bumpFiles": [ - "package.json", - "package-lock.json", - "src/extension/manifest.json" - ] -} diff --git a/package.json b/package.json index 6229f89..f1b5dcc 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "extension:chromium": "web-ext run -t chromium -s src/extension/", "extension:firefox": "web-ext run -t firefox-desktop -s src/extension/", "build": "web-ext build -s src/extension/ -a build/ -o", - "release": "standard-version", "clean": "node .script/clean.js" }, "dependencies": { @@ -67,7 +66,6 @@ "npm-package-json-lint": "6.4.0", "prettier": "2.8.4", "purgecss": "5.0.0", - "standard-version": "9.5.0", "stylelint": "15.2.0", "stylelint-order": "6.0.3", "typedoc": "0.23.26", From ebb3cba7bc03a738ef59055d857b2673dade3e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 23 Sep 2023 18:13:07 +0200 Subject: [PATCH 04/38] =?UTF-8?q?fix:=20Corriger=20des=20fautes=20de=20fra?= =?UTF-8?q?n=C3=A7ais.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .metalint/eslint.config.js | 18 +++++++++--------- .metalint/npm-package-json-lint.config.js | 20 ++++++++++---------- .metalint/stylelint.config.js | 2 +- src/module/audio/README.md | 4 ++-- src/module/icon/README.md | 8 ++++---- src/module/image/README.md | 4 ++-- src/module/list/README.md | 4 ++-- src/module/notepad/README.md | 4 ++-- src/module/podcast/README.md | 4 ++-- src/module/search/README.md | 2 +- src/module/single/README.md | 4 ++-- src/module/text/README.md | 4 ++-- src/module/tools/contrast/README.md | 2 +- src/module/tools/contrast/contrast.js | 2 +- 14 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 77af247..89321d4 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -466,14 +466,14 @@ export default { "import/no-mutable-exports": "error", "import/no-named-as-default": "off", "import/no-named-as-default-member": "off", - // Ne pas appliquer cette règle car elle ne fonctionnne pas quand le nom + // Ne pas appliquer cette règle, car elle ne fonctionne pas quand le nom // du fichier de configuration de ESLint n'est pas standard. // https://github.com/import-js/eslint-plugin-import/issues/2678 "import/no-unused-modules": "off", // Module systems. - // Désactiver cette règle car no-undef remontera une erreur car les - // méthodes define() et require() ne sont pas définies. + // Désactiver cette règle et laisser la règle no-undef remonter les + // erreurs, car les méthodes define() et require() ne sont pas définies. "import/no-amd": "off", // Désactiver cette règle et préférer unicorn/prefer-module. "import/no-commonjs": "off", @@ -487,7 +487,7 @@ export default { "import/namespace": "error", "import/no-absolute-path": "error", "import/no-cycle": ["error", { ignoreExternal: true }], - // Désactiver cette règle car la méthode require() est déjà interdite. + // Désactiver cette règle, car la méthode require() est déjà interdite. "import/no-dynamic-require": "off", "import/no-internal-modules": "off", "import/no-relative-packages": "error", @@ -515,8 +515,8 @@ export default { "import/first": "error", "import/group-exports": "off", "import/max-dependencies": "off", - // Ne pas activer l'option "considerComments" car les commentaires entre - // les imports ne sont pas gérés. + // Ne pas activer l'option "considerComments", car les commentaires + // entre les imports ne sont pas gérés. // https://github.com/import-js/eslint-plugin-import/issues/2673 "import/newline-after-import": ["error", { considerComments: false }], "import/no-anonymous-default-export": [ @@ -545,7 +545,7 @@ export default { // Plugin eslint-plugin-jsdoc. "jsdoc/check-access": "error", "jsdoc/check-alignment": "error", - // Désactiver cette règle car elle n'est pas pour le moment compatible + // Désactiver cette règle, car elle n'est pas pour le moment compatible // avec ESLint 8. // https://github.com/gajus/eslint-plugin-jsdoc/releases/tag/v37.0.0 "jsdoc/check-examples": "off", @@ -753,7 +753,7 @@ export default { "unicorn/no-invalid-remove-event-listener": "error", "unicorn/no-keyword-prefix": "error", "unicorn/no-lonely-if": "error", - // Utiliser la règle no-negated-condition d'ESLint car celle d'unicorn + // Utiliser la règle no-negated-condition d'ESLint, car celle d'unicorn // apporte seulement la correction automatique. "unicorn/no-negated-condition": "off", "unicorn/no-nested-ternary": "off", @@ -836,7 +836,7 @@ export default { "unicorn/relative-url-style": "error", "unicorn/require-array-join-separator": "off", "unicorn/require-number-to-fixed-digits-argument": "off", - // Désactiver cette règles car il y a des faux-positifs avec la méthode + // Désactiver cette règle, car il y a des faux-positifs avec la méthode // port.postMessage() des WebExtensions. // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/1396 "unicorn/require-post-message-target-origin": "off", diff --git a/.metalint/npm-package-json-lint.config.js b/.metalint/npm-package-json-lint.config.js index c1fd672..07a0d10 100644 --- a/.metalint/npm-package-json-lint.config.js +++ b/.metalint/npm-package-json-lint.config.js @@ -79,21 +79,21 @@ export default { "no-repeated-dependencies": "error", "no-absolute-version-dependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-dependencies oblige les versions absolues. "no-archive-dependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-dependencies oblige les versions absolues. "no-caret-version-dependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-dependencies oblige les versions absolues. "no-file-dependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-dependencies oblige les versions absolues. "no-git-dependencies": "off", "no-restricted-dependencies": "off", "no-restricted-pre-release-dependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-dependencies oblige les versions absolues. "no-tilde-version-dependencies": "off", "prefer-absolute-version-dependencies": "error", @@ -103,21 +103,21 @@ export default { "prefer-tilde-version-dependencies": "off", "no-absolute-version-devDependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-devDependencies oblige les versions absolues. "no-archive-devDependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-devDependencies oblige les versions absolues. "no-caret-version-devDependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-devDependencies oblige les versions absolues. "no-file-devDependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-devDependencies oblige les versions absolues. "no-git-devDependencies": "off", "no-restricted-devDependencies": "off", "no-restricted-pre-release-devDependencies": "off", - // Ne pas activer cette règle car la règle + // Ne pas activer cette règle, car la règle // prefer-absolute-version-devDependencies oblige les versions absolues. "no-tilde-version-devDependencies": "off", "prefer-absolute-version-devDependencies": "error", diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index a90fe54..c65ba44 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -41,7 +41,7 @@ export default { "custom-property-no-missing-var-function": true, "font-family-no-missing-generic-family-keyword": true, - // Non-stantard. + // Non-standard. "function-linear-gradient-no-nonstandard-direction": true, // Overrides diff --git a/src/module/audio/README.md b/src/module/audio/README.md index 79242a0..1df578a 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -156,8 +156,8 @@ suivantes : <td><code>string</code></td> <td> <p> - Le titre de l'élément affiché dans l'info-bulle. Par défaut, aucune - info-bulle n'est affichée. + Le titre de l'élément affiché dans l'infobulle. Par défaut, aucune + infobulle n'est affichée. </p> <p> Exemple : <code>"La meilleur radio !"</code>. diff --git a/src/module/icon/README.md b/src/module/icon/README.md index 8f6a3b3..1f36d80 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -143,8 +143,8 @@ suivantes : <td><code>string</code></td> <td> <p> - Le titre de l'élément affiché dans l'info-bulle. Par défaut, aucune - info-bulle est affichée. + Le titre de l'élément affiché dans l'infobulle. Par défaut, aucune + infobulle est affichée. </p> <p> Exemple : <code>"Click me!"</code>. @@ -168,8 +168,8 @@ Ce widget affiche un bouton qui redirige vers [GitHub](https://github.com/). "extract": [{ "color": "black", "link": "https://github.com/", - "target": "_top" - "title": "GitHub", + "target": "_top", + "title": "GitHub" }] } }] diff --git a/src/module/image/README.md b/src/module/image/README.md index 639b4cc..e7564b6 100644 --- a/src/module/image/README.md +++ b/src/module/image/README.md @@ -156,8 +156,8 @@ suivantes : <td><code>string</code></td> <td> <p> - Le titre de l'élément affiché dans l'info-bulle. Par défaut, aucune - info-bulle n'est affichée. + Le titre de l'élément affiché dans l'infobulle. Par défaut, aucune + infobulle n'est affichée. </p> <p> Exemple : <code>"Magnifique photo !"</code>. diff --git a/src/module/list/README.md b/src/module/list/README.md index 14f35a5..a1895c0 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -134,8 +134,8 @@ suivantes : <td><code>string</code></td> <td> <p> - La description de l'élément affichée dans l'info-bulle. Par défaut, - aucune info-bulle n'est affichée. + La description de l'élément affichée dans l'infobulle. Par défaut, + aucune infobulle n'est affichée. </p> <p> Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. diff --git a/src/module/notepad/README.md b/src/module/notepad/README.md index c39fdf3..b8e404f 100644 --- a/src/module/notepad/README.md +++ b/src/module/notepad/README.md @@ -52,8 +52,8 @@ propriétés suivantes : <td><code>string</code></td> <td> <p> - La description du bloc-notes affichée dans l'info-bulle. Par défaut, - aucune info-bulle n'est affichée. + La description du bloc-notes affichée dans l'infobulle. Par défaut, + aucune infobulle n'est affichée. </p> <p> Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 0937083..95e22d3 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -146,8 +146,8 @@ suivantes : <td><code>string</code></td> <td> <p> - La description de l'élément affichée dans l'info-bulle. Par défaut, - aucune info-bulle n'est affichée. + La description de l'élément affichée dans l'infobulle. Par défaut, + aucune infobulle n'est affichée. </p> <p> Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. diff --git a/src/module/search/README.md b/src/module/search/README.md index b532d9e..48c658f 100644 --- a/src/module/search/README.md +++ b/src/module/search/README.md @@ -6,7 +6,7 @@ Ce module affiche une zone de saisie pour faire une recherche. ## Options -Aucune option est nécessaire. Tout le paramètrage se fait avec les scrapers. +Aucune option n'est nécessaire. Tout le paramétrage se fait avec les scrapers. ## Scrapers diff --git a/src/module/single/README.md b/src/module/single/README.md index c63652a..1148901 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -104,8 +104,8 @@ suivantes : <td><code>string</code></td> <td> <p> - La description de l'élément affichée dans l'info-bulle. Par défaut, - aucune info-bulle n'est affichée. + La description de l'élément affichée dans l'infobulle. Par défaut, + aucune infobulle n'est affichée. </p> <p> Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. diff --git a/src/module/text/README.md b/src/module/text/README.md index 8d319f5..7873a01 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -113,8 +113,8 @@ suivantes : <td><code>string</code></td> <td> <p> - La description de l'élément affichée dans l'info-bulle. Par défaut, - aucune info-bulle n'est affichée. + La description de l'élément affichée dans l'infobulle. Par défaut, + aucune infobulle n'est affichée. </p> <p> Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. diff --git a/src/module/tools/contrast/README.md b/src/module/tools/contrast/README.md index 6d53400..c69985a 100644 --- a/src/module/tools/contrast/README.md +++ b/src/module/tools/contrast/README.md @@ -3,7 +3,7 @@ > Mots-clés : gout, gout-module, gout-module-tools, gout-module-tools-contrast. Ce module affiche un champ pour saisir une couleur et il retourne la couleur la -plus proche ayant un rapport de constrate supérieure à 4,5 avec le noir et le +plus proche ayant un rapport de contraste supérieur à 4,5 avec le noir et le blanc. ## Options diff --git a/src/module/tools/contrast/contrast.js b/src/module/tools/contrast/contrast.js index d52bcc1..120fcad 100644 --- a/src/module/tools/contrast/contrast.js +++ b/src/module/tools/contrast/contrast.js @@ -101,7 +101,7 @@ const calculateLuminous = function (rgb) { * * @param {number} l1 La première luminance. * @param {number} l2 La deuxième luminance. - * @returns {number} Le constraste. + * @returns {number} Le contraste. * @see https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-procedure */ const calculateContrast = function (l1, l2) { From b017aaade74a678200fa4a8c597463fcd6296c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 23 Sep 2023 18:17:08 +0200 Subject: [PATCH 05/38] =?UTF-8?q?fix:=20G=C3=A9rer=20correctement=20les=20?= =?UTF-8?q?async=20/=20await.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/module/audio/audio.js | 6 +++--- src/module/clock/clock.js | 10 +++++----- src/module/icon/icon.js | 6 +++--- src/module/iframe/iframe.js | 6 +++--- src/module/image/image.js | 6 +++--- src/module/list/list.js | 6 +++--- src/module/podcast/podcast.js | 6 +++--- src/module/single/single.js | 6 +++--- src/module/text/text.js | 6 +++--- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/module/audio/audio.js b/src/module/audio/audio.js index a697cbb..4370265 100644 --- a/src/module/audio/audio.js +++ b/src/module/audio/audio.js @@ -90,10 +90,10 @@ export default class AudioModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -124,6 +124,6 @@ export default class AudioModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/clock/clock.js b/src/module/clock/clock.js index 2fa2252..3f1f44b 100644 --- a/src/module/clock/clock.js +++ b/src/module/clock/clock.js @@ -100,16 +100,16 @@ export default class ClockModule extends HTMLElement { const items = results.flat().slice(0, 1); if (0 === items.length) { - this.#display(this.#empty, true); + await this.#display(this.#empty, true); } else { - this.#display(items[0]); + await this.#display(items[0]); } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -137,6 +137,6 @@ export default class ClockModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/icon/icon.js b/src/module/icon/icon.js index ddb20c4..037ec16 100644 --- a/src/module/icon/icon.js +++ b/src/module/icon/icon.js @@ -67,10 +67,10 @@ export default class IconModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -98,6 +98,6 @@ export default class IconModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/iframe/iframe.js b/src/module/iframe/iframe.js index 6831349..0c94760 100644 --- a/src/module/iframe/iframe.js +++ b/src/module/iframe/iframe.js @@ -59,10 +59,10 @@ export default class IFrameModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -93,6 +93,6 @@ export default class IFrameModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/image/image.js b/src/module/image/image.js index a0a529e..2d49b0b 100644 --- a/src/module/image/image.js +++ b/src/module/image/image.js @@ -165,10 +165,10 @@ export default class ImageModule extends HTMLElement { this.#refresh(); } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -211,6 +211,6 @@ export default class ImageModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/list/list.js b/src/module/list/list.js index 01072eb..aacdf0f 100644 --- a/src/module/list/list.js +++ b/src/module/list/list.js @@ -118,10 +118,10 @@ export default class ListModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -156,6 +156,6 @@ export default class ListModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/podcast/podcast.js b/src/module/podcast/podcast.js index 72bbcd5..9d5344f 100644 --- a/src/module/podcast/podcast.js +++ b/src/module/podcast/podcast.js @@ -158,10 +158,10 @@ export default class PodcastModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -196,6 +196,6 @@ export default class PodcastModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/single/single.js b/src/module/single/single.js index 00df8ca..49b8b57 100644 --- a/src/module/single/single.js +++ b/src/module/single/single.js @@ -68,10 +68,10 @@ export default class SingleModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -99,6 +99,6 @@ export default class SingleModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } diff --git a/src/module/text/text.js b/src/module/text/text.js index 5137bae..130b56d 100644 --- a/src/module/text/text.js +++ b/src/module/text/text.js @@ -62,10 +62,10 @@ export default class TextModule extends HTMLElement { } } - #wake() { + async #wake() { if (!this.#cron.active) { this.#cron.start(); - this.#update(); + await this.#update(); } } @@ -93,6 +93,6 @@ export default class TextModule extends HTMLElement { this.#wake.bind(this), ); } - this.#update(true); + await this.#update(true); } } From d84fdd06e26997492926408e71939e325199e239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 23 Sep 2023 20:44:09 +0200 Subject: [PATCH 06/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 4 + .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .github/workflows/ci.yml | 21 +- .gitignore | 17 +- .metalint/addons-linter.config.js | 4 +- .metalint/eslint.config.js | 59 +- .metalint/eslint_browser.config.js | 2 +- .metalint/eslint_node.config.js | 23 +- .metalint/eslint_test.config.js | 1 + .metalint/metalint.config.js | 147 +- .metalint/prantlf__jsonlint.config.js | 9 + .metalint/prettier.config.js | 10 +- .metalint/purgecss_popup.config.js | 5 +- .metalint/stylelint.config.js | 6 + .metalint/yaml-lint.config.js | 7 + .script/clean.js | 27 +- .stryker.config.js | 9 +- .tsconfig.json | 12 +- .tsconfig_jsdocs.json | 6 +- .tsconfig_lint.json | 4 +- README.md | 10 +- package-lock.json | 6250 ++++++++--------- package.json | 46 +- src/extension/background/page.html | 2 +- src/extension/img/icon128.png | Bin 2822 -> 3022 bytes src/extension/img/icon16.png | Bin 487 -> 479 bytes src/extension/img/icon24.png | Bin 724 -> 719 bytes src/extension/img/icon32.png | Bin 767 -> 775 bytes src/extension/img/icon48.png | Bin 1153 -> 1180 bytes src/extension/img/icon64.png | Bin 1375 -> 1451 bytes src/extension/img/icon96.png | Bin 2113 -> 2270 bytes src/extension/manifest.json | 4 +- .../polyfill/{script.js => browser.js} | 1 - src/extension/popup/index.html | 1 - src/extension/popup/script.js | 60 +- src/module/audio/audio.js | 2 +- src/module/clock/clock.js | 2 +- src/module/icon/icon.js | 2 +- src/module/iframe/iframe.js | 6 +- src/module/image/image.js | 2 +- src/module/list/list.js | 2 +- src/module/podcast/podcast.js | 2 +- src/module/single/single.js | 2 +- src/module/text/text.js | 2 +- 45 files changed, 3131 insertions(+), 3646 deletions(-) create mode 100644 .gitattributes create mode 100644 .metalint/prantlf__jsonlint.config.js create mode 100644 .metalint/yaml-lint.config.js rename src/extension/polyfill/{script.js => browser.js} (64%) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..bdc80ff --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# https://git-scm.com/docs/gitattributes +* text eol=lf + +*.png binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 427d9b3..0a9e385 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.9.1 -->: -- Browser version<!-- e.g. Chrome 110.0.5481.100, Firefox 110.0 -->: +- Gout extension version<!-- e.g. 0.9.8 -->: +- Browser version<!-- e.g. Chrome 117.0.5938.88, Firefox 117.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 47993c5..6e3cf0f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.9.1 -->: -- Browser version<!-- e.g. Chrome 110.0.5481.100, Firefox 110.0 -->: +- Gout extension version<!-- e.g. 0.9.8 -->: +- Browser version<!-- e.g. Chrome 117.0.5938.88, Firefox 117.0 -->: ### Additional context diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3885ddf..cd7a400 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,15 +12,15 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - name: Install dependencies - run: npm install + run: npm ci - name: Lint files run: npm run lint -- --formatter github @@ -31,15 +31,15 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - name: Install dependencies - run: npm install + run: npm ci - name: Run unit tests run: npm run test:unit @@ -50,15 +50,15 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - name: Install dependencies - run: npm install + run: npm ci - name: Run mutation tests and send coverage run: npm run test:coverage -- --reporters clear-text,dashboard @@ -71,10 +71,9 @@ jobs: actions: read contents: read security-events: write - steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/.gitignore b/.gitignore index ac3237e..24c4f68 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,19 @@ +# Ignorer les répertoires générés. +/.stryker/ /build/ /jsdocs/ /node_modules/ -/.stryker/ + +# Ignorer les fichiers de configuration de Visual Studio Code. +/.vscode/ + +# Ignorer les fichiers de configuration de IntelliJ IDEA. +/.idea/ + +# Ignorer les fichiers temporaires de Vim. +*.swp + +# Ignorer les autres lockfiles. +/bun.lockb +/pnpm-lock.yaml +/yarn.lock diff --git a/.metalint/addons-linter.config.js b/.metalint/addons-linter.config.js index 330df74..5eadf14 100644 --- a/.metalint/addons-linter.config.js +++ b/.metalint/addons-linter.config.js @@ -4,6 +4,4 @@ * @author Sébastien Règne */ -export default { - maxManifestVersion: 3, -}; +export default {}; diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 89321d4..554c27e 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -24,7 +24,7 @@ export default { env: { "shared-node-browser": true, - es2022: true, + es2023: true, }, rules: { @@ -222,9 +222,9 @@ export default { "no-nested-ternary": "off", "no-new": "error", "no-new-func": "error", - "no-new-object": "error", "no-new-wrappers": "error", "no-nonoctal-decimal-escape": "error", + "no-object-constructor": "error", "no-octal": "error", "no-octal-escape": "error", "no-param-reassign": [ @@ -265,7 +265,6 @@ export default { "JSXText", ], "no-return-assign": "error", - "no-return-await": "error", "no-script-url": "error", "no-sequences": ["error", { allowInParentheses: false }], "no-shadow": "error", @@ -370,7 +369,22 @@ export default { }, ], "lines-between-class-members": "error", - "max-len": "warn", + "max-len": [ + "warn", + { + // Ignorer les imports et les déclarations de tests unitaires, + // car Prettier n'ajoute pas de retour à la ligne pour ne pas + // dépasser les 80 caractères. + ignorePattern: + "^import " + + "|^ +\\* @typedef \\{import\\(" + + "|^ +\\* @see " + + '|^ +it\\("', + // Ignorer les expressions rationnelles, car il n'est pas + // possible de les écrire sur plusieurs lignes. + ignoreRegExpLiterals: true, + }, + ], "max-statements-per-line": ["error", { max: 2 }], "multiline-ternary": "off", "new-parens": "off", @@ -379,7 +393,9 @@ export default { "no-mixed-spaces-and-tabs": "off", "no-multi-spaces": "off", "no-multiple-empty-lines": "off", - "no-tabs": "off", + // Activer cette règle, car Prettier garde des tabulations (par exemple + // dans les chaines de caractères). + "no-tabs": "error", "no-trailing-spaces": "off", "no-whitespace-before-property": "off", "nonblock-statement-body-position": "off", @@ -396,11 +412,7 @@ export default { next: "*", }, ], - quotes: [ - "error", - "double", - { avoidEscape: true, allowTemplateLiterals: true }, - ], + quotes: ["error", "double", { avoidEscape: true }], "rest-spread-spacing": "off", semi: "off", "semi-spacing": "off", @@ -460,7 +472,11 @@ export default { "import/no-extraneous-dependencies": [ "error", { - devDependencies: [".script/**/*.js", "test/**/*.js"], + devDependencies: [ + ".script/**/*.js", + "test/**/*.js", + "{.,}**/{.,}*.config.js", + ], }, ], "import/no-mutable-exports": "error", @@ -532,7 +548,7 @@ export default { "import/no-named-default": "error", "import/no-named-export": "off", "import/no-namespace": "off", - "import/no-unassigned-import": "error", + "import/no-unassigned-import": ["error", { allow: ["**/polyfill/**"] }], "import/order": [ "error", { @@ -569,17 +585,22 @@ export default { "jsdoc/check-values": "error", "jsdoc/empty-tags": "error", "jsdoc/implements-on-classes": "error", + // Désactiver la règle, car elle ne supporte pas la propriété "exports". + // https://github.com/gajus/eslint-plugin-jsdoc/issues/1114 + "jsdoc/imports-as-dependencies": "off", + "jsdoc/informative-docs": "error", "jsdoc/match-description": ["error", { matchDescription: "[A-ZÉ].*" }], "jsdoc/match-name": "off", "jsdoc/multiline-blocks": "error", - "jsdoc/newline-after-description": "error", "jsdoc/no-bad-blocks": "error", + "jsdoc/no-blank-block-descriptions": "error", + "jsdoc/no-blank-blocks": "error", "jsdoc/no-defaults": "error", "jsdoc/no-missing-syntax": "off", "jsdoc/no-multi-asterisks": "error", "jsdoc/no-restricted-syntax": "off", "jsdoc/no-types": "off", - "jsdoc/no-undefined-types": ["error", { definedTypes: ["Timeout"] }], + "jsdoc/no-undefined-types": "error", "jsdoc/require-asterisk-prefix": "error", "jsdoc/require-description": "error", "jsdoc/require-description-complete-sentence": "off", @@ -611,7 +632,7 @@ export default { "jsdoc/require-yields": "error", "jsdoc/require-yields-check": "error", "jsdoc/sort-tags": "error", - "jsdoc/tag-lines": "error", + "jsdoc/tag-lines": ["error", "never", { startLines: 1 }], "jsdoc/valid-types": "error", // Plugin eslint-plugin-no-unsanitized. @@ -734,7 +755,7 @@ export default { "unicorn/escape-case": "error", "unicorn/expiring-todo-comments": "off", "unicorn/explicit-length-check": "off", - "unicorn/filename-case": ["error", { case: "kebabCase" }], + "unicorn/filename-case": "error", "unicorn/import-style": "error", "unicorn/new-for-builtins": "error", "unicorn/no-abusive-eslint-disable": "error", @@ -772,10 +793,6 @@ export default { "unicorn/no-unnecessary-await": "error", "unicorn/no-unreadable-array-destructuring": "error", "unicorn/no-unreadable-iife": "error", - // Désactiver la règle car il y a des faux-positifs avec les petites - // valeurs de quantification. - // https://github.com/davisjam/safe-regex/issues/10 - "unicorn/no-unsafe-regex": "off", "unicorn/no-unused-properties": "error", "unicorn/no-useless-fallback-in-spread": "error", "unicorn/no-useless-length-check": "error", @@ -794,6 +811,7 @@ export default { "unicorn/prefer-array-index-of": "error", "unicorn/prefer-array-some": "error", "unicorn/prefer-at": "error", + "unicorn/prefer-blob-reading-methods": "error", "unicorn/prefer-code-point": "error", "unicorn/prefer-date-now": "error", "unicorn/prefer-default-parameters": "error", @@ -849,7 +867,6 @@ export default { settings: { jsdoc: { - mode: "typescript", preferredTypes: { ".<>": "<>", "Array<>": "[]", diff --git a/.metalint/eslint_browser.config.js b/.metalint/eslint_browser.config.js index 188cdcb..0938173 100644 --- a/.metalint/eslint_browser.config.js +++ b/.metalint/eslint_browser.config.js @@ -13,7 +13,7 @@ export default { "import/no-unresolved": [ "error", { - ignore: ["^https:\\/\\/cdn\\.jsdelivr\\.net\\/"], + ignore: ["^https:\\/\\/esm\\.sh\\/"], }, ], }, diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index c4680e0..34e868c 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -5,10 +5,6 @@ */ export default { - env: { - node: true, - }, - rules: { // Suggestions. "no-restricted-properties": [ @@ -79,14 +75,17 @@ export default { // https://github.com/eslint-community/eslint-plugin-n/issues/59 "n/no-restricted-import": ["error", ["node:assert"]], "n/no-restricted-require": "error", - "n/no-sync": ["error", { allowAtRootLevel: true }], - "n/prefer-global/buffer": "error", - "n/prefer-global/console": "error", - "n/prefer-global/process": "error", - "n/prefer-global/text-decoder": "error", - "n/prefer-global/text-encoder": "error", - "n/prefer-global/url-search-params": "error", - "n/prefer-global/url": "error", + "n/no-sync": "error", + // Désactiver les règles n/prefer-global, car aucune variable globale de + // Node n'est déclarée, donc si elles sont utilisées : la règle no-undef + // remontera une erreur. + "n/prefer-global/buffer": "off", + "n/prefer-global/console": "off", + "n/prefer-global/process": "off", + "n/prefer-global/text-decoder": "off", + "n/prefer-global/text-encoder": "off", + "n/prefer-global/url-search-params": "off", + "n/prefer-global/url": "off", "n/prefer-promises/dns": "error", "n/prefer-promises/fs": "error", }, diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index f1c2e85..a233a85 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -15,6 +15,7 @@ export default { // Suggestions. complexity: "off", "func-names": "off", + "max-classes-per-file": "off", "max-lines": "off", "max-lines-per-function": "off", "max-statements": "off", diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 5c34b38..30ff8db 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -6,110 +6,103 @@ export default { patterns: [ + "**", + // Ignorer les répertoires et les fichiers générés. + "!/.git/**", + "!/.stryker/**", "!/CHANGELOG.md", - "!/.git/", - "!/jsdocs/", - "!/node_modules/", - "!/src/extension/polyfill/lib/", - "!/.stryker/", + "!/jsdocs/**", + "!/node_modules/**", + "!/src/extension/polyfill/lib/**", + // Ignorer les fichiers de configuration de Visual Studio Code. + "!/.vscode/**", + // Ignorer les fichiers de configuration de IntelliJ IDEA. + "!/.idea/**", + // Ignorer les fichiers temporaires de Vim. "!*.swp", - "**", + // Ignorer les autres lockfiles. + "!/bun.lockb", + "!/pnpm-lock.yaml", + "!/yarn.lock", ], checkers: [ { - patterns: ["*.json", "*.md", "*.svg", "*.yml"], - linters: "prettier", - }, - { - patterns: ["*.js", "*.ts"], - linters: { - prettier: ["prettier.config.js", { tabWidth: 4 }], - }, - }, - { - patterns: ["/build/**/*.zip", "/src/extension/"], + patterns: ["/build/*.zip", "/src/extension/"], linters: "addons-linter", }, { - patterns: "/src/extension/**/*.js", - linters: { - eslint: ["eslint.config.js", "eslint_webext.config.js"], - }, - }, - { - patterns: [ - "/src/engine/**/*.js", - "/src/module/**/*.js", - "/src/scraper/**/*.js", + patterns: "*.js", + linters: ["prettier", "prettier_javascript", "eslint"], + overrides: [ + { + patterns: "/src/extension/**", + linters: "eslint_webext", + }, + { + patterns: [ + "/src/engine/**", + "/src/module/**", + "/src/scraper/**", + ], + linters: "eslint_browser", + }, + { + patterns: "/test/**", + linters: ["eslint_node", "eslint_test"], + }, + { + patterns: "/.script/**", + linters: "eslint_node", + }, + { + patterns: "*.config.js", + linters: ["eslint_node", "eslint_config"], + }, ], - linters: { - eslint: ["eslint.config.js", "eslint_browser.config.js"], - }, - }, - { - patterns: "/test/**/*.js", - linters: { - eslint: [ - "eslint.config.js", - "eslint_node.config.js", - "eslint_test.config.js", - ], - }, }, { - patterns: "/.script/**/*.js", - linters: { - eslint: ["eslint.config.js", "eslint_node.config.js"], - }, - }, - { - patterns: "*.config.js", - linters: { - eslint: ["eslint.config.js", "eslint_config.config.js"], - }, - }, - { - patterns: ["!/template/dashboard/", "*.html"], - linters: "htmlhint", - }, - { - patterns: "/template/dashboard/**/*.html", - linters: { - htmlhint: [ - "htmlhint.config.js", - "htmlhint_dashboard.config.js", - ], - }, + patterns: "*.html", + linters: ["prettier", "htmlhint"], + overrides: [ + { + patterns: "/template/dashboard/**", + linters: "htmlhint_dashboard", + }, + ], }, { patterns: "*.tpl", - linters: { - htmlhint: ["htmlhint.config.js", "htmlhint_tpl.config.js"], - }, + linters: ["prettier", "prettier_tpl", "htmlhint", "htmlhint_tpl"], }, { patterns: "*.css", - linters: "stylelint", - }, - { - patterns: "/src/extension/popup/*.css", - linters: { purgecss: "purgecss_popup.config.js" }, + linters: ["prettier", "prettier_css", "stylelint"], + overrides: [ + { + patterns: "/src/extension/popup/**", + linters: "purgecss_popup", + }, + ], }, { patterns: "*.md", - linters: "markdownlint", + linters: ["prettier", "markdownlint"], }, { patterns: "*.json", - linters: { "jsonlint-mod": null }, + linters: ["prettier", "prantlf__jsonlint"], + overrides: { + patterns: "/package.json", + linters: "npm-package-json-lint", + }, }, { - patterns: "/package.json", - linters: "npm-package-json-lint", + patterns: "*.yml", + linters: ["prettier", "yaml-lint"], }, { - patterns: "*.yml", - linters: { "yaml-lint": null }, + patterns: "*.svg", + linters: "prettier", }, ], }; diff --git a/.metalint/prantlf__jsonlint.config.js b/.metalint/prantlf__jsonlint.config.js new file mode 100644 index 0000000..82e427f --- /dev/null +++ b/.metalint/prantlf__jsonlint.config.js @@ -0,0 +1,9 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default { + allowDuplicateObjectKeys: false, +}; diff --git a/.metalint/prettier.config.js b/.metalint/prettier.config.js index 346536e..a22cc6f 100644 --- a/.metalint/prettier.config.js +++ b/.metalint/prettier.config.js @@ -4,8 +4,12 @@ * @author Sébastien Règne */ +// @ts-ignore https://github.com/prettier/plugin-xml/issues/671 +import pluginXML from "@prettier/plugin-xml"; + export default { - // Enlever cette option lors de passage à Prettier 3. - // https://github.com/prettier/prettier/issues/13142 - trailingComma: "all", + plugins: [pluginXML], + + // Options spécifiques du plugin XML. + xmlQuoteAttributes: "double", }; diff --git a/.metalint/purgecss_popup.config.js b/.metalint/purgecss_popup.config.js index 0313663..db4058d 100644 --- a/.metalint/purgecss_popup.config.js +++ b/.metalint/purgecss_popup.config.js @@ -5,8 +5,5 @@ */ export default { - content: "/src/extension/popup/*.html", - safelist: { - standard: ["active"], - }, + content: ["/src/extension/popup/*.html", "/src/extension/popup/*.js"], }; diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index c65ba44..41eee34 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -29,6 +29,7 @@ export default { "color-no-invalid-hex": true, "function-calc-no-unspaced-operator": true, "keyframe-declaration-no-important": true, + "media-query-no-invalid": true, "named-grid-areas-no-invalid": true, "no-invalid-double-slash-comments": true, "no-invalid-position-at-import-rule": true, @@ -47,13 +48,18 @@ export default { // Overrides "declaration-block-no-shorthand-property-overrides": true, + // Unmatchable + "selector-anb-no-unmatchable": true, + // Unknown. "annotation-no-unknown": true, "at-rule-no-unknown": true, "declaration-property-value-no-unknown": true, "function-no-unknown": true, "media-feature-name-no-unknown": true, + "media-feature-name-value-no-unknown": true, "no-unknown-animations": true, + "no-unknown-custom-properties": true, "property-no-unknown": true, "selector-pseudo-class-no-unknown": true, "selector-pseudo-element-no-unknown": true, diff --git a/.metalint/yaml-lint.config.js b/.metalint/yaml-lint.config.js new file mode 100644 index 0000000..5eadf14 --- /dev/null +++ b/.metalint/yaml-lint.config.js @@ -0,0 +1,7 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default {}; diff --git a/.script/clean.js b/.script/clean.js index 6c2f537..c88a881 100644 --- a/.script/clean.js +++ b/.script/clean.js @@ -6,10 +6,23 @@ import fs from "node:fs/promises"; -const paths = await fs.readFile(".gitignore", "utf8"); -paths - .split("\n") - .filter((p) => "" !== p) - // Enlever la barre oblique commençant le chemin. - .map((p) => p.slice(1)) - .forEach((p) => fs.rm(p, { force: true, recursive: true })); +/** + * La liste des répertoires et des fichiers à supprimer. + * + * @type {string[]} + */ +const PATHS = [ + // Supprimer les répertoires générés. + ".stryker/", + "build/", + "jsdocs/", + "node_modules/", + // Supprimer les autres lockfiles. + "bun.lockb", + "pnpm-lock.yaml", + "yarn.lock", +]; + +for (const path of PATHS) { + await fs.rm(path, { force: true, recursive: true }); +} diff --git a/.stryker.config.js b/.stryker.config.js index 0f73423..93cc264 100644 --- a/.stryker.config.js +++ b/.stryker.config.js @@ -8,15 +8,16 @@ * @type {import("@stryker-mutator/api/core").PartialStrykerOptions} */ export default { + disableTypeChecks: false, incremental: true, - incrementalFile: ".stryker/stryker-incremental.json", + incrementalFile: ".stryker/incremental.json", ignoreStatic: true, mochaOptions: { config: "test/unit/mocharc.json" }, mutate: [ "src/**/*.js", - "!/src/extension/**", - "!/src/module/**", - "!/src/scraper/**", + "!src/extension/**", + "!src/module/**", + "!src/scraper/**", ], reporters: ["dots", "clear-text"], tempDirName: ".stryker/tmp/", diff --git a/.tsconfig.json b/.tsconfig.json index 233391f..17f6917 100644 --- a/.tsconfig.json +++ b/.tsconfig.json @@ -1,21 +1,21 @@ { "compilerOptions": { - "module": "ESNext", - "moduleResolution": "node", + "module": "nodenext", "allowJs": true, "esModuleInterop": true, - "target": "ESNext" + "target": "esnext" }, "include": ["**/*", "**/.*", "**/.*/**/*", "**/.*/**/.*"], "exclude": [ - "build/", ".git/", + ".stryker/", + "build/", "jsdocs/", "node_modules/", - "src/extension/polyfill/lib/", - ".stryker/" + ".vscode/", + ".idea/" ] } diff --git a/.tsconfig_jsdocs.json b/.tsconfig_jsdocs.json index 7fd66ff..2f6930b 100644 --- a/.tsconfig_jsdocs.json +++ b/.tsconfig_jsdocs.json @@ -3,5 +3,9 @@ "compilerOptions": { "noEmit": true }, - "include": ["src/"] + + "typedocOptions": { + "entryPoints": ["src/"], + "out": "jsdocs/" + } } diff --git a/.tsconfig_lint.json b/.tsconfig_lint.json index a31130a..0f140b5 100644 --- a/.tsconfig_lint.json +++ b/.tsconfig_lint.json @@ -10,8 +10,6 @@ "noEmit": true, - "checkJs": true, - - "noStrictGenericChecks": true + "checkJs": true } } diff --git a/README.md b/README.md index b381bdb..f85b87d 100644 --- a/README.md +++ b/README.md @@ -194,13 +194,9 @@ souhaitez dans le code HTML. Ouvrez le fichier avec votre navigateur et ajoutez la page dans l'extension (en cliquant sur l'icône de l'extension dans la barre d'outils du navigateur). Actualisez la page pour voir apparaitre les widgets. -[img-firefox]: https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=white -[img-build]: https://img.shields.io/github/actions/workflow/status/regseb/gout/ci.yml?branch=main&logo=github&logoColor=white - -<!-- Attendre que le logo de Stryker soit accepté. - https://github.com/simple-icons/simple-icons/pull/7388 --> - -[img-coverage]: https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain +[img-firefox]: https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=whitesmoke +[img-build]: https://img.shields.io/github/actions/workflow/status/regseb/gout/ci.yml?branch=main&logo=github&logoColor=whitesmoke +[img-coverage]: https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain&logo=stryker&logoColor=whitesmoke [link-firefox]: https://addons.mozilla.org/addon/gout/ [link-build]: https://github.com/regseb/gout/actions/workflows/ci.yml?query=branch%3Amain [link-coverage]: https://dashboard.stryker-mutator.io/reports/github.com/regseb/gout/main diff --git a/package-lock.json b/package-lock.json index dd67622..b4542b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,53 +13,61 @@ "webextension-polyfill": "0.10.0" }, "devDependencies": { - "@prettier/plugin-xml": "2.2.0", - "@stryker-mutator/core": "6.4.1", - "@stryker-mutator/mocha-runner": "6.4.1", + "@prantlf/jsonlint": "14.0.3", + "@prettier/plugin-xml": "3.2.1", + "@stryker-mutator/core": "7.1.1", + "@stryker-mutator/mocha-runner": "7.1.1", "@types/mocha": "10.0.1", - "addons-linter": "5.31.0", - "eslint": "8.35.0", - "eslint-plugin-array-func": "3.1.8", + "addons-linter": "6.14.0", + "eslint": "8.50.0", + "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-jsdoc": "40.0.1", + "eslint-plugin-import": "2.28.1", + "eslint-plugin-jsdoc": "46.8.2", "eslint-plugin-mocha": "10.1.0", - "eslint-plugin-n": "15.6.1", + "eslint-plugin-n": "16.1.0", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "1.12.0", - "eslint-plugin-unicorn": "46.0.0", + "eslint-plugin-regexp": "1.15.0", + "eslint-plugin-unicorn": "48.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", - "jsonlint-mod": "1.7.6", - "markdownlint": "0.27.0", - "metalint": "0.11.1", + "markdownlint": "0.31.1", + "metalint": "0.14.1", "mocha": "10.2.0", - "npm-package-json-lint": "6.4.0", - "prettier": "2.8.4", + "npm-package-json-lint": "7.0.0", + "prettier": "3.0.3", "purgecss": "5.0.0", - "standard-version": "9.5.0", - "stylelint": "15.2.0", + "stylelint": "15.10.3", "stylelint-order": "6.0.3", - "typedoc": "0.23.26", - "typescript": "4.9.5", - "web-ext": "7.5.0", + "typedoc": "0.25.1", + "typescript": "5.2.2", + "web-ext": "7.7.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.0.0" }, "funding": { "url": "https://www.paypal.me/sebastienregne" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -67,47 +75,119 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", + "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.20", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -118,96 +198,81 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", + "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.22.15", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -216,206 +281,215 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", + "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", + "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", + "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -494,9 +568,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -509,6 +583,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -522,16 +597,16 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz", - "integrity": "sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.15.tgz", + "integrity": "sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.12", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.19.0" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/plugin-syntax-decorators": "^7.22.10" }, "engines": { "node": ">=6.9.0" @@ -544,6 +619,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -557,12 +633,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz", - "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", + "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -571,13 +647,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -586,15 +662,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz", - "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -603,15 +677,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", + "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -620,102 +694,98 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", + "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/@babel/preset-typescript": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz", + "integrity": "sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-typescript": "^7.22.15" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", - "debug": "^4.1.0", - "globals": "^11.1.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "node_modules/@babel/traverse": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", + "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" }, "engines": { @@ -723,66 +793,89 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.0.1.tgz", - "integrity": "sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz", + "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { "node": "^14 || ^16 || >=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.0.0" + "@csstools/css-tokenizer": "^2.2.0" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", - "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", + "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.1.tgz", - "integrity": "sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz", + "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { "node": "^14 || ^16 || >=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.0.0", - "@csstools/css-tokenizer": "^2.0.0" + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0" } }, "node_modules/@csstools/selector-specificity": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz", - "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { "node": "^14 || ^16 || >=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, "peerDependencies": { - "postcss": "^8.4", - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.0.13" } }, "node_modules/@devicefarmer/adbkit": { @@ -807,9 +900,9 @@ } }, "node_modules/@devicefarmer/adbkit-logcat": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.2.tgz", - "integrity": "sha512-G4grpEa5s9s9wCRs8YB9LjFSnz0Os3g3RYIwZSxH3JFfV3aejL5xlu4hHMH4JY+d4oCCwImcEZJcFPY9BEP21w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.3.tgz", + "integrity": "sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==", "dev": true, "engines": { "node": ">= 4" @@ -824,24 +917,33 @@ "node": ">= 0.10.4" } }, + "node_modules/@devicefarmer/adbkit/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", + "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", "dev": true, "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" + "comment-parser": "1.4.0", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz", - "integrity": "sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -850,18 +952,27 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", + "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -903,9 +1014,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -948,28 +1059,28 @@ } }, "node_modules/@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@fluent/syntax": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.18.1.tgz", - "integrity": "sha512-h0dnIoIg1RwUZRKynTizlVCe0v5qAO9d92ugmRi8sVMM15mwwftf7dpEKdDRc/pybbrpDhmvZRykEel0Cs/RYg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.19.0.tgz", + "integrity": "sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==", "dev": true, "engines": { - "node": ">=12.0.0", + "node": ">=14.0.0", "npm": ">=7.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1021,66 +1132,163 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@ljharb/through": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", + "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "dev": true, + "engines": { + "node": ">= 0.4" } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.2.39", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.39.tgz", - "integrity": "sha512-m8EJuQlHl6GeBkryBfJCl9gOOw/5dCqQVzRWj6hBbDG3NTaJyypa5784lae/uklYildVwiqbP0iGl3LUEhECPg==", + "version": "5.3.15", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.3.15.tgz", + "integrity": "sha512-h/luqw9oAmMF1C/GuUY/PAgZlF4wx71q2bdH+ct8vmjcvseCY32au8XmYy7xZ8l5VJiY/3ltFpr5YiO55v0mzg==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -1118,6 +1326,25 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "engines": { + "node": ">=12.22.0" + } + }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", @@ -1130,12 +1357,19 @@ "node": ">=12.22.0" } }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", "dev": true, "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" }, @@ -1143,20 +1377,41 @@ "node": ">=12" } }, + "node_modules/@prantlf/jsonlint": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@prantlf/jsonlint/-/jsonlint-14.0.3.tgz", + "integrity": "sha512-Z9FrZd+cqCiqB6r/EHb4evj8HUqMgPvi7RVBQhFHYOJ292K7XmnKprNTngTqiUclCFn5MFqeZv20Jo5ZzlOCqw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-draft-04": "1.0.0", + "cosmiconfig": "8.1.3", + "diff": "5.1.0", + "fast-glob": "3.2.12" + }, + "bin": { + "jsonlint": "lib/cli.js" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.2.1.tgz", + "integrity": "sha512-DvwnQPf8FsczapBVDm54IhR+Pryt3DbPZSNtUb9gOuFtgoUUPbPN69f3nQBMF5BEqh4ZjZjTaHBmsVno3UnAXQ==", "dev": true, "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" + "@xml-tools/parser": "^1.0.11" + }, + "peerDependencies": { + "prettier": "^3.0.0" } }, "node_modules/@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, "engines": { "node": ">=14.16" @@ -1166,132 +1421,107 @@ } }, "node_modules/@stryker-mutator/api": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-6.4.1.tgz", - "integrity": "sha512-xHK5mqTXqMKegfOAhURDqaPNA2vOj79f0/fC3J9Udnol0OkTresSfOG06t2Y80Qr0iH50RQm+Dzgg0Sgt8ODzg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-7.1.1.tgz", + "integrity": "sha512-LqCO/UbMxPmr26LbFHSgKpHh3sKROPwjhiQlB3p962u3Z424xHE6jdkt+1wdTNxM1ycCK+GpHeCo6iiXkEBipw==", "dev": true, "dependencies": { - "mutation-testing-metrics": "1.7.14", - "mutation-testing-report-schema": "1.7.14", - "tslib": "~2.5.0" + "mutation-testing-metrics": "2.0.1", + "mutation-testing-report-schema": "2.0.1", + "tslib": "~2.6.0", + "typed-inject": "~4.0.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=16.0.0" } }, "node_modules/@stryker-mutator/core": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-6.4.1.tgz", - "integrity": "sha512-MJJ/332R3oFxvXUSrPU8gves9CdANkjfPoPAuURanjqeTbz6FmEb7fSJun1Gf4HsbvXCiiU1kbbV+Xj+hfid4w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-7.1.1.tgz", + "integrity": "sha512-E+SLgxfZwcx14sce72G+bTFDBN7at4QiRrBVTV8nXILShyAfvWSQu56Yu3VTsbAKJZAJO+LkNYbyO+ZtmsCwow==", "dev": true, "dependencies": { - "@stryker-mutator/api": "6.4.1", - "@stryker-mutator/instrumenter": "6.4.1", - "@stryker-mutator/util": "6.4.1", + "@stryker-mutator/api": "7.1.1", + "@stryker-mutator/instrumenter": "7.1.1", + "@stryker-mutator/util": "7.1.1", "ajv": "~8.12.0", - "chalk": "~5.2.0", - "commander": "~10.0.0", + "chalk": "~5.3.0", + "commander": "~11.0.0", "diff-match-patch": "1.0.5", "emoji-regex": "~10.2.1", - "execa": "~7.0.0", + "execa": "~7.1.0", "file-url": "~4.0.0", - "get-port": "~6.1.0", - "glob": "~8.1.0", - "inquirer": "~9.1.0", + "get-port": "~7.0.0", + "glob": "~10.3.0", + "inquirer": "~9.2.0", "lodash.flatmap": "~4.5.0", "lodash.groupby": "~4.6.0", - "log4js": "~6.7.0", - "minimatch": "~5.1.0", - "mkdirp": "~2.1.0", - "mutation-testing-elements": "1.7.14", - "mutation-testing-metrics": "1.7.14", - "mutation-testing-report-schema": "1.7.14", + "log4js": "~6.9.0", + "minimatch": "~9.0.1", + "mutation-testing-elements": "2.0.1", + "mutation-testing-metrics": "2.0.1", + "mutation-testing-report-schema": "2.0.1", "npm-run-path": "~5.1.0", "progress": "~2.0.0", - "rimraf": "~3.0.0", "rxjs": "~7.8.0", "semver": "^7.3.5", "source-map": "~0.7.3", "tree-kill": "~1.2.2", - "tslib": "~2.5.0", - "typed-inject": "~3.0.0", + "tslib": "2.6.0", + "typed-inject": "~4.0.0", "typed-rest-client": "~1.8.0" }, "bin": { "stryker": "bin/stryker.js" }, "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@stryker-mutator/core/node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@stryker-mutator/core/node_modules/mkdirp": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.4.tgz", - "integrity": "sha512-Cy9cV4pRSl1o10i1dURTuRt4T04l0DkS1WZrT+Jir886OqOVkSv4FbOA7pgjhS8kEUrmm4kCRvv5var2iOCxpA==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16.0.0" } }, "node_modules/@stryker-mutator/instrumenter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-6.4.1.tgz", - "integrity": "sha512-2Q5trdgi4Ymq3QTRju5ZpZGgPFq00CAZFv5DiC8XenLtqbBIpjVtawfdXXGEKx7ndB4yr2WFKXQkTs6LKDtCfA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-7.1.1.tgz", + "integrity": "sha512-z1p7HMPvxWH/QVeanLpwt1B+LtwFRdd5GcR8Lx+REBAL8cAjzo8/DOYJ5BJp20ab7ZpbID8fPjIKr/P+Im/qGQ==", "dev": true, "dependencies": { - "@babel/core": "~7.20.0", - "@babel/generator": "~7.20.0", - "@babel/parser": "~7.20.0", + "@babel/core": "~7.22.0", + "@babel/generator": "~7.22.0", + "@babel/parser": "~7.22.0", "@babel/plugin-proposal-class-properties": "~7.18.0", - "@babel/plugin-proposal-decorators": "~7.20.0", + "@babel/plugin-proposal-decorators": "~7.22.0", "@babel/plugin-proposal-private-methods": "~7.18.0", - "@babel/preset-typescript": "~7.18.0", - "@stryker-mutator/api": "6.4.1", - "@stryker-mutator/util": "6.4.1", + "@babel/preset-typescript": "~7.22.0", + "@stryker-mutator/api": "7.1.1", + "@stryker-mutator/util": "7.1.1", "angular-html-parser": "~4.0.0", - "weapon-regex": "~1.0.2" + "weapon-regex": "~1.1.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=16.0.0" } }, "node_modules/@stryker-mutator/mocha-runner": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-6.4.1.tgz", - "integrity": "sha512-0PGH3xKbx6ufDT8P4bWBxt5w2aO1VpXqURTeXKyMusBP2wPT5zWVYsgwdZysKCqlS8zn0quCFLxEcsat9W0abw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-7.1.1.tgz", + "integrity": "sha512-IO37Efu3KN7A3gigIp/iI5d6bEMwFwb4ZhjUedtvxEcXxxfmcGvKKR4yan4a+lT1CXvZIZLzOM+oS2zc2hsprw==", "dev": true, "dependencies": { - "@stryker-mutator/api": "6.4.1", - "@stryker-mutator/util": "6.4.1", - "tslib": "~2.5.0" + "@stryker-mutator/api": "7.1.1", + "@stryker-mutator/util": "7.1.1", + "tslib": "~2.6.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@stryker-mutator/core": "^6.4.0", + "@stryker-mutator/core": "~7.1.0", "mocha": ">= 7.2 < 11" } }, "node_modules/@stryker-mutator/util": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-6.4.1.tgz", - "integrity": "sha512-ziJA9VGSQXtLPpohgeZnEdwAeWfFmYAgqTcVIloCzR0ERBdh2Vvq27zRG2xAEJ5bTD7/5DDaXX9B0nidTCHlcg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-7.1.1.tgz", + "integrity": "sha512-LIV7vVrC7dT04BDYZEYkYmetN7WQqD9xiQJRpkrYgACPGdu3eAAfk8UwRSoXAgMqAfZnYC2c+0BuliS8jDdBoQ==", "dev": true, "dependencies": { "lodash.flatmap": "~4.5.0" @@ -1310,9 +1540,9 @@ } }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", + "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==", "dev": true }, "node_modules/@types/json5": { @@ -1340,9 +1570,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "version": "20.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz", + "integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -1382,9 +1612,9 @@ } }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1402,56 +1632,69 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, "node_modules/addons-linter": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.31.0.tgz", - "integrity": "sha512-7JhDrrzsggWHrwIJTxiP/9NOzXjqaZF9dbZQ5J+AXeF613a1XHHh9cUQQTlkJETELMai5kULqYNVImjyxoF6vA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.14.0.tgz", + "integrity": "sha512-dgYdML/EoxLhJKt9KL7KTWbb43r2ZDRYQGIv9V1Mf69pBIKhrWr1IIxVDVWrl0b3GuWsFtSBs0iHMsmJxAdvng==", "dev": true, "dependencies": { - "@fluent/syntax": "0.18.1", - "@mdn/browser-compat-data": "5.2.39", + "@fluent/syntax": "0.19.0", + "@mdn/browser-compat-data": "5.3.15", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "8.5.0", + "addons-scanner-utils": "9.4.0", "ajv": "8.12.0", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", - "deepmerge": "4.3.0", - "eslint": "8.35.0", + "deepmerge": "4.3.1", + "eslint": "8.49.0", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "3.3.0", - "espree": "9.4.1", + "eslint-visitor-keys": "3.4.3", + "espree": "9.6.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "8.1.0", + "glob": "10.3.4", "image-size": "1.0.2", "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", - "pino": "8.11.0", - "postcss": "8.4.21", + "pino": "8.15.1", + "postcss": "8.4.29", "relaxed-json": "1.0.3", - "semver": "7.3.8", + "semver": "7.5.4", "sha.js": "2.4.11", "source-map-support": "0.5.21", "tosource": "1.0.0", "upath": "2.0.1", - "yargs": "17.7.1", + "yargs": "17.7.2", "yauzl": "2.10.0" }, "bin": { "addons-linter": "bin/addons-linter" }, "engines": { - "node": ">=12.21.0" + "node": ">=16.0.0" + } + }, + "node_modules/addons-linter/node_modules/@eslint/js": { + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", + "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/addons-linter/node_modules/chalk": { @@ -1470,63 +1713,153 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/addons-linter/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==", - "dev": true - }, - "node_modules/addons-linter/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==", + "node_modules/addons-linter/node_modules/eslint": { + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", + "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.49.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/addons-linter/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==", + "node_modules/addons-linter/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/addons-linter/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "node_modules/addons-linter/node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/addons-linter/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/addons-linter/node_modules/glob": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", + "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/addons-linter/node_modules/globals": { + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/addons-linter/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==", + "dev": true + }, + "node_modules/addons-linter/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/addons-moz-compare": { @@ -1536,9 +1869,9 @@ "dev": true }, "node_modules/addons-scanner-utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.5.0.tgz", - "integrity": "sha512-X35SYZRdSnxx7UZuAk+DizKihQp2Ze2c5GV+5nnRr/FFyx/fOgE3Zo8jdhzSne57PENE9w1ZVocBLJTN6UDB3g==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.4.0.tgz", + "integrity": "sha512-XJpygYD1mYIDJ9BRnPK1FRfBiIybuzG2R8SHzPeuG76Uy78UR4+W28g1ifKBmy+nlI9yQ/AwooqbIuPxAlnAew==", "dev": true, "dependencies": { "@types/yauzl": "2.10.0", @@ -1551,7 +1884,7 @@ "peerDependencies": { "body-parser": "1.20.2", "express": "4.18.2", - "node-fetch": "2.6.7", + "node-fetch": "2.6.11", "safe-compare": "1.1.4" }, "peerDependenciesMeta": { @@ -1594,6 +1927,20 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", @@ -1624,26 +1971,6 @@ "string-width": "^4.1.0" } }, - "node_modules/ansi-align/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==", - "dev": true - }, - "node_modules/ansi-align/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1654,15 +1981,15 @@ } }, "node_modules/ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "type-fest": "^3.0.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=14.16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1678,9 +2005,9 @@ } }, "node_modules/ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", "dev": true }, "node_modules/ansi-styles": { @@ -1717,12 +2044,34 @@ "node": ">= 8" } }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "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==", "dev": true }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-differ": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", @@ -1735,22 +2084,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -1769,15 +2112,34 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1788,14 +2150,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1805,6 +2167,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -1955,12 +2338,12 @@ } }, "node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { - "buffer": "^6.0.3", + "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } @@ -1978,19 +2361,19 @@ "dev": true }, "node_modules/boxen": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz", - "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, "dependencies": { "ansi-align": "^3.0.1", - "camelcase": "^7.0.0", - "chalk": "^5.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", "cli-boxes": "^3.0.0", "string-width": "^5.1.2", "type-fest": "^2.13.0", "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" + "wrap-ansi": "^8.1.0" }, "engines": { "node": ">=14.16" @@ -1999,6 +2382,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/boxen/node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -2011,6 +2418,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/boxen/node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -2023,6 +2468,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -2051,9 +2513,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.11", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", + "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", "dev": true, "funding": [ { @@ -2063,13 +2525,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -2079,9 +2545,9 @@ } }, "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -2099,7 +2565,7 @@ ], "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ieee754": "^1.1.13" } }, "node_modules/buffer-crc32": { @@ -2172,15 +2638,15 @@ } }, "node_modules/cacheable-request": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.5.tgz", - "integrity": "sha512-5RwYYCfzjNPsyJxb/QpaM0bfzx+kw5/YpDhZPm9oMIDntHFQ9YXeyV47ZvzlTE0XrrrbyO2UITJH4GF9eRLdXQ==", + "version": "10.2.13", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.13.tgz", + "integrity": "sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA==", "dev": true, "dependencies": { "@types/http-cache-semantics": "^4.0.1", "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.0", - "keyv": "^4.5.2", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" @@ -2238,9 +2704,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", + "version": "1.0.30001538", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz", + "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==", "dev": true, "funding": [ { @@ -2250,6 +2716,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -2260,9 +2730,9 @@ "dev": true }, "node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -2382,9 +2852,9 @@ } }, "node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, "funding": [ { @@ -2430,24 +2900,21 @@ } }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", "dev": true, "engines": { "node": ">=6" @@ -2457,9 +2924,9 @@ } }, "node_modules/cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "engines": { "node": ">= 12" @@ -2479,26 +2946,6 @@ "node": ">=12" } }, - "node_modules/cliui/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==", - "dev": true - }, - "node_modules/cliui/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -2575,18 +3022,18 @@ } }, "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=16" } }, "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", + "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -2601,16 +3048,6 @@ "node": ">=4.0.0" } }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2618,596 +3055,97 @@ "dev": true }, "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ - "node >= 6.0" + "node >= 0.8" ], "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", - "readable-stream": "^3.0.2", + "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/configstore/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/conventional-changelog": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-config-spec": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", - "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", - "dev": true - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", - "dev": true, - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/conventional-changelog-core/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/conventional-changelog-core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", - "dev": true, - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-changelog-writer/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, - "node_modules/conventional-commits-parser/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "readable-stream": "^3.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/conventional-commits-parser/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=10" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/conventional-recommended-bump/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/yeoman/configstore?sponsor=1" } }, - "node_modules/conventional-recommended-bump/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -3215,9 +3153,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz", - "integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==", + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.0.tgz", + "integrity": "sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==", "dev": true, "hasInstallScript": true, "funding": { @@ -3241,9 +3179,9 @@ } }, "node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, "dependencies": { "import-fresh": "^3.2.1", @@ -3253,6 +3191,9 @@ }, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, "node_modules/cross-spawn": { @@ -3297,9 +3238,9 @@ } }, "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", + "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "dev": true, "engines": { "node": ">=12.22" @@ -3358,15 +3299,6 @@ "node": ">=4" } }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -3397,15 +3329,6 @@ "node": ">=4.0" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -3515,9 +3438,9 @@ } }, "node_modules/deepmerge": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", - "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3544,6 +3467,20 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -3554,11 +3491,12 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -3578,28 +3516,10 @@ "node": ">=0.4.0" } }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" @@ -3677,136 +3597,34 @@ } }, "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "dependencies": { "is-obj": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/dotgitignore": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", - "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/dotgitignore/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dotgitignore/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotgitignore/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/dtrace-provider": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", @@ -3847,9 +3665,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.316", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.316.tgz", - "integrity": "sha512-9urqVpdeJYAwVL/sBjsX2pSlgYI/b4nOqC6UaNa0xlq1VUbXLRhERWlxcQ4FWfUOQQxSSxN/taFtapEcwg5tVA==", + "version": "1.4.528", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz", + "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==", "dev": true }, "node_modules/emoji-regex": { @@ -3868,9 +3686,9 @@ } }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -3889,18 +3707,19 @@ } }, "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -3908,25 +3727,30 @@ "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -4024,26 +3848,27 @@ } }, "node_modules/eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -4051,23 +3876,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -4081,14 +3902,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -4101,9 +3922,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -4127,58 +3948,34 @@ } }, "node_modules/eslint-plugin-array-func": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.8.tgz", - "integrity": "sha512-BjnbJvw+knaHgVddIL3q5xYcoqAZoK8wOdT7QF+mkvSAjXdZCdhL0z71Y7oRtgXA8BpN9QLJ2uHgD3I6ymlbOw==", - "dev": true, - "engines": { - "node": ">= 6.8.0" - }, - "peerDependencies": { - "eslint": ">=3.0.0" - } - }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-4.0.0.tgz", + "integrity": "sha512-p3NY2idNIvgmQLF2/62ZskYt8gOuUgQ51smRc3Lh7FtSozpNc2sg+lniz9VaCagLZHEZTl8qGJKqE7xy8O/D/g==", "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "eslint": ">=4.19.1" + "eslint": ">=8.40.0" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" }, "engines": { - "node": ">=6" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/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==", - "dev": true, - "engines": { - "node": ">=4" + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" } }, "node_modules/eslint-plugin-eslint-comments": { @@ -4210,26 +4007,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "dependencies": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -4282,30 +4081,32 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsdoc": { - "version": "40.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-40.0.1.tgz", - "integrity": "sha512-KkiRInury7YrjjV5aCHDxwsPy6XFt5p2b2CnpDMITnWs8patNPf5kj24+VXIWw45kP6z/B0GOKfrYczB56OjQQ==", + "version": "46.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", + "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.36.1", - "comment-parser": "1.3.1", + "@es-joy/jsdoccomment": "~0.40.1", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.0", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.8", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -4328,22 +4129,23 @@ } }, "node_modules/eslint-plugin-n": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz", - "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" + "resolve": "^1.22.2", + "semver": "^7.5.3" }, "engines": { - "node": ">=12.22.0" + "node": ">=16.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" @@ -4396,19 +4198,19 @@ } }, "node_modules/eslint-plugin-regexp": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.12.0.tgz", - "integrity": "sha512-A1lnzOqHC22Ve8PZJgcw5pDHk5Sxp7J/pY86u027lVEGpUwe7dhZVVsy3SCm/cN438Zts8e9c09KGIVK4IixuA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.15.0.tgz", + "integrity": "sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", "comment-parser": "^1.1.2", - "eslint-utils": "^3.0.0", "grapheme-splitter": "^1.0.4", "jsdoctypeparser": "^9.0.0", - "refa": "^0.9.0", - "regexp-ast-analysis": "^0.5.1", - "regexpp": "^3.2.0", - "scslre": "^0.1.6" + "refa": "^0.11.0", + "regexp-ast-analysis": "^0.6.0", + "scslre": "^0.2.0" }, "engines": { "node": "^12 || >=14" @@ -4418,36 +4220,35 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "46.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.0.tgz", - "integrity": "sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==", + "version": "48.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", + "integrity": "sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.19.1", - "@eslint-community/eslint-utils": "^4.1.2", - "ci-info": "^3.6.1", + "@babel/helper-validator-identifier": "^7.22.5", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^3.8.0", "clean-regexp": "^1.0.0", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.0", + "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "regjsparser": "^0.9.1", - "safe-regex": "^2.1.1", - "semver": "^7.3.8", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.5.4", "strip-indent": "^3.0.0" }, "engines": { - "node": ">=14.18" + "node": ">=16" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.28.0" + "eslint": ">=8.44.0" } }, "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { @@ -4463,9 +4264,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -4473,6 +4274,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -4503,12 +4307,15 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ajv": { @@ -4554,9 +4361,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4611,14 +4418,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4707,9 +4514,9 @@ } }, "node_modules/execa": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz", - "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -4811,9 +4618,9 @@ "dev": true }, "node_modules/fast-redact": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", + "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", "dev": true, "engines": { "node": ">=6" @@ -4950,16 +4757,16 @@ } }, "node_modules/firefox-profile": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.2.tgz", - "integrity": "sha512-3kI17Xl9dL9AeRkpV1yahsJ+UbekkPtlQswKrIsTY1NLgxtEOR4R19rjGGz5+7/rP8Jt6fvxHk+Bai9R6Eai3w==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.3.2.tgz", + "integrity": "sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==", "dev": true, "dependencies": { "adm-zip": "~0.5.x", "fs-extra": "~9.0.1", "ini": "~2.0.0", "minimist": "^1.2.5", - "xml2js": "~0.4.23" + "xml2js": "^0.5.0" }, "bin": { "firefox-profile": "lib/cli.js" @@ -5038,38 +4845,29 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.7", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, - "node_modules/fluent-syntax": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/fluent-syntax/-/fluent-syntax-0.14.0.tgz", - "integrity": "sha512-+k8uXWfRpSrE33764RbpjIKMzIX6R9EnSjFBgaA1s0Mboc3KnW9sYe0c6vjIoZQY1C4Gst1VFvAOP6YGJjTJuA==", - "deprecated": "Renamed to @fluent/syntax 0.14.0", - "dev": true, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, "funding": [ { @@ -5095,6 +4893,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -5160,9 +4986,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5180,15 +5006,15 @@ "dev": true }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -5273,144 +5099,27 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/get-pkg-repo/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==", - "dev": true - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/get-port": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz", + "integrity": "sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5432,190 +5141,56 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/git-raw-commits/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/git-semver-tags/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "resolve-pkg-maps": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { - "ini": "^1.3.2" + "assert-plus": "^1.0.0" } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.6.tgz", + "integrity": "sha512-mEfImdc/fiYHEcF6pHFfD2b/KrdFB1qH9mRe5vI5HROF8G51SWxQJ2V56Ezl6ZL9y86gsxQ1Lgo2S746KGUPSQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5764,15 +5339,15 @@ } }, "node_modules/got": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.1", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", @@ -5789,9 +5364,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/graceful-readlink": { @@ -5806,42 +5381,18 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "dev": true }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -6041,9 +5592,9 @@ } }, "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, "engines": { "node": ">=8" @@ -6097,6 +5648,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/htmlhint/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/htmlhint/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -6151,9 +5711,9 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -6164,15 +5724,15 @@ ], "dependencies": { "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "domutils": "^3.0.1", - "entities": "^4.3.0" + "entities": "^4.4.0" } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-proxy": { @@ -6285,9 +5845,9 @@ } }, "node_modules/human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "engines": { "node": ">=14.18.0" @@ -6421,65 +5981,38 @@ "dev": true }, "node_modules/inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "dev": true, "dependencies": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.5.7", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=14.18.0" } }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -6500,9 +6033,9 @@ } }, "node_modules/irregular-plurals": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", - "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", "dev": true, "engines": { "node": ">=8" @@ -6521,13 +6054,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" }, "funding": { @@ -6581,9 +6114,9 @@ } }, "node_modules/is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "dependencies": { "builtin-modules": "^3.3.0" @@ -6620,9 +6153,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -6708,15 +6241,12 @@ } }, "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-mergeable-object": { @@ -6891,29 +6421,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -6980,9 +6494,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/isexe": { @@ -6997,6 +6511,24 @@ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, + "node_modules/jackspeak": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", + "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jed": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", @@ -7004,24 +6536,14 @@ "dev": true }, "node_modules/jose": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.11.2.tgz", - "integrity": "sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", + "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/panva" } }, - "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7047,9 +6569,9 @@ "dev": true }, "node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "engines": { "node": ">=12.0.0" @@ -7094,12 +6616,6 @@ "fast-deep-equal": "^3.1.3" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -7108,166 +6624,53 @@ }, "node_modules/json-schema": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonlint-mod": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", - "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "JSV": "^4.0.2", - "underscore": "^1.9.1" - }, - "bin": { - "jsonlint": "lib/cli.js" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/jsonlint-mod/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonlint-mod/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==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonlint-mod/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, - "node_modules/jsonlint-mod/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/jsonlint-mod/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, - "node_modules/jsonlint-mod/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, - "node_modules/jsonlint-mod/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==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "has-flag": "^3.0.0" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/jsonwebtoken": { @@ -7301,15 +6704,6 @@ "node": ">=0.6.0" } }, - "node_modules/JSV": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -7322,10 +6716,16 @@ "setimmediate": "^1.0.5" } }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -7368,9 +6768,9 @@ } }, "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -7386,9 +6786,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", + "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", "dev": true }, "node_modules/latest-version": { @@ -7441,9 +6841,9 @@ } }, "node_modules/lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, "dependencies": { "debug": "^2.6.9", @@ -7480,43 +6880,6 @@ "uc.micro": "^1.0.1" } }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7550,12 +6913,6 @@ "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", "dev": true }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7625,16 +6982,16 @@ } }, "node_modules/log4js": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz", - "integrity": "sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.1.3" + "streamroller": "^3.1.5" }, "engines": { "node": ">=8.0" @@ -7726,21 +7083,31 @@ } }, "node_modules/markdownlint": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.27.0.tgz", - "integrity": "sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w==", + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", + "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", "dev": true, "dependencies": { - "markdown-it": "13.0.1" + "markdown-it": "13.0.1", + "markdownlint-micromark": "0.1.7" }, "engines": { - "node": ">=14.18.0" + "node": ">=16" + } + }, + "node_modules/markdownlint-micromark": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", + "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", + "dev": true, + "engines": { + "node": ">=16" } }, "node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -7854,71 +7221,24 @@ } }, "node_modules/metalint": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.11.1.tgz", - "integrity": "sha512-7n33d/m6ZAqz3eu+BVVW/e+3QjP/JOg8gnI2gIb7Rv1J3H5pEd890P7RzdTpFel1vru8ZiZqYlu4VXQJekrGPQ==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.14.1.tgz", + "integrity": "sha512-lQDYpfmhsLuMFJhBrlacyML0iQaRFitjl3kecUzly7X7M49UMuOZGV4bNTqMMTYEN8wtUPvEitjZEkXzgVejlQ==", "dev": true, "dependencies": { - "chalk": "5.2.0", - "yargs": "17.7.1" + "chalk": "5.3.0", + "yargs": "17.7.2" }, "bin": { "metalint": "src/bin/index.js" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.0.0" }, "funding": { "url": "https://www.paypal.me/sebastienregne" } }, - "node_modules/metalint/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==", - "dev": true - }, - "node_modules/metalint/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metalint/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/metalint/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -7999,21 +7319,24 @@ } }, "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8042,16 +7365,25 @@ "node": ">=0.10.0" } }, + "node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, "bin": { "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/mocha": { @@ -8105,11 +7437,14 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/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==", - "dev": true + "node_modules/mocha/node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, "node_modules/mocha/node_modules/glob": { "version": "7.2.0", @@ -8171,20 +7506,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8220,15 +7541,6 @@ "node": ">=10" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -8298,31 +7610,34 @@ } }, "node_modules/mutation-testing-elements": { - "version": "1.7.14", - "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-1.7.14.tgz", - "integrity": "sha512-/klVQtO0W9Y3zRUf3Xaf4hvzjCpLMKWetg6/bnLDPBrGTySt7JeW+muh2JQcBessDJMFFZyFYKdCTJOL5AhlBw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-2.0.1.tgz", + "integrity": "sha512-4piLXKUp3iyQ8O+n7tshESwTJI18Olj8ZwW8G9vMpuODKmc8MvQG63zbsiPb9KFJ8yEiiMNodQUSSdgLXpYxPA==", "dev": true }, "node_modules/mutation-testing-metrics": { - "version": "1.7.14", - "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-1.7.14.tgz", - "integrity": "sha512-Y5I6p2gZy7sXYfWn9yR863vd3NA9IhjKccUdbybmHASRy5b7zit6B03DczuYU+cQDqZ7WX38gzQ9IFs/JdbHqQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-2.0.1.tgz", + "integrity": "sha512-YuxxOxg7mFdxL8DQFyU4ueip/8PL7+2/4FPR+xEetBII/c7p2Gt4FqN23US+wdQhNxsos4PCdYJjL8ddqo6/2g==", "dev": true, "dependencies": { - "mutation-testing-report-schema": "1.7.14" + "mutation-testing-report-schema": "2.0.1" } }, "node_modules/mutation-testing-report-schema": { - "version": "1.7.14", - "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-1.7.14.tgz", - "integrity": "sha512-vN2Gw5dXWp1I7fj9PSzyBPy7KqNG4wN5qMdHwTV339fbW2pH19qlSU5Qg6VJlAZtlfgUiDJ1NYYgIEjpoqrRZA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-2.0.1.tgz", + "integrity": "sha512-el8j0dzhhxICQZ3vbXGlb9iIDrouOvJo28bKSl3/2sPhpAPZccfvbuwcvlG7+vZv87wJkFaj5zTDQ4TFQoXXNA==", "dev": true }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/mv": { "version": "2.1.1", @@ -8380,19 +7695,6 @@ "node": "*" } }, - "node_modules/mv/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/mv/node_modules/rimraf": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", @@ -8418,9 +7720,9 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, @@ -8468,33 +7770,13 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/nconf/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==", - "dev": true - }, "node_modules/nconf/node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/nconf/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "dev": true, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/nconf/node_modules/wrap-ansi": { @@ -8542,12 +7824,6 @@ "ncp": "bin/ncp" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -8568,9 +7844,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -8611,9 +7887,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/normalize-package-data": { @@ -8653,35 +7929,35 @@ } }, "node_modules/npm-package-json-lint": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", - "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-7.0.0.tgz", + "integrity": "sha512-Yn8flnPx/7hTxwejWL5urm8sbEahq8ic3R80d7nlBvS6C58JEmJpUqvO7Ksy8izRzpbrHq0Anwlv/nQg5OYf8Q==", "dev": true, "dependencies": { "ajv": "^6.12.6", "ajv-errors": "^1.0.1", "chalk": "^4.1.2", - "cosmiconfig": "^8.0.0", + "cosmiconfig": "^8.2.0", "debug": "^4.3.4", "globby": "^11.1.0", - "ignore": "^5.2.0", + "ignore": "^5.2.4", "is-plain-obj": "^3.0.0", "jsonc-parser": "^3.2.0", "log-symbols": "^4.1.0", "meow": "^9.0.0", "plur": "^4.0.0", - "semver": "^7.3.8", + "semver": "^7.5.3", "slash": "^3.0.0", "strip-json-comments": "^3.1.1", - "type-fest": "^3.2.0", + "type-fest": "^3.12.0", "validate-npm-package-name": "^5.0.0" }, "bin": { "npmPkgJsonLint": "dist/cli.js" }, "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" + "node": ">=16.0.0", + "npm": ">=8.0.0" } }, "node_modules/npm-package-json-lint/node_modules/ajv": { @@ -8716,6 +7992,32 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/npm-package-json-lint/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/npm-package-json-lint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8734,6 +8036,18 @@ "node": ">=8" } }, + "node_modules/npm-package-json-lint/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -8827,15 +8141,44 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -8875,9 +8218,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -8901,86 +8244,83 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "dev": true, - "dependencies": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/ora/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==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/os-locale": { @@ -9180,18 +8520,18 @@ } }, "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dev": true, "dependencies": { "got": "^12.1.0", @@ -9300,6 +8640,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9339,25 +8704,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pino": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.11.0.tgz", - "integrity": "sha512-Z2eKSvlrl2rH8p5eveNUnTdd4AjJk8tAsLkHYZQKGHP4WTh2Gi1cOSOs3eWPqaj+niS3gj4UkoreoaWgF3ZWYg==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.1.tgz", + "integrity": "sha512-Cp4QzUQrvWCRJaQ8Lzv0mJzXVk4z2jlq8JNKMGaixC2Pz5L4l2p95TkuRvYbrEbe85NQsDKrAd4zalf7Ml6WiA==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", + "pino-abstract-transport": "v1.1.0", "pino-std-serializers": "^6.0.0", "process-warning": "^2.0.0", "quick-format-unescaped": "^4.0.3", @@ -9371,34 +8727,59 @@ } }, "node_modules/pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", + "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", "dev": true, "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, + "node_modules/pino-abstract-transport/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", - "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "dev": true, "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", - "process": "^0.11.10" + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/pino-std-serializers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz", - "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", "dev": true }, "node_modules/plur": { @@ -9457,22 +8838,10 @@ "ms": "^2.1.1" } }, - "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "dev": true, "funding": [ { @@ -9482,10 +8851,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -9493,12 +8866,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", @@ -9522,9 +8889,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -9550,10 +8917,16 @@ "dev": true }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9571,15 +8944,15 @@ } }, "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -9601,9 +8974,9 @@ "dev": true }, "node_modules/process-warning": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz", - "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", "dev": true }, "node_modules/progress": { @@ -9650,9 +9023,9 @@ } }, "node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -9688,20 +9061,50 @@ "purgecss": "bin/purgecss.js" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "node_modules/purgecss/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/purgecss/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/purgecss/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">=10" } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -9758,9 +9161,9 @@ } }, "node_modules/rambda": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.4.0.tgz", - "integrity": "sha512-A9hihu7dUTLOUCM+I8E61V4kRXnN4DwYeK0DwCBydC1MqNI1PidyAtbtpsJlBBzK4icSctEcCQ1bGcLpBuETUQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "node_modules/randombytes": { @@ -9880,15 +9283,6 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -9917,9 +9311,9 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -9935,9 +9329,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -9983,12 +9377,15 @@ } }, "node_modules/refa": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/refa/-/refa-0.9.1.tgz", - "integrity": "sha512-egU8LgFq2VXlAfUi8Jcbr5X38wEOadMFf8tCbshgcpVCYlE7k84pJOSlnvXF+muDB4igkdVMq7Z/kiNPqDT9TA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz", + "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==", "dev": true, "dependencies": { - "regexpp": "^3.2.0" + "@eslint-community/regexpp": "^4.5.0" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/regenerator-runtime": { @@ -9998,13 +9395,16 @@ "dev": true }, "node_modules/regexp-ast-analysis": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.5.1.tgz", - "integrity": "sha512-Ca/g9gaTNuMewLuu+mBIq4vCrGRSO8AE9bP32NMQjJ/wBTdWq0g96qLkBb0NbGwEbp7S/q+NQF3o7veeuRfg0g==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz", + "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==", "dev": true, "dependencies": { - "refa": "^0.9.0", - "regexpp": "^3.2.0" + "@eslint-community/regexpp": "^4.5.0", + "refa": "^0.11.0" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/regexp-to-ast": { @@ -10014,23 +9414,23 @@ "dev": true }, "node_modules/regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -10039,25 +9439,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, "dependencies": { - "@pnpm/npm-conf": "^1.0.4" + "@pnpm/npm-conf": "^2.1.0" }, "engines": { "node": ">=14" @@ -10079,9 +9467,9 @@ } }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -10268,12 +9656,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10299,6 +9687,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", @@ -10315,19 +9712,16 @@ } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/restore-cursor/node_modules/mimic-fn": { @@ -10428,9 +9822,9 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "dev": true, "engines": { "node": ">=0.12.0" @@ -10460,14 +9854,32 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -10481,15 +9893,6 @@ "dev": true, "optional": true }, - "node_modules/safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "dependencies": { - "regexp-tree": "~0.1.1" - } - }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -10505,9 +9908,9 @@ } }, "node_modules/safe-stable-stringify": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true, "engines": { "node": ">=10" @@ -10526,24 +9929,14 @@ "dev": true }, "node_modules/scslre": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.1.6.tgz", - "integrity": "sha512-JORxVRlQTfjvlOAaiQKebgFElyAm5/W8b50lgaZ0OkEnKnagJW2ufDh3xRfU75UD9z3FGIu1gL1IyR3Poa6Qmw==", - "dev": true, - "dependencies": { - "refa": "^0.9.0", - "regexp-ast-analysis": "^0.2.3", - "regexpp": "^3.2.0" - } - }, - "node_modules/scslre/node_modules/regexp-ast-analysis": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.2.4.tgz", - "integrity": "sha512-8L7kOZQaKPxKKAwGuUZxTQtlO3WZ+tiXy4s6G6PKL6trbOXcZoumwC3AOHHFtI/xoSbNxt7jgLvCnP1UADLWqg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz", + "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==", "dev": true, "dependencies": { - "refa": "^0.9.0", - "regexpp": "^3.2.0" + "@eslint-community/regexpp": "^4.5.0", + "refa": "^0.11.0", + "regexp-ast-analysis": "^0.6.0" } }, "node_modules/secure-compare": { @@ -10559,9 +9952,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10615,6 +10008,20 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -10668,9 +10075,9 @@ "dev": true }, "node_modules/shiki": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", - "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", + "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -10694,13 +10101,13 @@ } }, "node_modules/sign-addon": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.2.0.tgz", - "integrity": "sha512-t5CZ4MSKAd3uJBUfjgWfSyKYC1pQS6BMUbgI5OytzMkTOQ9NkdkFE8bB0AJLQIGqDrNS2b1+/ghAP56iuCUE+g==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.3.0.tgz", + "integrity": "sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==", "dev": true, "dependencies": { "common-tags": "1.8.2", - "core-js": "3.27.1", + "core-js": "3.29.0", "deepcopy": "2.1.0", "es6-error": "4.1.1", "es6-promisify": "7.0.0", @@ -10744,9 +10151,9 @@ } }, "node_modules/sonic-boom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", - "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", + "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0" @@ -10800,49 +10207,10 @@ "os-shim": "^0.1.2" } }, - "node_modules/spawn-sync/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/spawn-sync/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/spawn-sync/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -10866,9 +10234,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", "dev": true }, "node_modules/split": { @@ -10884,9 +10252,9 @@ } }, "node_modules/split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, "engines": { "node": ">= 10.x" @@ -10914,220 +10282,7 @@ "sshpk-verify": "bin/sshpk-verify" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/standard-version": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", - "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "conventional-changelog": "3.1.25", - "conventional-changelog-config-spec": "2.1.0", - "conventional-changelog-conventionalcommits": "4.6.3", - "conventional-recommended-bump": "6.1.0", - "detect-indent": "^6.0.0", - "detect-newline": "^3.1.0", - "dotgitignore": "^2.1.0", - "figures": "^3.1.0", - "find-up": "^5.0.0", - "git-semver-tags": "^4.0.0", - "semver": "^7.1.1", - "stringify-package": "^1.0.1", - "yargs": "^16.0.0" - }, - "bin": { - "standard-version": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/standard-version/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/standard-version/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==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/standard-version/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/standard-version/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/standard-version/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/standard-version/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==", - "dev": true - }, - "node_modules/standard-version/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/standard-version/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/standard-version/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/standard-version/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/standard-version/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==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/standard-version/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/standard-version/node_modules/wrap-ansi/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/standard-version/node_modules/wrap-ansi/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/standard-version/node_modules/wrap-ansi/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==", - "dev": true - }, - "node_modules/standard-version/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, "node_modules/stream-to-array": { @@ -11154,9 +10309,9 @@ } }, "node_modules/streamroller": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.4.tgz", - "integrity": "sha512-Ha1Ccw2/N5C/IF8Do6zgNe8F3jQo8MPBnMBGvX0QjNv/I97BcNRzK6/mzOpZHHK7DjMLTI3c7Xw7Y1KvdChkvw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "dependencies": { "date-format": "^4.0.14", @@ -11197,90 +10352,91 @@ ] }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/string-width-cjs": { + "name": "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==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=8" } }, + "node_modules/string-width-cjs/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==", + "dev": true + }, "node_modules/string-width/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", - "dev": true - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11293,6 +10449,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -11363,97 +10532,286 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "node_modules/stylelint": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.2.0.tgz", - "integrity": "sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA==", + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "15.10.3", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", + "integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/selector-specificity": "^3.0.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.2.0", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.28.0", + "mathml-tag-names": "^2.1.3", + "meow": "^10.1.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.27", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-order": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", + "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", + "dev": true, + "dependencies": { + "postcss": "^8.4.21", + "postcss-sorting": "^8.0.2" + }, + "peerDependencies": { + "stylelint": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/stylelint/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/stylelint/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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stylelint/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.0.1", - "@csstools/css-tokenizer": "^2.0.1", - "@csstools/media-query-list-parser": "^2.0.1", - "@csstools/selector-specificity": "^2.1.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^8.0.0", - "css-functions-list": "^3.1.0", - "css-tree": "^2.3.1", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", - "svg-tags": "^1.0.0", - "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^5.0.0" - }, - "bin": { - "stylelint": "bin/stylelint.js" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint-order": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", - "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", + "node_modules/stylelint/node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "dependencies": { - "postcss": "^8.4.21", - "postcss-sorting": "^8.0.2" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" }, - "peerDependencies": { - "stylelint": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/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==", - "dev": true - }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -11463,18 +10821,52 @@ "node": ">=8" } }, - "node_modules/stylelint/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==", + "node_modules/stylelint/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "min-indent": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" } }, "node_modules/supports-color": { @@ -11493,16 +10885,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/supports-hyperlinks/node_modules/supports-color": { @@ -11551,35 +10943,6 @@ "node": ">=10.0.0" } }, - "node_modules/table/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==", - "dev": true - }, - "node_modules/table/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -11608,9 +10971,9 @@ } }, "node_modules/thread-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", - "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.0.tgz", + "integrity": "sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw==", "dev": true, "dependencies": { "real-require": "^0.2.0" @@ -11622,15 +10985,6 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -11711,13 +11065,13 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -11735,9 +11089,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", "dev": true }, "node_modules/tunnel": { @@ -11789,17 +11143,68 @@ } }, "node_modules/type-fest": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.5.2.tgz", - "integrity": "sha512-Ph7S4EhXzWy0sbljEuZo0tTNoLl+K2tPauGrQpcwUWrOVneLePTuhVzcuzVJJ6RU5DsNwQZka+8YtkXXU4z9cA==", + "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==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -11815,18 +11220,18 @@ } }, "node_modules/typed-inject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/typed-inject/-/typed-inject-3.0.1.tgz", - "integrity": "sha512-5yr8inrNos7uo/irp5PZ7WNwmYGfoa0w1NiDdCWW6hhIxYH2NCqYwX9BUOXpZgxk964rb1ElEfvBtftuvIPpvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typed-inject/-/typed-inject-4.0.0.tgz", + "integrity": "sha512-OuBL3G8CJlS/kjbGV/cN8Ni32+ktyyi6ADDZpKvksbX0fYBV5WcukhRCYa7WqLce7dY/Br2dwtmJ9diiadLFpg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/typed-rest-client": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", - "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", "dev": true, "dependencies": { "qs": "^6.9.1", @@ -11850,52 +11255,37 @@ } }, "node_modules/typedoc": { - "version": "0.23.26", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.26.tgz", - "integrity": "sha512-5m4KwR5tOLnk0OtMaRn9IdbeRM32uPemN9kur7YK9wFqx8U0CYrvO9aVq6ysdZSV1c824BTm+BuQl2Ze/k1HtA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.1.tgz", + "integrity": "sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==", "dev": true, "dependencies": { "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", + "marked": "^4.3.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 14.14" + "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uc.micro": { @@ -11904,19 +11294,6 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -11985,9 +11362,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -11997,6 +11374,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -12004,7 +11385,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -12068,12 +11449,6 @@ "uuid": "dist/bin/uuid" } }, - "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==", - "dev": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12145,48 +11520,48 @@ } }, "node_modules/weapon-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.0.3.tgz", - "integrity": "sha512-V8X6hPIzY1juvrSVREmtRhK9AHn/8c2z8XxaibESU+jyG/RinZ9x9x6aw8qEuFAi7R6Kl/EWGbU2Yq/9u6TTjw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.1.1.tgz", + "integrity": "sha512-b0RmqduiSUKyKFamrpU+UK78Jm65/6CgKq1zoWFaS9PM7vwNK4RWrjmX1jREs3pLmG7botsgMLVOltxDR7RGRw==", "dev": true }, "node_modules/web-ext": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.5.0.tgz", - "integrity": "sha512-Ymflj7Aq/LOD+zGoyvwRbAPx/yMJeig2OEb/rRXYrWl6NWRI5E0c2iWGqlBcnL45iKrOzz70H438dVeJk0w2ug==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.7.0.tgz", + "integrity": "sha512-/jc0kbSLfw/ANra6v70I6QADrVYL0Wo98T0Cigt39EjVpXbiwES8zww/9QL7aE0L1tK0ISWYq45KNisDV+GKVA==", "dev": true, "dependencies": { - "@babel/runtime": "7.20.13", + "@babel/runtime": "7.21.0", "@devicefarmer/adbkit": "3.2.3", - "addons-linter": "5.27.0", + "addons-linter": "6.13.0", "bunyan": "1.8.15", "camelcase": "7.0.1", "chrome-launcher": "0.15.1", "debounce": "1.2.1", "decamelize": "6.0.0", "es6-error": "4.1.1", - "firefox-profile": "4.2.2", + "firefox-profile": "4.3.2", "fs-extra": "11.1.0", "fx-runner": "1.3.0", "import-fresh": "3.3.0", - "jose": "4.11.2", + "jose": "4.13.1", "mkdirp": "1.0.4", "multimatch": "6.0.0", "mz": "2.7.0", - "node-fetch": "3.3.0", + "node-fetch": "3.3.1", "node-notifier": "10.0.1", - "open": "8.4.0", + "open": "8.4.2", "parse-json": "6.0.2", "promise-toolbox": "0.21.0", - "sign-addon": "5.2.0", + "sign-addon": "5.3.0", "source-map-support": "0.5.21", "strip-bom": "5.0.0", "strip-json-comments": "5.0.0", "tmp": "0.2.1", "update-notifier": "6.0.2", "watchpack": "2.4.0", - "ws": "8.12.0", - "yargs": "17.6.2", + "ws": "8.13.0", + "yargs": "17.7.1", "zip-dir": "2.0.0" }, "bin": { @@ -12197,113 +11572,71 @@ "npm": ">=6.9.0" } }, - "node_modules/web-ext/node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/web-ext/node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/web-ext/node_modules/@eslint/eslintrc/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==", + "node_modules/web-ext/node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { - "version": "5.2.29", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.29.tgz", - "integrity": "sha512-bEBrkTWbDAs/PB4IdRg4CtU750oBRytXHK/wC2oIDkgKZqnt76nACSooQQuHF11mK5k43f/IgFUMO5t5quRPVA==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.3.14.tgz", + "integrity": "sha512-Y9XQrphVcE6u9xMm+gIqN86opbU/5s2W1pdPyKRyFV5B7+2jWM2gLI5JpfhZncaoDKvhy6FYwK04aCz5UM/bTQ==", "dev": true }, "node_modules/web-ext/node_modules/addons-linter": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.27.0.tgz", - "integrity": "sha512-gDgl0FcmhZ5cs3St0qAaO9J1BoektwnY+p4dVgcvPu8WaBqH9MG2fk0gL/evCpoHSXeSw15GA87n8Y7zy7raVQ==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.13.0.tgz", + "integrity": "sha512-vYgDXl8aLmN1zU4HmsQdG6tUFByg499mHnTEMWDUbSkoYDq3koTne08EsqU6sD+o814u8FxclQP7580L0g/tPQ==", "dev": true, "dependencies": { - "@mdn/browser-compat-data": "5.2.29", + "@fluent/syntax": "0.19.0", + "@mdn/browser-compat-data": "5.3.14", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "8.3.0", + "addons-scanner-utils": "9.3.0", "ajv": "8.12.0", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", - "deepmerge": "4.2.2", - "eslint": "8.32.0", + "deepmerge": "4.3.1", + "eslint": "8.48.0", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "3.3.0", - "espree": "9.4.1", + "eslint-visitor-keys": "3.4.3", + "espree": "9.6.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "fluent-syntax": "0.14.0", - "glob": "8.1.0", + "glob": "10.3.4", "image-size": "1.0.2", "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", - "pino": "8.8.0", - "postcss": "8.4.21", + "pino": "8.15.0", + "postcss": "8.4.29", "relaxed-json": "1.0.3", - "semver": "7.3.8", + "semver": "7.5.4", "sha.js": "2.4.11", "source-map-support": "0.5.21", "tosource": "1.0.0", "upath": "2.0.1", - "yargs": "17.6.2", + "yargs": "17.7.2", "yauzl": "2.10.0" }, "bin": { "addons-linter": "bin/addons-linter" }, "engines": { - "node": ">=12.21.0" + "node": ">=16.0.0" } }, "node_modules/web-ext/node_modules/addons-linter/node_modules/addons-scanner-utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.3.0.tgz", - "integrity": "sha512-XP+2kxhZxlxiVFXVJ7lyJEuxpUS8ryrolUDqnUEnvOZ/3p8qt9hWCYSliXhI2W+Swf/hZ3F4CLAG6tBnqdxDYA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.3.0.tgz", + "integrity": "sha512-YZWzNpP+em650XlZNH7NbTUcHJXqC0ihLEgwn17GGTqervyChqQffd9sm/QXNur0dmj7Ks1mD77iTg9XcJw64A==", "dev": true, "dependencies": { "@types/yauzl": "2.10.0", @@ -12314,9 +11647,9 @@ "yauzl": "2.10.0" }, "peerDependencies": { - "body-parser": "1.20.1", + "body-parser": "1.20.2", "express": "4.18.2", - "node-fetch": "2.6.7", + "node-fetch": "2.6.11", "safe-compare": "1.1.4" }, "peerDependenciesMeta": { @@ -12335,9 +11668,9 @@ } }, "node_modules/web-ext/node_modules/addons-linter/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "dev": true, "optional": true, "peer": true, @@ -12356,6 +11689,24 @@ } } }, + "node_modules/web-ext/node_modules/addons-linter/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/web-ext/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -12366,6 +11717,30 @@ "concat-map": "0.0.1" } }, + "node_modules/web-ext/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/web-ext/node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -12406,59 +11781,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/web-ext/node_modules/eslint": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -12487,16 +11851,16 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/web-ext/node_modules/eslint/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==", + "node_modules/web-ext/node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "*" } }, "node_modules/web-ext/node_modules/fs-extra": { @@ -12513,10 +11877,32 @@ "node": ">=14.14" } }, + "node_modules/web-ext/node_modules/glob": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", + "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/web-ext/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -12555,22 +11941,22 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/web-ext/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/web-ext/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/web-ext/node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "dev": true, "dependencies": { "data-uri-to-buffer": "^4.0.0", @@ -12604,9 +11990,9 @@ } }, "node_modules/web-ext/node_modules/pino": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz", - "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.0.tgz", + "integrity": "sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0", @@ -12625,6 +12011,32 @@ "pino": "bin.js" } }, + "node_modules/web-ext/node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dev": true, + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/web-ext/node_modules/readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/web-ext/node_modules/strip-bom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", @@ -12694,6 +12106,33 @@ "node": ">= 10.0.0" } }, + "node_modules/web-ext/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/web-ext/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -12786,17 +12225,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12820,87 +12258,98 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/winreg": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", - "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", - "dev": true - }, - "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==", + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { + "node_modules/winreg": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", + "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", + "dev": true + }, + "node_modules/workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -12910,22 +12359,34 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", - "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -12962,9 +12423,9 @@ "dev": true }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, "dependencies": { "sax": ">=0.6.0", @@ -12983,15 +12444,6 @@ "node": ">=4.0" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -13023,9 +12475,9 @@ } }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -13097,26 +12549,6 @@ "node": ">=8" } }, - "node_modules/yargs/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==", - "dev": true - }, - "node_modules/yargs/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index f1b5dcc..61f824e 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ "test": "npm run test:unit", "test:unit": "mocha --config test/unit/mocharc.json", "test:coverage": "stryker run .stryker.config.js", - "jsdocs": "typedoc --tsconfig .tsconfig_jsdocs.json --out jsdocs/ src/", - "server": "http-server -p6007 -c-1 --cors", + "jsdocs": "typedoc --tsconfig .tsconfig_jsdocs.json", + "serve": "http-server -p6007 -c-1 --cors", "extension:chromium": "web-ext run -t chromium -s src/extension/", "extension:firefox": "web-ext run -t firefox-desktop -s src/extension/", "build": "web-ext build -s src/extension/ -a build/ -o", @@ -41,40 +41,40 @@ "webextension-polyfill": "0.10.0" }, "devDependencies": { - "@prettier/plugin-xml": "2.2.0", - "@stryker-mutator/core": "6.4.1", - "@stryker-mutator/mocha-runner": "6.4.1", + "@prantlf/jsonlint": "14.0.3", + "@prettier/plugin-xml": "3.2.1", + "@stryker-mutator/core": "7.1.1", + "@stryker-mutator/mocha-runner": "7.1.1", "@types/mocha": "10.0.1", - "addons-linter": "5.31.0", - "eslint": "8.35.0", - "eslint-plugin-array-func": "3.1.8", + "addons-linter": "6.14.0", + "eslint": "8.50.0", + "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-jsdoc": "40.0.1", + "eslint-plugin-import": "2.28.1", + "eslint-plugin-jsdoc": "46.8.2", "eslint-plugin-mocha": "10.1.0", - "eslint-plugin-n": "15.6.1", + "eslint-plugin-n": "16.1.0", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "1.12.0", - "eslint-plugin-unicorn": "46.0.0", + "eslint-plugin-regexp": "1.15.0", + "eslint-plugin-unicorn": "48.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", - "jsonlint-mod": "1.7.6", - "markdownlint": "0.27.0", - "metalint": "0.11.1", + "markdownlint": "0.31.1", + "metalint": "0.14.1", "mocha": "10.2.0", - "npm-package-json-lint": "6.4.0", - "prettier": "2.8.4", + "npm-package-json-lint": "7.0.0", + "prettier": "3.0.3", "purgecss": "5.0.0", - "stylelint": "15.2.0", + "stylelint": "15.10.3", "stylelint-order": "6.0.3", - "typedoc": "0.23.26", - "typescript": "4.9.5", - "web-ext": "7.5.0", + "typedoc": "0.25.1", + "typescript": "5.2.2", + "web-ext": "7.7.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.6.0" }, "private": true } diff --git a/src/extension/background/page.html b/src/extension/background/page.html index 732ffaf..ac1c6d6 100644 --- a/src/extension/background/page.html +++ b/src/extension/background/page.html @@ -1,4 +1,4 @@ -<!DOCTYPE html> +<!doctype html> <html> <head> <meta charset="utf-8" /> diff --git a/src/extension/img/icon128.png b/src/extension/img/icon128.png index 09e55109eebbe9ca3fdf430a1d4fd1ab917fbe77..728804abe2fc361135314f34fe3380e4f86b6894 100644 GIT binary patch delta 2962 zcmV;D3vKj<7S0!tB#|^Ze+yelL_t(|ob8=|Y@JmZ$3N#STh|V7+LRwMM$sDiRnaJ0 z%qFC61{5lSC=sIk;UCSqn3xz7|1xSK8wyoyTw;tNHZodBh7%%GrAB3uu{mR*WiX)A zAq=uP*yuI}?c*QkZMnU>ZSOtr`El=k&nJ1ZwY~S8=RME&p8MYKe|z3@m55MJD5Vr| zA#h3hZyT@zXzl9iYT34JTZ>X^39uMgnm%m;I4L40Zo28FLtD3QJp{Z4><9J%F9Od1 z<5Fh>rfU6olv3vbtJAmwxC}U>_;Ky+?d;sSlV!`6&D-A5qeoe}awU8A>?!$Y;3;4y zupQVgA}?n<g20GKe@z9j1h@vc8+aCwg`%mcNp|nvE#)#YG9t~*%?q}h#vb4&z|}xw z=<%s|JVPf?X3-Y|*8%;&8)X(|ChocCp0bNS&As>DTTvfrybk;txE5Fxdfdty+t3Lt zQ1}l4n}7ob#SlPxdU`4@{xs{?uQ%#5jRWZ{b!q5voOg^ve<x5fDOdwM1WaWpfUH`z zN=}?OVOD(+IeGG=tX{o3iwLIUaiELzoU585cmf4QSHKOxKP?Qnw6wIy`1rVS@u%6p zf4{W0w%QPZ0RI54uO=Y`Pe63>KMU-#G{}-9i3|-5Wi0)>3=a=WLqmft5eWKI#MPn4 zT|x^0_%QIWf5m|nKsIjNn7!&n+<yD*R&z|_kHBR?YY?PUXa?>A-nKocU0q!=H8o|Y z>IF<qP05Wn-snOECxJVFrXaQO-XW|5UT`pw(%#-KhYugNR`g<y962HvU38HP5eTps z__X(Wc<V?TIGcb;7Xw(S*<(tDCQ+p^1^fbN_Er}!f1SWbfTtY|ngG(@-*36pbJO47 z@9a3z7{QZ&;G_6o0p4^uU|Gx_Q!<)F<-{@Iwyfj7P`E671KJ~ZI#5~79#bruL<_~8 zKw_gNrNUM57XyQ?2gjD#V~S;yXujAAELmvWO~OU-PX~rv4~lKG#}o%9(OfYMoGH~T z0N`x2f8FVPKwOwTrZ_T*O2sbVEU88TpjY1P^)V2x%pOx5nnb1IIiO9dNdQ1AdSQg~ z0dQ^hnBv$ZDvsxYbEFys0Gx@ZY2TOGV~S&ws5t%wER&D|K%edZ!P5bIHG53)U=kI^ zFd3JjWhs6F-0$mPH*DD8rGPf*>FMz)f(L;He+eJ}=O)i|gfe?f@n{lF#~tER0KhH2 z4lcCWV~R(UNYEFNt`{EyKwsFI@Nr<(V)mHg(IgV!AaK686ae~??uf5fe>Issrg$`o z1bBi9m!nrIfIeRbQ*CCCDV|Lt0XB&X0iaj%WLl<OZd9w;V~S^!XbQMWYzhFqhVOYF ze+N+QW{)YJO`=iCd@Cqd0C#yx+~_v0TEXykGt>CC*bo44F?!{y^Q3FZ>@mfoNi+dm zAQlAhh>wJ8&FnG7vq|)TWDx-RjveQT)~eZKif5B(t(XV^eXrh=t`n?vv&R&VCed~= z6u=EW6j~2vk0~BaqECr|0Ib}lJ73g`f7xS-N0VqsDiHwM^l_S0y_r3xcr=NwkO~Cg z^vu6r%^p)cnM4mtIRZd$%i`4Xt!J~x6b~lR6!1YQLjZTUOe7Cxk0~BZq94k90ss~P zueeGeFJ_M^9!#QFD7r>aEPyUoo#)N$F~x&Pbd40$JYhCp#sNu^uw}~@+S=M&e>7iL zEMLBy!NEZq8X8=6ar3O7<lR^Q5)3wBEGP18_L$<(BsvT%mg2Vn^!BUPJIuS;V~S&w zXq}W0z}>bxie^tX9GXOTN(lixXS0)N_Sj)$WJH!OU20nZqf#gU;5^$ZtA*RRY6VBP zo1H5K0=U^`<I(J~j{}qFi&7u}e{1jm(d==91Cyv%3VeVous};o3j+fKG&VNcXf9H~ zqD6}s7#N_nwbfRWD?zXNNzkAFPq)=_H6eP2Ge&;}QC;!|@ZJRY0CigY$h^D<SdpNY zeMj=iB?<bg)gt+%EdeeFokb)V7bfU0RgC153liY0&{;%+(V74)p|gktf1@P<-WNKH zNHAIw^u7O)eA1ktH+zialg223eA8IGC^V8Y67=pLk$m!26hOXtD?#ri6UiqN3GhFk zJ$7_-(AU?;*w`2o6B7&WQIs{Z;yS;Hi3!HW#^~$oqobq4!U$KyA%H()f5G7?(b(81 zn>TNk$;nCEtEK9O$;nCCf4q6KG&VLmuSXhx0(ihj@rQ?pLyvFGFg!f$O9X=n@Siy+ z2ut+#_R`te>AIV`p|i7--rimxUF`$-1`bu$(a{m7eFG*ZC#9pK!}ScXJ^{upt7;bA z-Q6Tf^qVRrNfNrdyIprPo&aMmdx%rNIUdGtRH2uKzmER;H|rcbe|C(frY09n*FDFN zAE&w5*~MDDEL=ncc-mDjvH0dV9=oSRM5f=Ice?B;QkCogW^N7J9x#ze7`8(cK%V(K zqyi9;m(d$UMDoF?h#UZB?GpA#pkyNcnW=RYKt6eN`aeq2OQuSxM&MQSU8B|z3zuZ` zjDy?LUkA<>k&{p`e*=ifTfjEky=6ryl__eye+O)xE<SL|PNDaEPA1}?!NMO@;S{Zu zIt_h!_*`4PWqk|C`YOtM|3w@CR*1;k)4!NC1Bl2wK)=l%BUQz(3X2a#GXQ{6svYeK zSdm`nS3utTFF=5H5qYujm#18)7m??Q9|`M`hl`63B?ORif0yHABL4Ytsb7{9fQSqO zyPc*J@yQMm`CF+!%(qtS2ab}7_-D>qo^ld6>yJw9Al*^Yl+Y(ZdG8;+)?<~-k;p=; zHNTs+_egNQGgt9p0Rf1}5b%5JDMfrSn4Ztg$-Hj?Fyjl1Vz`k+=qWJA{T~G`7LotX z_n-wA?5DoKe@{)bhy>$%3l$&Am;nHkQcb`J&|Ya4IerC(?0*#aSh4L}in4Cm5s~9S zH`-2&R5w$=`f`d7WeNah%%Pu|W)+G$yq>=ho8~foN>SEZz|4d7s-Ydg<>fvn^b{N# z&&U4+aAmo#eyCsufSFZ8w-UFNsYVV0U#g_|P@w<-e?(*y_$u*ypqdci>mu?}rB5`v zZ(Bqj1ib8E5GjjIBJw+vCsuS0Fzbm*CBPPnzm2+xcn;wF_y>SnMP$mT{VWM8r4|7X z0awrUm?!|J$3F~wE<HChYu`eGXP|c)`*^9pM*%oH{#`()h`gDl{mgr}h{#d&SI<A2 zwXI0mf4l%(m$mp{K>z?Eau6+oy*Ap5%*$S2t%$s8qcLl{H;KqT;FD-GBI1T!z#0+x zx2*=PZr>#$hk(xjLpIxu0Q!V)t%$s4vr+5&x25k(pGSW@iP&K)aIJ_OvE8tf4gAuZ z4{rs2M05<ZAizen#e2d<2bn(xmccsUH^A8@e^1Ww$H0TYZ8%<%=R*Jh%YplVHI+Uw zrvi8q?Xd2%noJ3N?cw?o&<T7Wy<j0y8bPnQSc8Y+gTEP|kgI^71DBTb;2g~WPXQZ% zvKMpMAjB@te*r!Ud=tHLHSZil&y1hIbMYa}3{c4XflcW31tqET8Q@{`tKRu{Hq1rn ze|_9v2EK;=q~Kls0eJ#g3v>~%_z+$I(>w-Ti9SE5XBY8F;99h0KJOhnz6kvmFc+5t z-vVw?N;QN|CJX6(d5@vb?jH)A&M8!@0H!%#DRm3b1FQ(0OohAx^oz(Z(U)(ll4=(K zFtdBvI<z_R1z=g&jOOGp@LTj&Y>%aze{NMZH6egPlv0b)=L*-PaY@*W7)5Wr`Y7<% z!c7=!ftnLQF-oa(fYoWN1TMq!cDDt*fi`S*0*?dRZ7s|QMa>JK6iTT!;9}rHpbdTg za2C*#Ml*04a7Ox+qrf|8Q|3?_uLAqg->NnaJY#bqMz!#N%T)7^Gh&5g000002uVdw IM6N<$f|dPokN^Mx delta 2758 zcmV;%3OV)87lsy)Bn<>}LP=Bz2nYy#2xN$nAv}KygGod|RCt{2on35PM-|6^dmU$E zr!5~Vw@sR+4oyX9>sEkhK<S6v1U3CIRYPb62=Ty!6-S6C1W%|!A|E0#4VEnN01=iF z*+p`crlK`Pi$oh}NE(ERUD~8|Akdo9G>sGItMwipW;fl~Ywz8;Gjn(M&QCguWAEOX zd(MB^xp)8f%uI^<BLyr2Zq5JO3M>U$IyyQsd-v|mq*AE`z<gj~{ymexB@wx>e*OBB zgM))7fp>rtz;WPB;8kD@5QpdD3Be7(<G>E!Prw8!NLSeM<;&&NsZ&ypiHQkWv0}xH z_vdW_*bh7fd<|Ia_*^}}0$?pF;IC0SP*;CgQ&W>1K76=r@CytN4@+}%bJ^qO?H|C; zfCqrIGcP2J`M@JUA8?v*fw^ouckT=w`~tgn?W(AayuA<n8h99Jbl{h|=N4cKFiz#c z5J0-Rx+)HSfejlrXtkNQanvYvn{_YMA$J4&fE@Y(kd-S}%7qITv=iXcrAxAE)vA9e zNl>ttfDY6Rs%I8bz+=E)iSBU8WHK@~Hl`i?0w+$Kkd~Gf6G<SzE5M`pM3}*Yz#+^y zS%M&tp`oG3!7q@_W~HH_!Bi3ma1eFVn0P)7Jc~KU3Lu*|Z#EYE0-H8%GTO(yy#U;9 z$+uNaGq4@_0K-o0=;)AKE@wOea=Cw;tXsFvMiN{CwgOF7JY9vX0p7s8BSVWlx|9)# zqS{g5ek&fY5*DDo(oJE(ft89qx>P6<Rcbll7pM`kuDAm@f*q#`Abov()`MT5udmPA zdE{-FI?@lm4xGiJ!=i{ix<nL-!q_?B+s32ekOq`SZq-py#U5P@ibUmX8xVgOj*WHZ z0|Qugjw!K67sDdaTsDZhhpGv#0*0{c6w_jlE*3<h*(?iOV>njExeg_FT6c&Iu}2q6 zB2g(j1YB!0Vg_kNeV4WF2wP&0E*3?iQucb@*HuLesxZR318j>ux>y#8rrR;#dZQ7H zz%@7;_FaiRx>y#8rrY0uj~joDqz3bW-{Izjor*oWI1q`7ElZ4LXaVqanGPDWjT<+{ z9ox`!b#=K+f;}kB#W~hRo`S_C_UPhJBr4ceqmd24Hw<;Wti>(%=;BZ$64XPaM~y~! z4(>orq_BQs)gt!j;!q?K;9cNGqmeGb0@RZ#Cnr@+VvjBkMIr%S#&Ul-dXKA<sW!1k z7sn!zplU9xu!e|b+F`9)#U5Q8i$po#KBJLGRj3?uaRSvY_UPhRBpSi+rC__Gj%!Wh zsueV+o9Wv3O$GlmsLECAovtOZM;C`8(Ijw_i3E7gMTcum?9s)sNc5Yi!GF+2M{8B= z(Z#Vyv|2a#Dc~=*J6M0~VvjBkMWX$>3GkSM&eet3ql-h4=pLN}FfvPbE~^)@M;C`8 z(NLwqUt_yd^(OY{;!q^|LL~`c_0GRu#U5Q8i9~zC2LBc;OTP6i_UPh3B+3Cdhe?2~ zHan68u}2pNBGFIE1-}t^+g1mXBKGLwKqPvbGS3J)Y&D)Vu}6Ow2O`nh;($+|bolsO z*`Z4i1nl0uo7UD=8;7qemMmGqz`y_v4c6*BpP20r3(#1EF^nZy?9s)dNOTHS&Od{- zHX2O2*rSVOk!Ve+1lVD^Ausks!=gyEtyBWMZn6<C_LyOKcvu!LTxdE0My3b<2Gdzq z3)8r21xwS-78QRdz!N49?!_MSSP+T6TATpJuK!-_v4aJXs2e`g0V;Y@G#i;rhW`G3 z(rLeMf@vBX8|m-wr=_LE)FJNzRrM2~zW-lk>d4iEh(vmSDpj`&d!GhA5dfc}PJ{26 zlaB#Q160|!Cz;$Dpte@?B$L(vLz4$QHOaC7wW*>fncROAP{j)mdaTnD0GYUZ;fak* z0DLm;UU*_76Hte{Q+Ptt9573Dh$j)GeF7w#bj|HV;W0~qTK&V5OfLEaNH!M()LJs0 zWHK25@40NTt*wooo*qU=N12?QL`1AwRBZQea&nT<(NTJOdT48FGvMKhI0^6v%oiNa zuyi^ty}f_EGBq`2yj-eYn3|fB-rinGr_<Ksk+<K2T1m=!@Uz)$-2SZ@ve~SwBp3*Q zf6Y2T7^1tooA&m0+s)Js?d|P!cXzvJ>Nvo6v6y9TZEb$o*I;UDO4{1mY>xmN0$|K= zR$W17XD316^`=S*f`HD>PTS3l1;D7y7W~k!j{|?-jigYe;qPN<Thepq&e7D=WaH3v z&-wG`X>PXmu=a9UxBy3Nwc>-Xk7eKe9gxDs`Jl~~JXOg7_-JaF_Ik3Onq@zz>p#F^ z;6FB65d(5;lCd~7Z4oeD7y;fwEfC>J1|z^YT)9fvbMf@W69boH?GqrGJYV>s_yUs# z{)>N_HEIlh4-gFt_W<t$*O4y-DjoqY0((uj7L`;g70GJ7eG3dyR0TF&q<`9NUpz4| zQ2d|iDLN1Jcz6+ph<XW#`YB3!`_mXlO$Pp;@Qdjqz=uGe$re3T#V;ueKFk~e0G6XP z0VAmw_a`9f?H3`a*uGi(%Tf>OkKw-()+2w<GA;N}IsriK73`@mep>36bB!;r0H2H6 zYTQF$(%a8-0Qh35Kg?CD^<xt)d#Zw2V_7b}4v=3_QkS?t0ZDHkRqL@5brU#)a@CqY zirTs-c7Dh#!H4n*Fa-S8Xm>m=833|#y&%l^vK;mNSZg7PxQD<5w|@q;3hbPPK4E_f z_KyKi>Gr}C8&49V$}4PoH37q@(V!v{{0WS+{Sn}^Op|>}5q8SXd7zUyZYDfcLk`$L zh~Pu`1ORn2@pGLX#Yr7L&o9Ro;Ki^nuJjDkC~e@*uy2Ta2#y=a=l?QrFCjnup!dY@ zHdGQU4D({20M5?;UDS2|-<2F+XWD=62=FcZ{XjJ#z;~!H_@I{n0DH*qI_0SfwgAuQ zyfMo78UVYQV>fE>mjDOn-w%8fb@yNS@pax*L?f^dcwn{{_yn+e{#oE5R7JPm@pa!= z#MP*k#y(%_k3Ipco&O=A9XK21_$JnFIfL4I{xt)~@`U3J;1MDQAIu~GsIPw@Yk{MN zj^~-3qrhs^EUw6yT)pWy@FkQO;jzOZ;BMfbrVeO&`L2_|mr->D9<yXopZs@B9@NJA zZD)b6puV1X%rFQ%3{1q`kxB@Fts;_(vS1?imrJ#35y=6Yu=7E6gNUpVk#U~@74tt4 zdB}W3Vn9Teh{%gR0YY;?L|T812O>^HWS)pTDIygu9847iF^W}4PDFNyNTc}(R0$$- zpNJgs2{40U5xK{_$Ey%gqrvw?WWpzaOo|#Alec}Jh%6S7z62-0J`wS|w~NSX5&2_+ z65!7wa=&>`);J<^uZTQf#|dyi>gB7QO+@5QQJ01fse&LzF;RE+FNl9ghj~xcIU;f+ z@B`GtkJy7*p}hrc5s{nCdnS3zLp^TZ37jJS;Lc|60lz|3NX@h22@ms8PaL<SDwN|6 z`Vn9ou!b7kiM_V#trXV-tMYaia65*VyDj20YNw5Zz)Pq#_l*>0#6>+MKq*>LQ=^yV ze_je)3uN-vj2fb^&c81H3~G(UbEukzlc>O+K<%nF2E2;FLX2wR|B%(>@VnHSsQ>@~ M07*qoM6N<$f)`#GCIA2c diff --git a/src/extension/img/icon16.png b/src/extension/img/icon16.png index c8d4653af4364857525ab796bc02debb1ba9985e..6a97843da8c0b17dc46bc99208cd659b02471a5d 100644 GIT binary patch delta 417 zcmV;S0bc&+1K$IXBoYa5NLh0L00&_J00&_KmBYBUkwz$gY)M2xR5*==lg&!QP!NT` z$h8(K-R2$CblpvNy6CeA*>>G!7mCH-H^?It{L4D4LXFZF$P-iuEtTWKOu45192m%D z=A4-`_XbJ$0Yt#K)oSH=p1;rM^Y?bUodXxZ(N?`j+yica4?szh$dDw700C>@3TS*2 zsL0P%k>WUiRvmF1n}~oX6ET5XOLn_mEtktJfz@iIUa#kiTvl8n8#@d`6-BW{HWWpn zFbsV=hX7+h&N-!N`YYLxrm38BCUWk8V}K}%$g+$q%P<TE0{}*&5k8_QVmh4yoCLrE z*yjhB#~=uPN&_rhH3|UzexFXKvsGo20L*4HCX>m3rU$^QZMH1Se|J!prGFDIJHUg< zHJi<iXWzGfwwem}07raX$)<~S_~*O^4xFSs2!cD{wC;U49R9XEfNM!_w&@1&SnpU5 zFaH4Ss`fKABwb2c{~@rJG&b@#0WS`LbKr%qH?pX{&m<kx>puZT2(<So4d*KW0000< LMNUKnu0mjfAwRhB delta 424 zcmV;Z0ayOt1Lp&fBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv1rQ zWJyFpR5*==l09z1KoEsLq76YJqV*j@Oie?V6r3fJTWU&*pdj*h10Mk?f39625hvmT zJ^@G;$mpfOYdOXwPg-e5`{vEOnT12Rz@*u1Mo|>4m&@h4)oMk+9dKE}&v6Dk0y{vy z@5{pXeE|Ye;2x+~C4Xcjd7h^-JkPU#A_CsaB2V_Q+wE$z*&GOLw_Ejky`spp=y?ao zaU8{Qe2{Dr$FUs8DcWfROaK{U6a>N1WQ!mOWQ?&QV*^|PxUNeWhJ<05`x*=e0E|YX z-)nMR=JPqgbq!bn=T&Qw1VF7;tKJ)|Ox6kj{eGWLr*puvod7Hr3ud!fUIXBJ%T6{) zl7DBABuQ}-pC`bpm1{H_x#yzqVr)4XUSR({)4k<AY=wW~6u2-z1Uv&bW$(k`@YwJG z9)NEf)Pc8h#que<zXGRa#k!=ar1TGgRMMm>IftY+Fa|!^|B+R8zm;@R=Klc7(N$F4 SEu9Sj0000<MNUMnLSTa89JY4= diff --git a/src/extension/img/icon24.png b/src/extension/img/icon24.png index 15dc868c86c7fc91c376ab7102472aabbe682781..7322dcabc360cb02c03e74ba84ceebbee2213a30 100644 GIT binary patch delta 658 zcmV;D0&V@&1<wVLBoYa5NLh0L01FZT01FZU(%pXikwz$gTuDShR7i=fmN9SBKp2J} z8)qx&gcJx=kflR^ggev{5>g8bWMJqH6oj&4W~PJ*A&^Bjlm$X**Gl;h7$I4eD5Vlp zjW?%#8Dd9{V<#=}NGI8!zkA=i&v$1diLwSP0gr&)<>h5R48tgjqG)Ah#RqnQhrqR& z8YRMY;1w``1XQh7<@>%;eBW2KS`{GR1b7czKa&A)8~B}cmSGs`^?J(F>-A(9MrtA; z1lDI70FRRqjXSnltts)8R;!gYNN2NEXpoG2LVR^~RdF1b8VrX+IgV3gvOZw|T+NmR zP_0(e;o)Jac*@byk?Qq&-XsLBWDVYC6DpO827|$WT=A5_V4zB+k~evsXtR{Amb7&` zoimH4wA<~x!7!-|TiFNAX7k+QDa~dxZ}PwZc7U4zi;IhRp2xz%0(lyZ28~7ofFKA6 zf?z5qiXt{QH#t5&PD7sozU5pCo9nvck-DxsH$Q2<3Dl;B^8ct?MbT_Iva#&-+S=O0 z^OCZEodSF%GcDV;XKt=C;y9LV+xZfGF@XtN+qSW+!imkqvMg-d&W8gF*d|#;0H$dc zPP=RsW#iet37<^h1Ecd}if*@y<2X2uL$}+V8_zKW`lh7sfLE6F54@3dkQVzHa2L2( zmc75f&)(kN_<9Z@@EpJbko3bajC(*IxKPw}!}B~m&pXS=Pl5ZAegcf&iliOjX_D}_ zoB~fI_0zz_YnRjk?lAf`oR<*Tko0mQs^Y(aOOo2I>&DDKqfR8flXSUAt87R8V)T7} s0c-%bfEy&|J8-~ggKh&Kllwyc01@F9uraz8(*OVf07*qoM6N<$g8JGtoB#j- delta 663 zcmV;I0%-lu1=IzQBq9WJLP=Bz2nYy#2xN!=000SaNLh0L01FcU01FcV0GgZ_kv1rQ zQAtEWR7i=fmOXFNP!xurYn-j56H*{hAWMe)2zRI@CO#I(fKc~Bi%@pVPe_;$0$F53 zSx|v=t(5<O5t3C2Xd^MjcypS=5Z}o0N8AFBbS3Nf-1j}_<mM)@nhoFyaL{Zvy&wp} zFbu<1tK|U)z+>QAiAFAU;1w_hq*|?iisyNv@jOqe)v5pjoC5EG8)p^23;d2Zi&9Dk zgMp+O3<jc<(k21~!0j^ey||*q#!jb`5!ZA&ouq;8W_MNPOX8cGn-WD)p}}-I72CG+ zOfsEZO^yYSTCFC>$H#@@n(=rn^?E&R5&&0{25*xIl}bfMqfx22W;7Z}rBX?Mo4nTI z8^otYuU@ZrW^qlo+f5rx<H@j_e9>;V&n>QLx7%rx9R&=5TLA0p>$tAV+S*#?1T-2A z8jS`3zVGAvekLajL$<fKnM@`+^cmn=$~AX6j<cxLah%fpczFg;%aro}sGE7w<T#SC z<nz|n*3$cevCRO!l4#4atd(DXt|Fo+63epEBl=<hOSYC}VVb#(t;94<EXzuVeG~XZ ze2M@J!^myB=oBU6$-OZj4d4Uw`y)fY-^aFXY}=;a@0Z3?Oo4p^_zt*5S^vNr;D;Xe zbKpL3u_*iK=!nC^!^Lw60q_Dq8~g+w0Q<m&ydAFV;=1lxDxU!lffImg<fk$Op2Z1& z%M5rL7fRXypa<Mz{@ZX~0^kntvNTgfE{RCjah!<qJL*(K-igTNJgv;Z1yD-;QcCRs xH<|x683G;<#>-=VQ|<uQl~RwCQYU#@e*h{MSz4sIa=!oo002ovPDHLkV1lAyHIx7V diff --git a/src/extension/img/icon32.png b/src/extension/img/icon32.png index dc67de703889237c82275aac5e6575f772fc1de0..ba6fb23b0be9631955f904353abcf55684950529 100644 GIT binary patch delta 715 zcmV;+0yO>q1&0QZBoYa5NLh0L01m?d01m?e$8V@)kwz$glu1NER9J<@m(ObxK^TUg z3DmUMlw5>JDAYo|rD*>H$<f@^obqq9w_ZF*5ibo??Nz+y;!Q;;EiDBr9(o8Uv{{fq z!5;}FY2fv+yO5+ao6R=W7v_?0=6j#b&b~W~B;pKU4tN5*0uIXMa#K=QQnym6G=T%) zCGZ%?#O@n^!}u<+4YUCPDijK8x7!MJetxc%l@*2cVD4*RDKP*r18e{neT|jLWORId ztYOvbb!D^Jeh2|w;2AJI767mWd>v{gV~lFG+9mT)wOUQam|+M3d%*2j0Kk2qX=$Rh zwKb=CsMXa~8-RdQU^x;XxN@s`u~<~E*Bc4Y>-AKBEEc06a#jFf8aT2ooS&apv)LSJ z9_sAuObZJOE{H>5#s;uqTQD^>rJbFf*yf@3_xF`fr(F>10|3FJc43=btyaf254E|u z=>qr@-ii=l+cvRWE+;k*RjE{55Y@n&x&DxGg-udfLMj|BAOn894isHslT?n767UH8 zY>yp(Hc90OsV(qdBCh-79K%Y|1K3Lecldu=G(ZQqG44tQJ2;dvCJ8_%m1NZ<l>&a- z3Z+sB&-0>Q*8_6R^E{7IspRti1&&SFXf!7F1T-3r$W3@;L(Av$@&CsWis<zv1$>y8 z)A)LCfLY)NaI?QMYL{QNjvxQIl%y8$c0BNZiRg`_R{u$;%NR*_#d-%=ltc=Db{%-} z53l~Yq;CY~{YSFBxK}u8M6BNh(vtm9ngdR*5x@iT1D?8^aLd5yH2|Cdg-d?JKLilB zBz>A7z%E0_@koGRq$RCOYFz=KBk5_-E7`}Xq@1KG{uwSVKugk=q{UJFjVy0An~X6o xv%o{(0dNohAd?NsKY{PSXW%37PJY0R)L&fe&*VX-cbWhI002ovPDHLkV1g5gNc;c* delta 707 zcmV;!0zCbP2LA<+Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv1rQ zd`Uz>R9J<*mQ8CDQ5c1v3Di_<N;X2I6l$T}rD*?wWNG%=tnxS7T{kYIh?@keb}MeP zai=1bmK4E?i!K5RZ3ZL|@FO8429Ar#)i9l#`AF&mcawMSd(O?=d*(uP7J)6`IdD=c zm0FSpk_P2+xdog6&wz(OCPv>-)`0_mpbH34KA%^&+m)f$>uGayQ>H$8_64vujqr6~ z5BNRSSeZ;lXJ=>f(`Yo5&1T0<2p9m5f%&-NYrtn;GdYf<TCH|T+)%64<T#Gsgn(n< zR#fr3Kr5h$c6N5G;)d<*?H~gJE`W_FD-RSe6bc#+hoJ_B!=Va=!Xy(poA^9`a2hmm zd3jl_Rx4E8&~CT2va(_`@d0mtU1Be2!ra`P4i66_iyP|oy3*;i&BU%>d>!9zH=|mu z#uhhJDixc7U;bBd5cFWFR7xyvD3{AN6ICO=$XLjj;SZan1ca0s9Y%?{<uBU8CMlMX z67T@LY>yl^NwI{~K6oDy+k3Kq4nIkH0LLldw*N@{M^+u64_u2o(_8dE9LGswpr1-I zYnG&dpFxFUv54!sND3T&Y|pu_OR-qA>Hh%BCTupFGdlszW^>{uJPoq8w6qlce+*$l zuTLr9?aY+o^Tq)dfN#K!@k-b(pSF${|G5-iCcld1dp5irX#?I(Xh4jAq?@wd2Ufv5 zh5!xV>D4d#FHe9k{vYS@Zm%=R`U&%ofV9n74miI;11=DHzBho2D==^l<io@bHzmEF zp@AbNT*m{El$NwBsWXLvzNANztnWOEk({I|-kFVRpd)Et(rQ@$I3Mu^;688<xPy0* p$&PB@fv><v;2rRqv5=V-#2>3S6^_CL?)?A&002ovPDHLkV1n30L3#iH diff --git a/src/extension/img/icon48.png b/src/extension/img/icon48.png index 9a1779800fe78b7ea7a210758faef4442a58e333..e4c1f5ddb8775794f93881a263a019e04c2b9eec 100644 GIT binary patch delta 1105 zcmV-X1g`sm37iR#B#|^Ze*`H>L_t(&fz_J9YaCS^$3L^#R(7LM8de(;5Fxd>6$wV! zocsrt6c0sD9>khx+KUj64U#|(t<{s@A*bAPlI<aQ$f2!n)@4tY2;vgaDs5;cfe^!f zJ<LqqCi7<A%xpIC3%|?EZ{P3xoj3cwzxQ^LMAiT<0Ph1|0e1_9f5Jw+UVkEKU($ZF z*?dwg7B_&qe$IQqg|5`jKzabU4*UqHGnST?bQsIa%Q~C~`~b`V13eP}3<Gz7-4H^W zo}NBJKETw}RG0_>JHVH~(6I>s&Hy(6*FZw!<Kx=f+cOH--{057#DqzN{D*QAc%iET zfJ;ClqOeM(l3J~nf02BER;#5_sT3tbz)!&IT@e7h8}-xy<#IVytJPTY0ajO6)z{Y- zCt@48l1TvY0q{>uAuTK{Sd$MhKR+KQK)?a;aVi18HH!kOR4Qt>+ld9V+ig`U6&n!( zW)cbTUz>xtfk#G0w6(RBn0$ck?QM;Yj@r(|q?G_*1b7-Ze`ujl(E9p%YVrY^&8CXQ zqKya_7>yJFoQ+#;f(SFKv@n=lSk!?tQ35`<87RuE(jvm-4##Jq0)QbrM~oaG&aBeH z!sI$%rNJ-(cj7*5YgTDtX>tN?JtqLKF$?W&f=FssX<=z{JNOM?AmDnO>NIAR7M3RW zNvD7#Epcb0e>JPLur#>`K6eIzwka{IS*3-A$+dx3z}rcMCKZcCH5!eclMm2nG~!I| zY94qC1IEV2s8*{~t5s7<C}wA8L$5C`E+!f$;IOu~X1e`0c>7da6R`>tx?KnOE{E6q z{9kb~2b?=;78!6Z2fTRFEHdDw+(|RYiaeezpN~r%e;yuYa&nUX{{Ga(Osi8Tc6WDK zSy^FobJJ!>7vL9SzU}35S+48$Z2fm#SLJfqW)<21i)FM{tM!b0fLg6)y^Q`GH&2%@ zU$&XfuEMhB!yIrwE-RnUXC{;smNoA=cn#4XfMd#%-}Utxj$@<*-YYbim-NVSoEq?E z(gLR5e<o=!WV1Sj;DMw^!PA|gi@nWp=ld}&2}cr+;|u`50ilb$=@l|f@p0$lZGT^t z^f>1a@EG{klzj^EjnCPe0RYEwhJc5J%)%*~0T=J+{ZD{ry^y5efiFTwI$f9x$b;7l zb>cQ~6?h|4g}J#bACE#E`1-jkvN+sLxk_|<e+TCRmyYl~e8CrSg^uI(Qy|~~sDyG2 zyXcGf=#&U(10NcBnr^7$C#Dk=Z~$D3<QR3+7cnVm`ve3$HN7^81o&}LQoV-))+LSD zaI+PFq`agXowIQa0(K?clyugXR}uk13`)8!DfY*Z1Oj#>-IA2}4<Km-1Tg@7ink#$ zM;;DGL>st=cT9dhEstltP!>3j^D^)b-dW`+@ETC!zcZ&D;BVkpye;f~;Co4bWv%@$ XHu?I`EZ?Z_00000NkvXXu0mjfy5s%^ delta 1076 zcmV-41k3xJ34sZaBn<>}LP=Bz2nYy#2xN$nAv}Kr{z*hZRA_<Kn$K$^Wf;dlP2);Z zg~bxJv>-xPb1PD;lAinrLY6%&dfJ1i?dtADsK+hRLJzyHo&*m)_1=?Y55+?dyQ^so zIk{92L&ab0md!L!vL#;+lVP*zyqR}q(j<Q1y(G`P@AsQ`=6T-toj`wh75D)78n}~6 zrS^Zz<?<s*O-apawfZQXPVWPE+A;69uNf+nz%}3}K%H%Kb5q@HZEdML4)_uHtlihZ zm;r7B4Ie>TUS2*W-eYNL$<Ks<Bj77w`YeS%2V4gng9t4wEa>?7*l3{HY-(|F(PTpH zALRz{e80uN2~>IvtV|}OTCHXj?@_DOl*xZ&dYKULGw?>g#9yMvuMQ}YNT^sW28#FC z+1b(f_;`?sI&d+r_$$DZfPu8WzHTkvV{L6M$bf(o;FGB0KeiY^`FvijRx7lDR;#6a zK5t_}xS1*xm)h=oc04;ftHZ;?(BeJn^}4dztnEw`Y{kz4kApf*rBd44+lwsTqgsEh zDxFT-m~en>koa>1WE-#f6|1Niikx37<EC>XU)Xfit5`*)N0IAppPR%_<5t9;9RwAt zs8|%a&Rc29&%o`Vi*1WlR4j{}fScXoCo!yTycV`tMa8nn9nrM_ycXm-O0kNHWs$qu zY2eh7xU)qqR#CAma`!#)Q$WiU7`J~|Ma81XwSZT^-AVZdrPFCuDwTnY_o!4VK}GIz z5_qTkiT0SEpQl(XQY;otA-=4vtoVMuv9S@VA5X*X?yl+UcfsAK+7=P3W}@HY0N*EY z*FOJOE+l~S!&VW4^9kUEVXKJ2i-}<?h)WW;EWZ>KI5RUtp-^CAVj}WjrtE*zNu$wV zdwZLMg9Do`9e`g6c-nKhoE*m)SpIh$N4Z?iCJXI@MH(%YN&^$`Q7V<J)95cj^E5X% zXEU9B#d6FC3E*B(R5F>2EhsFOW8NLZT@d{VjG3Y&^+{GZ#>R}2z`cd0lEB|U33xl~ z0H(D~*tL*NcJkpqu6DpZIO>1f+UBg|+ie-1-ZqoK?|^TTH{C*}DL(6X-0kmcz(cPR zKLoxrMUNog;%a{8!JP&k;4=#&HUkds(feNjook^#fG>S}8ZB07iwAct)X6R2GVoTc z5mr~@T;7W^@J&$Asl(lfS)$)NI0yGlkrfx|I9?wC11CV<R=meYBVvD`1$-D*yvG&b z$q)^k;Jzt}ML|-12nHS#;kNNb(gjK70UFqo)Zfz*Nl8i9J7?nz3^XL&kaVuE;=7DY zNxCH|@MTB{14oi>N*dfBKqO59pW<$ajEBQLS_`-fT$L1fs9>V!jv)ju1MlIURc3+L ufecU2oQ{Bhf!}bqu=gB*AAo=24*VZ$44mnU5<Efx0000<MNUMnLSTX^Z3zzm diff --git a/src/extension/img/icon64.png b/src/extension/img/icon64.png index 6f0d9561a0f09f00b0801e518572a64d87834f5a..7a92b4c7db1714ae6b2ce06e63b25c5c3e3918fc 100644 GIT binary patch delta 1378 zcmV-o1)cie3abl{B#|^Ze+4*6L_t(|oaLKMj1)x}hM(%Nd)gl`h-A4aXm51%K-BAo z1AF&BqlfXJ@oFS2@dEzb2oc@&Y>XkS2QmqXdeRFkhQvVpS=k7QBwolY!T`gZT(Yl+ z>Xv4inXan&>0Nk|FWJm=b$#Ev)!lDZ*C2_02Cxly1^58?8aP)jf0r*ws!RGeiF&0{ zxdfa8=7B@N%fPn2=hvsAp9hWti@++NG$tn})o3)dmS(f5QmLfuu}RxS;1l4vbu9oe z2J8ox))eu7jEszEX=&-6;!`eOyr}W<@s@3qIG^+}x^4sj9s)iB>Kzi7F-9j&oM>Bo z%E^-_WsK=0f|9;Ie+0G^CIDc73UDPSSphn5;6QHiDKj%Ox#vsb8t^U<4O9T&ao{J% zB(-PH9<8jbI16z5_H9j1PrHgB;54vnAOZj{0@q!Wo0ynTtyXg`KBZQxX<}l+M}!7Y z?wbHW1bpg|kcNhaw6L(?U3|)!GiNkBJnSQauulx<OTxAIe_`zN*(;g3xw+utQ)Xvp zeFYG392n|}07>!R`6f{=m%A=LrBbPci14k82rhT}uY5Z%l}c(hn>`btjY)Ee`Mk>^ zPXMoL9`emjC=Mp6T^tD#0C?56Ggq?{ila$t6|Z{<0PF&8_;%!Dc0%zmN!hpo>~s<! zx$d1!P8z;ue<zdxla$5+U|a-v+xO(#w{O?w%a{9Je9H3jvUcp)5hB8y9R<KnZ2s{% zX}4x4lt7cT3~cTsz{kF-_QLFh5@?bRwG;q5pYJ%OT^qeLJD~)aq-$i>6S4yA_c>9! zm7PHoXp;7+g#e4LC+L^i2_?WJomW->>>8d^<9?f+e^3HU(r#r0IO^JP5N0P7Pm^>+ z83F!qX*4La6N;xv`bD;Owy|dEx>ba(><k)@m84Z*E7+G79S<(b?1bWBl3v;bJWUQO zD=SP*P30Ztgpy&`4r5GD`f;Qb0h5F5ah)+40Z$a2MS;W-$&KIvWorbC7M(?bj7Gpn z(ODG8e`r*621OGA&7zYikXsRO%ePe=$5g9T8jXh2o26{z;d{PDqd~P=C641D0RYb8 zF_(_xSoL~+V6M)UdcCeVj(sLW0)7V1cYf7swdh*gQms~f1vnM~7ktLd-o1N$4j(81 zxm}2`Q(<Su#>RX*85jY%oj2I&a1HxHBo{f{f5?i&V=}c0JQ7K|g57=fpz)ietEmzC zzR*;P;Rmor2<(%fCm3ToM!(y8Fb|0UlFs6JGu+@TN%|G;i~z7ZK^_#oNdGYDUELTn z3j7Uh>C`gsDUdfzi*Ap7{r9M(TaXz6$p@e3wZ0GdEG-@~BLKh{vjyu6A8yyW=>K4s zf9;onNl7=;5AIqIkaQh*zhe&@o0)9!z`fH?tRp;4n+Zf7?b@w__NQpEMdq$cAjKH7 z3;XMh@wMOe;3m`+f&JeAo|SZI?H4VV#3cQN-79pz@K&qhfzB&1*p0_M9m3s4K>vq3 z)|exJ0lwV80vxBCt+I&-Lu58fZy*7_f1%sW(isspVeR8a5#X3h@y-J1&gF1qoeQuE z9HzzNu4@4@@q+A+9@m=yHzmF1TTh4pNZKi><&KGh1UMz>v5;Cq1wfLKRFSk?pa9n- zy_4h;R7W=gq_J7jp(L3>32;@?K}qA?=HCke(ioAn562y6fw3s*y`-<6<lS;ESkNuT znBBk|z%=j-Z7jC~tHAHrMca8L%UHdnF9O`vfiYWwDc~vKNg&2<%iqkMy$Mb1gr$yM kkN6Y2RR5!-tNqOHKa5K@!53IIegFUf07*qoM6N<$f_ZC@6951J delta 1299 zcmV+u1?>8(3*QQmBn<>}LP=Bz2nYy#2xN$nAv}Ks+(|@1RCt`_n@emPRTPH5v6`&% zY86V9Y@mgSz$}Q=Zlf%cJ(P#c#%vH<MAbxW2#+09EhMZFs;ZVnWGND`f=vS`60{;H zB%)bVViVbrIIZIqPV=)E4|QDIGxyq_vD;5NQk2Y{d;XId=fC%!K>Ilfyb62(d=1=6 zrBZ))B;_UjTaJ7>oxTIy0<Ht|z$@jkUCCMCGO!LD0`g;gd|ZV>LDdwCMJ1C-RbE>j zyAE6e&cvd`fC1nFu*p#o|3_b6pEfr)9}@4gwY8<e!NHni%dt_Oqd#(W4LAXO1mvlo zxE#mP($Z30@jlDT%W@p2Q4v(0>qFppv{HYM;s9yjZyF~nKy!0*f#Q8;XJ-TNSB_oa z9Uu{*ZUCMEeh!(WrlzJ;DwRSP;NajuGcz+`iy+`9;B-{tUk3KVCO0}ds%$nJTD(s- zo7L#(s7VnDK&qX>6ToK%38|;2M=L8U#^QZeS69{B+iOw;;r+#E`76<j_xIT-nZ<v_ zMQias3kwUT1rTrz=xL?+?@W_OrBY3c_erPIHbwZh6-97>E2fhtlSvhe#g-MIj!6m= z*J<)~FnZ@9*zDL6!X(v;i?-rlGo37~*|8<0NvaiZn2J9Q+%=uZ#O&B&V3I21E^sQW zcn1TM<A<r)vBkn9`LR;g7RXzsHy?i)8PWFkcH71K<Z?NUjg8q9;msiNCxCxUZrZHb zvBlCP<$$3^1^C#ss;w|Pwpf~^`Fi392w2iqM=Q;aEfywempc0i7ffzcZ)YcJEKSn+ zS_N1SdxLhF9a}6+(nhuTvtb9f+w9n4VUi{)3vfB?z$na)ErurPh(-P*%%Fd$%#JOF zCh0d{{7I^|u4{$u&Q8=A>?9om!{8lSG`u)2vtx^aNji57c!2;)r4o~qlR=k-LQ=z@ zJ5DIO-YSv_U_8nhJB;xJ@NC>!#E6@q{6X-TGMu2p&e<ZSKLPZ`okfiFM}DT(X(WJR z+)2d9egfDx9p$<%nM{U4p@4rRqX@$EeuYATOeTZtx>f}MxQW49+I3y!^ZCeJU0Cw@ zyj<5cSqusI1q{#pGMP-=TI-U@WK0WiH38f<d1j`kr%f)86pP$$C-9cSp&1w$Fr6ea zEOOg$@Rq|_LLM3@#0OcN7%Zj^fhQAqJw6ZZkv#_d4(#|w==(S`iHUz7;K5^m2KY71 zsGwIM=n;&2d<7H0n*Rjc#PGwg%h?3h;Ar>6m3VTAg)jXtDxa5r;4cEYFXMiMTks0x zfu|_j;L0apANV3@^drFMRIGoh%XJ*j89q^OblkteCdcRS_CW9X->BXX*aO~cI74?c zONID)IC#CcH5U*;)Ej@-0po8F((OWnCaGoxG#i%l?_tm+<x}&-s7niQ&Q!e5rAMFu zpV*2A@16Ooiwkg#7IcpHP|+;iMFseV7Iusu!?TawQh=+i6z}5z7dyNFhj{ON`;M3; zy(I6S9y_f7_awdEHsMu8I3=lO$3#p8xFPB3NW}X{awMfC<zjm*z^<gXB}Lj*aRf<2 zlIF|FL{)$tN$*P<j816)lKLc_CuGN&WvokjS5n8HXiwnv;jIDpu@`(Fubu5v;Kg<% z8pXRa3`_#g1J402UR(YU4|)@dc#E$*-hRZNcw6;90z2(Y?mv>!iPNdYZKMDI002ov JPDHLkV1l&RZaV+~ diff --git a/src/extension/img/icon96.png b/src/extension/img/icon96.png index f952d758187abf753895e2aaf38b6c2315d54a5b..641ce897baeb54b0caabff869978ba4295d21506 100644 GIT binary patch delta 2223 zcmV;g2vGOI5Z)1xBoYa5NLh0L04z!X04z!YcY1V9kwzzf2y011K~#90?VbH^97h?) zKXbJ?k*l4QzF3$dwLjoQ5y+sXRjM{ZDwQaN))j6PDx(yd*8KsT{0#^pg*X+^Ul2kd za6!04C=>+ZwF!lQNt5W>25{2wA`&YiB*MhGBsR%?`C<0ljeF<Yot?eC^W8^!B){y= zJo|iiX7`zYo!K>#Xhw`NtAPPvEwC>5`Q1Z9Lxp|&_7#jVHvxrU^OB_hY~8xGw0G~` z5^xGQ0ZaqOffJJc+xVl1fTX4{;6~s<U>9&0xCSU}0|Nt^ot;%J=H}+Ke*Jna-7m1e z0$&5R05@fQyo<-3anRQQqrl6+)f#~lphBUbW5<qv)eL@x>FH_p_V(5+C$Ou)Z-A$P zHEksTkOMXYF94V81ZvSHCMN0zzry6?WTY|!yBzrPQ6RTs1qcHFFmNPBa0F=Q&Yh8i zUt!0N9kJ>N>=>{O=vpxX0A0XSz)6RIXye9>nxCJKEx^LUf;Mg1<RXHAH-PPp5F+j1 zZvb9@aSVd``ucSG^y%2auW;tf8TI$~yNV#72;A3l0s!v-zCx8dnW)y))ujUm4mbzD z!oh<F)!p5lM1(Rh0o>LS0sxN!=Mx;T0F952Ck}pv-Me=u@+Giyz);f)fbHvd1!qj6 zgB>0oR=HgECP2Ad*6{GK4-v{i%YIu^2>{%G2^{ipfOV5CSL!5baqW-59Zews_CkBs z$ALvnwp@vrq(!y!z`dCY06YL(@N_`2k}X$aCTaETBJfZq0stQeuJ}3_mt@No$0V(m z%>$1+$I)pgc$@^cm`lwy*>WXel2*;G0iSS+r9<#P<nzq$>+93Z%uK_AUtwluMtyyM zeLh8406rW$p0PHDyMZ}hPWwu>T=9^kEwvIcFU)a*e<$#7kIs5cwp{U)q=oG)F>X<# z2EQBly-!DnhK9T*TdtJLWo_BA#kUBDh?uNJ72wN09ZW0Pa>a9!R<UR0Ljd4oco<%& zSlY>!E1r`y1u=V6Ndy3H#lyf_*cy?4Y`Nk&NfUMe?-nHx;F~@jYGktIisvLvz}Mv> z0C1nruBXw-mMbYGX*F+6YX!dx`!vXl6G@+JH5w03(w5q5)OfsEOMs_+Ri1US<w^=k z+LMYR0B{3#R+*QI_w3n|SrC&lK0fYKfRoi)K{WwJd{x>k$(AcABx!FMHC-Bid;`4h zqq1g8wp{U?r2UB{lfRY<u-QjN&6;ev;yFqCh?WuH`#vgZ=48tik4f71R80V2HE=0u z1+9>5x#B5FyG&?8a9Dt6k`~@7$(Ab~leF!sBEZW@3T?Gy%N0*a+J1!v2)dtT=jShH zt(t7P;vq@<AJD6i0FNY5w3U;8Emu4wX`2-i;7hIr`JP7DDtMUgxJMxYUUeyCr6gOf zBuvtd%Eq46I1D?lv}DVb1WDR8pvM6BU?-b4H44s_s2F2X^293}a@cja9kO9<M}TbU z2#_&rbHKZ@_M(lsJqPq=?L`~Ylf%BFp+h$G<ba;6y=Y@PEg)lha#?$S(C*~03(Y!Y z!(0x#;-y12%z1AC`Fx(Su`#BmrYMz4b*H~awYd1Iw^S-IH8sW9*ckbI-e;&FIQhM; zeChA+SFu=3b@VYyip8SuIitS=*z2RPd_KRTgI}RoEGnPR`x0O>hkdJHVn#<t85|t+ zQB+eiI5^1Y=%}yaj(Zb-U}R*(M=>pd$74P2?SV|GRASYtRmojy0WMv-M4?cqzhQkg z80=u&EOuh9Gjh07X=OY-aVrCBa*{4!XGC{sEU!wMs|-cFl&LH2$*;i<MF8y2(2;g! zKY)=`c~SOx?D8ZhI@f?$Tm^2HbRh>I`)2WjJ{;>1iQfj-Uc$qF(cf*P2gaCK)@<b` z<U5OgR=SR$8#)8L-KE61T~OSEZuRm*TmjxGX%<2)An1mE>{@Dv$o#Mpe7L>~0{C`= zooPoV!oQes(=)bRy#~BDZmF%_MKq`j`ZMr8N#)8Pu4@6ZUhHxyxkDsA9}Ye&X#oJn zm>Yn<0Pl%Ya;u+zp$%vOCxLa6u7&^jmRS+O249R@dWX7vVQKK8N(+F+R&W@2f7H@j z{R~aH{G-4<)dZ+IFDTgX8SId0hh&t2&sGaQ)DQqb(jnkmDLK_nd_&S7YW=fn7qs|K zV{XBIjqc`pwX}E_kyiQVuovF*wKiCGYNDibz!TUf_?gmw<YPP45b)G;!G}5m07&`? z_QkCo;_<Ac7wc`bY!|e+kulxaPygLpYnuiRW~G8>{|^D1BrVh}Cu+sUm^*@kZ>{$K zjsT0C1@4yg&nV?Yo}Mo0AK33Lb|&-IW)AyCtVqF!7y<xDI*k2J*nCXK+JOb&F-b?` z>=b)}hNPE&fKSm$(!!L1ZIXTwcSolcGLj~-A4b07vi}NW0T_|=g3Hd4FTz!KHs%3f zAC;F6#oO1p-ZXIZ|01^A`MGPoi3A87xeNHIq}yWdm#ALfI0*1B>`Rx9B&j#?BE7(Y z4cLVq?ZPYAH=-vBK6nrSK+-ATgTUul*%xO4&jI&;OZvNy0uy&ZRd@vZ;fG}h@LI47 zItM(7=b0mEtP}nb_HpKOtc=zm;CWy@DNNf*qXmSy3-~Jb18~<@+!`&Q2z-VVuWxCu zls|$Uz}pVIk#b!=IRSi{M%-M;(|XznmXq|bq$9!fm!`6S*ClO}RP}QsX;|7_P&Ewj zkTK?e3G4;iX)dZqE(0%0ngD)AgC9O+A;6oJ+X=ys0iOi!$9_Dh5nRPCl71fef$Y54 zOvqG#Fvgey_ImMPU?0HmHR^A`uLAp}LK9@Oq-g|LiZP}K`$EA1U|sO@?b!Dl-3YAV x&37GL#IE$b7}zQ7g>)Lb4*G<orhJa^f4+qh^B|KjIm7?}002ovPDHLkV1mWiF^K>G delta 2064 zcmV+r2=Dja5y23UBq9WJLP=Bz2nYy#2xN!=000SaNLh0L04z%Y04z%Zr9GCZkv1oP z2fj%}K~#90?VaCm9Mu)aKfAVBHH%}yuN5vx@PLCNkc&uB3d##bDj@_TOcYQgKmp84 zo%{<(Ri!pgTX;kWL@f}8JOqhHekA-b7!zP20i2Ll2x0|7q9!=&U=#1@!<`MA&8}zW z&Y54{`AA2yz3X$&oHM_^ckbMqBf0c{0DZtp;5z5$s|E%Jio160D&}&z6+qGXZbd}? zw`tR+%FdlTE5LWaL0}3v;QV|t@-0Xi7Xr5fe*^Xc3xL#HUtgb`IB`N+F*7qGt5&U& z#{YBdKfu$#MqowcTbEES0)~KhfHO2toB&cR7G?kb{VkJUV`^$jmM>r4(vM?*XMneX z$DA12iaf9$co{g&;)yzIqobp)$*(asHs;BvW2c>1?sQ^XvgCmcz{hw`jsUW4+cwY1 zud#LOR$py6wjX#9=!_&I5zz@e3LL_JLS)UFH8M9h=eq#&^YgNH?OK~62=F!V2uq+4 ztAUTOOM;Y2B{_Wfu<zv8ICA8Fi1haM+7>~8GH`1Ic~a+M;3=Bi$#}KS&Q960XODIA zYmASNOIKG{kRnupQQ-2>v!=v7z;Wz1SO6Ir83~;H8r!#T4-|`I$AE#5a~FtC%sqUS zfEznFI4IR>RjmNkYE=dY2Q`XN#T?legqleUt^p<qzJab{%N7@r=GQ)d1g;J<p?+8m z97SQnyoxPbJc=~0b{zOasG0S^ZNN|HY>+RpWs6Ud=4PjWJ3`FwqTCDo>=K}7vk_ai zSc<e(HU~TqVxF7w00C|>8_ia1*%DBsHM0fa{t)wh4u3>(&o7lqGCe&VS@LU4Pfts! zRMITMJn*Lw^A5o8ff=oTptZ!7Eeay7(JF*^VZH|VQ88Fmv1N;rNUOJ_gm8=61-!2r z=)k~$s@SrnTCK{)jT^O#Fp08Qdr~vNu*8-v$|9|1|IkYQT_|)f)GTbVWs9;%6DMc) z1Wo>BD0HmVTNGl;7G;qpm=3&4gB0L7&48j5Tec{RGy$HmP5!NaD4u$v7F)K2B+`7} zns#EI2B`!Q^vPD#C_G7Pw9oPRc=Iu>#^V-SwuB(kws=i`2WBLhO2a#L?1(#;){Kmd zXcpiQ9*=^}T8$<}Y}pcmNOSEq%>nx~8cUkkvPD^>eSyp1uk{)YB~@(MqAb$ZEmnY6 zG#W{=*s?`Yq`lOCD)~LYY|sYMAhv8#5^1MtF(CNypw81Gwro)pX^%83z&k;lrcG?w zq9oFGHzvOam+|?FSz5)GEeay-7hrjP0qzb`(KL%KTNFgv`uYO=%hr+hFv7H;Fx+uR zeE~kRak5mzmMsBA+9$Q-_h8ZOywt>&EdfN@0??fUZpI9MHcd1l;_LglTrQ+YR9T(J zyoZ|+4=b|*#7kCym|2+zej9fbZOoN<8WdSZq;%&ob2MbcLw6qNjysArCOZORrh7?G zPLT%km>115;$bF_dE+G`9%j^!fI^|b@bEAb6BAS_6+}eE{G!!vrBY#HVuIn}VG4zU zW~#v1`PJTkeCh4&m2$ZpYVTv5l*?u9F{AGR?9^~pC=`}-@@tgKWhoR2S_K%(V`dc$ z%+Syf{r&wKt`bdue?LP*Lt5?*s1;!I=FJ*zQi0;O9#DHAQ>j!~wrpAOkW#?x>@3A% z(fy0=tj=LN<4#}(=2{~bcPeQ{;fY%nxG0aA?POnn;D|E(@)?c}0C+3TNZOP);n%V1 zyJHNbUD*x4p7(n&?*n((ddsc>zBmJ10{m1v0!{+sL4(Th%)6Lt?>Vo_yclH!xm?bd zCCz_8UN{?P-5+~^BfxKLJo-Ha`Q7NW`>*3?;0nyG|2ap%N#HeGuNj_s6({*{{u_J$ zjy9Hmwq&&am&W5Lhk333dcR)Neu{|b6!ax<14ab{=N|!rnSMAU9R5OG@}YVEPY3W7 zaIGKDY2QO5I06n~79(1y|6{XJ5evZI{d&)E<*zg(A6oZ-c3@UA`khzrY2QOb_Wuc{ z+yA@*v>F$*fO&7Y+T!yJ?^J<5(<J$@_{0%^lfd&K1k`Rk3w+S(L$~ATQp{>}m$<c( z@>4`u{*PfUyvJL8!EI>bG2kK0?P;teyl<x&f>}MPW%B*-Ph5sr_{Gg%)D}YgBVH2g zbyw-aEdAGV_P+=_vqC{R{z+ghW=8eJ{rG6}YRB<q%|6TuaF(N(S?0g>;>XYM^lvbK z>n&!3d0R7snGwrV^1=V&m3uMsA<y~zzjk0AxR1Ii2*Tuk8kR6=^Na8Tuql*GFT%al zEl1nN1(+kk^<x^j4f7<eT?;Tn1nb7QaTD-E8y4VuXWJ9ORU$IpMg^F}tf`Y6M5I$h zo)D3RC0u~2h&&}CiCfI`EFyBZh#Xsgf(7_dL^gz*JtahBg|nx$JQ_$q((BD-uOAhW zrab_OMnrBBk;xPn;8PK~CEP59jEHoI$QBVfn4$t45Rr#P#CouD;t-L%h-?s%j}u&g zeIoLpi1=D=Bvpt=PDIuLV<=1(u3)pkOCqvPM3U7-8v#9-iL7^Hrt^&|>AyH*ZEkU5 zh>avwyoh<=bGu_V;=i|cG5!m@;n?fc4UmnKBo&~MZp?&&eV7N^D}gI9^BY}=nS;MJ u*U>3VLQgsN9cCe-Da?D&2TAC2jQ<1R#W9@MVl=P-0000<MNUMnLSTXc#n=x3 diff --git a/src/extension/manifest.json b/src/extension/manifest.json index d9d0cb8..717b7f5 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "110.0" + "strict_min_version": "117.0" } }, "manifest_version": 2, @@ -31,7 +31,7 @@ "persistent": true }, "homepage_url": "https://github.com/regseb/gout", - "minimum_chrome_version": "110", + "minimum_chrome_version": "117", "permissions": [ "<all_urls>", "activeTab", diff --git a/src/extension/polyfill/script.js b/src/extension/polyfill/browser.js similarity index 64% rename from src/extension/polyfill/script.js rename to src/extension/polyfill/browser.js index 3f03e02..861caaa 100644 --- a/src/extension/polyfill/script.js +++ b/src/extension/polyfill/browser.js @@ -4,5 +4,4 @@ * @author Sébastien Règne */ -// eslint-disable-next-line import/no-unassigned-import import "./lib/browser-polyfill.js"; diff --git a/src/extension/popup/index.html b/src/extension/popup/index.html index b02dca9..781ff63 100644 --- a/src/extension/popup/index.html +++ b/src/extension/popup/index.html @@ -23,7 +23,6 @@ <ul></ul> - <script src="/polyfill/script.js" type="module"></script> <script src="script.js" type="module"></script> </body> </html> diff --git a/src/extension/popup/script.js b/src/extension/popup/script.js index 76a43f0..ab75c43 100644 --- a/src/extension/popup/script.js +++ b/src/extension/popup/script.js @@ -4,6 +4,8 @@ * @author Sébastien Règne */ +import "../polyfill/browser.js"; + const check = function (href) { try { const url = new URL(href); @@ -76,38 +78,30 @@ const set = async function () { button.textContent = "Mettre à jour"; }; -const init = async function () { - const { dashboards } = await browser.storage.sync.get("dashboards"); - // Récupérer le titre et l'URL de l'onglet courant. - // Attention avec Chromium ! Quand la popup est ouverte dans un onglet : la - // méthode retourne un élément, mais sans titre, ni URL. - const [{ title, url }] = await browser.tabs.query({ - active: true, - currentWindow: true, - }); - - const button = document.querySelector("#set"); - if (check(url)) { - if (dashboards.some((d) => url === d.url)) { - button.textContent = "Mettre à jour"; - } - - button.dataset.title = title; - button.dataset.url = url; - button.addEventListener("click", set); - button.disabled = false; - } else { - button.textContent = "(Impossible pour cette page)"; - } - - const ul = document.querySelector("ul"); - for (const dashboard of dashboards) { - ul.append(create(dashboard, url === dashboard.url)); +const { dashboards } = await browser.storage.sync.get("dashboards"); +// Récupérer le titre et l'URL de l'onglet courant. +// Attention avec Chromium ! Quand la popup est ouverte dans un onglet : la +// méthode retourne un élément, mais sans titre, ni URL. +const [{ title, url }] = await browser.tabs.query({ + active: true, + currentWindow: true, +}); + +const button = document.querySelector("#set"); +if (check(url)) { + if (dashboards.some((d) => url === d.url)) { + button.textContent = "Mettre à jour"; } -}; -// Ne pas ajouter d'await car addons-linter échoue à analyser les fichiers sans -// import / export et avec un await dans le scope global. -// https://github.com/mozilla/addons-linter/issues/4020 -// eslint-disable-next-line unicorn/prefer-top-level-await -init(); + button.dataset.title = title; + button.dataset.url = url; + button.addEventListener("click", set); + button.disabled = false; +} else { + button.textContent = "(Impossible pour cette page)"; +} + +const ul = document.querySelector("ul"); +for (const dashboard of dashboards) { + ul.append(create(dashboard, url === dashboard.url)); +} diff --git a/src/module/audio/audio.js b/src/module/audio/audio.js index 4370265..a96d321 100644 --- a/src/module/audio/audio.js +++ b/src/module/audio/audio.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; export default class AudioModule extends HTMLElement { #options; diff --git a/src/module/clock/clock.js b/src/module/clock/clock.js index 3f1f44b..6c3115d 100644 --- a/src/module/clock/clock.js +++ b/src/module/clock/clock.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; const animate = function (time, center) { const element = document.createElementNS( diff --git a/src/module/icon/icon.js b/src/module/icon/icon.js index 037ec16..ddf408e 100644 --- a/src/module/icon/icon.js +++ b/src/module/icon/icon.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; export default class IconModule extends HTMLElement { #options; diff --git a/src/module/iframe/iframe.js b/src/module/iframe/iframe.js index 0c94760..ce3e02a 100644 --- a/src/module/iframe/iframe.js +++ b/src/module/iframe/iframe.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; export default class IFrameModule extends HTMLElement { #options; @@ -24,7 +24,7 @@ export default class IFrameModule extends HTMLElement { #display(item, empty = false) { const iframe = this.shadowRoot.querySelector("iframe"); if (item.link === iframe.src) { - iframe.contentWindow.location.reload(true); + iframe.contentWindow.location.reload(); } else { iframe.src = item.link; } @@ -84,7 +84,7 @@ export default class IFrameModule extends HTMLElement { this.#empty = this.#options.empty ?? {}; const iframe = this.shadowRoot.querySelector("iframe"); - iframe.height = this.#options.height ?? 150; + iframe.height = (this.#options.height ?? 150).toString(); if (undefined !== this.#options.cron) { this.#cron = new Cron(this.#options.cron, this.#update.bind(this)); diff --git a/src/module/image/image.js b/src/module/image/image.js index 2d49b0b..cdc4a52 100644 --- a/src/module/image/image.js +++ b/src/module/image/image.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; const hashCode = function (item) { return Math.abs( diff --git a/src/module/list/list.js b/src/module/list/list.js index aacdf0f..335ca5c 100644 --- a/src/module/list/list.js +++ b/src/module/list/list.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; const hashCode = function (item) { return Math.abs( diff --git a/src/module/podcast/podcast.js b/src/module/podcast/podcast.js index 9d5344f..2f02b09 100644 --- a/src/module/podcast/podcast.js +++ b/src/module/podcast/podcast.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; const hashCode = function (item) { return Math.abs( diff --git a/src/module/single/single.js b/src/module/single/single.js index 49b8b57..422fd06 100644 --- a/src/module/single/single.js +++ b/src/module/single/single.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; export default class SingleModule extends HTMLElement { #options; diff --git a/src/module/text/text.js b/src/module/text/text.js index 130b56d..8c46e03 100644 --- a/src/module/text/text.js +++ b/src/module/text/text.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import Cron from "https://cdn.jsdelivr.net/npm/cronnor@2/+esm"; +import Cron from "https://esm.sh/cronnor@2"; export default class TextModule extends HTMLElement { #options; From 2bd2fc6edddce4462fb28f0f502ce2ef45d3f4a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Sep 2023 14:27:21 +0200 Subject: [PATCH 07/38] chore(main): release 0.9.8 (#11) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(main): release 0.9.8 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Sébastien Règne <regseb@gmail.com> --- CHANGELOG.md | 9 +++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/manifest.json | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ad4c6b..cd3031c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [0.9.8](https://github.com/regseb/gout/compare/v0.9.7...v0.9.8) (2023-09-24) + + +### Bug Fixes + +* Corriger des fautes de français. ([ebb3cba](https://github.com/regseb/gout/commit/ebb3cba7bc03a738ef59055d857b2673dade3e32)) +* Corriger le nom des classes. ([c91d0fa](https://github.com/regseb/gout/commit/c91d0fa7befa9582dad35712b2a3fdf630183f31)) +* Gérer correctement les async / await. ([b017aaa](https://github.com/regseb/gout/commit/b017aaade74a678200fa4a8c597463fcd6296c33)) + ### [0.9.7](https://github.com/regseb/gout/compare/v0.9.6...v0.9.7) (2023-03-10) diff --git a/package-lock.json b/package-lock.json index b4542b9..0cd3276 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.9.7", + "version": "0.9.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.9.7", + "version": "0.9.8", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 61f824e..73cb791 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.9.7", + "version": "0.9.8", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 717b7f5..51d2e0e 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.9.7", + "version": "0.9.8", "browser_action": { "default_icon": { "16": "img/icon16.png", From 402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 8 Nov 2023 19:47:56 +0100 Subject: [PATCH 08/38] fix(scraper/icon/ping): Remplacer les points par des "x". --- src/scraper/icon/ping/README.md | 12 ++++++------ src/scraper/icon/ping/ping.js | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/scraper/icon/ping/README.md b/src/scraper/icon/ping/README.md index 3f75603..751f260 100644 --- a/src/scraper/icon/ping/README.md +++ b/src/scraper/icon/ping/README.md @@ -41,16 +41,16 @@ propriétés suivantes : reçu du serveur. Voici les couleurs par défaut : </p> <ul> - <li><code>1..</code> : bleu ;</li> - <li><code>2..</code> : vert ;</li> - <li><code>3..</code> : orange ;</li> - <li><code>4..</code> : rouge ;</li> - <li><code>5..</code> : violet ;</li> + <li><code>1xx</code> : bleu ;</li> + <li><code>2xx</code> : vert ;</li> + <li><code>3xx</code> : orange ;</li> + <li><code>4xx</code> : rouge ;</li> + <li><code>5xx</code> : violet ;</li> <li>autre : gris.</li> </ul> <p> Exemple : - <code>{ "1..": "blue", "200": "green", "2..": "darkgreen", "...": + <code>{ "1xx": "blue", "200": "green", "2xx": "darkgreen", "xxx": "gray" }</code>. </p> </td> diff --git a/src/scraper/icon/ping/ping.js b/src/scraper/icon/ping/ping.js index cccff66..42869f7 100644 --- a/src/scraper/icon/ping/ping.js +++ b/src/scraper/icon/ping/ping.js @@ -6,17 +6,17 @@ const DEFAULT_COLORS = { // Bleu. - "1..": "#4975b6", + "1xx": "#4975b6", // Vert. - "2..": "#148a00", + "2xx": "#148a00", // Orange. - "3..": "#c75300", + "3xx": "#c75300", // Rouge. - "4..": "#e12712", + "4xx": "#e12712", // Violet. - "5..": "#8d6794", + "5xx": "#8d6794", // Gris. - "...": "#757575", + xxx: "#757575", }; export default class PingScraper { @@ -32,11 +32,11 @@ export default class PingScraper { this.#url = url; this.#colors = new Map( Object.entries({ ...colors, ...DEFAULT_COLORS }) - .filter(([p]) => "..." !== p) + .filter(([p]) => "xxx" !== p) .map(([p, c]) => [new RegExp(p, "u"), c]), ); - this.#defaultColor = colors?.["..."] ?? DEFAULT_COLORS["..."]; this.#complements = { desc: url, link: url, ...complements }; + this.#defaultColor = colors?.xxx ?? DEFAULT_COLORS.xxx; } async extract(max = Number.MAX_SAFE_INTEGER) { From da4af6fbf59a68223468b52abb401c2e683e5630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Mon, 8 Jan 2024 17:50:05 +0100 Subject: [PATCH 09/38] =?UTF-8?q?fix:=20D=C3=A9placer=20le=20scraper=20Rep?= =?UTF-8?q?eater=20dans=20tools.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/module/audio/README.md | 2 +- src/module/clock/README.md | 2 +- src/module/icon/README.md | 2 +- src/module/iframe/README.md | 2 +- src/module/text/README.md | 2 +- src/scraper/{ => tools}/repeater/README.md | 6 +++--- src/scraper/{ => tools}/repeater/repeater.js | 0 7 files changed, 8 insertions(+), 8 deletions(-) rename src/scraper/{ => tools}/repeater/README.md (89%) rename src/scraper/{ => tools}/repeater/repeater.js (100%) diff --git a/src/module/audio/README.md b/src/module/audio/README.md index 1df578a..288b8e5 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -176,7 +176,7 @@ Ce widget affiche un cadre pour écouter la radio [Fip](https://www.fip.fr/). "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/audio/audio.js" }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "audio": "https://direct.radiofrance.fr/live/fip-hifi.aac", diff --git a/src/module/clock/README.md b/src/module/clock/README.md index 6706857..59ff6cb 100644 --- a/src/module/clock/README.md +++ b/src/module/clock/README.md @@ -125,7 +125,7 @@ Ce widget affiche une horloge avec l'heure courante. "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/clock/clock.js" }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "color": "#795548" diff --git a/src/module/icon/README.md b/src/module/icon/README.md index 1f36d80..cecf796 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -163,7 +163,7 @@ Ce widget affiche un bouton qui redirige vers [GitHub](https://github.com/). "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "color": "black", diff --git a/src/module/iframe/README.md b/src/module/iframe/README.md index 1706728..b556cab 100644 --- a/src/module/iframe/README.md +++ b/src/module/iframe/README.md @@ -117,7 +117,7 @@ Ce widget affiche [Wikipédia](https://fr.wikipedia.org/) dans un `iframe`. "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/iframe/iframe.js" }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "link": "https://fr.wikipedia.org/wiki/Wikipédia:Accueil_principal" diff --git a/src/module/text/README.md b/src/module/text/README.md index 7873a01..3216dc8 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -159,7 +159,7 @@ Ce widget affiche le texte _Carpe diem_. "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "title": "Carpe diem" diff --git a/src/scraper/repeater/README.md b/src/scraper/tools/repeater/README.md similarity index 89% rename from src/scraper/repeater/README.md rename to src/scraper/tools/repeater/README.md index eb6cb08..2993d85 100644 --- a/src/scraper/repeater/README.md +++ b/src/scraper/tools/repeater/README.md @@ -1,6 +1,6 @@ -# Scraper _repeater_ +# Scraper _tools/repeater_ -> Mots-clés : gout, gout-scraper, gout-scraper-repeater. +> Mots-clés : gout, gout-scraper, gout-scraper-tools-repeater. Ce scraper permet de simuler un scraper spécifique retournant des données statiques pour un module. @@ -28,7 +28,7 @@ Ce widget affiche une liste avec deux liens allant vers } }, "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/repeater/repeater.js", + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", "options": { "extract": [{ "title": "Facebook", diff --git a/src/scraper/repeater/repeater.js b/src/scraper/tools/repeater/repeater.js similarity index 100% rename from src/scraper/repeater/repeater.js rename to src/scraper/tools/repeater/repeater.js From 04c094b9f08b7ed980e27c57fd922d7e3f86e1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Mon, 8 Jan 2024 17:52:57 +0100 Subject: [PATCH 10/38] feat: Chainer les scrapers. --- src/scraper/icon/ping/ping.js | 24 ++- src/scraper/list/jsonfeed/jsonfeed.js | 25 ++- src/scraper/list/rss/rss.js | 28 ++-- src/scraper/tools/complements/README.md | 81 ++++++++++ src/scraper/tools/complements/complements.js | 26 +++ src/scraper/tools/filter/README.md | 90 +++++++++++ src/scraper/tools/filter/filter.js | 94 +++++++++++ src/utils/scraper/chain.js | 51 ++++++ test/unit/scraper/tools/filter.js | 157 +++++++++++++++++++ 9 files changed, 550 insertions(+), 26 deletions(-) create mode 100644 src/scraper/tools/complements/README.md create mode 100644 src/scraper/tools/complements/complements.js create mode 100644 src/scraper/tools/filter/README.md create mode 100644 src/scraper/tools/filter/filter.js create mode 100644 src/utils/scraper/chain.js create mode 100644 test/unit/scraper/tools/filter.js diff --git a/src/scraper/icon/ping/ping.js b/src/scraper/icon/ping/ping.js index 42869f7..ef12c2c 100644 --- a/src/scraper/icon/ping/ping.js +++ b/src/scraper/icon/ping/ping.js @@ -4,6 +4,10 @@ * @author Sébastien Règne */ +import chain from "../../../utils/scraper/chain.js"; +import ComplementsScraper from "../../tools/complements/complements.js"; +import FilterScraper from "../../tools/filter/filter.js"; + const DEFAULT_COLORS = { // Bleu. "1xx": "#4975b6", @@ -19,23 +23,20 @@ const DEFAULT_COLORS = { xxx: "#757575", }; -export default class PingScraper { +const PingScraper = class { #url; #colors; #defaultColor; - #complements; - - constructor({ url, colors, complements }) { + constructor({ url, colors }) { this.#url = url; this.#colors = new Map( Object.entries({ ...colors, ...DEFAULT_COLORS }) .filter(([p]) => "xxx" !== p) .map(([p, c]) => [new RegExp(p, "u"), c]), ); - this.#complements = { desc: url, link: url, ...complements }; this.#defaultColor = colors?.xxx ?? DEFAULT_COLORS.xxx; } @@ -51,7 +52,6 @@ export default class PingScraper { if (prefix.test(response.status.toString())) { return [ { - ...this.#complements, color: this.#colors.get(prefix), date: Date.now(), }, @@ -64,10 +64,18 @@ export default class PingScraper { return [ { - ...this.#complements, color: this.#defaultColor, date: Date.now(), }, ]; } -} +}; + +// eslint-disable-next-line import/no-anonymous-default-export +export default chain(FilterScraper, ComplementsScraper, PingScraper, { + dispatch: ({ filter, complements, url, ...others }) => [ + { filter }, + { complements: { desc: url, link: url, ...complements } }, + { url, ...others }, + ], +}); diff --git a/src/scraper/list/jsonfeed/jsonfeed.js b/src/scraper/list/jsonfeed/jsonfeed.js index 0972a31..80629ce 100644 --- a/src/scraper/list/jsonfeed/jsonfeed.js +++ b/src/scraper/list/jsonfeed/jsonfeed.js @@ -4,14 +4,15 @@ * @author Sébastien Règne */ -export default class JSONFeedScraper { - #url; +import chain from "../../../utils/scraper/chain.js"; +import ComplementsScraper from "../../tools/complements/complements.js"; +import FilterScraper from "../../tools/filter/filter.js"; - #complements; +const JSONFeedScraper = class { + #url; - constructor({ url, complements }) { + constructor({ url }) { this.#url = url; - this.#complements = complements; } async extract(max = Number.MAX_SAFE_INTEGER) { @@ -28,7 +29,15 @@ export default class JSONFeedScraper { title: item.title, })) .sort((i1, i2) => i2.date - i1.date) - .slice(0, max) - .map((i) => ({ ...this.#complements, ...i })); + .slice(0, max); } -} +}; + +// eslint-disable-next-line import/no-anonymous-default-export +export default chain(FilterScraper, ComplementsScraper, JSONFeedScraper, { + dispatch: ({ filter, complements, ...others }) => [ + { filter }, + { complements }, + others, + ], +}); diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index c1f71f8..d8ec5d1 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -4,14 +4,15 @@ * @author Sébastien Règne */ -export default class RSSScraper { - #url; +import chain from "../../../utils/scraper/chain.js"; +import ComplementsScraper from "../../tools/complements/complements.js"; +import FilterScraper from "../../tools/filter/filter.js"; - #complements; +const RSSScraper = class { + #url; - constructor({ url, complements }) { + constructor({ url }) { this.#url = url; - this.#complements = complements; } #extractRSS(xml, max) { @@ -47,8 +48,7 @@ export default class RSSScraper { title: item.title, })) .sort((i1, i2) => i2.date - i1.date) - .slice(0, max) - .map((i) => ({ ...this.#complements, ...i })); + .slice(0, max); } #extractAtom(xml, max) { @@ -75,8 +75,7 @@ export default class RSSScraper { guid: this.#url + item.guid, link: item.link, title: item.title, - })) - .map((i) => ({ ...this.#complements, ...i })); + })); } async extract(max = Number.MAX_SAFE_INTEGER) { @@ -93,4 +92,13 @@ export default class RSSScraper { throw new Error("Unknown format"); } } -} +}; + +// eslint-disable-next-line import/no-anonymous-default-export +export default chain(FilterScraper, ComplementsScraper, RSSScraper, { + dispatch: ({ filter, complements, ...others }) => [ + { filter }, + { complements }, + others, + ], +}); diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md new file mode 100644 index 0000000..d9349ad --- /dev/null +++ b/src/scraper/tools/complements/README.md @@ -0,0 +1,81 @@ +# Scraper _tools/complements_ + +> Mots-clés : gout, gout-scraper, gout-scraper-tools-complements. + +Ce scraper ajoute des propriétés dans les résultats d'un autre scraper. Il est +rare d'utiliser ce scraper directement dans un widget. Il peut être utiliser +pour ajouer la fonctionnalité dans un scraper : + +```JavaScript +import chain from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/utils/scraper/chain.js"; +import ComplementsScraper from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/tools/complements/complements.js"; + +const MyAwesomeScraper = class { /* ... */ }; + +export default chain(ComplementsScraper, MyAwesomeScraper, { + dispatch: ({ complements, ...others }) => [{ complements }, others], +}); +``` + +## Options + +Les options sont dans un objet +[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la +propriété suivante : + +<table> + <tr> + <th>Nom</th> + <th>Type</th> + <th>Description</th> + </tr> + <tr> + <td><code>"complements"</code></td> + <td><code>object</code></td> + <td> + <p> + Des propriétés qui seront ajoutées dans les éléments retournés. Par + défaut aucune propriété n'est ajoutée. + </p> + <p> + Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + </p> + </td> + </tr> +</table> + +## Scrapers + +Ce scraper accepte un seul sous-scraper. Le sous-scraper doit définir une +méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum +d'éléments à retourner. La méthode doit retourner une +[promesse](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/Promise) +contenant un tableau d'objet. Les propriétés seront ajoutées dans chaque élément +du tableau. + +## Example + +Ce widget affiche les dernières vidéos de la chaine YouTube de +[FIP](https://www.youtube.com/@FipradioFr) en ajoutant le logo de FIP à chaque +élément. L'option `"complements"` est passée au scraper `list/rss` car ce +scraper utilise `ComplementsScraper`. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#757575", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?user=arte" + "complements": { "icon": "https://example.com/fip.svg" }, + } + }] +} +``` diff --git a/src/scraper/tools/complements/complements.js b/src/scraper/tools/complements/complements.js new file mode 100644 index 0000000..15c8d05 --- /dev/null +++ b/src/scraper/tools/complements/complements.js @@ -0,0 +1,26 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default class ComplementsScraper { + #complements; + + /** + * Le sous-scraper. + * + * @type {Object} + */ + #scraper; + + constructor({ complements }, scrapers) { + this.#complements = complements; + this.#scraper = scrapers[0]; + } + + async extract(max = Number.MAX_SAFE_INTEGER) { + const items = await this.#scraper.extract(max); + return items.map((i) => ({ ...this.#complements, ...i })); + } +} diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md new file mode 100644 index 0000000..99045db --- /dev/null +++ b/src/scraper/tools/filter/README.md @@ -0,0 +1,90 @@ +# Scraper _tools/filter_ + +> Mots-clés : gout, gout-scraper, gout-scraper-tools-filter. + +Ce scraper filtre les résultats d'un autre scraper. Il est rare d'utiliser ce +scraper directement dans un widget. Il peut être utiliser pour ajouer la +fonctionnalité dans un scraper : + +```JavaScript +import chain from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/utils/scraper/chain.js"; +import FilterScraper from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/tools/filter/filter.js"; + +const MyAwesomeScraper = class { /* ... */ }; + +export default chain(FilterScraper, MyAwesomeScraper, { + dispatch: ({ filter, ...others }) => [{ filter }, others], +}); +``` + +## Options + +Les options sont dans un objet +[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la +propriété suivante : + +<table> + <tr> + <th>Nom</th> + <th>Type</th> + <th>Description</th> + </tr> + <tr> + <td><code>"filter"</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournées. Par défaut + aucun filtre n'est appliqué. + </p> + <p> + Exemple : <code>"title != 'foo'"</code>. + </p> + </td> + </tr> +</table> + +## Filtre + +Les filtres sont composés de trois éléments : + +- la propriété récupérée dans un élément des résultats ; +- le type de comparaison : + - générique : + - `==`, `!=`, `<`, `<=`, `>`, `>=` ; + - chaine de caractères : + - `*=` : garder les éléments dont la propriété contient la valeur + (`.includes()` sous le capot) ; + - `^=` : garder les éléments dont la propriété commence par la valeur + (`.startsWith()` sous le capot) ; + - `^=` : garder les éléments dont la propriété finit par la valeur + (`.endsWith()` sous le capot) ; +- la valeur comparée : + - un nombre : `42` ; + - une chaine de caractères (entourée par des apostrophes) : `'foo'`. + +## Example + +Ce widget affiche les dernières reportages de la chaine YouTube de +[Arte](https://www.youtube.com/@arte). L'option `"filter"` est passée au scraper +`list/rss` car ce scraper utilise `FilterScraper`. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#757575", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?user=arte" + "filter": "title $= 'ARTE Reportage'", + } + }] +} +``` diff --git a/src/scraper/tools/filter/filter.js b/src/scraper/tools/filter/filter.js new file mode 100644 index 0000000..9ff8c65 --- /dev/null +++ b/src/scraper/tools/filter/filter.js @@ -0,0 +1,94 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * Protège les caractères spéciaux d'une chaine de caractères pour les + * expressions rationnelles. + * + * @param {string} pattern La chaine de caractères. + * @returns {string} La chaine de caractères avec les caractères spéciaux + * protégés. + * @see https://developer.mozilla.org/Web/JavaScript/Guide/Regular_expressions + */ +const quote = function (pattern) { + return pattern.replaceAll(/[$()*+.?[\\\]^{|}]/gu, "\\$&"); +}; + +const GENERIC_OP = { + "==": (a, b) => a === b, + "!=": (a, b) => a !== b, + "<": (a, b) => a < b, + "<=": (a, b) => a <= b, + ">": (a, b) => a > b, + ">=": (a, b) => a >= b, +}; + +const STRING_OP = { + ...GENERIC_OP, + "*=": (a, b) => "string" === typeof a && a.includes(b), + "^=": (a, b) => "string" === typeof a && a.startsWith(b), + "$=": (a, b) => "string" === typeof a && a.endsWith(b), +}; + +const NUMBER_OP = { + ...GENERIC_OP, +}; + +const STRING_PATTERN = new RegExp( + "^\\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\\s*" + + "(?<op>(?:" + + Object.keys(STRING_OP).map(quote).join("|") + + "))\\s*" + + "'(?<val>.*)'\\s*$", + "u", +); + +const NUMBER_PATTERN = new RegExp( + "^\\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\\s*" + + "(?<op>(?:" + + Object.keys(NUMBER_OP).map(quote).join("|") + + "))\\s*" + + "(?<val>[0-9]+)\\s*$", + "u", +); + +const compile = (filter) => { + if (undefined === filter) { + return (_item) => true; + } + let result = STRING_PATTERN.exec(filter); + if (null !== result) { + const { prop, op, val } = result.groups; + return (item) => STRING_OP[op](item[prop], val); + } + result = NUMBER_PATTERN.exec(filter); + if (null !== result) { + const { prop, op, val } = result.groups; + return (item) => NUMBER_OP[op](item[prop], Number(val)); + } + throw new Error(`Invalid filter: "${filter}"`); +}; + +export default class FilterScraper { + #filter; + + /** + * Le sous-scraper. + * + * @type {Object} + */ + #scraper; + + constructor({ filter }, scrapers) { + this.#filter = compile(filter); + this.#scraper = scrapers[0]; + } + + async extract(max = Number.MAX_SAFE_INTEGER) { + const items = await this.#scraper.extract(Number.MAX_SAFE_INTEGER); + return items.filter(this.#filter).slice(0, max); + } +} diff --git a/src/utils/scraper/chain.js b/src/utils/scraper/chain.js new file mode 100644 index 0000000..787e8a6 --- /dev/null +++ b/src/utils/scraper/chain.js @@ -0,0 +1,51 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * Envoie les options à tous les scrapers. + * + * @param {any} options Les options des scrapers. + * @returns {Object} Une simulation d'un tableau dont la méthode + * <code>pop()</code> retourne toujours les options. + */ +const DEFAULT_DISPATCH = (options) => ({ pop: () => options }); + +/** + * Chaine des scrapers pour combiner leurs fonctionnalités. + * + * @param {Function} FirstScraper Le premier scraper. + * @param {...(Function|Object)} others Les autres scrapers et/ou les + * options. + */ +export default function chain(FirstScraper, ...others) { + const AllScraperss = []; + let dispatch = DEFAULT_DISPATCH; + for (const other of others) { + if ("function" === typeof other) { + AllScraperss.unshift([other]); + } else if (Array.isArray(other)) { + AllScraperss.unshift(other.reverse()); + } else { + dispatch = other.dispatch; + } + } + + return class ChainScraper { + constructor(options, scrapers) { + const allOptions = dispatch(options); + const subScrapers = AllScraperss.reduce( + (dependancies, Scrapers) => { + return Scrapers.map( + (S) => new S(allOptions.pop(), dependancies), + ); + }, + scrapers, + ); + // eslint-disable-next-line no-constructor-return + return new FirstScraper(allOptions.pop(), subScrapers); + } + }; +} diff --git a/test/unit/scraper/tools/filter.js b/test/unit/scraper/tools/filter.js new file mode 100644 index 0000000..1893fd6 --- /dev/null +++ b/test/unit/scraper/tools/filter.js @@ -0,0 +1,157 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +import assert from "node:assert/strict"; +import FilterScraper from "../../../../src/scraper/tools/filter/filter.js"; + +const check = async (value, filter, expected) => { + const subScraper = { + extract(_max) { + return value; + }, + }; + + const scraper = new FilterScraper({ filter }, [subScraper]); + + const items = await scraper.extract(); + assert.deepEqual(items, expected); +}; + +describe("scraper/tools/filter/filter.js", function () { + describe("extract()", function () { + it("should support '==' with string", async function () { + await check( + [{ foo: "bar" }, { foo: "baz" }, { foo: 42 }], + "foo == 'bar'", + [{ foo: "bar" }], + ); + }); + + it("should support '!=' with string", async function () { + await check( + [{ foo: "bar" }, { foo: "baz" }, { foo: 42 }], + "foo != 'bar'", + [{ foo: "baz" }, { foo: 42 }], + ); + }); + + it("should support '*=' with string", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + { foo: "baz" }, + { foo: 42 }, + ], + "foo *= 'bar'", + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + ], + ); + }); + + it("should support '^=' with string", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + { foo: "baz" }, + { foo: 42 }, + ], + "foo ^= 'bar'", + [{ foo: "bar" }, { foo: "bar42" }], + ); + }); + + it("should support '$=' with string", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + { foo: "baz" }, + { foo: 42 }, + ], + "foo $= 'bar'", + [{ foo: "bar" }, { foo: "42bar" }], + ); + }); + + it("should support '==' with number", async function () { + await check([{ foo: 1 }, { foo: 2 }, { foo: "bar" }], "foo == 1", [ + { foo: 1 }, + ]); + }); + + it("should support '!=' with number", async function () { + await check([{ foo: 1 }, { foo: 2 }, { foo: "bar" }], "foo != 1", [ + { foo: 2 }, + { foo: "bar" }, + ]); + }); + + it("should support '<' with number", async function () { + await check( + [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: "bar" }], + "foo < 2", + [{ foo: 1 }], + ); + }); + + it("should support '<=' with number", async function () { + await check( + [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: "bar" }], + "foo <= 2", + [{ foo: 1 }, { foo: 2 }], + ); + }); + + it("should support '>' with number", async function () { + await check( + [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: "bar" }], + "foo > 2", + [{ foo: 3 }], + ); + }); + + it("should support '>=' with number", async function () { + await check( + [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: "bar" }], + "foo >= 2", + [{ foo: 2 }, { foo: 3 }], + ); + }); + + it("should reject invalid filter", async function () { + await assert.rejects( + check([{ foo: 1 }], "foo == true", [{ foo: 2 }, { foo: 3 }]), + { name: "Error", message: 'Invalid filter: "foo == true"' }, + ); + }); + + it("should limit items", async function () { + const subScraper = { + extract(_max) { + return [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: 4 }]; + }, + }; + const filter = "foo > 1"; + + const scraper = new FilterScraper({ filter }, [subScraper]); + + const items = await scraper.extract(2); + assert.deepEqual(items, [{ foo: 2 }, { foo: 3 }]); + }); + }); +}); From 1b14b3abf6f4b88ded0f354e2620c7d21ba45632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Mon, 8 Jan 2024 18:24:17 +0100 Subject: [PATCH 11/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/CODE_OF_CONDUCT.md | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .github/dependabot.yml | 8 +- .github/workflows/ci.yml | 36 +- .github/workflows/release.yml | 3 +- .metalint/eslint.config.js | 129 +- .metalint/markdownlint.config.js | 5 + .metalint/npm-package-json-lint.config.js | 3 + .metalint/stylelint.config.js | 1 + .stryker.config.js | 7 +- LICENSE | 2 +- package-lock.json | 2397 +++++++++------------ package.json | 44 +- src/extension/manifest.json | 4 +- 15 files changed, 1078 insertions(+), 1571 deletions(-) diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 8ef718b..c2b2b62 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -52,7 +52,7 @@ decisions when appropriate. This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, +Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 0a9e385..127c9df 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.9.8 -->: -- Browser version<!-- e.g. Chrome 117.0.5938.88, Firefox 117.0 -->: +- Gout extension version<!-- e.g. 0.10.0 -->: +- Browser version<!-- e.g. Chrome 120.0.6099.199, Firefox 121.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 6e3cf0f..3fe52d2 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.9.8 -->: -- Browser version<!-- e.g. Chrome 117.0.5938.88, Firefox 117.0 -->: +- Gout extension version<!-- e.g. 0.10.0 -->: +- Browser version<!-- e.g. Chrome 120.0.6099.199, Firefox 121.0 -->: ### Additional context diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c9e3328..f9898ca 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,13 @@ version: 2 updates: - - package-ecosystem: "npm" + - package-ecosystem: npm directory: "/" schedule: - interval: "weekly" + interval: weekly allow: - dependency-type: production - - package-ecosystem: "github-actions" + - package-ecosystem: github-actions directory: "/" schedule: - interval: "weekly" + interval: weekly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cd7a400..d39b059 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,16 +9,16 @@ jobs: lint: runs-on: ubuntu-latest steps: - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 20 - - name: Checkout repository uses: actions/checkout@v4 with: persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Install dependencies run: npm ci @@ -28,16 +28,16 @@ jobs: test: runs-on: ubuntu-latest steps: - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 20 - - name: Checkout repository uses: actions/checkout@v4 with: persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Install dependencies run: npm ci @@ -47,16 +47,16 @@ jobs: coverage: runs-on: ubuntu-latest steps: - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 20 - - name: Checkout repository uses: actions/checkout@v4 with: persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Install dependencies run: npm ci @@ -78,9 +78,9 @@ jobs: persist-credentials: false - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: - languages: "javascript" + languages: javascript - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ed542e..4d725af 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,6 @@ jobs: pull-requests: write steps: - name: Run Release Please - uses: google-github-actions/release-please-action@v3 + uses: google-github-actions/release-please-action@v4 with: release-type: node - extra-files: src/extension/manifest.json diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 554c27e..6aabe56 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -182,8 +182,6 @@ export default { "no-bitwise": "off", "no-caller": "error", "no-case-declarations": "error", - // Laisser Prettier gérer cette règle. - "no-confusing-arrow": "off", "no-console": "error", "no-continue": "off", "no-delete-var": "error", @@ -198,10 +196,6 @@ export default { "no-extra-bind": "error", "no-extra-boolean-cast": "error", "no-extra-label": "error", - // Laisser Prettier gérer cette règle. - "no-extra-semi": "off", - // Laisser Prettier gérer cette règle. - "no-floating-decimal": "off", "no-global-assign": "error", "no-implicit-coercion": ["error", { disallowTemplateShorthand: true }], "no-implicit-globals": "error", @@ -215,7 +209,6 @@ export default { "no-lonely-if": "error", "no-loop-func": "error", "no-magic-numbers": "off", - "no-mixed-operators": "off", "no-multi-assign": "error", "no-multi-str": "error", "no-negated-condition": "error", @@ -291,8 +284,6 @@ export default { "no-with": "error", "object-shorthand": "error", "one-var": ["error", "never"], - // Laisser Prettier gérer cette règle. - "one-var-declaration-per-line": "off", "operator-assignment": "error", // Désactiver cette règle qui peut avoir des conflits avec Prettier. // https://github.com/prettier/eslint-plugin-prettier/issues/65 @@ -310,8 +301,6 @@ export default { "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "off", - // Laisser Prettier gérer cette règle. - "quote-props": "off", radix: "error", "require-await": "error", "require-unicode-regexp": "error", @@ -326,109 +315,14 @@ export default { ], "sort-keys": "off", "sort-vars": "off", - "spaced-comment": "error", strict: ["error", "never"], "symbol-description": "error", "vars-on-top": "off", yoda: ["error", "always"], // Layout & Formatting. - // Laisser Prettier gérer la majorité des règles de cette section. - // https://github.com/prettier/eslint-config-prettier - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-element-newline": "off", - "arrow-parens": "off", - "arrow-spacing": "off", - "block-spacing": "off", - "brace-style": "off", - "comma-dangle": "off", - "comma-spacing": "off", - "comma-style": "off", - "computed-property-spacing": "off", - "dot-location": "off", - "eol-last": "off", - "func-call-spacing": "off", - "function-call-argument-newline": "off", - "function-paren-newline": "off", - "generator-star-spacing": "off", - "implicit-arrow-linebreak": "off", - indent: "off", - "jsx-quotes": "off", - "key-spacing": "off", - "keyword-spacing": "off", "line-comment-position": "error", - "linebreak-style": "off", - "lines-around-comment": [ - "error", - { - allowBlockStart: true, - allowObjectStart: true, - allowArrayStart: true, - afterHashbangComment: true, - }, - ], - "lines-between-class-members": "error", - "max-len": [ - "warn", - { - // Ignorer les imports et les déclarations de tests unitaires, - // car Prettier n'ajoute pas de retour à la ligne pour ne pas - // dépasser les 80 caractères. - ignorePattern: - "^import " + - "|^ +\\* @typedef \\{import\\(" + - "|^ +\\* @see " + - '|^ +it\\("', - // Ignorer les expressions rationnelles, car il n'est pas - // possible de les écrire sur plusieurs lignes. - ignoreRegExpLiterals: true, - }, - ], - "max-statements-per-line": ["error", { max: 2 }], - "multiline-ternary": "off", - "new-parens": "off", - "newline-per-chained-call": "off", - "no-extra-parens": "off", - "no-mixed-spaces-and-tabs": "off", - "no-multi-spaces": "off", - "no-multiple-empty-lines": "off", - // Activer cette règle, car Prettier garde des tabulations (par exemple - // dans les chaines de caractères). - "no-tabs": "error", - "no-trailing-spaces": "off", - "no-whitespace-before-property": "off", - "nonblock-statement-body-position": "off", - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "operator-linebreak": "off", - "padded-blocks": "off", - "padding-line-between-statements": [ - "error", - { - blankLine: "always", - prev: "directive", - next: "*", - }, - ], - quotes: ["error", "double", { avoidEscape: true }], - "rest-spread-spacing": "off", - semi: "off", - "semi-spacing": "off", - "semi-style": "off", - "space-before-blocks": "off", - "space-before-function-paren": "off", - "space-in-parens": "off", - "space-infix-ops": "off", - "space-unary-ops": "off", - "switch-colon-spacing": "off", - "template-curly-spacing": "off", - "template-tag-spacing": "off", - "unicode-bom": "off", - "wrap-iife": "off", - "wrap-regex": "off", - "yield-star-spacing": "off", + "unicode-bom": "error", // Plugin eslint-plugin-array-func. "array-func/from-map": "error", @@ -531,10 +425,16 @@ export default { "import/first": "error", "import/group-exports": "off", "import/max-dependencies": "off", - // Ne pas activer l'option "considerComments", car les commentaires - // entre les imports ne sont pas gérés. - // https://github.com/import-js/eslint-plugin-import/issues/2673 - "import/newline-after-import": ["error", { considerComments: false }], + "import/newline-after-import": [ + "error", + { + // Ne pas activer ces options, car les commentaires entre les + // imports ne sont pas gérés. + // https://github.com/import-js/eslint-plugin-import/issues/2673 + exactCount: false, + considerComments: false, + }, + ], "import/no-anonymous-default-export": [ "error", { @@ -686,6 +586,7 @@ export default { "regexp/control-character-escape": "error", "regexp/negation": "error", "regexp/no-dupe-characters-character-class": "error", + "regexp/no-empty-string-literal": "error", "regexp/no-extra-lookaround-assertions": "error", "regexp/no-invisible-character": "error", "regexp/no-legacy-features": "error", @@ -701,6 +602,8 @@ export default { "regexp/no-useless-lazy": "error", "regexp/no-useless-quantifier": "error", "regexp/no-useless-range": "error", + "regexp/no-useless-set-operand": "error", + "regexp/no-useless-string-literal": "error", "regexp/no-useless-two-nums-quantifier": "error", "regexp/no-zero-quantifier": "error", "regexp/optimal-lookaround-quantifier": "error", @@ -711,11 +614,14 @@ export default { "regexp/prefer-range": "error", "regexp/prefer-regexp-exec": "error", "regexp/prefer-regexp-test": "error", + "regexp/prefer-set-operation": "error", "regexp/require-unicode-regexp": "error", + "regexp/simplify-set-operations": "error", "regexp/sort-alternatives": "error", "regexp/use-ignore-case": "error", // Stylistic Issues. + "regexp/grapheme-string-literal": "error", "regexp/hexadecimal-escape": "off", "regexp/letter-case": [ "error", @@ -791,6 +697,7 @@ export default { { checkGlobalVariables: true }, ], "unicorn/no-unnecessary-await": "error", + "unicorn/no-unnecessary-polyfills": "error", "unicorn/no-unreadable-array-destructuring": "error", "unicorn/no-unreadable-iife": "error", "unicorn/no-unused-properties": "error", diff --git a/.metalint/markdownlint.config.js b/.metalint/markdownlint.config.js index 39fd2a6..a28fe1d 100644 --- a/.metalint/markdownlint.config.js +++ b/.metalint/markdownlint.config.js @@ -52,6 +52,7 @@ export default { "JSON", "Markdown", "Shell", + "YAML", ], // eslint-disable-next-line camelcase language_only: true, @@ -69,4 +70,8 @@ export default { "link-fragments": true, "reference-links-images": true, "link-image-reference-definitions": true, + // eslint-disable-next-line camelcase + "link-image-style": { shortcut: false, url_inline: false }, + "table-pipe-style": { style: "leading_and_trailing" }, + "table-column-count": true, }; diff --git a/.metalint/npm-package-json-lint.config.js b/.metalint/npm-package-json-lint.config.js index 07a0d10..58bbef8 100644 --- a/.metalint/npm-package-json-lint.config.js +++ b/.metalint/npm-package-json-lint.config.js @@ -37,6 +37,7 @@ export default { "require-repository-directory": "off", "require-repository": "error", "require-scripts": "error", + "require-type": "error", "require-types": "off", "require-typings": "off", "require-version": "error", @@ -65,6 +66,7 @@ export default { "private-type": "error", "repository-type": "error", "scripts-type": "error", + "type-type": "error", "version-type": "error", // Valid value rules. @@ -74,6 +76,7 @@ export default { "valid-values-name-scope": "off", "valid-values-private": "off", "valid-values-publishConfig": "off", + "valid-values-type": ["error", ["module"]], // Dependency rules. "no-repeated-dependencies": "error", diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index 41eee34..4486a97 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -186,6 +186,7 @@ export default { "hue-degree-notation": "angle", "import-notation": "string", "keyframe-selector-notation": "keyword", + "lightness-notation": "percentage", "media-feature-range-notation": "context", "selector-not-notation": "complex", "selector-pseudo-element-colon-notation": "double", diff --git a/.stryker.config.js b/.stryker.config.js index 93cc264..7a156e2 100644 --- a/.stryker.config.js +++ b/.stryker.config.js @@ -13,12 +13,7 @@ export default { incrementalFile: ".stryker/incremental.json", ignoreStatic: true, mochaOptions: { config: "test/unit/mocharc.json" }, - mutate: [ - "src/**/*.js", - "!src/extension/**", - "!src/module/**", - "!src/scraper/**", - ], + mutate: ["src/**/*.js", "!src/extension/**", "!src/module/**"], reporters: ["dots", "clear-text"], tempDirName: ".stryker/tmp/", testRunner: "mocha", diff --git a/LICENSE b/LICENSE index 15b9c1b..c8564f6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2013-2023 Sébastien Règne +Copyright (c) 2013-2024 Sébastien Règne Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/package-lock.json b/package-lock.json index 0cd3276..dce630f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,39 +14,39 @@ }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.2.1", - "@stryker-mutator/core": "7.1.1", - "@stryker-mutator/mocha-runner": "7.1.1", - "@types/mocha": "10.0.1", - "addons-linter": "6.14.0", - "eslint": "8.50.0", + "@prettier/plugin-xml": "3.2.2", + "@stryker-mutator/core": "8.0.0", + "@stryker-mutator/mocha-runner": "8.0.0", + "@types/mocha": "10.0.6", + "addons-linter": "6.19.0", + "eslint": "8.56.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.28.1", - "eslint-plugin-jsdoc": "46.8.2", - "eslint-plugin-mocha": "10.1.0", - "eslint-plugin-n": "16.1.0", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-jsdoc": "48.0.2", + "eslint-plugin-mocha": "10.2.0", + "eslint-plugin-n": "16.6.1", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "1.15.0", - "eslint-plugin-unicorn": "48.0.1", + "eslint-plugin-regexp": "2.2.0", + "eslint-plugin-unicorn": "50.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.31.1", - "metalint": "0.14.1", + "markdownlint": "0.33.0", + "metalint": "0.15.0", "mocha": "10.2.0", - "npm-package-json-lint": "7.0.0", - "prettier": "3.0.3", + "npm-package-json-lint": "7.1.0", + "prettier": "3.1.1", "purgecss": "5.0.0", - "stylelint": "15.10.3", - "stylelint-order": "6.0.3", - "typedoc": "0.25.1", - "typescript": "5.2.2", - "web-ext": "7.7.0", + "stylelint": "16.1.0", + "stylelint-order": "6.0.4", + "typedoc": "0.25.7", + "typescript": "5.3.3", + "web-ext": "7.9.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=20.6.0" }, "funding": { "url": "https://www.paypal.me/sebastienregne" @@ -75,12 +75,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -159,31 +159,31 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", - "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.20", - "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.16", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.20", - "@babel/types": "^7.22.19", - "convert-source-map": "^1.7.0", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", @@ -207,12 +207,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -234,14 +234,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -259,17 +259,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -300,13 +300,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -325,12 +325,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", - "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -349,9 +349,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", - "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -442,9 +442,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -460,32 +460,32 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", - "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", + "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -568,9 +568,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -579,51 +579,15 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.15.tgz", - "integrity": "sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz", + "integrity": "sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.23.7", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/plugin-syntax-decorators": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/plugin-syntax-decorators": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -633,9 +597,9 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", - "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", + "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -648,9 +612,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -663,9 +627,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -678,12 +642,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", - "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -695,15 +659,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/plugin-syntax-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -713,16 +677,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz", - "integrity": "sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-typescript": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -758,20 +722,20 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", - "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -779,13 +743,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -793,9 +757,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz", - "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", + "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", "dev": true, "funding": [ { @@ -811,13 +775,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-tokenizer": "^2.2.3" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", - "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", + "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", "dev": true, "funding": [ { @@ -834,9 +798,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz", - "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", + "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", "dev": true, "funding": [ { @@ -852,14 +816,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-tokenizer": "^2.2.3" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", + "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", "dev": true, "funding": [ { @@ -927,12 +891,12 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", - "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, "dependencies": { - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, @@ -956,18 +920,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", - "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1014,9 +978,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1059,9 +1023,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1078,12 +1042,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -1127,9 +1091,9 @@ } }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -1267,9 +1231,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1277,18 +1241,21 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", - "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "engines": { "node": ">= 0.4" } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.3.15", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.3.15.tgz", - "integrity": "sha512-h/luqw9oAmMF1C/GuUY/PAgZlF4wx71q2bdH+ct8vmjcvseCY32au8XmYy7xZ8l5VJiY/3ltFpr5YiO55v0mzg==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.4.3.tgz", + "integrity": "sha512-+VnaO5zYUwFQVuRqp2qLPGR5GwhhJ/lrp0yEmamJ/nI15P2GKwGBEWRDiITZR8i6AYxeiQSu2rOi/gqxehnPuA==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -1397,9 +1364,9 @@ } }, "node_modules/@prettier/plugin-xml": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.2.1.tgz", - "integrity": "sha512-DvwnQPf8FsczapBVDm54IhR+Pryt3DbPZSNtUb9gOuFtgoUUPbPN69f3nQBMF5BEqh4ZjZjTaHBmsVno3UnAXQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.2.2.tgz", + "integrity": "sha512-SoE70SQF1AKIvK7LVK80JcdAe6wrDcbodFFjcoqb1FkOqV0G0oSlgAFDwoRXPqkUE5p/YF2nGsnUbnfm6471sw==", "dev": true, "dependencies": { "@xml-tools/parser": "^1.0.11" @@ -1421,53 +1388,52 @@ } }, "node_modules/@stryker-mutator/api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-7.1.1.tgz", - "integrity": "sha512-LqCO/UbMxPmr26LbFHSgKpHh3sKROPwjhiQlB3p962u3Z424xHE6jdkt+1wdTNxM1ycCK+GpHeCo6iiXkEBipw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.0.0.tgz", + "integrity": "sha512-4R8yieczpgOrOBQYq1d1aRJLcgenltpMH9ugtIYPPVmENFUo+mWm9HmaahLe+TVHnJSb4OZ4lvI7dVIhoBaiSQ==", "dev": true, "dependencies": { - "mutation-testing-metrics": "2.0.1", - "mutation-testing-report-schema": "2.0.1", + "mutation-testing-metrics": "3.0.0", + "mutation-testing-report-schema": "3.0.0", "tslib": "~2.6.0", "typed-inject": "~4.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@stryker-mutator/core": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-7.1.1.tgz", - "integrity": "sha512-E+SLgxfZwcx14sce72G+bTFDBN7at4QiRrBVTV8nXILShyAfvWSQu56Yu3VTsbAKJZAJO+LkNYbyO+ZtmsCwow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.0.0.tgz", + "integrity": "sha512-dyPs60wtLS9vgghgL5a49k/7KOovOnavXzm5SIBBsBJuxoO+5rvGXRohZaqSoZdb0yWIvp+LFdu6qWcdlJPkoQ==", "dev": true, "dependencies": { - "@stryker-mutator/api": "7.1.1", - "@stryker-mutator/instrumenter": "7.1.1", - "@stryker-mutator/util": "7.1.1", + "@stryker-mutator/api": "8.0.0", + "@stryker-mutator/instrumenter": "8.0.0", + "@stryker-mutator/util": "8.0.0", "ajv": "~8.12.0", "chalk": "~5.3.0", - "commander": "~11.0.0", + "commander": "~11.1.0", "diff-match-patch": "1.0.5", - "emoji-regex": "~10.2.1", - "execa": "~7.1.0", + "emoji-regex": "~10.3.0", + "execa": "~8.0.0", "file-url": "~4.0.0", "get-port": "~7.0.0", "glob": "~10.3.0", "inquirer": "~9.2.0", - "lodash.flatmap": "~4.5.0", "lodash.groupby": "~4.6.0", "log4js": "~6.9.0", "minimatch": "~9.0.1", - "mutation-testing-elements": "2.0.1", - "mutation-testing-metrics": "2.0.1", - "mutation-testing-report-schema": "2.0.1", + "mutation-testing-elements": "3.0.1", + "mutation-testing-metrics": "3.0.0", + "mutation-testing-report-schema": "3.0.0", "npm-run-path": "~5.1.0", "progress": "~2.0.0", "rxjs": "~7.8.0", "semver": "^7.3.5", "source-map": "~0.7.3", "tree-kill": "~1.2.2", - "tslib": "2.6.0", + "tslib": "2.6.2", "typed-inject": "~4.0.0", "typed-rest-client": "~1.8.0" }, @@ -1475,57 +1441,53 @@ "stryker": "bin/stryker.js" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@stryker-mutator/instrumenter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-7.1.1.tgz", - "integrity": "sha512-z1p7HMPvxWH/QVeanLpwt1B+LtwFRdd5GcR8Lx+REBAL8cAjzo8/DOYJ5BJp20ab7ZpbID8fPjIKr/P+Im/qGQ==", - "dev": true, - "dependencies": { - "@babel/core": "~7.22.0", - "@babel/generator": "~7.22.0", - "@babel/parser": "~7.22.0", - "@babel/plugin-proposal-class-properties": "~7.18.0", - "@babel/plugin-proposal-decorators": "~7.22.0", - "@babel/plugin-proposal-private-methods": "~7.18.0", - "@babel/preset-typescript": "~7.22.0", - "@stryker-mutator/api": "7.1.1", - "@stryker-mutator/util": "7.1.1", - "angular-html-parser": "~4.0.0", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.0.0.tgz", + "integrity": "sha512-kS3BdpqDuJeRBDBw2eP68rhUrgtlT5EGERNOwCwUGpfTtUan7y2zX9ZGEblOtMI5yTtyBArFZMtwhPGi+waJ/Q==", + "dev": true, + "dependencies": { + "@babel/core": "~7.23.0", + "@babel/generator": "~7.23.0", + "@babel/parser": "~7.23.0", + "@babel/plugin-proposal-decorators": "~7.23.0", + "@babel/preset-typescript": "~7.23.0", + "@stryker-mutator/api": "8.0.0", + "@stryker-mutator/util": "8.0.0", + "angular-html-parser": "~5.0.0", + "semver": "~7.5.4", "weapon-regex": "~1.1.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@stryker-mutator/mocha-runner": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-7.1.1.tgz", - "integrity": "sha512-IO37Efu3KN7A3gigIp/iI5d6bEMwFwb4ZhjUedtvxEcXxxfmcGvKKR4yan4a+lT1CXvZIZLzOM+oS2zc2hsprw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.0.0.tgz", + "integrity": "sha512-23qNT78l68d/OBrq64UDCKBoYDc+PMbmvTTYrQcCDRKaRn97wEG44ADR+ebqxdEUnV1iiqUXkVMki3jRuYk8gw==", "dev": true, "dependencies": { - "@stryker-mutator/api": "7.1.1", - "@stryker-mutator/util": "7.1.1", + "@stryker-mutator/api": "8.0.0", + "@stryker-mutator/util": "8.0.0", "tslib": "~2.6.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "peerDependencies": { - "@stryker-mutator/core": "~7.1.0", + "@stryker-mutator/core": "~8.0.0", "mocha": ">= 7.2 < 11" } }, "node_modules/@stryker-mutator/util": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-7.1.1.tgz", - "integrity": "sha512-LIV7vVrC7dT04BDYZEYkYmetN7WQqD9xiQJRpkrYgACPGdu3eAAfk8UwRSoXAgMqAfZnYC2c+0BuliS8jDdBoQ==", - "dev": true, - "dependencies": { - "lodash.flatmap": "~4.5.0" - } + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.0.0.tgz", + "integrity": "sha512-geb2JvbYXDs6vOjGV9514PK+L6NiYFQIYhkpKvzfZQWYijNYnLhxXKz/X264a9StTYbGb/ZBADOkzsVde/5zig==", + "dev": true }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", @@ -1540,9 +1502,9 @@ } }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", - "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true }, "node_modules/@types/json5": { @@ -1558,38 +1520,47 @@ "dev": true }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", "dev": true }, "node_modules/@types/node": { - "version": "20.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz", - "integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==", - "dev": true + "version": "20.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz", + "integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "dependencies": { "@types/node": "*" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@xml-tools/parser": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", @@ -1612,9 +1583,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1633,35 +1604,35 @@ } }, "node_modules/addons-linter": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.14.0.tgz", - "integrity": "sha512-dgYdML/EoxLhJKt9KL7KTWbb43r2ZDRYQGIv9V1Mf69pBIKhrWr1IIxVDVWrl0b3GuWsFtSBs0iHMsmJxAdvng==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.19.0.tgz", + "integrity": "sha512-Yz5YRfIQ12dIqXKmEoHNwoS/L1xIve2hdm9UEesOEsov5W0zeWMOWCnqdvJNVNy7f1FnPu1lnqzylelkTBS7dA==", "dev": true, "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.3.15", + "@mdn/browser-compat-data": "5.4.3", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.4.0", + "addons-scanner-utils": "9.8.0", "ajv": "8.12.0", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", "deepmerge": "4.3.1", - "eslint": "8.49.0", + "eslint": "8.55.0", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-visitor-keys": "3.4.3", "espree": "9.6.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "10.3.4", + "glob": "10.3.10", "image-size": "1.0.2", "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", - "pino": "8.15.1", - "postcss": "8.4.29", + "pino": "8.16.2", + "postcss": "8.4.32", "relaxed-json": "1.0.3", "semver": "7.5.4", "sha.js": "2.4.11", @@ -1679,9 +1650,9 @@ } }, "node_modules/addons-linter/node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1714,18 +1685,19 @@ } }, "node_modules/addons-linter/node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1783,44 +1755,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/addons-linter/node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/addons-linter/node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/addons-linter/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1838,6 +1776,18 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/addons-linter/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/addons-linter/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1869,12 +1819,12 @@ "dev": true }, "node_modules/addons-scanner-utils": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.4.0.tgz", - "integrity": "sha512-XJpygYD1mYIDJ9BRnPK1FRfBiIybuzG2R8SHzPeuG76Uy78UR4+W28g1ifKBmy+nlI9yQ/AwooqbIuPxAlnAew==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.8.0.tgz", + "integrity": "sha512-nJJ4QazrtMImyb2OK9SGZlNtinNu25dzOR0lhWthhJQN2iDOf3yqHdSiVBEeZvCwuT/sS1cU6me4O4kgEATjFQ==", "dev": true, "dependencies": { - "@types/yauzl": "2.10.0", + "@types/yauzl": "2.10.3", "common-tags": "1.8.2", "first-chunk-stream": "3.0.0", "strip-bom-stream": "4.0.0", @@ -1951,12 +1901,12 @@ } }, "node_modules/angular-html-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-4.0.1.tgz", - "integrity": "sha512-x9SLf2jNNh3nG+haVIwKX/GVW8PcvSRmkeT9WqTDYSAVuwT9IzwEyVm09FCZpOo/dtFRxE9vaNXqcAf/MIxphg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-5.0.2.tgz", + "integrity": "sha512-fov2PwgZDgDsvZXPRa0+lbJyakOZOlFb5eiACR2i6RSn9ad5A+84/SwVfj/dUCbUAHH1ta2uvaoAKEijG93Sfg==", "dev": true, "dependencies": { - "tslib": "^2.5.0" + "tslib": "^2.6.2" }, "engines": { "node": ">= 14" @@ -2513,9 +2463,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.11", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", - "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -2532,9 +2482,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001538", - "electron-to-chromium": "^1.4.526", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -2638,12 +2588,12 @@ } }, "node_modules/cacheable-request": { - "version": "10.2.13", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.13.tgz", - "integrity": "sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA==", + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, "dependencies": { - "@types/http-cache-semantics": "^4.0.1", + "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", "http-cache-semantics": "^4.1.1", "keyv": "^4.5.3", @@ -2655,14 +2605,27 @@ "node": ">=14.16" } }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2704,9 +2667,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001538", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz", - "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==", + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", "dev": true, "funding": [ { @@ -2852,9 +2815,9 @@ } }, "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", "dev": true, "funding": [ { @@ -2912,9 +2875,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -3022,18 +2985,18 @@ } }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/comment-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", - "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -3128,6 +3091,12 @@ "url": "https://github.com/yeoman/configstore?sponsor=1" } }, + "node_modules/configstore/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/configstore/node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -3147,9 +3116,9 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/core-js": { @@ -3163,6 +3132,19 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -3238,12 +3220,12 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", - "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", + "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", "dev": true, "engines": { - "node": ">=12.22" + "node": ">=12 || >=16" } }, "node_modules/css-select": { @@ -3468,9 +3450,9 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", @@ -3665,15 +3647,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.528", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz", - "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==", + "version": "1.4.623", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz", + "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==", "dev": true }, "node_modules/emoji-regex": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", - "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", "dev": true }, "node_modules/end-of-stream": { @@ -3697,6 +3679,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3707,26 +3698,26 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -3736,7 +3727,7 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", @@ -3750,7 +3741,7 @@ "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -3760,26 +3751,26 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -3848,18 +3839,19 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -3901,6 +3893,18 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -3960,13 +3964,14 @@ } }, "node_modules/eslint-plugin-es-x": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", - "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0" + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -4007,28 +4012,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -4090,36 +4095,36 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", - "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", + "version": "48.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.2.tgz", + "integrity": "sha512-CBFl5Jc7+jlV36RwDm+PQ8Uw5r28pn2/uW/OaB+Gw5bFwn4Py/1eYMZ3hGf9S4meUFZ/sRvS+hVif2mRAp6WqQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.40.1", + "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", - "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz", + "integrity": "sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", - "rambda": "^7.1.0" + "rambda": "^7.4.0" }, "engines": { "node": ">=14.0.0" @@ -4129,16 +4134,18 @@ } }, "node_modules/eslint-plugin-n": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", - "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.1.tgz", + "integrity": "sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.1.0", + "eslint-plugin-es-x": "^7.5.0", "get-tsconfig": "^4.7.0", + "globals": "^13.24.0", "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", "resolve": "^1.22.2", @@ -4164,6 +4171,21 @@ "concat-map": "0.0.1" } }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-n/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4176,6 +4198,18 @@ "node": "*" } }, + "node_modules/eslint-plugin-n/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-no-unsanitized": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz", @@ -4198,42 +4232,42 @@ } }, "node_modules/eslint-plugin-regexp": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.15.0.tgz", - "integrity": "sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.2.0.tgz", + "integrity": "sha512-0kwpiWiLRVBkVr3oIRQLl196sXP/NF6DQFefv9jtR4ZOgQR+6WID2pIZ0I+wIt54qgBPwBB7Gm2a+ueh8/WsFQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "comment-parser": "^1.1.2", - "grapheme-splitter": "^1.0.4", - "jsdoctypeparser": "^9.0.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0", - "scslre": "^0.2.0" + "@eslint-community/regexpp": "^4.9.1", + "comment-parser": "^1.4.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "refa": "^0.12.1", + "regexp-ast-analysis": "^0.7.1", + "scslre": "^0.3.0" }, "engines": { - "node": "^12 || >=14" + "node": "^18 || >=20" }, "peerDependencies": { - "eslint": ">=6.0.0" + "eslint": ">=8.44.0" } }, "node_modules/eslint-plugin-unicorn": { - "version": "48.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", - "integrity": "sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==", + "version": "50.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-50.0.1.tgz", + "integrity": "sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "@eslint-community/eslint-utils": "^4.4.0", - "ci-info": "^3.8.0", + "@eslint/eslintrc": "^2.1.4", + "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", + "core-js-compat": "^3.34.0", "esquery": "^1.5.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", - "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", @@ -4248,7 +4282,7 @@ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.44.0" + "eslint": ">=8.56.0" } }, "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { @@ -4361,9 +4395,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4514,23 +4548,23 @@ } }, "node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -4636,9 +4670,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4809,9 +4843,9 @@ } }, "node_modules/firefox-profile/node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -4845,17 +4879,17 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -4865,9 +4899,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ { @@ -4909,18 +4943,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -5000,10 +5022,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -5099,15 +5124,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5126,12 +5151,12 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5175,19 +5200,19 @@ } }, "node_modules/glob": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.6.tgz", - "integrity": "sha512-mEfImdc/fiYHEcF6pHFfD2b/KrdFB1qH9mRe5vI5HROF8G51SWxQJ2V56Ezl6ZL9y86gsxQ1Lgo2S746KGUPSQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5363,6 +5388,18 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5375,12 +5412,6 @@ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -5447,18 +5478,6 @@ "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -5478,12 +5497,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5540,6 +5559,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -5820,9 +5851,9 @@ } }, "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, "dependencies": { "quick-lru": "^5.1.1", @@ -5845,12 +5876,12 @@ } }, "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/iconv-lite": { @@ -5886,9 +5917,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -5981,12 +6012,12 @@ "dev": true }, "node_modules/inquirer": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.9", + "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", @@ -6007,13 +6038,13 @@ } }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -6152,13 +6183,28 @@ "is-ci": "bin.js" } }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6512,9 +6558,9 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -6577,18 +6623,6 @@ "node": ">=12.0.0" } }, - "node_modules/jsdoctypeparser": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", - "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", - "dev": true, - "bin": { - "jsdoctypeparser": "bin/jsdoctypeparser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -6768,9 +6802,9 @@ } }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -6786,9 +6820,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", - "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", "dev": true }, "node_modules/latest-version": { @@ -6872,12 +6906,12 @@ "dev": true }, "node_modules/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/locate-path": { @@ -6901,12 +6935,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg==", - "dev": true - }, "node_modules/lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", @@ -7055,53 +7083,48 @@ } }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", + "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", "dev": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.0.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdownlint": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", - "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz", + "integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==", "dev": true, "dependencies": { - "markdown-it": "13.0.1", - "markdownlint-micromark": "0.1.7" + "markdown-it": "14.0.0", + "markdownlint-micromark": "0.1.8" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-micromark": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", - "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz", + "integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==", "dev": true, "engines": { "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/marked": { @@ -7139,9 +7162,9 @@ "dev": true }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "node_modules/mem": { @@ -7221,9 +7244,9 @@ } }, "node_modules/metalint": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.14.1.tgz", - "integrity": "sha512-lQDYpfmhsLuMFJhBrlacyML0iQaRFitjl3kecUzly7X7M49UMuOZGV4bNTqMMTYEN8wtUPvEitjZEkXzgVejlQ==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.15.0.tgz", + "integrity": "sha512-U4RTfBedIIP1gJp+BLyg+gkwqfRLTFFi9El/2tkKqBgi5dLlUr9FFrj47JrTHNBqSru7DuJYth+PZS/g6zIoRA==", "dev": true, "dependencies": { "chalk": "5.3.0", @@ -7233,7 +7256,7 @@ "metalint": "src/bin/index.js" }, "engines": { - "node": ">=20.0.0" + "node": ">=20.6.0" }, "funding": { "url": "https://www.paypal.me/sebastienregne" @@ -7366,9 +7389,9 @@ } }, "node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -7542,9 +7565,9 @@ } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "dev": true, "optional": true, "engines": { @@ -7610,24 +7633,24 @@ } }, "node_modules/mutation-testing-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-2.0.1.tgz", - "integrity": "sha512-4piLXKUp3iyQ8O+n7tshESwTJI18Olj8ZwW8G9vMpuODKmc8MvQG63zbsiPb9KFJ8yEiiMNodQUSSdgLXpYxPA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.0.1.tgz", + "integrity": "sha512-hsBKkabjD2sjyR2vhdEFPDxZfYLw71geIWjEh4rcZSSQAtyWRfjGf6UbdMjleuyw1ZZTgGt6CImtwRY7s3lrVg==", "dev": true }, "node_modules/mutation-testing-metrics": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-2.0.1.tgz", - "integrity": "sha512-YuxxOxg7mFdxL8DQFyU4ueip/8PL7+2/4FPR+xEetBII/c7p2Gt4FqN23US+wdQhNxsos4PCdYJjL8ddqo6/2g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.0.0.tgz", + "integrity": "sha512-WslGuCdpqT+6SpeIahMhLrJl5+YbutlOCFKxuULIkAkaHfsWBK8UCq6euE7PiDEx+R1pYZo//kqRbFIOFmdQug==", "dev": true, "dependencies": { - "mutation-testing-report-schema": "2.0.1" + "mutation-testing-report-schema": "3.0.0" } }, "node_modules/mutation-testing-report-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-2.0.1.tgz", - "integrity": "sha512-el8j0dzhhxICQZ3vbXGlb9iIDrouOvJo28bKSl3/2sPhpAPZccfvbuwcvlG7+vZv87wJkFaj5zTDQ4TFQoXXNA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.0.0.tgz", + "integrity": "sha512-70+ZPYoyedruSGiEcXQnFiTtIusBYlsL/2EMwfR+/HOqBGxBpmI798spqc86ZVYXPVCL5mt2rWjE1dTQwcjpmQ==", "dev": true }, "node_modules/mute-stream": { @@ -7745,9 +7768,9 @@ "dev": true }, "node_modules/nconf": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.0.tgz", - "integrity": "sha512-T3fZPw3c7Dfrz8JBQEbEcZJ2s8f7cUMpKuyBtsGQe0b71pcXx6gNh4oti2xh5dxB+gO9ufNfISBlGvvWtfyMcA==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.1.tgz", + "integrity": "sha512-p2cfF+B3XXacQdswUYWZ0w6Vld0832A/tuqjLBu3H1sfUcby4N2oVbGhyuCkZv+t3iY3aiFEj7gZGqax9Q2c1w==", "dev": true, "dependencies": { "async": "^3.0.0", @@ -7887,9 +7910,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -7929,9 +7952,9 @@ } }, "node_modules/npm-package-json-lint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-7.0.0.tgz", - "integrity": "sha512-Yn8flnPx/7hTxwejWL5urm8sbEahq8ic3R80d7nlBvS6C58JEmJpUqvO7Ksy8izRzpbrHq0Anwlv/nQg5OYf8Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-7.1.0.tgz", + "integrity": "sha512-ypcMpag32TCP89zzLSS+7vjeR2QY613WzmO2upcJgKNWlcswDz8cdb80urbBNHkhSPI40ex3nsKrRDH/WhMYOg==", "dev": true, "dependencies": { "ajv": "^6.12.6", @@ -7946,10 +7969,10 @@ "log-symbols": "^4.1.0", "meow": "^9.0.0", "plur": "^4.0.0", - "semver": "^7.5.3", + "semver": "^7.5.4", "slash": "^3.0.0", "strip-json-comments": "^3.1.1", - "type-fest": "^3.12.0", + "type-fest": "^4.3.3", "validate-npm-package-name": "^5.0.0" }, "bin": { @@ -8037,12 +8060,12 @@ } }, "node_modules/npm-package-json-lint/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz", + "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8106,9 +8129,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8124,13 +8147,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -8188,10 +8211,13 @@ } }, "node_modules/on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } }, "node_modules/once": { "version": "1.4.0", @@ -8435,6 +8461,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/os-locale/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/os-locale/node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -8657,9 +8689,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -8705,9 +8737,9 @@ } }, "node_modules/pino": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.1.tgz", - "integrity": "sha512-Cp4QzUQrvWCRJaQ8Lzv0mJzXVk4z2jlq8JNKMGaixC2Pz5L4l2p95TkuRvYbrEbe85NQsDKrAd4zalf7Ml6WiA==", + "version": "8.16.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.2.tgz", + "integrity": "sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0", @@ -8719,7 +8751,7 @@ "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", + "sonic-boom": "^3.7.0", "thread-stream": "^2.0.0" }, "bin": { @@ -8761,9 +8793,9 @@ } }, "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, "dependencies": { "abort-controller": "^3.0.0", @@ -8839,9 +8871,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -8858,7 +8890,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -8873,25 +8905,35 @@ "dev": true }, "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", + "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=18.0" }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -8917,9 +8959,9 @@ "dev": true }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -8944,9 +8986,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -8974,9 +9016,9 @@ "dev": true }, "node_modules/process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", + "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==", "dev": true }, "node_modules/progress": { @@ -9023,9 +9065,18 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, "engines": { "node": ">=6" @@ -9377,12 +9428,12 @@ } }, "node_modules/refa": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz", - "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/refa/-/refa-0.12.1.tgz", + "integrity": "sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0" + "@eslint-community/regexpp": "^4.8.0" }, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -9395,13 +9446,13 @@ "dev": true }, "node_modules/regexp-ast-analysis": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz", - "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", + "integrity": "sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.1" }, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -9656,9 +9707,9 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", @@ -9748,6 +9799,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -9923,20 +9980,23 @@ "dev": true }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true }, "node_modules/scslre": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz", - "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz", + "integrity": "sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.0", + "regexp-ast-analysis": "^0.7.0" + }, + "engines": { + "node": "^14.0.0 || >=16.0.0" } }, "node_modules/secure-compare": { @@ -10008,6 +10068,21 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -10075,9 +10150,9 @@ "dev": true }, "node_modules/shiki": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", - "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -10119,10 +10194,16 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/slash": { "version": "3.0.0", @@ -10151,9 +10232,9 @@ } }, "node_modules/sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", + "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0" @@ -10217,6 +10298,16 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", @@ -10224,9 +10315,9 @@ "dev": true }, "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", @@ -10234,9 +10325,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", - "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/split": { @@ -10261,9 +10352,9 @@ } }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -10532,54 +10623,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, "node_modules/stylelint": { - "version": "15.10.3", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", - "integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.1.0.tgz", + "integrity": "sha512-Sh1rRV0lN1qxz/QsuuooLWsIZ/ona7NKw/fRZd6y6PyXYdD2W0EAzJ8yJcwSx4Iw/muz0CF09VZ+z4EiTAcKmg==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/media-query-list-parser": "^2.1.4", - "@csstools/selector-specificity": "^3.0.0", + "@csstools/css-parser-algorithms": "^2.4.0", + "@csstools/css-tokenizer": "^2.2.2", + "@csstools/media-query-list-parser": "^2.1.6", + "@csstools/selector-specificity": "^3.0.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^8.2.0", - "css-functions-list": "^3.2.0", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.1", "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.3.1", + "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", + "ignore": "^5.3.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.28.0", + "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^10.1.5", + "meow": "^13.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.27", + "postcss": "^8.4.32", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", + "postcss-safe-parser": "^7.0.0", "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", + "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", @@ -10589,7 +10672,7 @@ "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=18.12.0" }, "funding": { "type": "opencollective", @@ -10597,67 +10680,49 @@ } }, "node_modules/stylelint-order": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", - "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz", + "integrity": "sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==", "dev": true, "dependencies": { - "postcss": "^8.4.21", + "postcss": "^8.4.32", "postcss-sorting": "^8.0.2" }, "peerDependencies": { - "stylelint": "^14.0.0 || ^15.0.0" + "stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" @@ -10671,22 +10736,10 @@ } } }, - "node_modules/stylelint/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -10699,114 +10752,51 @@ "node": ">=8.6.0" } }, - "node_modules/stylelint/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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stylelint/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16.0.0" } }, - "node_modules/stylelint/node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "node_modules/stylelint/node_modules/flat-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", + "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" + "flatted": "^3.2.9", + "keyv": "^4.5.4", + "rimraf": "^5.0.5" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, - "node_modules/stylelint/node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "node_modules/stylelint/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==", "dev": true, "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/stylelint/node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "node_modules/stylelint/node_modules/meow": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", + "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10821,52 +10811,37 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "node_modules/stylelint/node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { - "min-indent": "^1.0.1" + "glob": "^10.3.7" }, - "engines": { - "node": ">=12" + "bin": { + "rimraf": "dist/esm/bin.mjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", - "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", - "dev": true, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/supports-color": { @@ -10971,9 +10946,9 @@ } }, "node_modules/thread-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.0.tgz", - "integrity": "sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", + "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", "dev": true, "dependencies": { "real-require": "^0.2.0" @@ -11065,9 +11040,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -11089,9 +11064,9 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tunnel": { @@ -11255,15 +11230,15 @@ } }, "node_modules/typedoc": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.1.tgz", - "integrity": "sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==", + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz", + "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==", "dev": true, "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", "minimatch": "^9.0.3", - "shiki": "^0.14.1" + "shiki": "^0.14.7" }, "bin": { "typedoc": "bin/typedoc" @@ -11272,13 +11247,13 @@ "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x" } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -11289,9 +11264,9 @@ } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz", + "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==", "dev": true }, "node_modules/unbox-primitive": { @@ -11315,6 +11290,12 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", @@ -11459,6 +11440,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/validate-npm-package-name": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", @@ -11526,14 +11517,14 @@ "dev": true }, "node_modules/web-ext": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.7.0.tgz", - "integrity": "sha512-/jc0kbSLfw/ANra6v70I6QADrVYL0Wo98T0Cigt39EjVpXbiwES8zww/9QL7aE0L1tK0ISWYq45KNisDV+GKVA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.9.0.tgz", + "integrity": "sha512-oWMiM3e+u5E8X7aUMgQ0BCGjlbZt4XwF6ExAXsXx9Btdz3nLmUY/4eKEZA1J+2T7WhCdRwN7Pdh2VKMej/pthQ==", "dev": true, "dependencies": { "@babel/runtime": "7.21.0", "@devicefarmer/adbkit": "3.2.3", - "addons-linter": "6.13.0", + "addons-linter": "6.19.0", "bunyan": "1.8.15", "camelcase": "7.0.1", "chrome-launcher": "0.15.1", @@ -11572,175 +11563,6 @@ "npm": ">=6.9.0" } }, - "node_modules/web-ext/node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.3.14.tgz", - "integrity": "sha512-Y9XQrphVcE6u9xMm+gIqN86opbU/5s2W1pdPyKRyFV5B7+2jWM2gLI5JpfhZncaoDKvhy6FYwK04aCz5UM/bTQ==", - "dev": true - }, - "node_modules/web-ext/node_modules/addons-linter": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.13.0.tgz", - "integrity": "sha512-vYgDXl8aLmN1zU4HmsQdG6tUFByg499mHnTEMWDUbSkoYDq3koTne08EsqU6sD+o814u8FxclQP7580L0g/tPQ==", - "dev": true, - "dependencies": { - "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.3.14", - "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.3.0", - "ajv": "8.12.0", - "chalk": "4.1.2", - "cheerio": "1.0.0-rc.12", - "columnify": "1.6.0", - "common-tags": "1.8.2", - "deepmerge": "4.3.1", - "eslint": "8.48.0", - "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "3.4.3", - "espree": "9.6.1", - "esprima": "4.0.1", - "fast-json-patch": "3.1.1", - "glob": "10.3.4", - "image-size": "1.0.2", - "is-mergeable-object": "1.1.1", - "jed": "1.1.1", - "json-merge-patch": "1.0.2", - "os-locale": "5.0.0", - "pino": "8.15.0", - "postcss": "8.4.29", - "relaxed-json": "1.0.3", - "semver": "7.5.4", - "sha.js": "2.4.11", - "source-map-support": "0.5.21", - "tosource": "1.0.0", - "upath": "2.0.1", - "yargs": "17.7.2", - "yauzl": "2.10.0" - }, - "bin": { - "addons-linter": "bin/addons-linter" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/web-ext/node_modules/addons-linter/node_modules/addons-scanner-utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.3.0.tgz", - "integrity": "sha512-YZWzNpP+em650XlZNH7NbTUcHJXqC0ihLEgwn17GGTqervyChqQffd9sm/QXNur0dmj7Ks1mD77iTg9XcJw64A==", - "dev": true, - "dependencies": { - "@types/yauzl": "2.10.0", - "common-tags": "1.8.2", - "first-chunk-stream": "3.0.0", - "strip-bom-stream": "4.0.0", - "upath": "2.0.1", - "yauzl": "2.10.0" - }, - "peerDependencies": { - "body-parser": "1.20.2", - "express": "4.18.2", - "node-fetch": "2.6.11", - "safe-compare": "1.1.4" - }, - "peerDependenciesMeta": { - "body-parser": { - "optional": true - }, - "express": { - "optional": true - }, - "node-fetch": { - "optional": true - }, - "safe-compare": { - "optional": true - } - } - }, - "node_modules/web-ext/node_modules/addons-linter/node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/web-ext/node_modules/addons-linter/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/web-ext/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/web-ext/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/web-ext/node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -11753,22 +11575,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": 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/web-ext/node_modules/decamelize": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", @@ -11781,88 +11587,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/web-ext/node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/web-ext/node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/web-ext/node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -11877,49 +11601,6 @@ "node": ">=14.14" } }, - "node_modules/web-ext/node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/web-ext/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/web-ext/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==", - "dev": true - }, "node_modules/web-ext/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -11933,9 +11614,9 @@ } }, "node_modules/web-ext/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -11989,54 +11670,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/pino": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.0.tgz", - "integrity": "sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/web-ext/node_modules/pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", - "dev": true, - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/web-ext/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/web-ext/node_modules/strip-bom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", @@ -12061,18 +11694,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/web-ext/node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -12085,22 +11706,10 @@ "node": ">=8.17.0" } }, - "node_modules/web-ext/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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/web-ext/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -12134,9 +11743,9 @@ } }, "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", "dev": true, "engines": { "node": ">= 8" @@ -12225,13 +11834,13 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" @@ -12371,18 +11980,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", diff --git a/package.json b/package.json index 73cb791..66faa97 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "lint:types": "tsc --project .tsconfig_lint.json", "test": "npm run test:unit", "test:unit": "mocha --config test/unit/mocharc.json", - "test:coverage": "stryker run .stryker.config.js", + "test:coverage": "stryker run", "jsdocs": "typedoc --tsconfig .tsconfig_jsdocs.json", "serve": "http-server -p6007 -c-1 --cors", "extension:chromium": "web-ext run -t chromium -s src/extension/", @@ -42,35 +42,35 @@ }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.2.1", - "@stryker-mutator/core": "7.1.1", - "@stryker-mutator/mocha-runner": "7.1.1", - "@types/mocha": "10.0.1", - "addons-linter": "6.14.0", - "eslint": "8.50.0", + "@prettier/plugin-xml": "3.2.2", + "@stryker-mutator/core": "8.0.0", + "@stryker-mutator/mocha-runner": "8.0.0", + "@types/mocha": "10.0.6", + "addons-linter": "6.19.0", + "eslint": "8.56.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.28.1", - "eslint-plugin-jsdoc": "46.8.2", - "eslint-plugin-mocha": "10.1.0", - "eslint-plugin-n": "16.1.0", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-jsdoc": "48.0.2", + "eslint-plugin-mocha": "10.2.0", + "eslint-plugin-n": "16.6.1", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "1.15.0", - "eslint-plugin-unicorn": "48.0.1", + "eslint-plugin-regexp": "2.2.0", + "eslint-plugin-unicorn": "50.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.31.1", - "metalint": "0.14.1", + "markdownlint": "0.33.0", + "metalint": "0.15.0", "mocha": "10.2.0", - "npm-package-json-lint": "7.0.0", - "prettier": "3.0.3", + "npm-package-json-lint": "7.1.0", + "prettier": "3.1.1", "purgecss": "5.0.0", - "stylelint": "15.10.3", - "stylelint-order": "6.0.3", - "typedoc": "0.25.1", - "typescript": "5.2.2", - "web-ext": "7.7.0", + "stylelint": "16.1.0", + "stylelint-order": "6.0.4", + "typedoc": "0.25.7", + "typescript": "5.3.3", + "web-ext": "7.9.0", "yaml-lint": "1.7.0" }, "engines": { diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 51d2e0e..5967880 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "117.0" + "strict_min_version": "121.0" } }, "manifest_version": 2, @@ -31,7 +31,7 @@ "persistent": true }, "homepage_url": "https://github.com/regseb/gout", - "minimum_chrome_version": "117", + "minimum_chrome_version": "120", "permissions": [ "<all_urls>", "activeTab", From 891a7b971f046eaac71afdc33cb9cd2e78bf0971 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 18:31:12 +0100 Subject: [PATCH 12/38] chore(main): release 0.10.0 (#14) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(main): release 0.10.0 * Mettre à jour la version du manifest. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Sébastien Règne <regseb@gmail.com> --- CHANGELOG.md | 13 +++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/manifest.json | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd3031c..03bfd59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [0.10.0](https://github.com/regseb/gout/compare/v0.9.8...v0.10.0) (2024-01-08) + + +### Features + +* Chainer les scrapers. ([04c094b](https://github.com/regseb/gout/commit/04c094b9f08b7ed980e27c57fd922d7e3f86e1fb)) + + +### Bug Fixes + +* Déplacer le scraper Repeater dans tools. ([da4af6f](https://github.com/regseb/gout/commit/da4af6fbf59a68223468b52abb401c2e683e5630)) +* **scraper/icon/ping:** Remplacer les points par des "x". ([402e2b4](https://github.com/regseb/gout/commit/402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b)) + ## [0.9.8](https://github.com/regseb/gout/compare/v0.9.7...v0.9.8) (2023-09-24) diff --git a/package-lock.json b/package-lock.json index dce630f..420fcf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.9.8", + "version": "0.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.9.8", + "version": "0.10.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 66faa97..80f32a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.9.8", + "version": "0.10.0", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 5967880..3658079 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.9.8", + "version": "0.10.0", "browser_action": { "default_icon": { "16": "img/icon16.png", From de49cd609b73e35acba3ab511dffe3618412fa80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 3 Feb 2024 08:08:21 +0100 Subject: [PATCH 13/38] =?UTF-8?q?chore:=20Formater=20les=20fichiers=20modi?= =?UTF-8?q?fi=C3=A9s=20lors=20de=20la=20release.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 45 +++++++++++++++++++++- .metalint/markdownlint_changelog.config.js | 14 +++++++ .metalint/metalint.config.js | 7 +++- .release-please/config.json | 8 ++++ .release-please/manifest.json | 1 + CHANGELOG.md | 34 +++++++--------- 6 files changed, 86 insertions(+), 23 deletions(-) create mode 100644 .metalint/markdownlint_changelog.config.js create mode 100644 .release-please/config.json create mode 100644 .release-please/manifest.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4d725af..71bbddd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,5 +12,48 @@ jobs: steps: - name: Run Release Please uses: google-github-actions/release-please-action@v4 + id: release with: - release-type: node + config-file: .release-please/config.json + manifest-file: .release-please/manifest.json + + # Formatter les fichiers modifiés par release-please, car ils ne + # respectent plus le formatage de Prettier (via Metalint). + # https://github.com/googleapis/release-please/issues/1802 + - name: Checkout repository + if: ${{ steps.release.outputs.pr }} + uses: actions/checkout@v4 + with: + ref: ${{ fromJson(steps.release.outputs.pr).headBranchName }} + + - name: Configure Git user + if: ${{ steps.release.outputs.pr }} + run: | + git config user.email "github-actions[bot]@users.noreply.github.com" + git config user.name "github-actions[bot]" + + - name: Setup Node.js + if: ${{ steps.release.outputs.pr }} + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install dependencies + if: ${{ steps.release.outputs.pr }} + run: npm ci + + - name: Format files + if: ${{ steps.release.outputs.pr }} + run: > + npm run lint:fix -- + .release-please/manifest.json + CHANGELOG.md + package.json + package-lock.json + src/extension/manifest.json + + - name: Commit and push + if: ${{ steps.release.outputs.pr }} + run: | + git commit --all --message 'chore: format files' + git push diff --git a/.metalint/markdownlint_changelog.config.js b/.metalint/markdownlint_changelog.config.js new file mode 100644 index 0000000..8f3edb1 --- /dev/null +++ b/.metalint/markdownlint_changelog.config.js @@ -0,0 +1,14 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * @type {import("markdownlint").Configuration} + */ +export default { + // Ne pas vérifier la longueur des lignes du CHANGELOG, car celui-ci est + // généré par release-please et il peut avoir de longues lignes. + "line-length": false, +}; diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 30ff8db..3185c54 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -7,10 +7,9 @@ export default { patterns: [ "**", - // Ignorer les répertoires et les fichiers générés. + // Ignorer les répertoires générés. "!/.git/**", "!/.stryker/**", - "!/CHANGELOG.md", "!/jsdocs/**", "!/node_modules/**", "!/src/extension/polyfill/lib/**", @@ -87,6 +86,10 @@ export default { { patterns: "*.md", linters: ["prettier", "markdownlint"], + overrides: { + patterns: "/CHANGELOG.md", + linters: "markdownlint_changelog", + }, }, { patterns: "*.json", diff --git a/.release-please/config.json b/.release-please/config.json new file mode 100644 index 0000000..9656e8b --- /dev/null +++ b/.release-please/config.json @@ -0,0 +1,8 @@ +{ + "release-type": "node", + "include-component-in-tag": false, + "extra-files": ["src/extension/manifest.json"], + "packages": { + ".": {} + } +} diff --git a/.release-please/manifest.json b/.release-please/manifest.json new file mode 100644 index 0000000..15cc783 --- /dev/null +++ b/.release-please/manifest.json @@ -0,0 +1 @@ +{ ".": "0.10.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 03bfd59..da68f2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,45 +4,39 @@ All notable changes to this project will be documented in this file. See [standa ## [0.10.0](https://github.com/regseb/gout/compare/v0.9.8...v0.10.0) (2024-01-08) - ### Features -* Chainer les scrapers. ([04c094b](https://github.com/regseb/gout/commit/04c094b9f08b7ed980e27c57fd922d7e3f86e1fb)) - +- Chainer les scrapers. ([04c094b](https://github.com/regseb/gout/commit/04c094b9f08b7ed980e27c57fd922d7e3f86e1fb)) ### Bug Fixes -* Déplacer le scraper Repeater dans tools. ([da4af6f](https://github.com/regseb/gout/commit/da4af6fbf59a68223468b52abb401c2e683e5630)) -* **scraper/icon/ping:** Remplacer les points par des "x". ([402e2b4](https://github.com/regseb/gout/commit/402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b)) +- Déplacer le scraper Repeater dans tools. ([da4af6f](https://github.com/regseb/gout/commit/da4af6fbf59a68223468b52abb401c2e683e5630)) +- **scraper/icon/ping:** Remplacer les points par des "x". ([402e2b4](https://github.com/regseb/gout/commit/402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b)) ## [0.9.8](https://github.com/regseb/gout/compare/v0.9.7...v0.9.8) (2023-09-24) - ### Bug Fixes -* Corriger des fautes de français. ([ebb3cba](https://github.com/regseb/gout/commit/ebb3cba7bc03a738ef59055d857b2673dade3e32)) -* Corriger le nom des classes. ([c91d0fa](https://github.com/regseb/gout/commit/c91d0fa7befa9582dad35712b2a3fdf630183f31)) -* Gérer correctement les async / await. ([b017aaa](https://github.com/regseb/gout/commit/b017aaade74a678200fa4a8c597463fcd6296c33)) - -### [0.9.7](https://github.com/regseb/gout/compare/v0.9.6...v0.9.7) (2023-03-10) +- Corriger des fautes de français. ([ebb3cba](https://github.com/regseb/gout/commit/ebb3cba7bc03a738ef59055d857b2673dade3e32)) +- Corriger le nom des classes. ([c91d0fa](https://github.com/regseb/gout/commit/c91d0fa7befa9582dad35712b2a3fdf630183f31)) +- Gérer correctement les async / await. ([b017aaa](https://github.com/regseb/gout/commit/b017aaade74a678200fa4a8c597463fcd6296c33)) +## [0.9.7](https://github.com/regseb/gout/compare/v0.9.6...v0.9.7) (2023-03-10) ### Bug Fixes -* **extension:** Modifier la requête HTTP. ([d0de0f9](https://github.com/regseb/gout/commit/d0de0f947c53fb594cdd61956952b297dd226114)) -* Renommer "Configuration" en "Options". ([eb0a0ad](https://github.com/regseb/gout/commit/eb0a0adcffdb07559a5853b630701cdfc197ddca)) - -### [0.9.6](https://github.com/regseb/gout/compare/v0.9.5...v0.9.6) (2022-12-11) +- **extension:** Modifier la requête HTTP. ([d0de0f9](https://github.com/regseb/gout/commit/d0de0f947c53fb594cdd61956952b297dd226114)) +- Renommer "Configuration" en "Options". ([eb0a0ad](https://github.com/regseb/gout/commit/eb0a0adcffdb07559a5853b630701cdfc197ddca)) -### [0.9.5](https://github.com/regseb/gout/compare/v0.9.4...v0.9.5) (2022-10-23) +## [0.9.6](https://github.com/regseb/gout/compare/v0.9.5...v0.9.6) (2022-12-11) +## [0.9.5](https://github.com/regseb/gout/compare/v0.9.4...v0.9.5) (2022-10-23) ### Features -* Améliorer l'héritage de widgets. ([1c25ad3](https://github.com/regseb/gout/commit/1c25ad37d0063bed18f4065d980d78ef2250e7eb)) -* **module/findrss:** Ajouter un module pour extraire les flux RSS. ([e7b88a7](https://github.com/regseb/gout/commit/e7b88a7e534ae6b335b5bffa4341e35f0d17a995)) - +- Améliorer l'héritage de widgets. ([1c25ad3](https://github.com/regseb/gout/commit/1c25ad37d0063bed18f4065d980d78ef2250e7eb)) +- **module/findrss:** Ajouter un module pour extraire les flux RSS. ([e7b88a7](https://github.com/regseb/gout/commit/e7b88a7e534ae6b335b5bffa4341e35f0d17a995)) ### Bug Fixes -* **scraper/ping:** Gérer correctement les codes. ([b03035c](https://github.com/regseb/gout/commit/b03035ca4d5779653cbf0ab1811341a7c163d658)) +- **scraper/ping:** Gérer correctement les codes. ([b03035c](https://github.com/regseb/gout/commit/b03035ca4d5779653cbf0ab1811341a7c163d658)) From 3750c46efca760baee983d035f60bc64cd5e4f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 15:56:01 +0100 Subject: [PATCH 14/38] =?UTF-8?q?docs:=20Am=C3=A9liorer=20la=20documentati?= =?UTF-8?q?on.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 112 +++++++++++------------- src/module/audio/README.md | 32 ++++--- src/module/clock/README.md | 26 +++--- src/module/icon/README.md | 32 ++++--- src/module/iframe/README.md | 29 +++--- src/module/image/README.md | 24 ++--- src/module/list/README.md | 32 ++++--- src/module/notepad/README.md | 18 ++-- src/module/podcast/README.md | 32 ++++--- src/module/search/README.md | 32 ++++--- src/module/single/README.md | 22 +++-- src/module/text/README.md | 26 +++--- src/module/tools/contrast/README.md | 6 +- src/module/tools/findrss/README.md | 6 +- src/scraper/icon/ping/README.md | 42 ++++++--- src/scraper/list/jsonfeed/README.md | 46 ++++++---- src/scraper/list/rss/README.md | 45 ++++++---- src/scraper/search/opensearch/README.md | 50 +++++------ src/scraper/tools/complements/README.md | 44 +++++----- src/scraper/tools/filter/README.md | 70 +++++++++------ src/scraper/tools/repeater/README.md | 38 ++++---- 21 files changed, 433 insertions(+), 331 deletions(-) diff --git a/README.md b/README.md index f85b87d..8f160b4 100644 --- a/README.md +++ b/README.md @@ -39,18 +39,18 @@ Voici un exemple de dashboard ayant quatre colonnes de widgets. </style> </head> <body> - <div style="width: 25%;"> + <div style="width: 30%;"> <script type="application/json">{ "...": "..." }</script> <script type="application/json">{ "...": "..." }</script> <!-- ... --> </div> - <div style="width: 25%;"> + <div style="width: 30%;"> <script type="application/json">{ "...": "..." }</script> </div> - <div style="width: 25%;"> + <div style="width: 20%;"> <script type="application/json">{ "...": "..." }</script> </div> - <div style="width: 25%;"> + <div style="width: 20%;"> <script type="application/json">{ "...": "..." }</script> <script type="application/json">{ "...": "..." }</script> </div> @@ -61,7 +61,8 @@ Voici un exemple de dashboard ayant quatre colonnes de widgets. ### Widget Un widget est un bloc du dashboard. C'est un élément `<script>` (avec le -`type="application/json"`) qui contient un objet +`type="application/json"`). Le widget sera ajouté dans le DOM de la page au même +endroit que l'élément `<script>`. Le contenu du `<script>` est un objet [JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") ayant deux propriétés : @@ -75,30 +76,27 @@ liens. ```HTML <script type="application/json"> - { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#ffc107", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://linuxfr.org/news.atom" - } - }] - } + { + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "max": 5, + "color": "#ffc107", + "cron": "*/10 * * * *" + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://linuxfr.org/news.atom" + } + }] + } </script> ``` -<!-- Une description détaillée des widgets est disponible sur le site de - Gout. --> - Si vous voulez des widgets, vous pouvez chercher -[_gout-widget_](https://github.com/search?q=%22gout-widget%22&type=Code&l=Markdown) +[_gout-widget_](https://github.com/search?q=%22+gout-widget%22+language%3AMarkdown&type=Code&l=Markdown) dans GitHub. ### Module @@ -119,25 +117,22 @@ affichée dans un bloc bleu `#2196f3` et actualisée toutes les dix minutes ```HTML <script type="application/json"> - { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#2196f3", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ "...": "..." }] - } + { + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#2196f3", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ "...": "..." }] + } </script> ``` -<!-- Une description détaillée des modules est disponible sur le site de - Gout. --> - Si vous voulez des modules, vous pouvez chercher -[_gout-module_](https://github.com/search?q=%22gout-module%22&type=Code&l=Markdown) +[_gout-module_](https://github.com/search?q=%22+gout-module%22+language%3AMarkdown&type=Code&l=Markdown) dans GitHub. ### Scraper @@ -155,33 +150,30 @@ propriétés : spécifiques pour chaque scraper). Dans cet exemple, deux scrapers sont définis pour récupérer les dernières vidéos -des chaines YouTube [ARTE Cinema](https://www.youtube.com/c/ARTECinemafrance) et -[ARTE Séries](https://www.youtube.com/c/ARTES%C3%A9ries). +des chaines YouTube [ARTE Cinema](https://www.youtube.com/@artecinemafr) et +[ARTE Séries](https://www.youtube.com/@arteseries). ```HTML <script type="application/json"> - { - "module": { "...": "..." }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UClo03hULFynpoX3w1Jv7fhw", - } - }, { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCzaf-8cAEiXfynukcmV5MXw" - } - }] - } + { + "module": { "...": "..." }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UClo03hULFynpoX3w1Jv7fhw", + } + }, { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCzaf-8cAEiXfynukcmV5MXw" + } + }] + } </script> ``` -<!-- Une description détaillée des scrapers est disponible sur le site de - Gout. --> - Si vous voulez des scrapers, vous pouvez chercher -[_gout-scraper_](https://github.com/search?q=%22gout-scraper%22&type=Code&l=Markdown) +[_gout-scraper_](https://github.com/search?q=%22+gout-scraper%22+language%3AMarkdown&type=Code&l=Markdown) dans GitHub. ## Installation diff --git a/src/module/audio/README.md b/src/module/audio/README.md index 288b8e5..4eb74c0 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -50,6 +50,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner (pour ce module la valeur passée sera toujours `1`). La méthode doit retourner @@ -172,19 +176,19 @@ Ce widget affiche un cadre pour écouter la radio [Fip](https://www.fip.fr/). ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/audio/audio.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "audio": "https://direct.radiofrance.fr/live/fip-hifi.aac", - "color": "#e2007a", - "link": "https://www.radiofrance.fr/fip", - "title": "Fip" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/audio/audio.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "audio": "https://direct.radiofrance.fr/live/fip-hifi.aac", + "color": "#e2007a", + "link": "https://www.radiofrance.fr/fip", + "title": "Fip" + }] + } + }] } ``` diff --git a/src/module/clock/README.md b/src/module/clock/README.md index 59ff6cb..b446f8b 100644 --- a/src/module/clock/README.md +++ b/src/module/clock/README.md @@ -50,6 +50,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner (pour ce module la valeur passée sera toujours `1`). La méthode doit retourner @@ -121,16 +125,16 @@ Ce widget affiche une horloge avec l'heure courante. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/clock/clock.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "color": "#795548" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/clock/clock.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "color": "#795548" + }] + } + }] } ``` diff --git a/src/module/icon/README.md b/src/module/icon/README.md index cecf796..b7bc2d7 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -50,6 +50,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner (pour ce module la valeur passée sera toujours `1`). La méthode doit retourner @@ -159,19 +163,19 @@ Ce widget affiche un bouton qui redirige vers [GitHub](https://github.com/). ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "color": "black", - "link": "https://github.com/", - "target": "_top", - "title": "GitHub" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "color": "black", + "link": "https://github.com/", + "target": "_top", + "title": "GitHub" + }] + } + }] } ``` diff --git a/src/module/iframe/README.md b/src/module/iframe/README.md index b556cab..174b16e 100644 --- a/src/module/iframe/README.md +++ b/src/module/iframe/README.md @@ -63,6 +63,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner (pour ce module la valeur passée sera toujours `1`). La méthode doit retourner @@ -109,20 +113,21 @@ suivantes : ## Exemple -Ce widget affiche [Wikipédia](https://fr.wikipedia.org/) dans un `iframe`. +Ce widget affiche la [Lofi Girl](https://youtu.be/jfKfPfyJRdk) de YouTube dans +un `iframe`. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/iframe/iframe.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "link": "https://fr.wikipedia.org/wiki/Wikipédia:Accueil_principal" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/iframe/iframe.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "link": "https://www.youtube-nocookie.com/embed/jfKfPfyJRdk" + }] + } + }] } ``` diff --git a/src/module/image/README.md b/src/module/image/README.md index e7564b6..3ad1c51 100644 --- a/src/module/image/README.md +++ b/src/module/image/README.md @@ -68,6 +68,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner. La méthode doit retourner une @@ -174,15 +178,15 @@ Ce widget affiche les `3` dernières images du site ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js", - "options": { - "cron": "@daily", - "max": 3 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/image/commitstrip/commitstrip.js" - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js", + "options": { + "cron": "@daily", + "max": 3 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/image/commitstrip/commitstrip.js" + }] } ``` diff --git a/src/module/list/README.md b/src/module/list/README.md index a1895c0..cb589e3 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -100,6 +100,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner. La méthode doit retourner une @@ -218,19 +222,19 @@ Ce widget affiche les cinq dernières actualités du site ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#ffc107", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://linuxfr.org/news.atom" - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#ffc107", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://linuxfr.org/news.atom" + } + }] } ``` diff --git a/src/module/notepad/README.md b/src/module/notepad/README.md index b8e404f..35e9ad5 100644 --- a/src/module/notepad/README.md +++ b/src/module/notepad/README.md @@ -6,6 +6,10 @@ Ce module affiche un bloc-notes. ## Options +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les options sont dans un objet [JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les propriétés suivantes : @@ -99,13 +103,13 @@ Ce widget affiche un bloc-notes pour une liste de courses. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/notepad/notepad.js", - "options": { - "color": "#607d8b", - "desc": "Liste de courses", - "title": "..." - } + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/notepad/notepad.js", + "options": { + "color": "#607d8b", + "desc": "Liste de courses", + "title": "..." } + } } ``` diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 95e22d3..267358b 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -100,6 +100,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum d'éléments à retourner. La méthode doit retourner une @@ -230,19 +234,19 @@ Podcast](https://lescastcodeurs.com/). ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/podcast/podcast.js", - "options": { - "color": "black", - "cron": "@daily", - "max": 2 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://lescastcodeurs.com/podcast-rss" - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/podcast/podcast.js", + "options": { + "color": "black", + "cron": "@daily", + "max": 2 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://lescastcodeurs.com/podcast-rss" + } + }] } ``` diff --git a/src/module/search/README.md b/src/module/search/README.md index 48c658f..bce6b16 100644 --- a/src/module/search/README.md +++ b/src/module/search/README.md @@ -10,6 +10,10 @@ Aucune option n'est nécessaire. Tout le paramétrage se fait avec les scrapers. ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir trois méthodes : - `info()` qui retourne une promesse contenant les informations du moteur de @@ -30,19 +34,19 @@ Ce widget fourni un champ pour faire une recherche avec ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://duckduckgo.com/?q={searchTerms}", - "suggestions": "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list", - "complements": { - "title": "DuckDuckGo", - "color": "#f44336" - }, - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", + "options": { + "url": "https://duckduckgo.com/?q={searchTerms}", + "suggestions": "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list", + "complements": { + "title": "DuckDuckGo", + "color": "#f44336" + }, + } + }] } ``` diff --git a/src/module/single/README.md b/src/module/single/README.md index 1148901..86b37e4 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -55,6 +55,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui recevra en paramètre le nombre `1` indiquant le nombre maximum d'éléments à retourner. La méthode doit retourner une @@ -173,14 +177,14 @@ Ce widget affiche un lien vers un article au hasard de ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js", - "options": { - "cron": "*/5 * * * *" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js", + "options": { + "cron": "*/5 * * * *" + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" + }] } ``` diff --git a/src/module/text/README.md b/src/module/text/README.md index 3216dc8..807df97 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -51,6 +51,10 @@ propriétés suivantes : ## Scrapers +> [!NOTE] +> Ce chapitre est utile principalement pour le développement de scrapers +> compatibles avec ce module. + Les scrapers associés à ce module doivent définir une méthode `extract()` qui recevra en paramètre le nombre `1` indiquant le nombre maximum d'éléments à retourner. La méthode doit retourner une @@ -155,16 +159,16 @@ Ce widget affiche le texte _Carpe diem_. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "title": "Carpe diem" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "title": "Carpe diem" + }] + } + }] } ``` diff --git a/src/module/tools/contrast/README.md b/src/module/tools/contrast/README.md index c69985a..f860267 100644 --- a/src/module/tools/contrast/README.md +++ b/src/module/tools/contrast/README.md @@ -20,8 +20,8 @@ Ce widget affiche le module. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/conntrast/contrast.js" - } + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/conntrast/contrast.js" + } } ``` diff --git a/src/module/tools/findrss/README.md b/src/module/tools/findrss/README.md index 171084a..89e0e8e 100644 --- a/src/module/tools/findrss/README.md +++ b/src/module/tools/findrss/README.md @@ -73,8 +73,8 @@ la liste des flux RSS est affichée en dessous. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/findrss/findress.js" - } + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/findrss/findrss.js" + } } ``` diff --git a/src/scraper/icon/ping/README.md b/src/scraper/icon/ping/README.md index 751f260..8a1762f 100644 --- a/src/scraper/icon/ping/README.md +++ b/src/scraper/icon/ping/README.md @@ -61,13 +61,29 @@ propriétés suivantes : <td> <p> Des propriétés qui seront ajoutées dans les éléments retournés. Par - défaut aucune propriété n'est ajoutée. + défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le + scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>{ "target": "_top" }</code>. </p> </td> </tr> + <tr> + <td><code>"filter"</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournées. Par défaut + aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + </p> + <p> + Exemple : <code>"color != 'green'"</code>. + </p> + </td> + </tr> </table> ## Exemple @@ -76,17 +92,17 @@ Ce widget teste le site _localhost_ toutes les heures. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js", - "options": { - "cron": "@hourly" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/icon/ping/ping.js", - "options": { - "url": "http://localhost" - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js", + "options": { + "cron": "@hourly" + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/icon/ping/ping.js", + "options": { + "url": "http://localhost" + } + }] } ``` diff --git a/src/scraper/list/jsonfeed/README.md b/src/scraper/list/jsonfeed/README.md index 8538086..c73b7cf 100644 --- a/src/scraper/list/jsonfeed/README.md +++ b/src/scraper/list/jsonfeed/README.md @@ -42,13 +42,29 @@ propriétés suivantes : <td> <p> Des propriétés qui seront ajoutées dans les éléments retournés. Par - défaut aucune propriété n'est ajoutée. + défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le + scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. </p> </td> </tr> + <tr> + <td><code>"filter"</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournées. Par défaut + aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + </p> + <p> + Exemple : <code>"title != 'foo'"</code>. + </p> + </td> + </tr> </table> ## Exemple @@ -58,19 +74,19 @@ Ce widget affiche les cinq dernières actualités scientifiques du site ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#2196f3", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/jsonfeed/jsonfeed.js", - "options": { - "url": "https://refind.com/science.json" - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#2196f3", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/jsonfeed/jsonfeed.js", + "options": { + "url": "https://refind.com/science.json" + } + }] } ``` diff --git a/src/scraper/list/rss/README.md b/src/scraper/list/rss/README.md index 774d47f..5eef21e 100644 --- a/src/scraper/list/rss/README.md +++ b/src/scraper/list/rss/README.md @@ -45,13 +45,29 @@ propriétés suivantes : <td> <p> Des propriétés qui seront ajoutées dans les éléments retournés. Par - défaut aucune propriété n'est ajoutée. + défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le + scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. </p> </td> </tr> + <tr> + <td><code>"filter"</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournées. Par défaut + aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + </p> + <p> + Exemple : <code>"title != 'foo'"</code>. + </p> + </td> + </tr> </table> ## Exemple @@ -61,19 +77,18 @@ Monde.fr](https://www.lemonde.fr/). ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#757575", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.lemonde.fr/rss/une.xml" - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.lemonde.fr/rss/une.xml" + } + }] } ``` diff --git a/src/scraper/search/opensearch/README.md b/src/scraper/search/opensearch/README.md index 54fee0e..9f4b120 100644 --- a/src/scraper/search/opensearch/README.md +++ b/src/scraper/search/opensearch/README.md @@ -55,7 +55,7 @@ propriétés suivantes : <td> <p> Des propriétés qui seront retournées par la méthode - <a href="../../module/search#scrapers"><code>info()</code></a>. + <a href="https://github.com/regseb/gout/tree/HEAD/src/module/search#scrapers"><code>info()</code></a>. </p> <p> Exemple : <code>{ "title": "Google", "color": "#2196f3" }</code>. @@ -71,29 +71,29 @@ Ce widget fourni un champ pour faire une recherche avec ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://www.google.com/search?q={searchTerms}", - "suggestions": "https://www.google.com/complete/search?client=firefox&q={searchTerms}", - "complements": { - "title": "Google", - "color": "#2196f3" - } - } - }, { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://www.bing.com/search?q={searchTerms}", - "suggestions": "https://www.bing.com/osjson.aspx?query={searchTerms}", - "complements": { - "title": "Bing", - "color": "#ffc107" - } - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", + "options": { + "url": "https://www.google.com/search?q={searchTerms}", + "suggestions": "https://www.google.com/complete/search?client=firefox&q={searchTerms}", + "complements": { + "title": "Google", + "color": "#2196f3" + } + } + }, { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", + "options": { + "url": "https://www.bing.com/search?q={searchTerms}", + "suggestions": "https://www.bing.com/osjson.aspx?query={searchTerms}", + "complements": { + "title": "Bing", + "color": "#ffc107" + } + } + }] } ``` diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md index d9349ad..e9a24fb 100644 --- a/src/scraper/tools/complements/README.md +++ b/src/scraper/tools/complements/README.md @@ -3,12 +3,12 @@ > Mots-clés : gout, gout-scraper, gout-scraper-tools-complements. Ce scraper ajoute des propriétés dans les résultats d'un autre scraper. Il est -rare d'utiliser ce scraper directement dans un widget. Il peut être utiliser -pour ajouer la fonctionnalité dans un scraper : +rare d'utiliser ce scraper directement dans un widget. Il peut être utilisé +pour ajouter la fonctionnalité dans un autre scraper : ```JavaScript -import chain from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/utils/scraper/chain.js"; -import ComplementsScraper from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/tools/complements/complements.js"; +import chain from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/utils/scraper/chain.js"; +import ComplementsScraper from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/complements/complements.js"; const MyAwesomeScraper = class { /* ... */ }; @@ -53,29 +53,29 @@ d'éléments à retourner. La méthode doit retourner une contenant un tableau d'objet. Les propriétés seront ajoutées dans chaque élément du tableau. -## Example +## Exemple Ce widget affiche les dernières vidéos de la chaine YouTube de [FIP](https://www.youtube.com/@FipradioFr) en ajoutant le logo de FIP à chaque -élément. L'option `"complements"` est passée au scraper `list/rss` car ce -scraper utilise `ComplementsScraper`. +élément. L'option `"complements"` est passée au scraper _list/rss_ car ce +scraper utilise _tools/complements_. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#757575", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?user=arte" - "complements": { "icon": "https://example.com/fip.svg" }, - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#757575", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?user=arte", + "complements": { "icon": "https://example.com/fip.svg" }, + } + }] } ``` diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index 99045db..f4d699c 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -3,12 +3,12 @@ > Mots-clés : gout, gout-scraper, gout-scraper-tools-filter. Ce scraper filtre les résultats d'un autre scraper. Il est rare d'utiliser ce -scraper directement dans un widget. Il peut être utiliser pour ajouer la -fonctionnalité dans un scraper : +scraper directement dans un widget. Il peut être utilisé pour ajouter la +fonctionnalité dans un autre scraper : ```JavaScript -import chain from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/utils/scraper/chain.js"; -import FilterScraper from "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/tools/filter/filter.js"; +import chain from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/utils/scraper/chain.js"; +import FilterScraper from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/filter/filter.js"; const MyAwesomeScraper = class { /* ... */ }; @@ -44,47 +44,65 @@ propriété suivante : </tr> </table> -## Filtre +### Filtre Les filtres sont composés de trois éléments : - la propriété récupérée dans un élément des résultats ; - le type de comparaison : - générique : - - `==`, `!=`, `<`, `<=`, `>`, `>=` ; + - [`==`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_equality), + [`!=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_inequality), + [`<`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than), + [`<=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than_or_equal), + [`>`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than), + [`>=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than_or_equal) + ; - chaine de caractères : - `*=` : garder les éléments dont la propriété contient la valeur - (`.includes()` sous le capot) ; + ([`.includes()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/includes) + sous le capot) ; - `^=` : garder les éléments dont la propriété commence par la valeur - (`.startsWith()` sous le capot) ; + ([`.startsWith()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/startsWith) + sous le capot) ; - `^=` : garder les éléments dont la propriété finit par la valeur - (`.endsWith()` sous le capot) ; + ([`.endsWith()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/endsWith) + sous le capot) ; - la valeur comparée : - un nombre : `42` ; - une chaine de caractères (entourée par des apostrophes) : `'foo'`. -## Example +## Scrapers + +Ce scraper accepte un seul sous-scraper. Le sous-scraper doit définir une +méthode `extract()` qui prend en paramètre un entier indiquant le nombre maximum +d'éléments à retourner. La méthode doit retourner une +[promesse](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/Promise) +contenant un tableau d'objet. Le filtre sera appliqué sur chaque élément du +tableau. + +## Exemple Ce widget affiche les dernières reportages de la chaine YouTube de [Arte](https://www.youtube.com/@arte). L'option `"filter"` est passée au scraper -`list/rss` car ce scraper utilise `FilterScraper`. +_list/rss_ car ce scraper utilise _tools/filter_. ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#757575", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?user=arte" - "filter": "title $= 'ARTE Reportage'", - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#757575", + "cron": "*/10 * * * *", + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", + "options": { + "url": "https://www.youtube.com/feeds/videos.xml?user=arte", + "filter": "title $= 'ARTE Reportage'", + } + }] } ``` diff --git a/src/scraper/tools/repeater/README.md b/src/scraper/tools/repeater/README.md index 2993d85..3893520 100644 --- a/src/scraper/tools/repeater/README.md +++ b/src/scraper/tools/repeater/README.md @@ -17,27 +17,27 @@ clés correspondent aux méthodes simulées et les valeurs aux données retourn Ce widget affiche une liste avec deux liens allant vers [Facebook](https://www.facebook.com/) et -[Twitter](https://www.twitter.com/). +[Instagram](https://www.instagram.com/). ```JSON { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#f0a30a" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "title": "Facebook", - "link": "https://www.facebook.com/" - }, { - "title": "Twitter", - "link": "https://www.twitter.com/" - }] - } - }] + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "color": "#f0a30a" + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", + "options": { + "extract": [{ + "title": "Facebook", + "link": "https://www.facebook.com/" + }, { + "title": "Instagram", + "link": "https://www.instagram.com/" + }] + } + }] } ``` From e84592f29543e54ac754a630766e9bc9f8ebb783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 15:57:24 +0100 Subject: [PATCH 15/38] =?UTF-8?q?feat:=20R=C3=A9cup=C3=A9rer=20les=20donn?= =?UTF-8?q?=C3=A9es=20dans=20le=20group=20(Atom).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scraper/list/rss/rss.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index d8ec5d1..546be17 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -59,20 +59,33 @@ const RSSScraper = class { date: entry.querySelector("published").textContent, guid: entry.querySelector("id").textContent, link: entry.querySelector("link").getAttribute("href"), - summary: entry.querySelector("summary")?.textContent ?? "", - title: entry.querySelector("title").textContent, + summary: + entry.querySelector("summary")?.textContent ?? + // Essayer la description dans "media:group + // media:description". + entry.querySelector("group description")?.textContent ?? + "", + title: + entry.querySelector("title").textContent ?? + // Essayer le titre dans "media:group media:title". + entry.querySelector("group title")?.textContent, + thumbnail: entry + // Essayer la miniature dans "media:group media:thumbnail". + .querySelector("group thumbnail") + ?.getAttribute("url"), })) .map((item) => ({ date: new Date(item.date).getTime(), desc: new DOMParser() .parseFromString( - 0 === item.summary.trim().length - ? item.content.trim() - : item.summary.trim(), + /^\s*$/u.test(item.summary) + ? item.content + : item.summary, "text/html", ) .body.textContent.trim(), guid: this.#url + item.guid, + img: item.thumbnail, link: item.link, title: item.title, })); From d3b7a178e2f76f248cea43aa3f8877e535df948a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 16:11:22 +0100 Subject: [PATCH 16/38] docs: Ajouter des exemles. --- src/module/examples/minimal/README.md | 28 +++ src/module/examples/minimal/minimal.js | 11 ++ .../examples/preact/helloworld/README.md | 28 +++ .../examples/preact/helloworld/helloworld.js | 54 ++++++ src/module/examples/react/tictactoe/README.md | 28 +++ .../examples/react/tictactoe/tictactoe.css | 37 ++++ .../examples/react/tictactoe/tictactoe.js | 172 ++++++++++++++++++ src/scraper/examples/README.md | 12 ++ src/scraper/examples/days/README.md | 78 ++++++++ src/scraper/examples/days/days.js | 140 ++++++++++++++ src/scraper/examples/helloworld/README.md | 70 +++++++ src/scraper/examples/helloworld/helloworld.js | 70 +++++++ .../examples/jsonplaceholder/README.md | 95 ++++++++++ .../jsonplaceholder/jsonplaceholder.js | 100 ++++++++++ 14 files changed, 923 insertions(+) create mode 100644 src/module/examples/minimal/README.md create mode 100644 src/module/examples/minimal/minimal.js create mode 100644 src/module/examples/preact/helloworld/README.md create mode 100644 src/module/examples/preact/helloworld/helloworld.js create mode 100644 src/module/examples/react/tictactoe/README.md create mode 100644 src/module/examples/react/tictactoe/tictactoe.css create mode 100644 src/module/examples/react/tictactoe/tictactoe.js create mode 100644 src/scraper/examples/README.md create mode 100644 src/scraper/examples/days/README.md create mode 100644 src/scraper/examples/days/days.js create mode 100644 src/scraper/examples/helloworld/README.md create mode 100644 src/scraper/examples/helloworld/helloworld.js create mode 100644 src/scraper/examples/jsonplaceholder/README.md create mode 100644 src/scraper/examples/jsonplaceholder/jsonplaceholder.js diff --git a/src/module/examples/minimal/README.md b/src/module/examples/minimal/README.md new file mode 100644 index 0000000..8569c9e --- /dev/null +++ b/src/module/examples/minimal/README.md @@ -0,0 +1,28 @@ +# Module _examples/minimal_ + +> Mots-clés : gout, gout-module, gout-module-examples, +> gout-module-examples-minimal. + +Ce module est un exemple pour montrer le code minimal nécessaire pour ne pas +avoir d'erreur lors de son utilisation. Le module ne fait rien et n'affiche +rien. + +## Options + +Ce module n'a pas d'option. + +## Scrapers + +Ce module n'utilise pas de scraper. + +## Exemple + +Ce widget ne fait rien et n'affiche rien. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/minimal/minimal.js" + } +} +``` diff --git a/src/module/examples/minimal/minimal.js b/src/module/examples/minimal/minimal.js new file mode 100644 index 0000000..04a6815 --- /dev/null +++ b/src/module/examples/minimal/minimal.js @@ -0,0 +1,11 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +// Écrire le code minimal d'un module qui ne fait rien, mais qui ne provoque pas +// d'erreur. Il faut exporter par défaut une classe qui hérite de HTMLElement. +// La sera utilisée pour créer un élément personnalisé +// (https://developer.mozilla.org/Web/API/Web_components/Using_custom_elements). +export default class MinimalModule extends HTMLElement {} diff --git a/src/module/examples/preact/helloworld/README.md b/src/module/examples/preact/helloworld/README.md new file mode 100644 index 0000000..94a464f --- /dev/null +++ b/src/module/examples/preact/helloworld/README.md @@ -0,0 +1,28 @@ +# Module _examples/preact/helloworld_ + +> Mots-clés : gout, gout-module, gout-module-examples, +> gout-module-examples-preact, gout-module-examples-preact-helloworld. + +Ce module est un exemple utilisant **[Preact](https://preactjs.com/)**. Il +implémente un _hello world_ récupéré du tutoriel [_Interactive Hello +World_](https://preactjs.com/guide/v10/tutorial/#interactive-hello-world). + +## Options + +Ce module n'a pas d'option. + +## Scrapers + +Ce module n'utilise pas de scraper. + +## Exemple + +Ce widget affiche un hello world développé avec Preact. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/preact/helloworld/helloworld.js" + } +} +``` diff --git a/src/module/examples/preact/helloworld/helloworld.js b/src/module/examples/preact/helloworld/helloworld.js new file mode 100644 index 0000000..24ffd23 --- /dev/null +++ b/src/module/examples/preact/helloworld/helloworld.js @@ -0,0 +1,54 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/* eslint-disable max-classes-per-file, no-restricted-syntax */ + +import htm from "https://esm.sh/htm@3.1.1"; +import { Component, h, render } from "https://esm.sh/preact@10.19.6"; + +// Initialize htm with Preact +const html = htm.bind(h); + +const App = class extends Component { + // Add `name` to the initial state + state = { value: "", name: "world" }; + + onInput = (ev) => { + this.setState({ value: ev.currentTarget.value }); + }; + + // Add a submit handler that updates the `name` with the latest input value + onSubmit = (ev) => { + // Prevent default browser behavior (aka don't submit the form here) + ev.preventDefault(); + + this.setState({ name: this.state.value }); + }; + + render() { + return html` + <div> + <h1>Hello, ${this.state.name}!</h1> + <form onSubmit=${this.onSubmit}> + <input + type="text" + value=${this.state.value} + onInput=${this.onInput} + /> + <button type="submit">Update</button> + </form> + </div> + `; + } +}; + +export default class HelloWorldModule extends HTMLElement { + connectedCallback() { + this.attachShadow({ mode: "open" }); + + render(html`<${App} />`, this.shadowRoot); + } +} diff --git a/src/module/examples/react/tictactoe/README.md b/src/module/examples/react/tictactoe/README.md new file mode 100644 index 0000000..aadadf7 --- /dev/null +++ b/src/module/examples/react/tictactoe/README.md @@ -0,0 +1,28 @@ +# Module _examples/react/tictactoe_ + +> Mots-clés : gout, gout-module, gout-module-examples, +> gout-module-examples-react, gout-module-examples-react-tictactoe. + +Ce module est un exemple utilisant **[React](https://react.dev/)**. Il +implémente un jeu de morpion récupéré du tutoriel +[_Tic-Tac-Toe_](https://react.dev/learn/tutorial-tic-tac-toe). + +## Options + +Ce module n'a pas d'option. + +## Scrapers + +Ce module n'utilise pas de scraper. + +## Exemple + +Ce widget affiche un morpion dévéloppé avec React. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/react/tictactoe/tictactoe.js" + } +} +``` diff --git a/src/module/examples/react/tictactoe/tictactoe.css b/src/module/examples/react/tictactoe/tictactoe.css new file mode 100644 index 0000000..9ee4fc7 --- /dev/null +++ b/src/module/examples/react/tictactoe/tictactoe.css @@ -0,0 +1,37 @@ +* { + box-sizing: border-box; +} + +.square { + background: white; + border: 1px solid #999999; + float: left; + font-size: 24px; + font-weight: bold; + height: 34px; + line-height: 34px; + margin-right: -1px; + margin-top: -1px; + padding: 0; + text-align: center; + width: 34px; +} + +.board-row::after { + clear: both; + content: ""; + display: table; +} + +.status { + margin-bottom: 10px; +} + +.game { + display: flex; + flex-direction: row; +} + +.game-info { + margin-left: 20px; +} diff --git a/src/module/examples/react/tictactoe/tictactoe.js b/src/module/examples/react/tictactoe/tictactoe.js new file mode 100644 index 0000000..4475b54 --- /dev/null +++ b/src/module/examples/react/tictactoe/tictactoe.js @@ -0,0 +1,172 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/* eslint-disable no-restricted-syntax */ + +import { html } from "https://esm.sh/htm@3.1.1/react"; +import { createRoot } from "https://esm.sh/react-dom@18.2.0"; +import { useState } from "https://esm.sh/react@18.2.0"; + +const calculateWinner = (squares) => { + const lines = [ + [0, 1, 2], + [3, 4, 5], + [6, 7, 8], + [0, 3, 6], + [1, 4, 7], + [2, 5, 8], + [0, 4, 8], + [2, 4, 6], + ]; + for (const [a, b, c] of lines) { + if ( + squares[a] && + squares[a] === squares[b] && + squares[a] === squares[c] + ) { + return squares[a]; + } + } + return undefined; +}; + +const Square = ({ value, onSquareClick }) => { + return html` + <button className="square" onClick=${onSquareClick}>${value}</button> + `; +}; + +const Board = ({ xIsNext, squares, onPlay }) => { + const handleClick = (i) => { + if (calculateWinner(squares) || squares[i]) { + return; + } + const nextSquares = squares.slice(); + if (xIsNext) { + nextSquares[i] = "X"; + } else { + nextSquares[i] = "O"; + } + onPlay(nextSquares); + }; + + const winner = calculateWinner(squares); + let status; + if (winner) { + status = `Winner: ${winner}`; + } else { + status = "Next player: " + (xIsNext ? "X" : "O"); + } + + return html` + <div className="status">${status}</div> + <div className="board-row"> + <${Square} + value=${squares[0]} + onSquareClick=${() => handleClick(0)} + /> + <${Square} + value=${squares[1]} + onSquareClick=${() => handleClick(1)} + /> + <${Square} + value=${squares[2]} + onSquareClick=${() => handleClick(2)} + /> + </div> + <div className="board-row"> + <${Square} + value=${squares[3]} + onSquareClick=${() => handleClick(3)} + /> + <${Square} + value=${squares[4]} + onSquareClick=${() => handleClick(4)} + /> + <${Square} + value=${squares[5]} + onSquareClick=${() => handleClick(5)} + /> + </div> + <div className="board-row"> + <${Square} + value=${squares[6]} + onSquareClick=${() => handleClick(6)} + /> + <${Square} + value=${squares[7]} + onSquareClick=${() => handleClick(7)} + /> + <${Square} + value=${squares[8]} + onSquareClick=${() => handleClick(8)} + /> + </div> + `; +}; + +const Game = () => { + const [history, setHistory] = useState([ + Array.from({ length: 9 }).fill(undefined), + ]); + const [currentMove, setCurrentMove] = useState(0); + const xIsNext = 0 === currentMove % 2; + const currentSquares = history[currentMove]; + + const handlePlay = (nextSquares) => { + const nextHistory = [...history.slice(0, currentMove + 1), nextSquares]; + setHistory(nextHistory); + setCurrentMove(nextHistory.length - 1); + }; + + const jumpTo = (nextMove) => { + setCurrentMove(nextMove); + }; + + const moves = history.map((_square, move) => { + let description; + if (0 < move) { + description = `Go to move #${move}`; + } else { + description = "Go to game start"; + } + return html` + <li key=${move}> + <button onClick=${() => jumpTo(move)}>${description}</button> + </li> + `; + }); + + return html` + <div className="game"> + <div className="game-board"> + <${Board} + xIsNext=${xIsNext} + squares=${currentSquares} + onPlay=${handlePlay} + /> + </div> + <div className="game-info"> + <ol> + ${moves} + </ol> + </div> + </div> + `; +}; + +export default class TicTacToeModule extends HTMLElement { + connectedCallback() { + this.attachShadow({ mode: "open" }); + + const link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = import.meta.resolve("./tictactoe.css"); + this.shadowRoot.append(link); + + createRoot(this.shadowRoot).render(html`<${Game} />`); + } +} diff --git a/src/scraper/examples/README.md b/src/scraper/examples/README.md new file mode 100644 index 0000000..2ef8323 --- /dev/null +++ b/src/scraper/examples/README.md @@ -0,0 +1,12 @@ +# Scrapers _examples_ + +Ce répertoire regroupe des scrapers d'exemples pour comprendre le fonctionnement +d'un scraper et servir de base pour développer votre propre scraper. Ces +scrapers n'ont aucune utilité dans un vrai dashboard. + +- [_examples/helloworld_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/helloworld#readme) + : un scraper montrant le minimum pour retourner un élément. +- [_examples/days_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/days#readme) + : un scraper retournant plusieurs éléments. +- [_examples/jsonplaceholder_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/jsonplaceholder#readme) + : un scraper appelant une API REST (avec `fetch()`). diff --git a/src/scraper/examples/days/README.md b/src/scraper/examples/days/README.md new file mode 100644 index 0000000..a8a5dae --- /dev/null +++ b/src/scraper/examples/days/README.md @@ -0,0 +1,78 @@ +# Scraper _examples/days_ + +> Mots-clés : gout, gout-scraper, gout-scraper-examples-days. + +Ce scraper d'exemple d'exemple retourne les noms des prochains jours de la +semaine. La langue des noms est paramétrable dans les options du scraper. + +Il peut être utilisé avec les modules : + +- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) ; +- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) + pour afficher seulement le dernier élément. + +## Options + +Les options sont dans un objet +[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les +propriétés suivantes : + +<table> + <tr> + <th>Nom</th> + <th>Type</th> + <th>Description</th> + </tr> + <tr> + <td><code>"lang"</code></td> + <td><code>string</code></td> + <td> + <p> + Le code ISO 639-1 de la langue. Par défaut, c'est le français qui est + utilisé. + </p> + <p> + Exemple : <code>"en"</code>. + </p> + </td> + </tr> + <tr> + TODO Ajouter les propriétés des scrapers FilterScraper et ComplementScraper. + </tr> +</table> + +## Exemples + +Ce widget affiche le nom du lendemain en français. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" + }] +} +``` + +Ce widget affiche les noms des trois prochains jours (sauf le dimanche) en +anglais. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", + "options": { + "max": 3 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", + "options": { + "lang": "en", + "filter": "title != 'Sunday'" + } + }] +} +``` diff --git a/src/scraper/examples/days/days.js b/src/scraper/examples/days/days.js new file mode 100644 index 0000000..5f95593 --- /dev/null +++ b/src/scraper/examples/days/days.js @@ -0,0 +1,140 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +// Importer l'utilitaire pour chaîner les scrapers. +import chain from "../../../utils/scraper/chain.js"; +// Importer le scraper pour compléter les informations. +import ComplementsScraper from "../../tools/complements/complements.js"; +// Importer le scraper pour filtrer les éléments. +import FilterScraper from "../../tools/filter/filter.js"; + +/** + * Mettre la première lettre d'une chaîne de caractères en majuscule. + * + * @param {string} input La chaîne de caractères à modifier. + * @returns {string} La chaîne de caractères avec la première lettre en + * majuscule. + */ +const capitalize = function (input) { + return input.charAt(0).toUpperCase() + input.slice(1); +}; + +/** + * Scraper d'exemple qui retourne les noms des prochains jours de la semaine. + * Cette classe n'est pas exportée directement, car elle est chaînée avec + * d'autres scrapers puis exporter (voir à la fin du fichier). + */ +const DaysScraper = class { + /** + * Le code ISO 639-1 de la langue. + * + * @type {string} + */ + #lang; + + /** + * Crée une instance du scraper. + * + * @param {Object} options Les options du scraper (qui ont été + * définies dans la configuration du widget). + * @param {string} [options.lang] Le code ISO 639-1 de la langue (qui a été + * renseigné dans la propriété "lang" dans la + * configuration du widget). + */ + constructor({ lang }) { + // Récupérer le code ISO 639-1 de la langue dans les options du scraper. + // Si la langue n'est pas définie, utiliser le français par défaut. + this.#lang = lang ?? "fr"; + } + + /** + * Extraire les éléments pour les fournir au module (qui a été défini dans + * la configuration du widget). + * + * @param {number} max Le nombre maximum d'éléments à retourner. + * @returns {Promise<Object[]>} Une promesse contenant un tableau avec les + * prochains jours de la semaine. + */ + extract(max = Number.MAX_SAFE_INTEGER) { + // Retourner une promesse pour être compatible avec les autres scrapers. + return Promise.resolve( + // Pour les sept prochains jours, déterminer le nom du jour de la + // semaine ("Lundi", "Mardi"...). + [1, 2, 3, 4, 5, 6, 7] + .map((i) => { + const day = new Date(); + day.setDate(day.getDate() + i); + const title = capitalize( + day.toLocaleDateString(this.#lang, { weekday: "long" }), + ); + + // Regrouper les informations dans un objet. + return { + // Définir le nom du jour dans la propriété "title". + title, + // Ajouter un lien vers l'article Wikipédia du jour. + link: `https://${this.#lang}.wikipedia.org/wiki/${title}`, + // Renseigner la date en utilisant son timestamp (ce + // format est plus facile à manipuler). Cette propriété + // est utilisée pour trier les éléments du plus récent + // au plus ancien. + date: day.getTime(), + }; + }) + // Limiter le nombre d'éléments à retourner (dans le cas où le + // maximum est inférieure à sept). + .slice(0, max), + ); + } +}; + +// Chainer les scrapers pour ajouter les fonctionnalités de filtrage et de +// complétion dans DaysScraper. +// eslint-disable-next-line import/no-anonymous-default-export +export default chain(FilterScraper, ComplementsScraper, DaysScraper, { + // Définir comment répartir les options entre les scrapers. + dispatch: ({ filter, complements, ...others }) => [ + // Envoyer la propriété "filter" des options à FilterScraper. + { filter }, + // Envoyer la propriété "complements" des options à ComplementsScraper. + { complements }, + // Envoyer les autres propriétés des options à DaysScraper. + others, + ], +}); + +// Grâce à la chaine de scrapers, la configuration du widget est simplifiée. Par +// exemple, la configuration suivante : +// +// ```JSON +// { +// "module": "...", +// "scrapers": [{ +// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/filter/filter.js", +// "options": { "filter": "..." }, +// "scrapers": [{ +// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/complements/complements.js", +// "options": { "complements": "..." }, +// "scrapers": [{ +// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", +// "options": { "lang": "..." } +// }] +// }] +// }] +// } +// ``` +// +// peut être simplifiée en : +// +// ```JSON +// { +// "module": "...", +// "scrapers": [{ +// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", +// "options": { "filter": "...", "complements": "...", "lang": "..." } +// }] +// } +// ``` diff --git a/src/scraper/examples/helloworld/README.md b/src/scraper/examples/helloworld/README.md new file mode 100644 index 0000000..bc86ffb --- /dev/null +++ b/src/scraper/examples/helloworld/README.md @@ -0,0 +1,70 @@ +# Scraper _examples/helloworld_ + +> Mots-clés : gout, gout-scraper, gout-scraper-examples-helloworld. + +Ce scraper d'exemple retourne un _Hello world!_. Le mot _world_ est paramétrable +dans les options du scraper. + +Il peut être utilisé avec les modules : + +- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) + ; +- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) + pour afficher un seul élément. + +## Options + +Les options sont dans un objet +[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la +propriété suivante : + +<table> + <tr> + <th>Nom</th> + <th>Type</th> + <th>Description</th> + </tr> + <tr> + <td><code>"who"</code></td> + <td><code>string</code></td> + <td> + <p> + Le nom de la personne à saluer. Par défaut, c'est le `"world"`. + </p> + <p> + Exemple : <code>"there"</code>. + </p> + </td> + </tr> +</table> + +## Exemples + +Ce widget affiche le texte `"Hello world!"`. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js" + }] +} +``` + +Ce widget affiche le texte `"Hello Doctor!"`. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js", + "options": { + "who": "Doctor" + } + }] +} +``` diff --git a/src/scraper/examples/helloworld/helloworld.js b/src/scraper/examples/helloworld/helloworld.js new file mode 100644 index 0000000..5cea323 --- /dev/null +++ b/src/scraper/examples/helloworld/helloworld.js @@ -0,0 +1,70 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * Scraper d'exemple qui retourne un "Hello world!". Cette classe doit être + * exportée par défaut pour être utilisée par le moteur de Gout. + */ +export default class HelloWorldScraper { + /** + * Le nom de la personne à saluer. + */ + #who; + + /** + * Crée une instance du scraper. + * + * @param {Object} options Les options du scraper (qui ont été + * définies dans la configuration du widget). + * @param {string} [options.who] Le nom de la personne à saluer (qui a été + * renseigné dans la propriété "who" dans la + * configuration du widget). + */ + constructor({ who }) { + // Le premier paramètre du constructeur contient les options du scraper. + // Si aucune option est spécifiée dans la configuration du widget, le + // constructeur recevra un objet vide. + + // Récupérer le nom de la personne à saluer dans les options du scraper. + // Si le nom n'est pas défini, utiliser le mot "world" par défaut. + this.#who = who ?? "world"; + } + + /** + * Extraire les éléments pour les fournir au module (qui a été défini dans + * la configuration du widget). + * + * @param {number} max Le nombre maximum d'éléments à retourner. + * @returns {Promise<Object[]>} Une promesse contenant un tableau avec un + * seul élément ayant la salutation. + */ + extract(max = Number.MAX_SAFE_INTEGER) { + // Si aucun élément n'est demandé, retourner une promesse contenant un + // tableau vide. La méthode extract() doit retourner une promesse + // contenant un tableau d'objets pour être compatible avec les autres + // scrapers. + if (0 === max) { + return Promise.resolve([]); + } + + // Retourner une promesse contenant un tableau avec un seul élément. Ce + // scraper retourne un seul élément, mais d'autres scrapers peuvent + // retourner une liste d'éléments. + return Promise.resolve([ + // Utiliser un Object pour représenter l'élément. Ce scraper + // renseigne seulement la propriété "title" de l'élément, mais + // d'autres scrapers renseignent d'autres propriétés (comme "link", + // "desc", "guid"...). + { + // Définir la salutation dans la propriété "title" de l'élément + // pour que le module puisse l'afficher. Le mot "Hello" est + // concaténé avec la variable privée "#who" (qui contient la + // valeur récupérée dans la configuration du widget). + title: `Hello ${this.#who}!`, + }, + ]); + } +} diff --git a/src/scraper/examples/jsonplaceholder/README.md b/src/scraper/examples/jsonplaceholder/README.md new file mode 100644 index 0000000..01b170a --- /dev/null +++ b/src/scraper/examples/jsonplaceholder/README.md @@ -0,0 +1,95 @@ +# Scraper _examples/jsonplaceholder_ + +> Mots-clés : gout, gout-scraper, gout-scraper-examples-jsonplaceholder. + +Ce scraper d'exemple appelle l'API +**[JSONPlaceholder](https://jsonplaceholder.typicode.com/)** et retourne les +photos d'un album. L'identifiant de l'album est à renseigner dans les options du +scraper. + +Il peut être utilisé avec les modules : + +- [_image_](https://github.com/regseb/gout/tree/HEAD/src/module/image#readme) ; +- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) + pour afficher seulement le nom de la dernière image (avec un lien vers + l'image) ; +- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) + pour afficher seulement le nom des images (avec un lien pour voir chaque + image). + +## Options + +Les options sont dans un objet +[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les +propriétés suivantes : + +<table> + <tr> + <th>Nom</th> + <th>Type</th> + <th>Description</th> + </tr> + <tr> + <td><code>"album"</code></td> + <td><code>number</code></td> + <td> + <p> + L'identifiant de l'album. Un nombre en <code>1</code> et + <code>100</code>. + </p> + <p> + Exemple : <code>42</code>. + </p> + </td> + </tr> + <tr> + <td><code>"complements"</code></td> + <td><code>object</code></td> + <td> + <p> + Des propriétés qui seront ajoutées dans les éléments retournés. Par + défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le + scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. + </p> + <p> + Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + </p> + </td> + </tr> + <tr> + <td><code>"filter"</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournées. Par défaut + aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + </p> + <p> + Exemple : <code>"title != 'foo'"</code>. + </p> + </td> + </tr> +</table> + +## Exemple + +Ce widget affiche 5 images de l'album ayant l'identifiant `13`. + +```JSON +{ + "module": { + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js", + "options": { + "max": 5 + } + }, + "scrapers": [{ + "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/jsonplaceholder/jsonplaceholder.js", + "options": { + "album": 13 + } + }] +} +``` diff --git a/src/scraper/examples/jsonplaceholder/jsonplaceholder.js b/src/scraper/examples/jsonplaceholder/jsonplaceholder.js new file mode 100644 index 0000000..385c3ec --- /dev/null +++ b/src/scraper/examples/jsonplaceholder/jsonplaceholder.js @@ -0,0 +1,100 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +// Importer l'utilitaire pour chaîner les scrapers. +import chain from "../../../utils/scraper/chain.js"; +// Importer le scraper pour compléter les informations. +import ComplementsScraper from "../../tools/complements/complements.js"; +// Importer le scraper pour filtrer les éléments. +import FilterScraper from "../../tools/filter/filter.js"; + +/** + * Scraper d'exemple qui retourne les photos d'un album de l'API + * JSONPlaceholder. Cette classe n'est pas exportée directement, car elle est + * chaînée avec d'autres scrapers puis exporter (voir à la fin du fichier). + */ +const JSONPlaceholderScraper = class { + /** + * L'identifiant de l'album. + * + * @type {number} + */ + #album; + + /** + * Crée une instance du scraper. + * + * @param {Object} options Les options du scraper (qui ont été + * définies dans la configuration du widget). + * @param {number} options.album L'identifiant de l'album (qui a été + * renseigné dans la propriété "albumId" dans + * la configuration du widget). + */ + constructor({ album }) { + // Récupérer l'identifiant de l'album dans les options du scraper. Il + // n'y a pas de valeur par défaut, car la propriété est obligatoire. + this.#album = album; + } + + /** + * Extraire les éléments pour les fournir au module (qui a été défini dans + * la configuration du widget). + * + * @param {number} max Le nombre maximum d'éléments à retourner. + * @returns {Promise<Object[]>} Une promesse contenant un tableau avec les + * photos d'un album. + */ + async extract(max = Number.MAX_SAFE_INTEGER) { + // Appeler l'API JSONPlaceholder pour récupérer les photos d'un album. + const response = await fetch( + "https://jsonplaceholder.typicode.com/photos?albumId=" + + this.#album, + ); + // Récupérer la liste des photos. + const photos = await response.json(); + + // Convertir les données des photos dans le format attendu par les + // modules. + return ( + photos + .map((photo) => ({ + // Stocker l'identifiant de la photo dans la propriété "guid". + guid: photo.id, + // Transférer le titre dans la propriété "title". + title: photo.title, + // Utiliser l'URL de la photo dans la propriété "link". + link: photo.url, + // Utiliser l'URL de la miniature pour l'URL de l'image affichée + // dans le module. + image: photo.thumbnailUrl, + })) + // Limiter éventuellement le nombre de photos retournées. + .slice(0, max) + ); + } +}; + +// Chainer les scrapers pour ajouter les fonctionnalités de filtrage et de +// complétion dans JSONPlaceholderScraper. +// eslint-disable-next-line import/no-anonymous-default-export +export default chain( + FilterScraper, + ComplementsScraper, + JSONPlaceholderScraper, + { + // Définir comment répartir les options entre les scrapers. + dispatch: ({ filter, complements, ...others }) => [ + // Envoyer la propriété "filter" des options à FilterScraper. + { filter }, + // Envoyer la propriété "complements" des options à + // ComplementsScraper. + { complements }, + // Envoyer les autres propriétés des options à + // JSONPlaceholderScraper. + others, + ], + }, +); From ba1cb15948150f946c48cb27f5d1d18efb2ace9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 16:12:04 +0100 Subject: [PATCH 17/38] =?UTF-8?q?chore:=20Utiliser=20la=20biblioth=C3=A8qu?= =?UTF-8?q?e=20JFather.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/jfather.js | 178 ------------------------------------ src/engine/script.js | 6 +- test/unit/engine/jfather.js | 178 ------------------------------------ 3 files changed, 3 insertions(+), 359 deletions(-) delete mode 100644 src/engine/jfather.js delete mode 100644 test/unit/engine/jfather.js diff --git a/src/engine/jfather.js b/src/engine/jfather.js deleted file mode 100644 index 06ec3ab..0000000 --- a/src/engine/jfather.js +++ /dev/null @@ -1,178 +0,0 @@ -/** - * <em>Boys use JSON; Men use JFather.</em> - * - * @module - * @license MIT - * @author Sébastien Règne - */ - -/** - * Exécute une fonction sur un objet et tous ses sous-objets (en partant des - * objets les plus profonds). - * - * @param {any} obj Une variable quelconque. - * @param {Function} fn La fonction appliquée sur tous les objets. - * @returns {any} Le retour de la fonction. - */ -export const walk = function (obj, fn) { - if (Object === obj?.constructor) { - return fn( - Object.fromEntries( - Object.entries(obj).map(([k, v]) => [k, walk(v, fn)]), - ), - ); - } - - if (Array.isArray(obj)) { - return obj.map((v) => walk(v, fn)); - } - - return obj; -}; - -/** - * Exécute une fonction asynchrone sur un objet et tous ses sous-objets (en - * partant des objets les plus profonds). - * - * @param {any} obj Une variable quelconque. - * @param {Function} fn La fonction asynchrone appliquée sur tous les objets. - * @returns {Promise<any>} Une promesse contenant le retour de la fonction. - */ -export const walkAsync = async function (obj, fn) { - if (Object === obj?.constructor) { - return fn( - Object.fromEntries( - await Promise.all( - Object.entries(obj).map(async ([key, value]) => [ - key, - await walkAsync(value, fn), - ]), - ), - ), - ); - } - - if (Array.isArray(obj)) { - return Promise.all(obj.map((v) => walkAsync(v, fn))); - } - - return obj; -}; - -/** - * Clone récursivement un objet. - * - * @param {any} obj Une variable quelconque. - * @returns {any} Le clone de la variable d'entrée. - */ -export const clone = function (obj) { - return walk(obj, (v) => v); -}; - -/** - * Extrait un élément d'un objet. - * - * @param {Object} obj L'objet où sera extrait l'élément. - * @param {string} chain Le chemin de l'élément. - * @returns {any} L'élément extrait. - * @throws {TypeError} Si le chemin est invalide. - */ -export const query = function (obj, chain) { - const re = /^\.(?<prop>\w+)|^\[(?<index>\d+)\]/u; - const sub = { obj, chain }; - while (0 !== sub.chain.length) { - const result = re.exec(sub.chain); - if (undefined !== result?.groups.prop) { - sub.obj = sub.obj[result.groups.prop]; - // eslint-disable-next-line no-negated-condition - } else if (undefined !== result?.groups.index) { - sub.obj = sub.obj[Number(result.groups.index)]; - } else { - throw new TypeError(`Invalid chain: ${chain}`); - } - sub.chain = sub.chain.slice(result[0].length); - } - return sub.obj; -}; - -/** - * Fusionne deux objets récursivement. - * - * @param {any} parent L'objet parent. - * @param {any} child L'objet enfant. - * @returns {any} La fusion des deux objets. - */ -export const merge = function (parent, child) { - if (Object !== parent?.constructor || Object !== child?.constructor) { - return clone(child); - } - - const overrode = {}; - for (const key of new Set([ - ...Object.keys(parent), - ...Object.keys(child), - ])) { - // Ne pas copier les surcharges d'éléments. - if (key.startsWith("$")) { - continue; - } - - // Si la propriété est dans les deux objets : fusionner les deux - // valeurs. - if (key in parent && key in child) { - overrode[key] = merge(parent[key], child[key]); - // Si la propriété est seulement dans l'objet parent. - } else if (key in parent) { - overrode[key] = clone(parent[key]); - // Si la propriété est seulement dans l'objet enfant. - } else { - overrode[key] = clone(child[key]); - } - - // Si la valeur est un tableau : chercher si l'objet enfant a des - // surcharges d'éléments. - if (Array.isArray(overrode[key])) { - const overelemRegex = new RegExp( - `^\\$${key}\\[(?<index>\\d*)\\]$`, - "u", - ); - const overelems = Object.entries(child) - .map(([k, v]) => [overelemRegex.exec(k)?.groups.index, v]) - .filter(([i]) => undefined !== i); - for (const [index, value] of overelems) { - if ("" === index) { - overrode[key].push(clone(value)); - } else { - overrode[key][Number(index)] = merge( - overrode[key][Number(index)], - value, - ); - } - } - } - } - return overrode; -}; - -export const inherit = async function (obj) { - if (undefined === obj?.$extends) { - return obj; - } - - // eslint-disable-next-line no-use-before-define - return merge(await load(obj.$extends), obj); -}; - -export const transform = function (obj) { - return walkAsync(obj, inherit); -}; - -export const load = async function (url) { - const response = await fetch(url); - const json = await response.json(); - return transform(query(json, new URL(url).hash.replace(/^#/u, "."))); -}; - -export const parse = function (text) { - return transform(JSON.parse(text)); -}; diff --git a/src/engine/script.js b/src/engine/script.js index 1dbb35d..719f0f1 100644 --- a/src/engine/script.js +++ b/src/engine/script.js @@ -4,7 +4,7 @@ * @author Sébastien Règne */ -import * as jfather from "./jfather.js"; +import JFather from "https://esm.sh/jfather@0"; const hashCode = function (text) { return Math.abs( @@ -58,8 +58,8 @@ const liven = async function (script) { try { const config = "" === script.src - ? await jfather.parse(script.text) - : await jfather.load(script.src); + ? await JFather.parse(script.text) + : await JFather.load(script.src); const widget = await loadWidget(config); widget.classList.add("widget"); script.after(widget); diff --git a/test/unit/engine/jfather.js b/test/unit/engine/jfather.js deleted file mode 100644 index 413d66b..0000000 --- a/test/unit/engine/jfather.js +++ /dev/null @@ -1,178 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -import assert from "node:assert/strict"; -import * as jfather from "../../../src/engine/jfather.js"; - -describe("engine/jfather.js", function () { - describe("walkAsync()", function () { - it("should apply on object", async function () { - const obj = { foo: "bar" }; - const result = await jfather.walkAsync(obj, (o) => - Promise.resolve({ ...o, baz: 42 }), - ); - assert.deepEqual(result, { foo: "bar", baz: 42 }); - // Vérifier que l'objet d'entrée n'a pas été modifié. - assert.deepEqual(obj, { foo: "bar" }); - }); - - it("should apply on all elements of array", async function () { - const obj = [{ foo: "bar" }, { baz: "qux", quux: "corge" }]; - const result = await jfather.walkAsync(obj, (o) => - Promise.resolve(Object.keys(o)), - ); - assert.deepEqual(result, [["foo"], ["baz", "quux"]]); - // Vérifier que l'objet d'entrée n'a pas été modifié. - assert.deepEqual(obj, [ - { foo: "bar" }, - { baz: "qux", quux: "corge" }, - ]); - }); - - it("should ignore others types", async function () { - const obj = "foo"; - const result = await jfather.walkAsync("foo", () => - Promise.resolve(42), - ); - assert.deepEqual(result, "foo"); - // Vérifier que l'objet d'entrée n'a pas été modifié. - assert.deepEqual(obj, "foo"); - }); - - it("should apply on sub-object", async function () { - const obj = { foo: { bar: "baz" } }; - const result = await jfather.walkAsync(obj, (o) => - Promise.resolve({ ...o, qux: 42 }), - ); - assert.deepEqual(result, { foo: { bar: "baz", qux: 42 }, qux: 42 }); - // Vérifier que l'objet d'entrée n'a pas été modifié. - assert.deepEqual(obj, { foo: { bar: "baz" } }); - }); - - it("should apply on all elements of array of array", async function () { - const obj = [[{ foo: "bar" }], { baz: ["qux"], quux: "corge" }]; - const result = await jfather.walkAsync(obj, (o) => - Promise.resolve(Object.values(o)), - ); - assert.deepEqual(result, [[["bar"]], [["qux"], "corge"]]); - // Vérifier que l'objet d'entrée n'a pas été modifié. - assert.deepEqual(obj, [ - [{ foo: "bar" }], - { baz: ["qux"], quux: "corge" }, - ]); - }); - }); - - describe("query()", function () { - it("should get by property name", function () { - const result = jfather.query({ foo: "bar" }, ".foo"); - assert.deepEqual(result, "bar"); - }); - - it("should get by index", function () { - const result = jfather.query(["foo", "bar"], "[1]"); - assert.deepEqual(result, "bar"); - }); - - it("should get by property name and index", function () { - const result = jfather.query({ foo: ["bar", "baz"] }, ".foo[1]"); - assert.deepEqual(result, "baz"); - }); - - it("should get by sub-property name", function () { - const result = jfather.query({ foo: { bar: "baz" } }, ".foo.bar"); - assert.deepEqual(result, "baz"); - }); - - it("should get reject invalid chain", function () { - assert.throws( - () => jfather.query({ foo: { bar: "baz" } }, ".qux.quux"), - { - name: "TypeError", - message: - "Cannot read properties of undefined (reading 'quux')", - }, - ); - }); - - it("should get reject unsupported chain", function () { - assert.throws(() => jfather.query({ foo: "bar" }, ".?foo"), { - name: "TypeError", - message: "Invalid chain: .?foo", - }); - }); - }); - - describe("merge()", function () { - it("should return second when first isn't object", function () { - const overrode = jfather.merge("foo", { bar: "baz" }); - assert.deepEqual(overrode, { bar: "baz" }); - }); - - it("should return second when second isn't object", function () { - const overrode = jfather.merge({ foo: "bar" }, "baz"); - assert.equal(overrode, "baz"); - }); - - it("should return second when both aren't object", function () { - const overrode = jfather.merge("foo", "bar"); - assert.equal(overrode, "bar"); - }); - - it("should merge two objects", function () { - const overrode = jfather.merge( - { foo: "bar", baz: "qux" }, - { foo: "quux", corge: "grault" }, - ); - assert.deepEqual(overrode, { - foo: "quux", - baz: "qux", - corge: "grault", - }); - }); - - it("should override", function () { - const overrode = jfather.merge( - { foo: ["bar", "baz"] }, - { "$foo[0]": "qux", "$foo[]": "quux" }, - ); - assert.deepEqual(overrode, { foo: ["qux", "baz", "quux"] }); - }); - - it("should override in sub-object", function () { - const overrode = jfather.merge( - { foo: ["bar", "baz"], qux: { quux: ["corge", "grault"] } }, - { - "$foo[0]": "garply", - "$foo[]": "waldo", - qux: { fred: "plugh", "$quux[1]": "xyzzy" }, - }, - ); - assert.deepEqual(overrode, { - foo: ["garply", "baz", "waldo"], - qux: { quux: ["corge", "xyzzy"], fred: "plugh" }, - }); - }); - - it("should override in depth", function () { - const overrode = jfather.merge( - { foo: [{ bar: "baz" }, { qux: "quux" }, "corge"] }, - { - "$foo[0]": "grault", - "$foo[1]": { garply: "waldo" }, - "$foo[2]": { fred: "plugh" }, - }, - ); - assert.deepEqual(overrode, { - foo: [ - "grault", - { qux: "quux", garply: "waldo" }, - { fred: "plugh" }, - ], - }); - }); - }); -}); From d950ff3890482cd473f4b8883ced66cb597cc12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 16:13:02 +0100 Subject: [PATCH 18/38] =?UTF-8?q?fix(module/podcast):=20G=C3=A9rer=20les?= =?UTF-8?q?=20actions=20play/pause.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/module/podcast/podcast.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/module/podcast/podcast.js b/src/module/podcast/podcast.js index 2f02b09..2ad8a26 100644 --- a/src/module/podcast/podcast.js +++ b/src/module/podcast/podcast.js @@ -18,22 +18,30 @@ const hashCode = function (item) { }; const playPause = function (event) { + const li = event.target.closest("li"); + const audio = li.querySelector("audio"); + if (audio.paused) { + audio.play(); + } else { + audio.pause(); + } +}; + +const change = function (event) { const li = event.target.closest("li"); const img = li.querySelector("img"); const a = li.querySelector("a"); const input = li.querySelector("input"); const audio = li.querySelector("audio"); if (audio.paused) { + input.style.display = "none"; + a.style.display = "block"; + img.src = import.meta.resolve("./img/play.svg"); + } else { a.style.display = "none"; input.max = Math.trunc(audio.duration); input.style.display = "block"; img.src = import.meta.resolve("./img/pause.svg"); - audio.play(); - } else { - input.style.display = "none"; - a.style.display = "block"; - img.src = import.meta.resolve("./img/play.svg"); - audio.pause(); } }; @@ -111,6 +119,8 @@ export default class PodcastModule extends HTMLElement { const audio = li.querySelector("audio"); audio.src = item.audio; audio.addEventListener("timeupdate", elapse); + audio.addEventListener("pause", change); + audio.addEventListener("play", change); // Si l'élément n'est pas dans la liste. if (!li.isConnected) { From c220ee604322704392c16669ea7ae06fa6e8cb5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 6 Mar 2024 16:32:27 +0100 Subject: [PATCH 19/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .github/workflows/ci.yml | 13 + .github/workflows/release.yml | 5 +- .metalint/eslint.config.js | 20 +- .metalint/eslint_browser.config.js | 5 +- .metalint/eslint_node.config.js | 8 + .metalint/eslint_test.config.js | 8 + CHANGELOG.md | 2 - package-lock.json | 1123 ++++++++++++--------- package.json | 28 +- src/extension/background/migrate.js | 37 +- src/scraper/tools/filter/filter.js | 6 + src/utils/scraper/chain.js | 4 +- template/dashboard/3-columns.html | 2 +- 15 files changed, 741 insertions(+), 528 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 127c9df..e3c72cc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.10.0 -->: -- Browser version<!-- e.g. Chrome 120.0.6099.199, Firefox 121.0 -->: +- Gout extension version<!-- e.g. 0.11.0 -->: +- Browser version<!-- e.g. Chrome 122.0.6261.94, Firefox 123.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 3fe52d2..eada9e2 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.10.0 -->: -- Browser version<!-- e.g. Chrome 120.0.6099.199, Firefox 121.0 -->: +- Gout extension version<!-- e.g. 0.11.0 -->: +- Browser version<!-- e.g. Chrome 122.0.6261.94, Firefox 123.0 -->: ### Additional context diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d39b059..969aaf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,3 +84,16 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 + + - name: Run Snyk to check for vulnerabilities + uses: snyk/actions/node@master + continue-on-error: true + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + args: --sarif-file-output=snyk.sarif + + - name: Upload Snyk result to GitHub Code Scanning + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: snyk.sarif diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71bbddd..97896d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,8 +17,9 @@ jobs: config-file: .release-please/config.json manifest-file: .release-please/manifest.json - # Formatter les fichiers modifiés par release-please, car ils ne - # respectent plus le formatage de Prettier (via Metalint). + # Si la PR (pull request) a été créée ou modifiée : formatter les fichiers + # modifiés par release-please, car ils ne respectent plus le formatage de + # Prettier (via Metalint). # https://github.com/googleapis/release-please/issues/1802 - name: Checkout repository if: ${{ steps.release.outputs.pr }} diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 6aabe56..f680e40 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -404,13 +404,7 @@ export default { "import/no-relative-parent-imports": "off", "import/no-restricted-paths": "off", "import/no-self-import": "error", - "import/no-unresolved": [ - "error", - { - caseSensitive: true, - caseSensitiveStrict: true, - }, - ], + "import/no-unresolved": ["error", { caseSensitiveStrict: true }], "import/no-useless-path-segments": "error", "import/no-webpack-loader-syntax": "error", @@ -767,7 +761,17 @@ export default { "unicorn/require-post-message-target-origin": "off", "unicorn/string-content": "off", "unicorn/switch-case-braces": ["error", "avoid"], - "unicorn/template-indent": "error", + "unicorn/template-indent": [ + "error", + // Configurer la règle pour qu'elle soit compatible avec Prettier. + // https://github.com/prettier/eslint-config-prettier#unicorntemplate-indent + { + tags: ["outdent", "dedent", "sql", "styled"], + functions: ["dedent", "stripIndent"], + selectors: [], + comments: ["indent"], + }, + ], "unicorn/text-encoding-identifier-case": "error", "unicorn/throw-new-error": "error", }, diff --git a/.metalint/eslint_browser.config.js b/.metalint/eslint_browser.config.js index 0938173..0b8efee 100644 --- a/.metalint/eslint_browser.config.js +++ b/.metalint/eslint_browser.config.js @@ -10,10 +10,13 @@ export default { }, rules: { + // Plugin eslint-plugin-import. + // Static analysis. "import/no-unresolved": [ "error", { - ignore: ["^https:\\/\\/esm\\.sh\\/"], + ignore: ["^https://esm\\.sh/"], + caseSensitiveStrict: true, }, ], }, diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index 34e868c..132abd6 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -88,5 +88,13 @@ export default { "n/prefer-global/url": "off", "n/prefer-promises/dns": "error", "n/prefer-promises/fs": "error", + + // Plugin eslint-plugin-unicorn. + // Désactiver les règles suivantes, car elles s'appliquent seulement au + // DOM et sont donc inutiles dans les scripts Node.js. + "unicorn/prefer-dom-node-append": "off", + "unicorn/prefer-dom-node-dataset": "off", + "unicorn/prefer-dom-node-remove": "off", + "unicorn/prefer-dom-node-text-content": "off", }, }; diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index a233a85..5f15980 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -22,6 +22,7 @@ export default { "prefer-arrow-callback": "off", // Plugin eslint-plugin-mocha. + "mocha/consistent-spacing-between-blocks": "error", "mocha/handle-done-callback": "error", "mocha/max-top-level-suites": "error", "mocha/no-async-describe": "error", @@ -48,5 +49,12 @@ export default { // Plugin eslint-plugin-no-unsanitized. "no-unsanitized/method": "off", + + // Plugin eslint-plugin-unicorn. + // Ne pas obliger à sortir les fonctions des tests. + "unicorn/consistent-function-scoping": "off", + // Autoriser la valeur null pour pouvoir tester cette valeur dans les + // tests. + "unicorn/no-null": "off", }, }; diff --git a/CHANGELOG.md b/CHANGELOG.md index da68f2a..548048d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,5 @@ # Changelog -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - ## [0.10.0](https://github.com/regseb/gout/compare/v0.9.8...v0.10.0) (2024-01-08) ### Features diff --git a/package-lock.json b/package-lock.json index 420fcf6..3f20a14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,35 +14,35 @@ }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.2.2", - "@stryker-mutator/core": "8.0.0", - "@stryker-mutator/mocha-runner": "8.0.0", + "@prettier/plugin-xml": "3.3.1", + "@stryker-mutator/core": "8.2.6", + "@stryker-mutator/mocha-runner": "8.2.6", "@types/mocha": "10.0.6", - "addons-linter": "6.19.0", - "eslint": "8.56.0", + "addons-linter": "6.23.0", + "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.0.2", - "eslint-plugin-mocha": "10.2.0", - "eslint-plugin-n": "16.6.1", + "eslint-plugin-jsdoc": "48.2.0", + "eslint-plugin-mocha": "10.3.0", + "eslint-plugin-n": "16.6.2", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-regexp": "2.2.0", - "eslint-plugin-unicorn": "50.0.1", + "eslint-plugin-unicorn": "51.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", "markdownlint": "0.33.0", "metalint": "0.15.0", - "mocha": "10.2.0", + "mocha": "10.3.0", "npm-package-json-lint": "7.1.0", - "prettier": "3.1.1", + "prettier": "3.2.5", "purgecss": "5.0.0", - "stylelint": "16.1.0", + "stylelint": "16.2.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.7", + "typedoc": "0.25.11", "typescript": "5.3.3", - "web-ext": "7.9.0", + "web-ext": "7.11.0", "yaml-lint": "1.7.0" }, "engines": { @@ -62,13 +62,13 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -168,9 +168,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -178,11 +178,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -259,9 +259,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", - "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -380,9 +380,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -469,14 +469,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", - "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -568,9 +568,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -580,12 +580,12 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz", - "integrity": "sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz", + "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.23.7", + "@babel/helper-create-class-features-plugin": "^7.23.9", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-decorators": "^7.23.3" }, @@ -597,12 +597,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", - "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", + "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -708,23 +708,35 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", @@ -733,8 +745,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -742,10 +754,22 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -891,9 +915,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", - "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz", + "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==", "dev": true, "dependencies": { "comment-parser": "1.4.1", @@ -1023,9 +1047,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1042,13 +1066,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -1091,9 +1115,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -1193,32 +1217,32 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1231,9 +1255,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1241,21 +1265,21 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.5" }, "engines": { "node": ">= 0.4" } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.4.3.tgz", - "integrity": "sha512-+VnaO5zYUwFQVuRqp2qLPGR5GwhhJ/lrp0yEmamJ/nI15P2GKwGBEWRDiITZR8i6AYxeiQSu2rOi/gqxehnPuA==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.11.tgz", + "integrity": "sha512-4o1ZaGmvqoDx3QLyEAcZvGDKmdVXLB0aiANuPDumgue/7iH67KUBsKejLX7wrdxEdyNYfXUKtjFQYhGwVUBXGw==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -1364,9 +1388,9 @@ } }, "node_modules/@prettier/plugin-xml": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.2.2.tgz", - "integrity": "sha512-SoE70SQF1AKIvK7LVK80JcdAe6wrDcbodFFjcoqb1FkOqV0G0oSlgAFDwoRXPqkUE5p/YF2nGsnUbnfm6471sw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.3.1.tgz", + "integrity": "sha512-kllNJk6n2pXJjGWdj+HAr1GhOoOTrlmeWkDYCGBzkyZS2l0K6h2gsUQcVif2cNqAE1MNC+nUrzN6QwEsCukPnQ==", "dev": true, "dependencies": { "@xml-tools/parser": "^1.0.11" @@ -1388,14 +1412,14 @@ } }, "node_modules/@stryker-mutator/api": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.0.0.tgz", - "integrity": "sha512-4R8yieczpgOrOBQYq1d1aRJLcgenltpMH9ugtIYPPVmENFUo+mWm9HmaahLe+TVHnJSb4OZ4lvI7dVIhoBaiSQ==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.2.6.tgz", + "integrity": "sha512-ygPT37teKh2Ei3sj+cs+kNpaFiz0JyelSDEz4GiQXu8DXy79D0oglSFAKsiVBdzO6MD2eRtyclovfdr/OdPVwA==", "dev": true, "dependencies": { - "mutation-testing-metrics": "3.0.0", - "mutation-testing-report-schema": "3.0.0", - "tslib": "~2.6.0", + "mutation-testing-metrics": "3.0.2", + "mutation-testing-report-schema": "3.0.2", + "tslib": "~2.6.2", "typed-inject": "~4.0.0" }, "engines": { @@ -1403,39 +1427,39 @@ } }, "node_modules/@stryker-mutator/core": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.0.0.tgz", - "integrity": "sha512-dyPs60wtLS9vgghgL5a49k/7KOovOnavXzm5SIBBsBJuxoO+5rvGXRohZaqSoZdb0yWIvp+LFdu6qWcdlJPkoQ==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.2.6.tgz", + "integrity": "sha512-F3JaVOJn+m2xEzNXFrdWl0/34WOnnqjrBADyvxTfoejP8k/oz6R89+QPrR8RwuhTVZUdrmakNkHRPXh9CsaWkw==", "dev": true, "dependencies": { - "@stryker-mutator/api": "8.0.0", - "@stryker-mutator/instrumenter": "8.0.0", - "@stryker-mutator/util": "8.0.0", + "@stryker-mutator/api": "8.2.6", + "@stryker-mutator/instrumenter": "8.2.6", + "@stryker-mutator/util": "8.2.6", "ajv": "~8.12.0", "chalk": "~5.3.0", - "commander": "~11.1.0", + "commander": "~12.0.0", "diff-match-patch": "1.0.5", "emoji-regex": "~10.3.0", - "execa": "~8.0.0", + "execa": "~8.0.1", "file-url": "~4.0.0", "get-port": "~7.0.0", - "glob": "~10.3.0", - "inquirer": "~9.2.0", + "glob": "~10.3.10", + "inquirer": "~9.2.13", "lodash.groupby": "~4.6.0", - "log4js": "~6.9.0", - "minimatch": "~9.0.1", - "mutation-testing-elements": "3.0.1", - "mutation-testing-metrics": "3.0.0", - "mutation-testing-report-schema": "3.0.0", - "npm-run-path": "~5.1.0", - "progress": "~2.0.0", - "rxjs": "~7.8.0", - "semver": "^7.3.5", - "source-map": "~0.7.3", + "log4js": "~6.9.1", + "minimatch": "~9.0.3", + "mutation-testing-elements": "3.0.2", + "mutation-testing-metrics": "3.0.2", + "mutation-testing-report-schema": "3.0.2", + "npm-run-path": "~5.3.0", + "progress": "~2.0.3", + "rxjs": "~7.8.1", + "semver": "^7.5.4", + "source-map": "~0.7.4", "tree-kill": "~1.2.2", "tslib": "2.6.2", "typed-inject": "~4.0.0", - "typed-rest-client": "~1.8.0" + "typed-rest-client": "~1.8.11" }, "bin": { "stryker": "bin/stryker.js" @@ -1445,48 +1469,48 @@ } }, "node_modules/@stryker-mutator/instrumenter": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.0.0.tgz", - "integrity": "sha512-kS3BdpqDuJeRBDBw2eP68rhUrgtlT5EGERNOwCwUGpfTtUan7y2zX9ZGEblOtMI5yTtyBArFZMtwhPGi+waJ/Q==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.2.6.tgz", + "integrity": "sha512-2o9ffO4yBxAtCbnOsOAojQmBI4IZcFTCMW9o7CaTThNTQ6j/8gLaU1suxt3IPCRGl30rph0skBAyKiiWaUVhMw==", "dev": true, "dependencies": { - "@babel/core": "~7.23.0", - "@babel/generator": "~7.23.0", - "@babel/parser": "~7.23.0", - "@babel/plugin-proposal-decorators": "~7.23.0", - "@babel/preset-typescript": "~7.23.0", - "@stryker-mutator/api": "8.0.0", - "@stryker-mutator/util": "8.0.0", - "angular-html-parser": "~5.0.0", - "semver": "~7.5.4", - "weapon-regex": "~1.1.0" + "@babel/core": "~7.23.9", + "@babel/generator": "~7.23.6", + "@babel/parser": "~7.23.9", + "@babel/plugin-proposal-decorators": "~7.23.9", + "@babel/preset-typescript": "~7.23.3", + "@stryker-mutator/api": "8.2.6", + "@stryker-mutator/util": "8.2.6", + "angular-html-parser": "~5.2.0", + "semver": "~7.6.0", + "weapon-regex": "~1.3.0" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@stryker-mutator/mocha-runner": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.0.0.tgz", - "integrity": "sha512-23qNT78l68d/OBrq64UDCKBoYDc+PMbmvTTYrQcCDRKaRn97wEG44ADR+ebqxdEUnV1iiqUXkVMki3jRuYk8gw==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.2.6.tgz", + "integrity": "sha512-WIoNECVBa5mjWJSLu8U6gnDYeeEt7/Y2iIwT75SJqJ4K317fslth2DKlfcXDZaUmdNGxfhvtf7MKOcsbczwboQ==", "dev": true, "dependencies": { - "@stryker-mutator/api": "8.0.0", - "@stryker-mutator/util": "8.0.0", - "tslib": "~2.6.0" + "@stryker-mutator/api": "8.2.6", + "@stryker-mutator/util": "8.2.6", + "tslib": "~2.6.2" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@stryker-mutator/core": "~8.0.0", + "@stryker-mutator/core": "~8.2.0", "mocha": ">= 7.2 < 11" } }, "node_modules/@stryker-mutator/util": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.0.0.tgz", - "integrity": "sha512-geb2JvbYXDs6vOjGV9514PK+L6NiYFQIYhkpKvzfZQWYijNYnLhxXKz/X264a9StTYbGb/ZBADOkzsVde/5zig==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.2.6.tgz", + "integrity": "sha512-2jmSYmrbGqt59JBkv1TvoOwQpUccCL3c90FLZIWg1zBNwj6zeOrwh734E5dKswDaC+BudQ3FtwlWB5augSuo1w==", "dev": true }, "node_modules/@szmarczak/http-timer": { @@ -1604,43 +1628,43 @@ } }, "node_modules/addons-linter": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.19.0.tgz", - "integrity": "sha512-Yz5YRfIQ12dIqXKmEoHNwoS/L1xIve2hdm9UEesOEsov5W0zeWMOWCnqdvJNVNy7f1FnPu1lnqzylelkTBS7dA==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.23.0.tgz", + "integrity": "sha512-yFI1fe/c0hkgcWwq6MerWAcDU/CG/NKzQlWxgjQDruMOezs0vyD2fCzapNZt2vxsyNLuDp54q9gNL/85ypYZ/g==", "dev": true, "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.4.3", + "@mdn/browser-compat-data": "5.5.11", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.8.0", + "addons-scanner-utils": "9.9.0", "ajv": "8.12.0", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", "deepmerge": "4.3.1", - "eslint": "8.55.0", + "eslint": "8.57.0", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "3.4.3", - "espree": "9.6.1", + "eslint-visitor-keys": "4.0.0", + "espree": "10.0.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", "glob": "10.3.10", - "image-size": "1.0.2", + "image-size": "1.1.1", "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", - "pino": "8.16.2", - "postcss": "8.4.32", + "pino": "8.19.0", + "postcss": "8.4.35", "relaxed-json": "1.0.3", - "semver": "7.5.4", + "semver": "7.6.0", "sha.js": "2.4.11", "source-map-support": "0.5.21", "tosource": "1.0.0", "upath": "2.0.1", "yargs": "17.7.2", - "yauzl": "2.10.0" + "yauzl": "3.1.0" }, "bin": { "addons-linter": "bin/addons-linter" @@ -1649,25 +1673,6 @@ "node": ">=16.0.0" } }, - "node_modules/addons-linter/node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/addons-linter/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/addons-linter/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1684,108 +1689,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/addons-linter/node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "node_modules/addons-linter/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/addons-linter/node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/addons-linter/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/addons-linter/node_modules/espree": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "acorn": "^8.11.3", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/addons-linter/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==", - "dev": true - }, - "node_modules/addons-linter/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "url": "https://opencollective.com/eslint" } }, "node_modules/addons-linter/node_modules/supports-color": { @@ -1800,16 +1730,17 @@ "node": ">=8" } }, - "node_modules/addons-linter/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==", + "node_modules/addons-linter/node_modules/yauzl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.0.tgz", + "integrity": "sha512-zbff6SaAPyewVextulqeBjJm+1ZhS69vSN7cRpqVD7jMNSE9oXEdQ1SGF+ydfB+gKE2a3GiWfXf/pnwVZ1/tOA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=12" } }, "node_modules/addons-moz-compare": { @@ -1819,9 +1750,9 @@ "dev": true }, "node_modules/addons-scanner-utils": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.8.0.tgz", - "integrity": "sha512-nJJ4QazrtMImyb2OK9SGZlNtinNu25dzOR0lhWthhJQN2iDOf3yqHdSiVBEeZvCwuT/sS1cU6me4O4kgEATjFQ==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.9.0.tgz", + "integrity": "sha512-YDP10U3sEZMuIgnjXMiAYgUU64jTbxmhpUXMlhi1nKO4Etz+ctGWoTUst7IQRoLWaY9y2r1KZDG3jALxLA1n7Q==", "dev": true, "dependencies": { "@types/yauzl": "2.10.3", @@ -1901,9 +1832,9 @@ } }, "node_modules/angular-html-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-5.0.2.tgz", - "integrity": "sha512-fov2PwgZDgDsvZXPRa0+lbJyakOZOlFb5eiACR2i6RSn9ad5A+84/SwVfj/dUCbUAHH1ta2uvaoAKEijG93Sfg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-5.2.0.tgz", + "integrity": "sha512-8S/8g5iMcuGhRmBUJ+xuXm9hdjqIcaky2z52RA7tSyz9tWN0mgiP/JR9+kx/SiS1REJpTXnEKpMCMEeVVIeo3A==", "dev": true, "dependencies": { "tslib": "^2.6.2" @@ -2985,12 +2916,12 @@ } }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/comment-parser": { @@ -3839,16 +3770,16 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -4095,19 +4026,19 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.2.tgz", - "integrity": "sha512-CBFl5Jc7+jlV36RwDm+PQ8Uw5r28pn2/uW/OaB+Gw5bFwn4Py/1eYMZ3hGf9S4meUFZ/sRvS+hVif2mRAp6WqQ==", + "version": "48.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.0.tgz", + "integrity": "sha512-O2B1XLBJnUCRkggFzUQ+PBYJDit8iAgXdlu8ucolqGrbmOWPvttZQZX8d1sC0MbqDMSLs8SHSQxaNPRY1RQREg==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", + "@es-joy/jsdoccomment": "~0.42.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", + "semver": "^7.6.0", "spdx-expression-parse": "^4.0.0" }, "engines": { @@ -4118,9 +4049,9 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz", - "integrity": "sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.3.0.tgz", + "integrity": "sha512-IWzbg2K6B1Q7h37Ih4zMyW+nhmw1JvUlHlbCUUUu6PfOOAUGCB0gxmvv7/U+TQQ6e8yHUv+q7KMdIIum4bx+PA==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", @@ -4134,9 +4065,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.1.tgz", - "integrity": "sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==", + "version": "16.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", + "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -4253,9 +4184,9 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "50.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-50.0.1.tgz", - "integrity": "sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==", + "version": "51.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz", + "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -4711,31 +4642,27 @@ } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { @@ -5058,9 +4985,9 @@ } }, "node_modules/fx-runner": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fx-runner/-/fx-runner-1.3.0.tgz", - "integrity": "sha512-5b37H4GCyhF+Nf8xk9mylXoDq4wb7pbGAXxlCXp/631UTeeZomWSYcEGXumY4wk8g2QAqjPMGdWW+RbNt8PUcA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/fx-runner/-/fx-runner-1.4.0.tgz", + "integrity": "sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==", "dev": true, "dependencies": { "commander": "2.9.0", @@ -5926,9 +5853,9 @@ } }, "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", "dev": true, "dependencies": { "queue": "6.0.2" @@ -5937,7 +5864,7 @@ "image-size": "bin/image-size.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.x" } }, "node_modules/immediate": { @@ -6012,18 +5939,18 @@ "dev": true }, "node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.13", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.13.tgz", + "integrity": "sha512-mUlJNemjYioZgaZXqEFlQ0z9GD8/o+pavIF3JyhzWLX4Xa9M1wioGMCxQEFmps70un9lrah2WaBl3kSRVcoV3g==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -6489,12 +6416,12 @@ "dev": true }, "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6985,18 +6912,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7410,9 +7325,9 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dev": true, "dependencies": { "ansi-colors": "4.1.1", @@ -7422,13 +7337,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -7443,10 +7357,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/cliui": { @@ -7470,47 +7380,24 @@ } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "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" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", @@ -7633,24 +7520,24 @@ } }, "node_modules/mutation-testing-elements": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.0.1.tgz", - "integrity": "sha512-hsBKkabjD2sjyR2vhdEFPDxZfYLw71geIWjEh4rcZSSQAtyWRfjGf6UbdMjleuyw1ZZTgGt6CImtwRY7s3lrVg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.0.2.tgz", + "integrity": "sha512-ISsvj+2pfcyAUEMig83Y5KFvWpy3wJ3NIcXiJ6hD5NQeDdZJnhagRJqLQTwBRkzblqiAuYpY611v4isYJauBbg==", "dev": true }, "node_modules/mutation-testing-metrics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.0.0.tgz", - "integrity": "sha512-WslGuCdpqT+6SpeIahMhLrJl5+YbutlOCFKxuULIkAkaHfsWBK8UCq6euE7PiDEx+R1pYZo//kqRbFIOFmdQug==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.0.2.tgz", + "integrity": "sha512-FpyCAz43Mmq/l7BIyBrZLv8z3kc5XHNei/DcAyEVSXyj2i+h4jLhen4SiW/BPMijCIMVyiOeMJPMIfaYxrFZGg==", "dev": true, "dependencies": { - "mutation-testing-report-schema": "3.0.0" + "mutation-testing-report-schema": "3.0.2" } }, "node_modules/mutation-testing-report-schema": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.0.0.tgz", - "integrity": "sha512-70+ZPYoyedruSGiEcXQnFiTtIusBYlsL/2EMwfR+/HOqBGxBpmI798spqc86ZVYXPVCL5mt2rWjE1dTQwcjpmQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.0.2.tgz", + "integrity": "sha512-1F6s37zFDsoWa262sANVBDKANMvmKPVU1FAVEpSCMtKAGkFoar+tjXUlPnD0dWJfPuKV58G86zP7sMlcu+QOJQ==", "dev": true }, "node_modules/mute-stream": { @@ -7750,10 +7637,16 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8072,9 +7965,9 @@ } }, "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -8325,18 +8218,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8737,9 +8618,9 @@ } }, "node_modules/pino": { - "version": "8.16.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.2.tgz", - "integrity": "sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", + "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0", @@ -8747,7 +8628,7 @@ "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "v1.1.0", "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", + "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", @@ -8871,9 +8752,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -8958,24 +8839,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8986,9 +8849,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -9016,9 +8879,9 @@ "dev": true }, "node_modules/process-warning": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", - "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", "dev": true }, "node_modules/progress": { @@ -10012,9 +9875,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10624,14 +10487,14 @@ } }, "node_modules/stylelint": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.1.0.tgz", - "integrity": "sha512-Sh1rRV0lN1qxz/QsuuooLWsIZ/ona7NKw/fRZd6y6PyXYdD2W0EAzJ8yJcwSx4Iw/muz0CF09VZ+z4EiTAcKmg==", + "version": "16.2.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz", + "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.4.0", - "@csstools/css-tokenizer": "^2.2.2", - "@csstools/media-query-list-parser": "^2.1.6", + "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-tokenizer": "^2.2.3", + "@csstools/media-query-list-parser": "^2.1.7", "@csstools/selector-specificity": "^3.0.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", @@ -10651,14 +10514,14 @@ "is-plain-object": "^5.0.0", "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.0.0", + "meow": "^13.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.32", + "postcss": "^8.4.33", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.13", + "postcss-selector-parser": "^6.0.15", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -11230,9 +11093,9 @@ } }, "node_modules/typedoc": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz", - "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.11.tgz", + "integrity": "sha512-5MbI1W/FOG6oXsd8bdssQidSTeKh8Kt3xA5uKVzI+K99uzP8EGN45uPnPvQesyaWdD+89s4wCQdtWEd8QUbiRg==", "dev": true, "dependencies": { "lunr": "^2.3.9", @@ -11511,20 +11374,20 @@ } }, "node_modules/weapon-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.1.1.tgz", - "integrity": "sha512-b0RmqduiSUKyKFamrpU+UK78Jm65/6CgKq1zoWFaS9PM7vwNK4RWrjmX1jREs3pLmG7botsgMLVOltxDR7RGRw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.3.1.tgz", + "integrity": "sha512-l1qFP+WdehGfqNwW9MTtEB87PZITaIiz+m0ndvJS80/jlShRvP4rRQR/XXij53Rfa1zRe2qbOAcH+MQAsYtYYw==", "dev": true }, "node_modules/web-ext": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.9.0.tgz", - "integrity": "sha512-oWMiM3e+u5E8X7aUMgQ0BCGjlbZt4XwF6ExAXsXx9Btdz3nLmUY/4eKEZA1J+2T7WhCdRwN7Pdh2VKMej/pthQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.11.0.tgz", + "integrity": "sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==", "dev": true, "dependencies": { "@babel/runtime": "7.21.0", "@devicefarmer/adbkit": "3.2.3", - "addons-linter": "6.19.0", + "addons-linter": "6.21.0", "bunyan": "1.8.15", "camelcase": "7.0.1", "chrome-launcher": "0.15.1", @@ -11533,7 +11396,7 @@ "es6-error": "4.1.1", "firefox-profile": "4.3.2", "fs-extra": "11.1.0", - "fx-runner": "1.3.0", + "fx-runner": "1.4.0", "import-fresh": "3.3.0", "jose": "4.13.1", "mkdirp": "1.0.4", @@ -11563,6 +11426,95 @@ "npm": ">=6.9.0" } }, + "node_modules/web-ext/node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.7.tgz", + "integrity": "sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==", + "dev": true + }, + "node_modules/web-ext/node_modules/addons-linter": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.21.0.tgz", + "integrity": "sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==", + "dev": true, + "dependencies": { + "@fluent/syntax": "0.19.0", + "@mdn/browser-compat-data": "5.5.7", + "addons-moz-compare": "1.3.0", + "addons-scanner-utils": "9.9.0", + "ajv": "8.12.0", + "chalk": "4.1.2", + "cheerio": "1.0.0-rc.12", + "columnify": "1.6.0", + "common-tags": "1.8.2", + "deepmerge": "4.3.1", + "eslint": "8.56.0", + "eslint-plugin-no-unsanitized": "4.0.2", + "eslint-visitor-keys": "3.4.3", + "espree": "9.6.1", + "esprima": "4.0.1", + "fast-json-patch": "3.1.1", + "glob": "10.3.10", + "image-size": "1.1.1", + "is-mergeable-object": "1.1.1", + "jed": "1.1.1", + "json-merge-patch": "1.0.2", + "os-locale": "5.0.0", + "pino": "8.17.2", + "postcss": "8.4.33", + "relaxed-json": "1.0.3", + "semver": "7.5.4", + "sha.js": "2.4.11", + "source-map-support": "0.5.21", + "tosource": "1.0.0", + "upath": "2.0.1", + "yargs": "17.7.2", + "yauzl": "2.10.0" + }, + "bin": { + "addons-linter": "bin/addons-linter" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/web-ext/node_modules/addons-linter/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/web-ext/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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/web-ext/node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -11575,6 +11527,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": 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/web-ext/node_modules/decamelize": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", @@ -11587,6 +11555,77 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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/web-ext/node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -11601,6 +11640,27 @@ "node": ">=14.14" } }, + "node_modules/web-ext/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/web-ext/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==", + "dev": true + }, "node_modules/web-ext/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -11622,6 +11682,30 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/web-ext/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/web-ext/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/web-ext/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11670,6 +11754,71 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/pino": { + "version": "8.17.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.17.2.tgz", + "integrity": "sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.1.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/web-ext/node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/web-ext/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/web-ext/node_modules/strip-bom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", @@ -11694,6 +11843,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/web-ext/node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -11706,6 +11867,18 @@ "node": ">=8.17.0" } }, + "node_modules/web-ext/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/web-ext/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -11715,6 +11888,12 @@ "node": ">= 10.0.0" } }, + "node_modules/web-ext/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/web-ext/node_modules/yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", diff --git a/package.json b/package.json index 80f32a5..7c7b171 100644 --- a/package.json +++ b/package.json @@ -42,35 +42,35 @@ }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.2.2", - "@stryker-mutator/core": "8.0.0", - "@stryker-mutator/mocha-runner": "8.0.0", + "@prettier/plugin-xml": "3.3.1", + "@stryker-mutator/core": "8.2.6", + "@stryker-mutator/mocha-runner": "8.2.6", "@types/mocha": "10.0.6", - "addons-linter": "6.19.0", - "eslint": "8.56.0", + "addons-linter": "6.23.0", + "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.0.2", - "eslint-plugin-mocha": "10.2.0", - "eslint-plugin-n": "16.6.1", + "eslint-plugin-jsdoc": "48.2.0", + "eslint-plugin-mocha": "10.3.0", + "eslint-plugin-n": "16.6.2", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-regexp": "2.2.0", - "eslint-plugin-unicorn": "50.0.1", + "eslint-plugin-unicorn": "51.0.1", "htmlhint": "1.1.4", "http-server": "14.1.1", "markdownlint": "0.33.0", "metalint": "0.15.0", - "mocha": "10.2.0", + "mocha": "10.3.0", "npm-package-json-lint": "7.1.0", - "prettier": "3.1.1", + "prettier": "3.2.5", "purgecss": "5.0.0", - "stylelint": "16.1.0", + "stylelint": "16.2.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.7", + "typedoc": "0.25.11", "typescript": "5.3.3", - "web-ext": "7.9.0", + "web-ext": "7.11.0", "yaml-lint": "1.7.0" }, "engines": { diff --git a/src/extension/background/migrate.js b/src/extension/background/migrate.js index 10936ec..7bf7c63 100644 --- a/src/extension/background/migrate.js +++ b/src/extension/background/migrate.js @@ -4,26 +4,19 @@ * @author Sébastien Règne */ -// Utiliser un then() car addons-linter échoue à analyser les fichiers sans -// import / export et avec un await dans le scope global. -// https://github.com/mozilla/addons-linter/issues/4020 -// eslint-disable-next-line unicorn/prefer-top-level-await -browser.storage.sync.get().then(async (current) => { - // Vider la configuration pour enlever les éventuelles propriétés obsolètes. - // Et aussi pour forcer l'appel à l'écouteur browser.storage.onChanged sous - // Chromium même si la méthode browser.storage.local.set() ne modifie pas la - // configuration. - await browser.storage.sync.clear(); +const current = await browser.storage.sync.get(); - if ("version" in current) { - await browser.storage.sync.set({ - version: current.version, - dashboards: current.dashboards, - }); - } else { - await browser.storage.sync.set({ - version: 1, - dashboards: [], - }); - } -}); +// Vider la configuration pour enlever les éventuelles propriétés obsolètes. +await browser.storage.sync.clear(); + +if ("version" in current) { + await browser.storage.sync.set({ + version: current.version, + dashboards: current.dashboards, + }); +} else { + await browser.storage.sync.set({ + version: 1, + dashboards: [], + }); +} diff --git a/src/scraper/tools/filter/filter.js b/src/scraper/tools/filter/filter.js index 9ff8c65..64fb251 100644 --- a/src/scraper/tools/filter/filter.js +++ b/src/scraper/tools/filter/filter.js @@ -73,6 +73,12 @@ const compile = (filter) => { }; export default class FilterScraper { + /** + * La fonction pour filtrer prennant en argument un élément et retournant un + * booléen. + * + * @type {Function} + */ #filter; /** diff --git a/src/utils/scraper/chain.js b/src/utils/scraper/chain.js index 787e8a6..58bbbe1 100644 --- a/src/utils/scraper/chain.js +++ b/src/utils/scraper/chain.js @@ -37,9 +37,9 @@ export default function chain(FirstScraper, ...others) { constructor(options, scrapers) { const allOptions = dispatch(options); const subScrapers = AllScraperss.reduce( - (dependancies, Scrapers) => { + (dependencies, Scrapers) => { return Scrapers.map( - (S) => new S(allOptions.pop(), dependancies), + (S) => new S(allOptions.pop(), dependencies), ); }, scrapers, diff --git a/template/dashboard/3-columns.html b/template/dashboard/3-columns.html index 2c22ff9..9b6d7b3 100644 --- a/template/dashboard/3-columns.html +++ b/template/dashboard/3-columns.html @@ -38,7 +38,7 @@ </div> <div style="width: 33%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - deuxième colonne. --> + colonne du milieu. --> </div> <div style="width: 33%"> <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la From 0b477b7cb7109d41dd2595ed1fc6a43f3605120e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 10:12:47 +0100 Subject: [PATCH 20/38] chore(main): release 0.11.0 (#15) --- .release-please/manifest.json | 2 +- CHANGELOG.md | 10 ++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/manifest.json | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.release-please/manifest.json b/.release-please/manifest.json index 15cc783..0051aa3 100644 --- a/.release-please/manifest.json +++ b/.release-please/manifest.json @@ -1 +1 @@ -{ ".": "0.10.0" } +{ ".": "0.11.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 548048d..2a995b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [0.11.0](https://github.com/regseb/gout/compare/v0.10.0...v0.11.0) (2024-03-07) + +### Features + +- Récupérer les données dans le group (Atom). ([e84592f](https://github.com/regseb/gout/commit/e84592f29543e54ac754a630766e9bc9f8ebb783)) + +### Bug Fixes + +- **module/podcast:** Gérer les actions play/pause. ([d950ff3](https://github.com/regseb/gout/commit/d950ff3890482cd473f4b8883ced66cb597cc12d)) + ## [0.10.0](https://github.com/regseb/gout/compare/v0.9.8...v0.10.0) (2024-01-08) ### Features diff --git a/package-lock.json b/package-lock.json index 3f20a14..679ae2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.10.0", + "version": "0.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.10.0", + "version": "0.11.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 7c7b171..4349eaf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.10.0", + "version": "0.11.0", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 3658079..1f24ed0 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.10.0", + "version": "0.11.0", "browser_action": { "default_icon": { "16": "img/icon16.png", From 91b03eed5cbc4e8d5697863ddadd7792634f67b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Mon, 27 May 2024 10:04:35 +0200 Subject: [PATCH 21/38] feat: Utiliser YAML pour les configurations. --- README.md | 152 +++++++++--------- src/engine/script.js | 32 +++- src/module/audio/README.md | 54 +++---- src/module/clock/README.md | 40 +++-- src/module/examples/minimal/README.md | 11 +- .../examples/preact/helloworld/README.md | 11 +- src/module/examples/react/tictactoe/README.md | 11 +- src/module/icon/README.md | 52 +++--- src/module/iframe/README.md | 40 +++-- src/module/image/README.md | 47 +++--- src/module/list/README.md | 60 ++++--- src/module/notepad/README.md | 34 ++-- src/module/podcast/README.md | 62 ++++--- src/module/search/README.md | 30 ++-- src/module/single/README.md | 45 +++--- src/module/text/README.md | 46 +++--- src/module/tools/contrast/README.md | 11 +- src/module/tools/findrss/README.md | 21 ++- src/scraper/examples/days/README.md | 50 +++--- src/scraper/examples/days/days.js | 50 +++--- src/scraper/examples/helloworld/README.md | 43 +++-- .../examples/jsonplaceholder/README.md | 36 ++--- src/scraper/icon/ping/README.md | 38 ++--- src/scraper/list/jsonfeed/README.md | 40 +++-- src/scraper/list/rss/README.md | 38 ++--- src/scraper/search/opensearch/README.md | 57 +++---- src/scraper/tools/complements/README.md | 47 +++--- src/scraper/tools/filter/README.md | 46 +++--- src/scraper/tools/repeater/README.md | 40 ++--- template/dashboard/3-columns.html | 12 +- template/dashboard/4-columns.html | 12 +- 31 files changed, 604 insertions(+), 664 deletions(-) diff --git a/README.md b/README.md index 8f160b4..1ed2996 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,11 @@ Gout est une **extension** Firefox pour récupérer des informations sur Internet (flux RSS, résultats d'API, parsing de sites Internet...) et les afficher dans -une page Web. Les [dashboards](#dashboard) sont ces pages Web avec du JSON pour -configurer chaque [widget](#widget). La configuration d'un widget comporte un -[module](#module) pour définir le format d'affichage ; et des -[scrapers](#scraper) pour extraire des données. +une page Web. Les [dashboards](#dashboard) sont ces pages Web avec du +[YAML](https://yaml.org/ "YAML Ain't Markup Language") pour configurer chaque +[widget](#widget). La configuration d'un widget comporte un [module](#module) +pour définir le format d'affichage ; et des [scrapers](#scraper) pour extraire +des données. ### Dashboard @@ -40,19 +41,31 @@ Voici un exemple de dashboard ayant quatre colonnes de widgets. </head> <body> <div style="width: 30%;"> - <script type="application/json">{ "...": "..." }</script> - <script type="application/json">{ "...": "..." }</script> + <script type="application/yaml"> + # ... + </script> + <script type="application/yaml"> + # ... + </script> <!-- ... --> </div> <div style="width: 30%;"> - <script type="application/json">{ "...": "..." }</script> + <script type="application/yaml"> + # ... + </script> </div> <div style="width: 20%;"> - <script type="application/json">{ "...": "..." }</script> + <script type="application/yaml"> + # ... + </script> </div> <div style="width: 20%;"> - <script type="application/json">{ "...": "..." }</script> - <script type="application/json">{ "...": "..." }</script> + <script type="application/yaml"> + # ... + </script> + <script type="application/yaml"> + # ... + </script> </div> </body> </html> @@ -61,37 +74,38 @@ Voici un exemple de dashboard ayant quatre colonnes de widgets. ### Widget Un widget est un bloc du dashboard. C'est un élément `<script>` (avec le -`type="application/json"`). Le widget sera ajouté dans le DOM de la page au même -endroit que l'élément `<script>`. Le contenu du `<script>` est un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") ayant -deux propriétés : - -- `"module"` : Un objet JSON contenant la configuration du [module](#module). -- `"scrapers"` : Un tableau d'objets JSON pour les configurations de chaque - [scraper](#scraper). +`type="application/yaml"`). Le widget sera ajouté dans le DOM de la page au même +endroit que l'élément `<script>`. Le contenu du `<script>` est au format +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés : + +```yaml +module: + url: # L'URL du fichier JavaScript du module. + options: # Les options du module. + scrapers: + - url: # L'URL du fichier JavaScript du premier scraper. + options: # Les options du premier scraper. + - url: # L'URL du fichier JavaScript du deuxième scraper. + options: # Les options du deuxième scraper. + # ... +``` Cet exemple de widget récupère les dernières publications du flux RSS du site [LinuxFr.org](https://linuxfr.org/) et il les affiche sous forme d'une liste de liens. -```HTML -<script type="application/json"> - { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "max": 5, - "color": "#ffc107", - "cron": "*/10 * * * *" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://linuxfr.org/news.atom" - } - }] - } +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + max: 5 + color: "#ffc107" + cron: "*/10 * * * *" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://linuxfr.org/news.atom" </script> ``` @@ -102,32 +116,28 @@ dans GitHub. ### Module Les modules sont les composants du widget définissant comment les données sont -affichées (une liste de liens, une image...). La configuration d'un module est -un objet JSON composé de deux propriétés : +affichées (une liste de liens, une image...). La configuration d'un module a +trois propriétés : -- `"url"` : L'URL du fichier JavaScript du module (par exemple pour le module +- `url` : L'URL du fichier JavaScript du module (par exemple pour le module [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) : `"https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js"`). -- `"options"` : Un objet JSON contenant les options du module (qui sont - spécifiques pour chaque module). +- `options` : Les options du module (qui sont spécifiques pour chaque module). +- `scrapers` : La liste des [scrapers](#scraper) associés au module. Dans cet exemple, le module est une liste (avec au maximum `5` éléments) affichée dans un bloc bleu `#2196f3` et actualisée toutes les dix minutes [`*/10 * * * *`](https://crontab.guru/#*/10_*_*_*_*). -```HTML -<script type="application/json"> - { - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#2196f3", - "cron": "*/10 * * * *", +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color: "#2196f3" + cron: "*/10 * * * *" "max": 5 - } - }, - "scrapers": [{ "...": "..." }] - } + scrapers: # ... </script> ``` @@ -140,35 +150,29 @@ dans GitHub. Les scrapers permettent d'extraire des données (flux RSS, parsing de page...) et de les transmettre à un module dans un format spécifique. Plusieurs scrapers peuvent être associés avec un module. Dans la configuration du widget, les -scrapers sont définis dans un tableau d'objets JSON composés de deux -propriétés : +scrapers sont définis dans un tableau avec deux propriétés : -- `"url"` : L'URL du fichier JavaScript du scraper (par exemple pour le scraper +- `url` : L'URL du fichier JavaScript du scraper (par exemple pour le scraper [_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) : `"https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js"`). -- `"options"` : un objet JSON contenant les options du scraper (qui sont - spécifiques pour chaque scraper). +- `options` : Les options du scraper (qui sont spécifiques pour chaque scraper). Dans cet exemple, deux scrapers sont définis pour récupérer les dernières vidéos des chaines YouTube [ARTE Cinema](https://www.youtube.com/@artecinemafr) et [ARTE Séries](https://www.youtube.com/@arteseries). -```HTML -<script type="application/json"> - { - "module": { "...": "..." }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UClo03hULFynpoX3w1Jv7fhw", - } - }, { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCzaf-8cAEiXfynukcmV5MXw" - } - }] - } +```html +<script type="application/yaml"> + module: + url: # ... + options: # ... + scrapers + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://www.youtube.com/feeds/videos.xml?channel_id=UClo03hULFynpoX3w1Jv7fhw" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCzaf-8cAEiXfynukcmV5MXw" </script> ``` diff --git a/src/engine/script.js b/src/engine/script.js index 719f0f1..80ea278 100644 --- a/src/engine/script.js +++ b/src/engine/script.js @@ -4,7 +4,8 @@ * @author Sébastien Règne */ -import JFather from "https://esm.sh/jfather@0"; +import JFather from "https://esm.sh/jfather@0.3.0"; +import YAML from "https://esm.sh/yaml@2.4.2"; const hashCode = function (text) { return Math.abs( @@ -40,7 +41,7 @@ const loadScrapers = function (scrapers) { * @returns {Promise<Object>} Le module avec ses éventuels scrapers. */ const loadWidget = async function (widget) { - const scrapers = await loadScrapers(widget.scrapers ?? []); + const scrapers = await loadScrapers(widget.module.scrapers ?? []); // eslint-disable-next-line no-unsanitized/method const { default: Module } = await import(widget.module.url); @@ -56,10 +57,24 @@ const loadWidget = async function (widget) { const liven = async function (script) { try { - const config = - "" === script.src - ? await JFather.parse(script.text) - : await JFather.load(script.src); + let config; + if ("application/yaml" === script.type) { + config = + "" === script.src + ? await JFather.extend(YAML.parse(script.text)) + : await JFather.load(script.src, { + request: async (url) => { + const response = await fetch(url); + const yaml = await response.text(); + return YAML.parse(yaml); + }, + }); + } else { + config = + "" === script.src + ? await JFather.parse(script.text) + : await JFather.load(script.src); + } const widget = await loadWidget(config); widget.classList.add("widget"); script.after(widget); @@ -77,6 +92,9 @@ document.head.append(link); // Activer les widgets. Array.from( - document.querySelectorAll('body script[type="application/json"]'), + document.querySelectorAll( + 'body script[type="application/yaml"],' + + ' body script[type="application/json"]', + ), liven, ); diff --git a/src/module/audio/README.md b/src/module/audio/README.md index 4eb74c0..191aaf1 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -7,8 +7,8 @@ Ce module permet d'écouter un flux audio. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -42,7 +42,7 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> @@ -69,7 +69,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"audio"</code></td> + <td><code>audio</code></td> <td><code>string</code></td> <td> <p> @@ -82,7 +82,7 @@ suivantes : </td> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -97,7 +97,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -113,7 +113,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -129,7 +129,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -142,7 +142,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -156,7 +156,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -174,21 +174,17 @@ suivantes : Ce widget affiche un cadre pour écouter la radio [Fip](https://www.fip.fr/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/audio/audio.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "audio": "https://direct.radiofrance.fr/live/fip-hifi.aac", - "color": "#e2007a", - "link": "https://www.radiofrance.fr/fip", - "title": "Fip" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/audio/audio.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - audio: "https://direct.radiofrance.fr/live/fip-hifi.aac" + color: "#e2007a" + link: "https://www.radiofrance.fr/fip" + title: "Fip" +</script> ``` diff --git a/src/module/clock/README.md b/src/module/clock/README.md index b446f8b..cff071d 100644 --- a/src/module/clock/README.md +++ b/src/module/clock/README.md @@ -7,8 +7,8 @@ Ce module affiche une horloge. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -42,7 +42,7 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> @@ -69,7 +69,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -84,7 +84,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -100,7 +100,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -123,18 +123,14 @@ suivantes : Ce widget affiche une horloge avec l'heure courante. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/clock/clock.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "color": "#795548" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/clock/clock.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - color: "#795548" +</script> ``` diff --git a/src/module/examples/minimal/README.md b/src/module/examples/minimal/README.md index 8569c9e..108a0aa 100644 --- a/src/module/examples/minimal/README.md +++ b/src/module/examples/minimal/README.md @@ -19,10 +19,9 @@ Ce module n'utilise pas de scraper. Ce widget ne fait rien et n'affiche rien. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/minimal/minimal.js" - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/minimal/minimal.js" +</script> ``` diff --git a/src/module/examples/preact/helloworld/README.md b/src/module/examples/preact/helloworld/README.md index 94a464f..84cc81e 100644 --- a/src/module/examples/preact/helloworld/README.md +++ b/src/module/examples/preact/helloworld/README.md @@ -19,10 +19,9 @@ Ce module n'utilise pas de scraper. Ce widget affiche un hello world développé avec Preact. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/preact/helloworld/helloworld.js" - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/preact/helloworld/helloworld.js" +</script> ``` diff --git a/src/module/examples/react/tictactoe/README.md b/src/module/examples/react/tictactoe/README.md index aadadf7..66fa4a4 100644 --- a/src/module/examples/react/tictactoe/README.md +++ b/src/module/examples/react/tictactoe/README.md @@ -19,10 +19,9 @@ Ce module n'utilise pas de scraper. Ce widget affiche un morpion dévéloppé avec React. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/react/tictactoe/tictactoe.js" - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/examples/react/tictactoe/tictactoe.js" +</script> ``` diff --git a/src/module/icon/README.md b/src/module/icon/README.md index b7bc2d7..f48c4ac 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -7,8 +7,8 @@ Ce module affiche une icône dans un lien. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -42,7 +42,7 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> @@ -69,7 +69,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -84,7 +84,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -100,7 +100,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -116,7 +116,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -129,7 +129,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -143,7 +143,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -161,21 +161,17 @@ suivantes : Ce widget affiche un bouton qui redirige vers [GitHub](https://github.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "color": "black", - "link": "https://github.com/", - "target": "_top", - "title": "GitHub" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - color: "black" + link: "https://github.com/" + target: "_top" + title: "GitHub" +</script> ``` diff --git a/src/module/iframe/README.md b/src/module/iframe/README.md index 174b16e..0fb6257 100644 --- a/src/module/iframe/README.md +++ b/src/module/iframe/README.md @@ -7,8 +7,8 @@ Ce module affiche un `iframe`. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -42,12 +42,12 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> <tr> - <td><code>"height"</code></td> + <td><code>height</code></td> <td><code>number</code></td> <td> <p> @@ -82,7 +82,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -98,7 +98,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -116,18 +116,14 @@ suivantes : Ce widget affiche la [Lofi Girl](https://youtu.be/jfKfPfyJRdk) de YouTube dans un `iframe`. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/iframe/iframe.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "link": "https://www.youtube-nocookie.com/embed/jfKfPfyJRdk" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/iframe/iframe.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - link: "https://www.youtube-nocookie.com/embed/jfKfPfyJRdk" +</script> ``` diff --git a/src/module/image/README.md b/src/module/image/README.md index 3ad1c51..350f04e 100644 --- a/src/module/image/README.md +++ b/src/module/image/README.md @@ -7,8 +7,8 @@ Ce module affiche des images. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -37,7 +37,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -47,12 +47,12 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> <tr> - <td><code>"max"</code></td> + <td><code>max</code></td> <td><code>number</code></td> <td> <p> @@ -86,7 +86,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -102,7 +102,7 @@ suivantes : </td> </tr> <tr> - <td><code>"guid"</code></td> + <td><code>guid</code></td> <td><code>string</code></td> <td> <p> @@ -117,7 +117,7 @@ suivantes : </td> </tr> <tr> - <td><code>"img"</code></td> + <td><code>img</code></td> <td><code>string</code></td> <td> <p> @@ -129,7 +129,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -142,7 +142,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -156,7 +156,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -176,17 +176,14 @@ Ce widget affiche les `3` dernières images du site [CommitStrip](https://www.commitstrip.com/fr/) avec une mise à jour à [minuit](https://crontab.guru/#@daily). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js", - "options": { - "cron": "@daily", - "max": 3 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/image/commitstrip/commitstrip.js" - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js" + options: + cron: "@daily" + max: 3 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/image/commitstrip/commitstrip.js" +</script> ``` diff --git a/src/module/list/README.md b/src/module/list/README.md index cb589e3..378af74 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -8,8 +8,8 @@ une icône. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -18,7 +18,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -33,7 +33,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -53,7 +53,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -63,12 +63,12 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -84,7 +84,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"max"</code></td> + <td><code>max</code></td> <td><code>number</code></td> <td> <p> @@ -118,7 +118,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -134,7 +134,7 @@ suivantes : </td> </tr> <tr> - <td><code>"desc"</code></td> + <td><code>desc</code></td> <td><code>string</code></td> <td> <p> @@ -147,7 +147,7 @@ suivantes : </td> </tr> <tr> - <td><code>"guid"</code></td> + <td><code>guid</code></td> <td><code>string</code></td> <td> <p> @@ -162,7 +162,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -175,7 +175,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -188,7 +188,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -202,7 +202,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -220,21 +220,17 @@ suivantes : Ce widget affiche les cinq dernières actualités du site [LinuxFr.org](https://linuxfr.org/) avec une mise à jour toutes les dix minutes. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#ffc107", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://linuxfr.org/news.atom" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color": "#ffc107" + cron": "*/10 * * * *" + max": 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://linuxfr.org/news.atom" +</script> ``` diff --git a/src/module/notepad/README.md b/src/module/notepad/README.md index 35e9ad5..cdb7828 100644 --- a/src/module/notepad/README.md +++ b/src/module/notepad/README.md @@ -11,8 +11,8 @@ Ce module affiche un bloc-notes. > compatibles avec ce module. Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -21,7 +21,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -36,7 +36,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -52,7 +52,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"desc"</code></td> + <td><code>desc</code></td> <td><code>string</code></td> <td> <p> @@ -65,7 +65,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"guid"</code></td> + <td><code>guid</code></td> <td><code>string</code></td> <td> <p> @@ -80,7 +80,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -101,15 +101,13 @@ Ce module n'utilise pas de scraper. Ce widget affiche un bloc-notes pour une liste de courses. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/notepad/notepad.js", - "options": { - "color": "#607d8b", - "desc": "Liste de courses", - "title": "..." - } - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/notepad/notepad.js" + options: + color: "#607d8b" + desc: "Liste de courses" + title: "..." +</script> ``` diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 267358b..1ec62c2 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -7,8 +7,8 @@ Ce module affiche une liste des dernières émissions audio d'un podcast. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -52,7 +52,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -62,12 +62,12 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -84,7 +84,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"max"</code></td> + <td><code>max</code></td> <td><code>number</code></td> <td> <p> @@ -118,7 +118,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"audio"</code></td> + <td><code>audio</code></td> <td><code>number</code></td> <td> <p> @@ -130,7 +130,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -146,7 +146,7 @@ suivantes : </td> </tr> <tr> - <td><code>"desc"</code></td> + <td><code>desc</code></td> <td><code>string</code></td> <td> <p> @@ -159,7 +159,7 @@ suivantes : </td> </tr> <tr> - <td><code>"guid"</code></td> + <td><code>guid</code></td> <td><code>string</code></td> <td> <p> @@ -174,7 +174,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -187,7 +187,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -200,7 +200,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -214,7 +214,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -232,21 +232,17 @@ suivantes : Ce widget affiche les deux derniers épisodes des [Cast Codeurs Podcast](https://lescastcodeurs.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/podcast/podcast.js", - "options": { - "color": "black", - "cron": "@daily", - "max": 2 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://lescastcodeurs.com/podcast-rss" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/podcast/podcast.js" + options: + color: "black" + cron: "@daily" + max: 2 + scrapers: + - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://lescastcodeurs.com/podcast-rss" +</script> ``` diff --git a/src/module/search/README.md b/src/module/search/README.md index bce6b16..d632197 100644 --- a/src/module/search/README.md +++ b/src/module/search/README.md @@ -32,21 +32,17 @@ Les scrapers associés à ce module doivent définir trois méthodes : Ce widget fourni un champ pour faire une recherche avec [DuckDuckGo](https://duckduckgo.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://duckduckgo.com/?q={searchTerms}", - "suggestions": "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list", - "complements": { - "title": "DuckDuckGo", - "color": "#f44336" - }, - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js" + options: + url: "https://duckduckgo.com/?q={searchTerms}" + suggestions: "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list" + complements: + title: "DuckDuckGo" + color: "#f44336" +</script> ``` diff --git a/src/module/single/README.md b/src/module/single/README.md index 86b37e4..4a49dc3 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -7,8 +7,8 @@ Ce module affiche un lien. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -37,7 +37,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -47,7 +47,7 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> @@ -73,7 +73,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -88,7 +88,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -104,7 +104,7 @@ suivantes : </td> </tr> <tr> - <td><code>"desc"</code></td> + <td><code>desc</code></td> <td><code>string</code></td> <td> <p> @@ -117,7 +117,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -130,7 +130,7 @@ suivantes : </td> </tr> <tr> - <td><code>"link"</code></td> + <td><code>link</code></td> <td><code>string</code></td> <td> <p> @@ -143,7 +143,7 @@ suivantes : </td> </tr> <tr> - <td><code>"target"</code></td> + <td><code>target</code></td> <td><code>string</code></td> <td> <p> @@ -157,7 +157,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code></td> <td> <p> @@ -175,16 +175,13 @@ suivantes : Ce widget affiche un lien vers un article au hasard de [Wikipédia](https://fr.wikipedia.org/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js", - "options": { - "cron": "*/5 * * * *" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + options: + cron: "*/5 * * * *" + scrapers: + - url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" +</script> ``` diff --git a/src/module/text/README.md b/src/module/text/README.md index 807df97..1f795c5 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -8,8 +8,8 @@ personnalisable. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -18,7 +18,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"cron"</code></td> + <td><code>cron</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -33,7 +33,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"empty"</code></td> + <td><code>empty</code></td> <td><code>object</code></td> <td> <p> @@ -43,7 +43,7 @@ propriétés suivantes : laissé vide. </p> <p> - Exemple : <code>{ "title": "(aucun élément)" }</code>. + Exemple : <code>title: "(aucun élément)"</code>. </p> </td> </tr> @@ -69,7 +69,7 @@ suivantes : <th>Description</th> </tr> <tr> - <td><code>"align"</code></td> + <td><code>align</code></td> <td><code>string</code></td> <td> <p> @@ -82,7 +82,7 @@ suivantes : </td> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -97,7 +97,7 @@ suivantes : </td> </tr> <tr> - <td><code>"date"</code></td> + <td><code>date</code></td> <td><code>number</code></td> <td> <p> @@ -113,7 +113,7 @@ suivantes : </td> </tr> <tr> - <td><code>"desc"</code></td> + <td><code>desc</code></td> <td><code>string</code></td> <td> <p> @@ -126,7 +126,7 @@ suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -139,7 +139,7 @@ suivantes : </td> </tr> <tr> - <td><code>"title"</code></td> + <td><code>title</code></td> <td><code>string</code><br /><code>string[]</code></td> <td> <p> @@ -157,18 +157,14 @@ suivantes : Ce widget affiche le texte _Carpe diem_. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "title": "Carpe diem" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" + scrapers: + - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - title: "Carpe diem" +</script> ``` diff --git a/src/module/tools/contrast/README.md b/src/module/tools/contrast/README.md index f860267..5c2227c 100644 --- a/src/module/tools/contrast/README.md +++ b/src/module/tools/contrast/README.md @@ -18,10 +18,9 @@ Ce module n'utilise pas de scraper. Ce widget affiche le module. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/conntrast/contrast.js" - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/conntrast/contrast.js" +</script> ``` diff --git a/src/module/tools/findrss/README.md b/src/module/tools/findrss/README.md index 89e0e8e..558c092 100644 --- a/src/module/tools/findrss/README.md +++ b/src/module/tools/findrss/README.md @@ -7,8 +7,8 @@ Ce module cherche les liens RSS / Atom dans une page Web. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -17,7 +17,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"color"</code></td> + <td><code>color</code></td> <td><code>string</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"icon"</code></td> + <td><code>icon</code></td> <td><code>string</code></td> <td> <p> @@ -48,7 +48,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"max"</code></td> + <td><code>max</code></td> <td><code>number</code></td> <td> <p> @@ -71,10 +71,9 @@ Ce module n'utilise pas de scraper. Ce widget affiche un bloc avec un champ. En renseignant une URL dans ce champ, la liste des flux RSS est affichée en dessous. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/findrss/findrss.js" - } -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/tools/findrss/findrss.js" +</script> ``` diff --git a/src/scraper/examples/days/README.md b/src/scraper/examples/days/README.md index a8a5dae..cb807aa 100644 --- a/src/scraper/examples/days/README.md +++ b/src/scraper/examples/days/README.md @@ -14,8 +14,8 @@ Il peut être utilisé avec les modules : ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -24,7 +24,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"lang"</code></td> + <td><code>lang</code></td> <td><code>string</code></td> <td> <p> @@ -45,34 +45,28 @@ propriétés suivantes : Ce widget affiche le nom du lendemain en français. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" +</script> ``` Ce widget affiche les noms des trois prochains jours (sauf le dimanche) en anglais. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "max": 3 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", - "options": { - "lang": "en", - "filter": "title != 'Sunday'" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + max: 3 + scrapers: + - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" + options: + lang: "en", + filter: "title != 'Sunday'" +</script> ``` diff --git a/src/scraper/examples/days/days.js b/src/scraper/examples/days/days.js index 5f95593..bc1c6c8 100644 --- a/src/scraper/examples/days/days.js +++ b/src/scraper/examples/days/days.js @@ -109,32 +109,34 @@ export default chain(FilterScraper, ComplementsScraper, DaysScraper, { // Grâce à la chaine de scrapers, la configuration du widget est simplifiée. Par // exemple, la configuration suivante : // -// ```JSON -// { -// "module": "...", -// "scrapers": [{ -// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/filter/filter.js", -// "options": { "filter": "..." }, -// "scrapers": [{ -// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/complements/complements.js", -// "options": { "complements": "..." }, -// "scrapers": [{ -// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", -// "options": { "lang": "..." } -// }] -// }] -// }] -// } +// ```yaml +// module: +// url: # ... +// options: # ... +// scrapers: +// - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/filter/filter.js" +// options: +// filter: # ... +// scrapers: +// - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/complements/complements.js" +// options: +// complements: # ... +// scrapers: +// - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" +// options: +// lang: # ... // ``` // // peut être simplifiée en : // -// ```JSON -// { -// "module": "...", -// "scrapers": [{ -// "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js", -// "options": { "filter": "...", "complements": "...", "lang": "..." } -// }] -// } +// ```yaml +// module: +// url: # ... +// options: # ... +// scrapers: +// - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" +// options: +// filter: # ... +// complements: # ... +// lang: # ... // ``` diff --git a/src/scraper/examples/helloworld/README.md b/src/scraper/examples/helloworld/README.md index bc86ffb..f1f3f5d 100644 --- a/src/scraper/examples/helloworld/README.md +++ b/src/scraper/examples/helloworld/README.md @@ -15,8 +15,8 @@ Il peut être utilisé avec les modules : ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la -propriété suivante : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -25,7 +25,7 @@ propriété suivante : <th>Description</th> </tr> <tr> - <td><code>"who"</code></td> + <td><code>who</code></td> <td><code>string</code></td> <td> <p> @@ -42,29 +42,24 @@ propriété suivante : Ce widget affiche le texte `"Hello world!"`. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js" - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js" +</script> ``` Ce widget affiche le texte `"Hello Doctor!"`. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js", - "options": { - "who": "Doctor" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/single/single.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/helloworld/helloworld.js" + options: + who: "Doctor" +</script> ``` diff --git a/src/scraper/examples/jsonplaceholder/README.md b/src/scraper/examples/jsonplaceholder/README.md index 01b170a..7966fee 100644 --- a/src/scraper/examples/jsonplaceholder/README.md +++ b/src/scraper/examples/jsonplaceholder/README.md @@ -20,8 +20,8 @@ Il peut être utilisé avec les modules : ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -30,7 +30,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"album"</code></td> + <td><code>album</code></td> <td><code>number</code></td> <td> <p> @@ -43,7 +43,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -58,7 +58,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"filter"</code></td> + <td><code>filter</code></td> <td><code>string</code></td> <td> <p> @@ -77,19 +77,15 @@ propriétés suivantes : Ce widget affiche 5 images de l'album ayant l'identifiant `13`. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js", - "options": { - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/jsonplaceholder/jsonplaceholder.js", - "options": { - "album": 13 - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/image/image.js" + options: + max: 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/jsonplaceholder/jsonplaceholder.js" + options: + album: 13 +</script> ``` diff --git a/src/scraper/icon/ping/README.md b/src/scraper/icon/ping/README.md index 8a1762f..abe9e16 100644 --- a/src/scraper/icon/ping/README.md +++ b/src/scraper/icon/ping/README.md @@ -10,8 +10,8 @@ Il peut être utilisé avec le module ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -20,7 +20,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"url"</code></td> + <td><code>url</code></td> <td><code>string</code></td> <td> <p> @@ -32,7 +32,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"colors"</code></td> + <td><code>colors</code></td> <td><code>object</code></td> <td> <p> @@ -56,7 +56,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -71,7 +71,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"filter"</code></td> + <td><code>filter</code></td> <td><code>string</code></td> <td> <p> @@ -90,19 +90,15 @@ propriétés suivantes : Ce widget teste le site _localhost_ toutes les heures. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js", - "options": { - "cron": "@hourly" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/icon/ping/ping.js", - "options": { - "url": "http://localhost" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/icon/icon.js" + options: + cron: "@hourly" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/icon/ping/ping.js" + options: + url: "http://localhost" +</script> ``` diff --git a/src/scraper/list/jsonfeed/README.md b/src/scraper/list/jsonfeed/README.md index c73b7cf..c7524b6 100644 --- a/src/scraper/list/jsonfeed/README.md +++ b/src/scraper/list/jsonfeed/README.md @@ -15,8 +15,8 @@ Il peut être utilisé avec les modules : ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -25,7 +25,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"url"</code></td> + <td><code>url</code></td> <td><code>string</code></td> <td> <p> @@ -37,7 +37,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -52,7 +52,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"filter"</code></td> + <td><code>filter</code></td> <td><code>string</code></td> <td> <p> @@ -72,21 +72,17 @@ propriétés suivantes : Ce widget affiche les cinq dernières actualités scientifiques du site [Refind](https://refind.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#2196f3", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/jsonfeed/jsonfeed.js", - "options": { - "url": "https://refind.com/science.json" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color: "#2196f3" + cron: "*/10 * * * *" + max: 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/jsonfeed/jsonfeed.js" + options: + url: "https://refind.com/science.json" +</script> ``` diff --git a/src/scraper/list/rss/README.md b/src/scraper/list/rss/README.md index 5eef21e..cbe82f8 100644 --- a/src/scraper/list/rss/README.md +++ b/src/scraper/list/rss/README.md @@ -18,8 +18,8 @@ Il peut être utilisé avec les modules : ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -28,7 +28,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"url"</code></td> + <td><code>url</code></td> <td><code>string</code></td> <td> <p> @@ -40,7 +40,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -55,7 +55,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"filter"</code></td> + <td><code>filter</code></td> <td><code>string</code></td> <td> <p> @@ -75,20 +75,16 @@ propriétés suivantes : Ce widget affiche les cinq dernières actualités du site [Le Monde.fr](https://www.lemonde.fr/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.lemonde.fr/rss/une.xml" - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + cron: "*/10 * * * *" + max: 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://www.lemonde.fr/rss/une.xml" +</script> ``` diff --git a/src/scraper/search/opensearch/README.md b/src/scraper/search/opensearch/README.md index 9f4b120..667d84c 100644 --- a/src/scraper/search/opensearch/README.md +++ b/src/scraper/search/opensearch/README.md @@ -12,8 +12,8 @@ Il peut être utilisé avec le module ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec les -propriétés suivantes : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -22,7 +22,7 @@ propriétés suivantes : <th>Description</th> </tr> <tr> - <td><code>"url"</code></td> + <td><code>url</code></td> <td><code>string</code></td> <td> <p> @@ -35,7 +35,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"suggestions"</code></td> + <td><code>suggestions</code></td> <td><code>string</code></td> <td> <p> @@ -50,7 +50,7 @@ propriétés suivantes : </td> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -69,31 +69,24 @@ propriétés suivantes : Ce widget fourni un champ pour faire une recherche avec [Google](https://www.google.com/) ou [Bing](https://www.bing.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://www.google.com/search?q={searchTerms}", - "suggestions": "https://www.google.com/complete/search?client=firefox&q={searchTerms}", - "complements": { - "title": "Google", - "color": "#2196f3" - } - } - }, { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js", - "options": { - "url": "https://www.bing.com/search?q={searchTerms}", - "suggestions": "https://www.bing.com/osjson.aspx?query={searchTerms}", - "complements": { - "title": "Bing", - "color": "#ffc107" - } - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/search/search.js" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js" + options: + url: "https://www.google.com/search?q={searchTerms}" + suggestions: "https://www.google.com/complete/search?client=firefox&q={searchTerms}" + complements: + title: "Google" + color: "#2196f3" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/search/opensearch/opensearch.js" + options: + url: "https://www.bing.com/search?q={searchTerms}" + suggestions: "https://www.bing.com/osjson.aspx?query={searchTerms}" + complements: + title: "Bing" + color: "#ffc107" +</script> ``` diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md index e9a24fb..e606432 100644 --- a/src/scraper/tools/complements/README.md +++ b/src/scraper/tools/complements/README.md @@ -6,22 +6,24 @@ Ce scraper ajoute des propriétés dans les résultats d'un autre scraper. Il es rare d'utiliser ce scraper directement dans un widget. Il peut être utilisé pour ajouter la fonctionnalité dans un autre scraper : -```JavaScript +```javascript import chain from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/utils/scraper/chain.js"; import ComplementsScraper from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/complements/complements.js"; -const MyAwesomeScraper = class { /* ... */ }; +const MyAwesomeScraper = class { + /* ... */ +}; export default chain(ComplementsScraper, MyAwesomeScraper, { - dispatch: ({ complements, ...others }) => [{ complements }, others], + dispatch: ({ complements, ...others }) => [{ complements }, others], }); ``` ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la -propriété suivante : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -30,7 +32,7 @@ propriété suivante : <th>Description</th> </tr> <tr> - <td><code>"complements"</code></td> + <td><code>complements</code></td> <td><code>object</code></td> <td> <p> @@ -60,22 +62,19 @@ Ce widget affiche les dernières vidéos de la chaine YouTube de élément. L'option `"complements"` est passée au scraper _list/rss_ car ce scraper utilise _tools/complements_. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#757575", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?user=arte", - "complements": { "icon": "https://example.com/fip.svg" }, - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color: "#757575" + cron: "*/10 * * * *" + max: 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://www.youtube.com/feeds/videos.xml?user=arte" + complements: + icon: "https://example.com/fip.svg" +</script> ``` diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index f4d699c..7426117 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -6,22 +6,24 @@ Ce scraper filtre les résultats d'un autre scraper. Il est rare d'utiliser ce scraper directement dans un widget. Il peut être utilisé pour ajouter la fonctionnalité dans un autre scraper : -```JavaScript +```javascript import chain from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/utils/scraper/chain.js"; import FilterScraper from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/filter/filter.js"; -const MyAwesomeScraper = class { /* ... */ }; +const MyAwesomeScraper = class { + /* ... */ +}; export default chain(FilterScraper, MyAwesomeScraper, { - dispatch: ({ filter, ...others }) => [{ filter }, others], + dispatch: ({ filter, ...others }) => [{ filter }, others], }); ``` ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") avec la -propriété suivante : +[YAML](https://yaml.org/ "YAML Ain't Markup Language") avec les propriétés +suivantes : <table> <tr> @@ -30,7 +32,7 @@ propriété suivante : <th>Description</th> </tr> <tr> - <td><code>"filter"</code></td> + <td><code>filter</code></td> <td><code>string</code></td> <td> <p> @@ -87,22 +89,18 @@ Ce widget affiche les dernières reportages de la chaine YouTube de [Arte](https://www.youtube.com/@arte). L'option `"filter"` est passée au scraper _list/rss_ car ce scraper utilise _tools/filter_. -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#757575", - "cron": "*/10 * * * *", - "max": 5 - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js", - "options": { - "url": "https://www.youtube.com/feeds/videos.xml?user=arte", - "filter": "title $= 'ARTE Reportage'", - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color: "#757575" + cron: "*/10 * * * *" + max: 5 + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + options: + url: "https://www.youtube.com/feeds/videos.xml?user=arte" + filter: "title $= 'ARTE Reportage'" +</script> ``` diff --git a/src/scraper/tools/repeater/README.md b/src/scraper/tools/repeater/README.md index 3893520..aa0b4e3 100644 --- a/src/scraper/tools/repeater/README.md +++ b/src/scraper/tools/repeater/README.md @@ -10,8 +10,8 @@ Il peut être utilisé avec tous les modules. ## Options Les options sont dans un objet -[JSON](https://www.json.org/json-fr.html "JavaScript Object Notation") dont les -clés correspondent aux méthodes simulées et les valeurs aux données retournées. +[YAML](https://yaml.org/ "YAML Ain't Markup Language") dont les clés +correspondent aux méthodes simulées et les valeurs aux données retournées. ## Exemple @@ -19,25 +19,19 @@ Ce widget affiche une liste avec deux liens allant vers [Facebook](https://www.facebook.com/) et [Instagram](https://www.instagram.com/). -```JSON -{ - "module": { - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js", - "options": { - "color": "#f0a30a" - } - }, - "scrapers": [{ - "url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js", - "options": { - "extract": [{ - "title": "Facebook", - "link": "https://www.facebook.com/" - }, { - "title": "Instagram", - "link": "https://www.instagram.com/" - }] - } - }] -} +```html +<script type="application/yaml"> + module: + url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" + options: + color: "#f0a30a" + scrapers: + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + options: + extract: + - title: "Facebook" + link: "https://www.facebook.com/" + - title: "Instagram" + link: "https://www.instagram.com/" +</script> ``` diff --git a/template/dashboard/3-columns.html b/template/dashboard/3-columns.html index 9b6d7b3..86a2ff5 100644 --- a/template/dashboard/3-columns.html +++ b/template/dashboard/3-columns.html @@ -28,11 +28,13 @@ <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la première colonne. Voici un exemple de structure d'un widget : - <script type="application/json"> - { - "module": { "...": "..." }, - "scrapers": [{ "...": "..." }, { "...": "..." }] - } + <script type="application/yaml"> + module: + url: # ... + options: # ... + scrapers: + - url: # ... + options: # ... </script> --> </div> diff --git a/template/dashboard/4-columns.html b/template/dashboard/4-columns.html index bf75f5b..237ec04 100644 --- a/template/dashboard/4-columns.html +++ b/template/dashboard/4-columns.html @@ -28,11 +28,13 @@ <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la première colonne. Voici un exemple de structure d'un widget : - <script type="application/json"> - { - "module": { "...": "..." }, - "scrapers": [{ "...": "..." }, { "...": "..." }] - } + <script type="application/yaml"> + module: + url: # ... + options: # ... + scrapers: + - url: # ... + options: # ... </script> --> </div> From b1cec7e8bd92fb3f27e2f6689076e7dd4c1fc662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 29 May 2024 10:33:01 +0200 Subject: [PATCH 22/38] feat: Fournir une extension pour Chromium. --- .metalint/addons-linter_mv3.config.js | 11 + .metalint/metalint.config.js | 6 +- .script/sync.js | 12 - package.json | 11 +- src/extension/background/migrate.js | 22 - src/extension/chromium/background/migrate.js | 27 + src/extension/chromium/background/script.js | 80 ++ src/extension/{ => chromium}/img/icon.svg | 0 src/extension/{ => chromium}/img/icon128.png | Bin src/extension/{ => chromium}/img/icon16.png | Bin src/extension/{ => chromium}/img/icon24.png | Bin src/extension/{ => chromium}/img/icon32.png | Bin src/extension/{ => chromium}/img/icon48.png | Bin src/extension/{ => chromium}/img/icon64.png | Bin src/extension/{ => chromium}/img/icon96.png | Bin src/extension/chromium/manifest.json | 43 + src/extension/chromium/polyfill/browser.js | 12 + .../{ => chromium}/popup/img/remove.svg | 0 src/extension/{ => chromium}/popup/index.html | 0 src/extension/{ => chromium}/popup/script.js | 0 src/extension/{ => chromium}/popup/style.css | 0 src/extension/firefox/background/migrate.js | 27 + .../{ => firefox}/background/page.html | 2 - .../{ => firefox}/background/script.js | 7 + src/extension/firefox/img/icon.svg | 26 + src/extension/firefox/img/icon128.png | Bin 0 -> 3022 bytes src/extension/firefox/img/icon16.png | Bin 0 -> 479 bytes src/extension/firefox/img/icon24.png | Bin 0 -> 719 bytes src/extension/firefox/img/icon32.png | Bin 0 -> 775 bytes src/extension/firefox/img/icon48.png | Bin 0 -> 1180 bytes src/extension/firefox/img/icon64.png | Bin 0 -> 1451 bytes src/extension/firefox/img/icon96.png | Bin 0 -> 2270 bytes src/extension/{ => firefox}/manifest.json | 4 +- src/extension/firefox/polyfill/browser.js | 12 + src/extension/firefox/popup/img/remove.svg | 9 + src/extension/firefox/popup/index.html | 28 + src/extension/firefox/popup/script.js | 107 ++ src/extension/firefox/popup/style.css | 67 + src/extension/polyfill/browser.js | 7 - .../polyfill/lib/browser-polyfill.js | 1269 ----------------- 40 files changed, 467 insertions(+), 1322 deletions(-) create mode 100644 .metalint/addons-linter_mv3.config.js delete mode 100644 .script/sync.js delete mode 100644 src/extension/background/migrate.js create mode 100644 src/extension/chromium/background/migrate.js create mode 100644 src/extension/chromium/background/script.js rename src/extension/{ => chromium}/img/icon.svg (100%) rename src/extension/{ => chromium}/img/icon128.png (100%) rename src/extension/{ => chromium}/img/icon16.png (100%) rename src/extension/{ => chromium}/img/icon24.png (100%) rename src/extension/{ => chromium}/img/icon32.png (100%) rename src/extension/{ => chromium}/img/icon48.png (100%) rename src/extension/{ => chromium}/img/icon64.png (100%) rename src/extension/{ => chromium}/img/icon96.png (100%) create mode 100644 src/extension/chromium/manifest.json create mode 100644 src/extension/chromium/polyfill/browser.js rename src/extension/{ => chromium}/popup/img/remove.svg (100%) rename src/extension/{ => chromium}/popup/index.html (100%) rename src/extension/{ => chromium}/popup/script.js (100%) rename src/extension/{ => chromium}/popup/style.css (100%) create mode 100644 src/extension/firefox/background/migrate.js rename src/extension/{ => firefox}/background/page.html (59%) rename src/extension/{ => firefox}/background/script.js (89%) create mode 100644 src/extension/firefox/img/icon.svg create mode 100644 src/extension/firefox/img/icon128.png create mode 100644 src/extension/firefox/img/icon16.png create mode 100644 src/extension/firefox/img/icon24.png create mode 100644 src/extension/firefox/img/icon32.png create mode 100644 src/extension/firefox/img/icon48.png create mode 100644 src/extension/firefox/img/icon64.png create mode 100644 src/extension/firefox/img/icon96.png rename src/extension/{ => firefox}/manifest.json (92%) create mode 100644 src/extension/firefox/polyfill/browser.js create mode 100644 src/extension/firefox/popup/img/remove.svg create mode 100644 src/extension/firefox/popup/index.html create mode 100644 src/extension/firefox/popup/script.js create mode 100644 src/extension/firefox/popup/style.css delete mode 100644 src/extension/polyfill/browser.js delete mode 100644 src/extension/polyfill/lib/browser-polyfill.js diff --git a/.metalint/addons-linter_mv3.config.js b/.metalint/addons-linter_mv3.config.js new file mode 100644 index 0000000..fca28cf --- /dev/null +++ b/.metalint/addons-linter_mv3.config.js @@ -0,0 +1,11 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +export default { + // Autoriser la propriété "service_worker" pour le "background". + // https://github.com/mozilla/addons-linter/issues/5152 + enableBackgroundServiceWorker: true, +}; diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 3185c54..97e1f69 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -26,8 +26,12 @@ export default { ], checkers: [ { - patterns: ["/build/*.zip", "/src/extension/"], + patterns: ["/build/*.zip", "/src/extension/*/"], linters: "addons-linter", + overrides: { + patterns: "/src/extension/chromium/", + linters: "addons-linter_mv3", + }, }, { patterns: "*.js", diff --git a/.script/sync.js b/.script/sync.js deleted file mode 100644 index 9aa9cbe..0000000 --- a/.script/sync.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -import fs from "node:fs/promises"; - -await fs.cp( - "node_modules/webextension-polyfill/dist/browser-polyfill.js", - "src/extension/polyfill/lib/browser-polyfill.js", -); diff --git a/package.json b/package.json index 4349eaf..b59b739 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "repository": "regseb/gout", "type": "module", "scripts": { - "postinstall": "node .script/sync.js", "lint": "metalint", "lint:fix": "metalint --fix", "lint:types": "tsc --project .tsconfig_lint.json", @@ -32,14 +31,12 @@ "test:coverage": "stryker run", "jsdocs": "typedoc --tsconfig .tsconfig_jsdocs.json", "serve": "http-server -p6007 -c-1 --cors", - "extension:chromium": "web-ext run -t chromium -s src/extension/", - "extension:firefox": "web-ext run -t firefox-desktop -s src/extension/", - "build": "web-ext build -s src/extension/ -a build/ -o", + "extension:chromium": "web-ext run -t chromium -s src/extension/chromium/", + "extension:firefox": "web-ext run -t firefox-desktop -s src/extension/firefox/", + "build:chromium": "web-ext build -s src/extension/chromium/ -a build/chromium/ -o", + "build:firefox": "web-ext build -s src/extension/firefox/ -a build/firefox/ -o", "clean": "node .script/clean.js" }, - "dependencies": { - "webextension-polyfill": "0.10.0" - }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", "@prettier/plugin-xml": "3.3.1", diff --git a/src/extension/background/migrate.js b/src/extension/background/migrate.js deleted file mode 100644 index 7bf7c63..0000000 --- a/src/extension/background/migrate.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -const current = await browser.storage.sync.get(); - -// Vider la configuration pour enlever les éventuelles propriétés obsolètes. -await browser.storage.sync.clear(); - -if ("version" in current) { - await browser.storage.sync.set({ - version: current.version, - dashboards: current.dashboards, - }); -} else { - await browser.storage.sync.set({ - version: 1, - dashboards: [], - }); -} diff --git a/src/extension/chromium/background/migrate.js b/src/extension/chromium/background/migrate.js new file mode 100644 index 0000000..912b1c4 --- /dev/null +++ b/src/extension/chromium/background/migrate.js @@ -0,0 +1,27 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * Migre éventuellement la configuration. + */ +export default async function migrate() { + const current = await browser.storage.sync.get(); + + // Vider la configuration pour enlever les éventuelles propriétés obsolètes. + await browser.storage.sync.clear(); + + if ("version" in current) { + await browser.storage.sync.set({ + version: current.version, + dashboards: current.dashboards, + }); + } else { + await browser.storage.sync.set({ + version: 1, + dashboards: [], + }); + } +} diff --git a/src/extension/chromium/background/script.js b/src/extension/chromium/background/script.js new file mode 100644 index 0000000..6c1e222 --- /dev/null +++ b/src/extension/chromium/background/script.js @@ -0,0 +1,80 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +import "../polyfill/browser.js"; +import migrate from "./migrate.js"; + +const handleBeforeNavigate = async (details) => { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = [ + ...rules.flatMap((r) => r.condition.tabIds), + // Ajouter le nouvel onglet. + details.tabId, + ]; + + // Ajouter la règle de modification des entêtes HTTP pour tous les onglets + // affichant un dashboard. + await browser.declarativeNetRequest.updateSessionRules({ + addRules: [ + { + action: { + type: "modifyHeaders", + responseHeaders: [ + { + header: "Access-Control-Allow-Methods", + value: "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS", + operation: "set", + }, + { + header: "Access-Control-Allow-Credentials", + value: "true", + operation: "set", + }, + { + header: "Access-Control-Expose-Headers", + value: "*", + operation: "set", + }, + { + header: "Access-Control-Allow-Headers", + value: "*", + operation: "set", + }, + { + header: "Access-Control-Allow-Origin", + value: "*", + operation: "set", + }, + ], + }, + condition: { + tabIds, + urlFilter: "|http*", + resourceTypes: ["xmlhttprequest"], + }, + id: 1, + }, + ], + removeRuleIds: [1], + }); +}; + +browser.storage.onChanged.addListener(async () => { + const { dashboards } = await browser.storage.sync.get("dashboards"); + if (undefined === dashboards) { + return; + } + + browser.webNavigation.onBeforeNavigate.removeListener(handleBeforeNavigate); + browser.webNavigation.onBeforeNavigate.addListener(handleBeforeNavigate, { + url: dashboards.map((d) => ({ urlEquals: d.url })), + }); +}); + +browser.runtime.onInstalled.addListener(async () => { + await migrate(); +}); diff --git a/src/extension/img/icon.svg b/src/extension/chromium/img/icon.svg similarity index 100% rename from src/extension/img/icon.svg rename to src/extension/chromium/img/icon.svg diff --git a/src/extension/img/icon128.png b/src/extension/chromium/img/icon128.png similarity index 100% rename from src/extension/img/icon128.png rename to src/extension/chromium/img/icon128.png diff --git a/src/extension/img/icon16.png b/src/extension/chromium/img/icon16.png similarity index 100% rename from src/extension/img/icon16.png rename to src/extension/chromium/img/icon16.png diff --git a/src/extension/img/icon24.png b/src/extension/chromium/img/icon24.png similarity index 100% rename from src/extension/img/icon24.png rename to src/extension/chromium/img/icon24.png diff --git a/src/extension/img/icon32.png b/src/extension/chromium/img/icon32.png similarity index 100% rename from src/extension/img/icon32.png rename to src/extension/chromium/img/icon32.png diff --git a/src/extension/img/icon48.png b/src/extension/chromium/img/icon48.png similarity index 100% rename from src/extension/img/icon48.png rename to src/extension/chromium/img/icon48.png diff --git a/src/extension/img/icon64.png b/src/extension/chromium/img/icon64.png similarity index 100% rename from src/extension/img/icon64.png rename to src/extension/chromium/img/icon64.png diff --git a/src/extension/img/icon96.png b/src/extension/chromium/img/icon96.png similarity index 100% rename from src/extension/img/icon96.png rename to src/extension/chromium/img/icon96.png diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json new file mode 100644 index 0000000..60bb78f --- /dev/null +++ b/src/extension/chromium/manifest.json @@ -0,0 +1,43 @@ +{ + "browser_specific_settings": { + "gecko": { + "id": "gout@regseb.github.io", + "strict_min_version": "126.0" + } + }, + "manifest_version": 3, + "name": "Gout", + "version": "0.11.0", + "action": { + "default_icon": { + "16": "img/icon16.png", + "24": "img/icon24.png", + "32": "img/icon32.png", + "64": "img/icon64.png" + }, + "default_title": "Gout", + "default_popup": "popup/index.html" + }, + "description": "Agrégateur d'Internet (flux RSS et tout le reste).", + "icons": { + "16": "img/icon16.png", + "48": "img/icon48.png", + "96": "img/icon96.png", + "128": "img/icon128.png" + }, + "author": "Sébastien Règne", + "background": { + "service_worker": "background/script.js", + "type": "module" + }, + "homepage_url": "https://github.com/regseb/gout", + "host_permissions": ["<all_urls>"], + "minimum_chrome_version": "125", + "permissions": [ + "activeTab", + "storage", + "webNavigation", + "declarativeNetRequest", + "declarativeNetRequestFeedback" + ] +} diff --git a/src/extension/chromium/polyfill/browser.js b/src/extension/chromium/polyfill/browser.js new file mode 100644 index 0000000..04f0dc9 --- /dev/null +++ b/src/extension/chromium/polyfill/browser.js @@ -0,0 +1,12 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +// Copier la variable "chrome" (qui contient les APIs pour les WebExtensions) +// dans la variable "browser", car Chromium fournit seulement "chrome". +// https://crbug.com/798169 +if (!("browser" in globalThis)) { + globalThis.browser = chrome; +} diff --git a/src/extension/popup/img/remove.svg b/src/extension/chromium/popup/img/remove.svg similarity index 100% rename from src/extension/popup/img/remove.svg rename to src/extension/chromium/popup/img/remove.svg diff --git a/src/extension/popup/index.html b/src/extension/chromium/popup/index.html similarity index 100% rename from src/extension/popup/index.html rename to src/extension/chromium/popup/index.html diff --git a/src/extension/popup/script.js b/src/extension/chromium/popup/script.js similarity index 100% rename from src/extension/popup/script.js rename to src/extension/chromium/popup/script.js diff --git a/src/extension/popup/style.css b/src/extension/chromium/popup/style.css similarity index 100% rename from src/extension/popup/style.css rename to src/extension/chromium/popup/style.css diff --git a/src/extension/firefox/background/migrate.js b/src/extension/firefox/background/migrate.js new file mode 100644 index 0000000..912b1c4 --- /dev/null +++ b/src/extension/firefox/background/migrate.js @@ -0,0 +1,27 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +/** + * Migre éventuellement la configuration. + */ +export default async function migrate() { + const current = await browser.storage.sync.get(); + + // Vider la configuration pour enlever les éventuelles propriétés obsolètes. + await browser.storage.sync.clear(); + + if ("version" in current) { + await browser.storage.sync.set({ + version: current.version, + dashboards: current.dashboards, + }); + } else { + await browser.storage.sync.set({ + version: 1, + dashboards: [], + }); + } +} diff --git a/src/extension/background/page.html b/src/extension/firefox/background/page.html similarity index 59% rename from src/extension/background/page.html rename to src/extension/firefox/background/page.html index ac1c6d6..d640daf 100644 --- a/src/extension/background/page.html +++ b/src/extension/firefox/background/page.html @@ -5,8 +5,6 @@ <title>Gout</title> </head> <body> - <script src="../polyfill/script.js" type="module"></script> - <script src="migrate.js" type="module"></script> <script src="script.js" type="module"></script> </body> </html> diff --git a/src/extension/background/script.js b/src/extension/firefox/background/script.js similarity index 89% rename from src/extension/background/script.js rename to src/extension/firefox/background/script.js index 91db895..72ff63a 100644 --- a/src/extension/background/script.js +++ b/src/extension/firefox/background/script.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +import "../polyfill/browser.js"; +import migrate from "./migrate.js"; + const replace = (headers, replacements) => { const names = new Set(replacements.map((r) => r.name.toLowerCase())); return [ @@ -43,3 +46,7 @@ browser.webRequest.onHeadersReceived.addListener( { urls: ["<all_urls>"] }, ["blocking", "responseHeaders"], ); + +browser.runtime.onInstalled.addListener(async () => { + await migrate(); +}); diff --git a/src/extension/firefox/img/icon.svg b/src/extension/firefox/img/icon.svg new file mode 100644 index 0000000..12ee39d --- /dev/null +++ b/src/extension/firefox/img/icon.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> + <defs> + <mask id="circle"> + <circle cx="16" cy="16" r="16" fill="white" /> + </mask> + </defs> + + <g mask="url(#circle)"> + <rect x="0" y="0" width="32" height="32" /> + <polygon + points="9,11 23,11 16,2" + fill="white" + stroke="white" + stroke-width="4" + /> + <line x1="16" y1="25" x2="16" y2="11" stroke="white" stroke-width="4" /> + <polyline + points="8,32 8,19 24,19 24,32" + fill="none" + stroke="white" + stroke-width="4" + stroke-linejoin="round" + /> + </g> +</svg> diff --git a/src/extension/firefox/img/icon128.png b/src/extension/firefox/img/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..728804abe2fc361135314f34fe3380e4f86b6894 GIT binary patch literal 3022 zcmX9=c{tSj7yiy-9lOa$GWcZ~G4`=DGL{k9m+WGY>|~db5>e8~E@Vp-WnYHT%~r&a zvNa}dmqM1LLGqjK{o{Pj^PJ~>-uJxcoIgGp))!2<IYl@D0N}=(;cS_i_$Sy|neSiv z-fx(RBh2h#Bmn5}{0Y!#TSY3fcrwb^Im#~7FDk}6f&j$C#Go&ST#5AY4kMsLBm9fM z>52dV%oUF_w2v*>C`}G3bvQX>u%h7lfhTM(7pY=G71?*7%DRq9SB0>`<*v)}Kl=3v zIo4HBAS`&S5-53!(;>+1QkDcp#l<X5P}08Igpl)G%cp{%R6Zra^+IcA6~nr*j9dxs zBzFgI>TT|aZzhe)#Jy-G|14S28~^$6khYmXi+qr7Z6#X`50ePPAB3K20tak-{Tevi z7VMg78_3Zl>|CTD4Aw+R%7k=%sWEbG57C46u&%T1ffT{xz_P7Bq$cnvHrI9qR6o@L z?%>j_WQ1>QY^*PIk_d0|#^!0%O4Ey-5mE_z>!^KyI?79?>GTX*Qqf=MIwjrAlBEgS z!P;>uR_NZ%M|E}h=uMi!XB8C{$+599SX=R+7+r=kjrCdGu8Y+*lCk!qA|M|?N0d_p zAwTJFohuJtWEzZ-f6`oSke7RSeu;DlIm6=@UW?36aL8LTctOQP2<reJHa<RH4*gqg z?L(u+SJgX^FY;F}uZEYzWHA|4P|grts0Bfm*x=G?exXFu+cAk>D{iN%!Go-w$zHP@ zUY@yIQePw)3uZBPqHt3T6u3HCT3Ut~jE?Z_+S$J3zLvJOIldI&7<kqwEdjN{Mr|9w z)?cU%-#?SV#m!BSKkDY<<vnj?l&Zkbeqi@%x?;%v91LJ6Z8Z&~oWNp277EB;jTf#R zZa79-EN4>)hFAEi>;hQ7foW}ekKNtfRn*l9wO?5*EG<XwXwX*AL1j{Oh&AG^TQrFV zh)0;xy-6AkeTx^_=D2(5uBetI!aXVn#?Rh_V6^;<k6kl6rCChGBOuOovp(iGrERK} zS$=^7_8bw4r4&<Q?P=~JU~+LWwDVo$)Z*giy5^*CKPj1B$?ycxqO`m&j*8i-6yZL< zQl_^xEcaP=$R|SP{uiTdeQ`|8PQC~S8z{wIs+6vN>9CD}q&{OC%A57MO&|sI&Tz_K z3|O#yX}oR4mgdHLJGglW&L&NDQ|2l`P0IuHpq7tc60vRtdNrCV8Ri3Mx_q4psN9LR z{zIAX8B<iW2v@zNRc`qN4`9#6d*ApD3JcyVSeiK_cXuTvvPuLBlw{OiUd(68`H&uK z{$`OU-2-FGHjewJKndyz7TaC|CkB;H=2s9<*T4&#YhD^bGxTaAX7$ULZPazP6jly# zU`2X7>V^sv8z5jgbb84SpeXe6pj()frX;foM9wn=5{&hnDclP8n!dyor=Ag@i-+}g zz=4DN-_jeMlGO|KYGTzgpt09E^DCX?i29yvcENtxsE3x4AWQ~~>1W5+rN%wPzMjeH zPYU4dFc0Dc$Z4B#NH*(@e}Ru|UMHTFbpm4I%okQM&s_SqqE)9DZ8Lm8m~#B*C*P~C zjI1jURN~b@ZsJ1Ft@P|0SH_ryX8bPEmmfH|dwM0~{geOLpBAtKNsTnpGr@+d%xPy! zQ=^sP6mEUE3olbj%<_>{MheidP_5(nF7scH0cLXiz}#+lkv;i8BhT(}Lg~AseICr^ z>K5X7&9%VT&^Jr(cAok(33;Wd@GV1>5fIa1apqr2i$}=UiC{no)YxGzuJ}j9;*pbV zmx;AJ5$#mE@~6>MeAFHIJ6&&#=O74wzlrchXl`!KP0iCu-m|x)zu!<qM8xfC`1gjg zzdt%13vgk)<z;q)n6sWZqs=9sx6}^o?$y878SQ2^>_ZAD&E=zfY}2{zXN6%NNQ^lL zNY}ra6tFkr?dyxnL%RpM0+qJ109|)puKwnHM<9!7dvWPm7I4R`-!gUmc{YT!nrSNz zT-iLPu7{^WNROR36NzV=u;<UiAP|Te1~V6cwxv8W&J-3FE^lp}b|jrOY&^hElpR~O zPe-Ur#HXp6B(vDK@33yspbX%u%dg>{9yaHk^86&zoe?RHgZgR7{VD|zn!VKcj4(oa zRnZ~qZxT#^-Y{_ycb!@UC{#43Lo1~~G=z4hnUagZF8Meoak8XbBY}w<lqDukIrqq_ z-B%UZ{f5j*+;N0sd*jX;Zb}J`$Ov+58I<WoM@3D1_%JjxBP=K=2>WJ}tNvn1yDuYy zV{mYAb#1M(vhuH&>`t#Fhz35%{hv_OnHkw)jnKT25&V38_183Jp6!WiW;)ewG!;n( z$5KqUZ{50OlpQ*zq^rAr9-7LrRi-7wetvgvZ*q3_OILAMMRPNWM)N?rZ$KEVJPz-v zRQ}o|h_sAMHB;*cSCc+yP@z6h=;OzaXYjkla#DDKuI_I47}bY>4>}>;u1`yBFvPwh zKdtZX?*olBQJv_lni^?@<p;f?Y-DZc?CgLGS>6o?jh%B)e9rhsQ>?odhpSmEiRoHL z**;hY{6e_r#guZ)gxieZ*oXT%RbalHeCjD2Zm0iox+vhcA+Tpw?koAbu<j}xs~;D2 zU|>FZzQ(-Hgzm8GUiqF6mhbyLD|LR#lkKfg4#`>xl0NK8!OW8h#;6CVKyor$P$^nJ z?Dd6;p9vSFm&*EIBJDrHpXO?FC&e+`T*-ta*zkee>x5%tQNS^Mcz&v{K%GgUgY6p= z`=7%=BWEVBu_{2ceR6t(!#T%e)d@>GRKyaa`Qx5%<=47BM&ztyAUW1@Ze?cjN<r^M z<S#RO-4Czx%!3otxgg!8HG<nCJpB8vbq1sDj%#dp?`JUl-?}`E5YSx9Hs28cXfv5R zA!8V~i6p=Gc`%wYe6C)-uekN6Sy->C)3!GVls?S2m9T~~PE;;<I6gMg6ADsVhGkvq z$ic0ml!lIwENG#e<F`M{SrF^By%Z};=KU=vz)m1v7l43VTT2T2gvVtet!pf4>&bA2 z^YabY+b=?9`E!=B8gm!2>^1Bt2NAb<37ml6Xhm6}--+AWJrDc%ivLkbGPil}N*PW4 z@ucE3<@0BKnO(T3$oSAPG>p*Mc<r$lE3weQs9m7_L7fQ?*z-vh!@2?haK3Pc+;(Dl z5g&a`a>usXO06r@6(<JmS@+^YWm-z^=#XR_qj;3oGR&nYLbv<wbfw4g(0?)5h_1%I zuOA=DbI4T-fp|eq<39>yf!ZMhu0*t+hU%5YbJzXLV?+*P>-tPVnmWJTv9;+vh1Ex+ z3GL~_HoH#a2F0yU&1QQ5xBOOymmvU1M(`<ICu8O^N8fmOJx%WktW>_zt&uUTPbUSa zN-m|jQ$+ap+n=&N4Ox_uyhR)bj4<<efP)*MOsrqC&Dvpm_2&69(`4O@8Sk@UPt!%8 ze{3Rg|C%i34Q088i{fe)r<k-1B)l|cD>Puu>({1hP-dmA-fj<3QYpcj9`{#_0N_o^ zAyNH-zH%)%R$!y)TXT^GN8-k(1Az&SL?qcu!dAqvvC}#A)>3NU$?|*k#4<>J-gmm_ z7+?iDMSOvXoDqM8ewz%^=S&nNN2qU#8jWX_Q6je`M!Bqq4^u2xf3Qf^eLqR}-mRzY z$6!W{SCbYzS$ordSJB;%KyhGaSQLK~gU<t)(q(na&^LJOkJ!f3U0MkGo2PYp*^h*j z5c!ZraEOh$`i%?HurEn**%jm8kenrNQTFvfjg}|sDr^GMz+P%`vj@DJIjl&{53Ro+ zhyawD6K1trw02m$F3x2A^S9EL>#k!^c6D)xgSxr|@m#KLCUu4LLsd9_CQH~jlzbq& z_2H$Z@RgJzL9DWQT_kb(asw3o*G_ahOHT?WC>op%nGaSNWj7v!mBY>JF!W3GbLHGg zzr%zk?whEFiG-OP<W^F20_^^=7HI?@QWu|KcyxUtB}`hklHb^W&sM#3)0g=d2k^!h KaL>+pUH?Ce7JBIb literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon16.png b/src/extension/firefox/img/icon16.png new file mode 100644 index 0000000000000000000000000000000000000000..6a97843da8c0b17dc46bc99208cd659b02471a5d GIT binary patch literal 479 zcmV<50U-W~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000MJ z000MJ0hPnJwg3PC8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10c=S` zK~y-6g_F%n!%z@~zsR)~D&6KC)O6iVce?1a2-$YsWfzLY-#5r36#UCNt3r*^7swM- z2rZT4!c4iQ{u~&{W#*ijGxr8b_yI(~xYcUqd7i(|=kxb=yPX3Uz|mH{N8AH$fDb@P zlE{!Gi2wm>;0kDb6R60~RgvO2RvmF1n}~oX6ET5XOLn_mEtktJfz@iIUa#kiTvl8n z8#@d`6-BW{HWWpnFbsV=hX7+h&N-!N`YYLxrm38BCUWk8V}K}%$g+$q%P<TE0{}*& z5k8_QVmh4yoCLrE*yjhB#~=uPN&_rhH3|UzexFXKvsGo20L*4HCX>mg2f(Xswk*qk zcTkq4e-ke|z=O#(o6U`9-?x9ZnhN&-M|@q$ri*p>=e!0EoTNMmf;-@}?tM5M{<b`T zYe{dm=?3sv?^q8n{{ZZ&_A@mkT}oR2A+VM-Hu5(CFAjlo;DxU@vZ%h#BpuZ2KLJJv VwD%|t=PLjJ002ovPDHLkV1nEY#(V$( literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon24.png b/src/extension/firefox/img/icon24.png new file mode 100644 index 0000000000000000000000000000000000000000..7322dcabc360cb02c03e74ba84ceebbee2213a30 GIT binary patch literal 719 zcmV;=0x<oFP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XT z000XT0n*)m`~Uy|8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10$fQ% zK~zYIt(Gxw(?A%89~);Y>4X#rRFI`Ze}p^K5)x7i3uIvE4itp4V`ip=2_cY0Hk1WI zY1c~m4;Ud?l_;eWQ;j#LeHmg$j$<b+@JJ`wpTB$GyU%xLBZ;yGECG*z-R0$FKMcbt zilS&`WyJ?}frr4gnHnX+b>I~+1XQh7<@>%;eBW2KS`{GR1b7czKa&A)8~B}cmSGs` z^?J(F>-A(9MrtA;1lDI70FRRqjXSnltts)8R;!gYNN2NEXpoG2LVR^~RdF1b8VrX+ zIgV3gvOZw|T+NmRP_0(e;o)Jac*@byk?Qq&-XsLBWDVYC6DpO827|#|@sz<}ph~5Z zH+h|Cvy`ruv~@b2GmEFR+wHu;FsTe%*$2&L^W5So&1N%i^1uLgfSUk|i;H-k$HKw_ zc^ZudjYb22AP5M8U@9kyA~rWSIX*s4L!SY@<y;G!>$>BSx~@AnKWV-R)TV~=|EOC< z(QG-gvF!EQ+S<hPlCqrwd?hn2+qP$Jt}@~{mTlYl5`8g&30vE?v8=+0&BU@SY}?L< z0}I$DSw#S*X%<eqY!zkW*}e&%OyC2f^J9u`w~OOAIF3WN+npQFF$DUir0;-Nmh}(3 zk#vw2`x$T-xLB6GzrWAk-ro3n4k7Ryzygr;!!V3{Kp(hJ)Wh>UJkLAJ$WMX$l70e= z--@Ii;AxWZx10h`B=yt4#A}z-0q!vRHk_9b*pT#cBC6uQflHFwuIt9kKch}0y_0mg zNULl|{bKZeegSL%w}2ZY=R0t~XoGG8ACvn+{s0l-7O*k87SjL#002ovPDHLkV1kX` BL4g1O literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon32.png b/src/extension/firefox/img/icon32.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6fb23b0be9631955f904353abcf55684950529 GIT binary patch literal 775 zcmV+i1Ni)jP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10+dNa zK~z|U#h1@(6G0e;p9$2o*pys^NGQ}oy`^aX1If|c)tvHgw6|V7ND(g$RP9x~=Hg97 zC@n1oD;|0XD70CSK*1jgC28RGu)C0?Gn>se)feWHZ{~ZS&Cb3%izMO<U=DZ!yaEo& z<#JO}S5mi9sWgED;3e=F$i(g&!}u<+4YUCPDijK8x7!MJetxc%l@*2cVD4*RDKP*r z18e{neT|jLWORIdtYOvbb!D^Jeh2|w;2AJI767mWd>v{gV~lFG+9mT)wOUQam|+M3 zd%*2j0Kk2qX=$RhwKb=CsMXa~8-RdQU^x;XxN@s`u~<~E*Bc4Y>-AJD7Na0?Rsdic zII=CApPyH=*&Jye>g?=H3kwS_h(ln;2C!jUFf}!$ot>T7=AriY_mxhkT@dR70Kubn zVVhj7R>w9EwYj<J0{9c&iV$GiHnChTCpHgNsZ?AL)xev%{*ZBnO;TAxDjY2!1Ae>? z6kTDHRF04m@Cf{Dj~zBi<p`-Q@LwXX`{W$MO40+^O96NIe_Av^2e>irN(DPOlrbg= zKqr-C)g+Yye%lJAQVGxVqF&bna?SHRk5Z}R^8W>nP1tBOCiVn08jZ+Jcw|G%=kxLZ z#}SI?^(6&-n3&V}dT)SP;0JKCzcOl<U$u@O|GAW;7VvgF@QLV+q*nh)sLL2hcg1=K zSd>Hxe|8;s@ei;5xukCd=KV*qy|`C6YDBEx1=5oJP?`fyt`Wck@&lf_oN&v)=`{eH z0EJ6_!#@NNw<LX<Aiyp|$MHyjV5B9jOKM#Kpd;yN&@0);sid5wD*hQRE<j7tmZZf| z{f#VdHk*twv%o{(0dNohAd?NsKY{PSXW%37PJY0R)L&fe&*VX-cbWhI002ovPDHLk FV1h1eRipp_ literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon48.png b/src/extension/firefox/img/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c1f5ddb8775794f93881a263a019e04c2b9eec GIT binary patch literal 1180 zcmV;N1Y`S&P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000&x z000&x0ZCFM@Bjb+8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11Sv^G zK~!jg)tbR;99100KeO3ZcB4=lRvQu!A+@;`2}aqR{0Ej44@FNN#F}W@ix7_ul0Xiv z)sx^Mr`&Ur?IC!`p{;J#Wlxp};u6s+ZD=Ne5W{{w%uL-T^Jd=6Y&P)=zst;T-|zdK zH~YT7_jZv))&MR5?*m@}cMFBWM!jBtB57aJezVzpQY;oXfV+Oqd%%UR)XqS90JskP z2&glbmX>rF%gf6;oCo{>%m4#D695bYcYxgxLYkhQK0-dg)YMd%2mw35m%z}m2>{Lj zHvrc_LgVA(+S}VR3fSM@*TlqxNre1|auax=s{(*aKqI2CN~Mxot(K8|fL5!eQmGUr zLcmYJ>s=85yc_k@0p)TzRjbul@&Q&?SJl_o7bjvHxROZ#@B#2oOd%~SELf8dFh4&Z zCqTdf@Np^uz%`2ks#Gd!x7&#YwA*b}Dis?M0%j5k@L!vQxPeDTMzpoHm6&{h?d@%i zj*i;S#H5t~U<7y?H)x?y(E9p%YVrY^&8CXQqKya_7>yJFoQ+#;f(SFKv@n=lSk!?t zQ35`<87RuE(jvm-4##Jq0)QbrM~oaG&aBeH!sI$%rNJ-(cj7*5YgTDtX>tN?JtqLK zF$?W&f=FssX<=z{JNOM?AmDnO>NIAR7M3RWNvD7#Epcb0HLJ9+G`R;pcLssBDKV>A zrG<sbwSiZ_+ew8c6^lhR8jYTl571~d;!N&p9(W4_#>U2|R;yI2RZ~hRW@l$ZuP-hx zCK@N;u(q~ly8SkI`&3&Ku?iEqT?hCshu8c3UvV)9oI7b28E`HKym-<qGT^1$Ni)cb zJf1C|k4qdL9%gcKlK%ew)WuAzQzv$JcUf6kVRLiSW=I#{7h=Bc<#JiB>-KE@cU@QI za@l4T+5n4Xv{tM2jC_Dvt!BN9{v0<?moHzona-}lvgX4aa6c|9pU-C|loXaV?>Tr4 z(I0?g%97vp^%{<2qy*k8G?<t4$Z?z+@Mh8irrsuLFJ!Yih2VjtN5Rvbp^LrEap(In zEeS^wj^hjfzX73(yy+D(P4RK(<86OmmGn605AYcH)|7n;@r}>fn*jjFafX10gv`Pz zn*kT^=>1QCXT6Z5-+?beM><`Y3&?}l3w7c)a20qXQ-!&?EFX_T9r*gWE3!D;O}R>R zdk5zNmyYl~e8CrSg^uI(Qy|~~sDyG2yXcGf=#&U(10NcBnr^7$C#Dk=Z~$D3<QR3+ z7cnVm`ve3$HN7^81o&}LQoV-))+LSDaI+PFq`agXowIQa0(K?clyugXR}uk13`)8! zDfY*Z1Oj#>-IA2}4<Km-1Tg@7ink#$9u7xD8@PveOnyEsk7vD57C4UcGVl)GS>-73 u8c^cDGp8NkZ{SzFE$n^Zdr5y~t^F@H`TEZ+->B~Z0000<MNUMnLSTY!j121l literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon64.png b/src/extension/firefox/img/icon64.png new file mode 100644 index 0000000000000000000000000000000000000000..7a92b4c7db1714ae6b2ce06e63b25c5c3e3918fc GIT binary patch literal 1451 zcmV;c1yuTpP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00009a7bBm0013_ z0013_0gvVJWdHyG8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11vp7W zK~#90<(o~66h#<@pX#uC+8;28WVtA4Z*=rP)a!-=d-p%1hw-5CY9uW20{+|x5#9A{ zj3KNCG6{)#(hDnw#6bL6*$9awUdSxM0K=SIvag5gmS&lmuB!RzU3ii&+01lxec!v) z-EURbAc=kkunl+x_yG7CI9D#0FG;FP`ZtMsrBb;BoCD^8L%_?xw!Y`rr=p(+jslCo zDxfqbCnwctG_;mxv#C<4r0lUt+eP3L;JI}z05AsZ2bR_p@qdhrjA&_T>7L?KE?&H- z@$vDNZId{k^f9__1OOfaJ_70;5|=SXCr+GbTYSpNlP6`2=_G=ZzCHxD6ea**fC_LW zCs_eHaNt00@hLMiGr8wW;u`QS5DioS;Bnw5$0W69&mOI;tT+pB`}S>3PfxpwAmB8x zYajvuF9O$Hlbe{BP_0&TE<UAJt7&3l!bgM#Q0|)mKm>g1k&uRlhP1G-;9Y#mnKNfJ zJUr|pg0N2v=S#x1_+jkx*(;g3xw+utQ)XvpeFYG392n|}07>!R`6f{=m%A=LrBbPc zi14k82rhT}uY5Z%l}c(hn>`btjY)Ee`Mk>^PXMoL9`emjC=Mp6T^tD#0C?56Ggq?{ zila$t6|Z{<0PF&8_;%!Dc0%zmN!hpo>~s<!x$d1!P8z;uCzJq_l*R&JTm*RA_vG8R zZ`b9^m-}9P%JTBEcI?;@BEp*;1;9>h{_#0!w`M1lK$El#Z0;n$$G)oe!t8_+Xp#=K z6aYJ)?>MDh8@)6;p#+$uYh>0FvI6Y)IZ?Znok0_5lJ=>E0E@0C=$F|ECBP(|S5^S* z8lF?*ew&?80!-3wWdu0t+HeqNClpVUbVL~e{%~nDD6<oar%C!nwsy9$X6d?Bgs$ui z8jqEvRbVUFmlholF3RkL;$f0r+5|jJ4l64wOifMY9p;3RVb>00Oi%i8q!a;@gY0pg zF&P0*6rDwZ#1YAj-~nZ81dJA)MS+Y)z(~<q6v${)bOuEe0nMV5D3DtbaLcz<9LH3v zRT_<k)0?Gi<l%e1Mx#NsS|yI-AOQf*;xU(w<5=~2ePFK6m3qCdIF5ZLLjryV&v$;+ zYPINE+fuDoeFZoc0T+D6%-+3weGVTe0l8g>uv1}Y#>U2cI~f=Oxt%xI>2MAELL?VC z+{lW=V=}c0JQ7K|g57=fpz)ietEmzCzR*;P;Rmor2<(%fCm3ToM!(y8Fb|0UlFs6J zGu+@TN%|G;i~z7ZK^_#oNdGYDUELTn3j7Uh>C`gsDUdfzi*Ap7{r9M(TaXz6$p@e3 zwZ0GdEG-@~BLKh{vjyu6A8yyW=>K4s?U#W`NjK9E?phC!bRBrVV-FjfnQZaEz0*&u zBRox;2}B<4+O323r)aT7=B`U1#Tc^-`|FMIwcqvNCe#&y{oeqdm2_$C7cG~>B>jcm zD|El`R;%KH&MPq3jmJG5!rewd|A#x)m?MAzzTCh99H*PDvWW;oWHw80AOXIi+s)D$ z5jJ7%<3<tSm`m}_0_e`=aAcheunHWe#pAAP0W$G|?2jJTn*cW@z2;j_hyY01DXHa- ziGl<;CF!w{T0#Xtl95!Av|OM7*Cf4@<PuazHv*)wS<;~-nL!C~RnkF8<K5=p3jxv? zk+cuT9cO{DDCxbVub$-HaxTy<#+co}8^AR13~em81FOLA*hSlUCCga7q%Q*8)qycv zfhpiA;7K6HZp+`yoxKT7?1ZI`U61$^yHx+9q^teR?>~%7Ho+HIHhusA002ovPDHLk FV1hOMpa1{> literal 0 HcmV?d00001 diff --git a/src/extension/firefox/img/icon96.png b/src/extension/firefox/img/icon96.png new file mode 100644 index 0000000000000000000000000000000000000000..641ce897baeb54b0caabff869978ba4295d21506 GIT binary patch literal 2270 zcmV<42qE{0P)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00009a7bBm001mX z001mX0e5<IO#lD@8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12y011 zK~#90?VbH^97h?)KXbJ?k*l4QzF3$dwLjoQ5y+sXRjM{ZDwQaN))j6PDx(yd*8KsT z{0#^pg*X+^Ul2kda6!04C=>+ZwF!lQNt5W>25{2wA`&YiB*MhGBsR%?`C<0ljeF<Y zot?eC^W8^!B){y=Jo|iiX7`z$*)@`AMvO75fdODGurB!d-9tk|g?;<>6^t=A0fk`m zlBEA^-MY23ckkX3a0)m9OasS(6O#Vh_@jt`q^2<7M&LnU7jPK31}JO;0|T0!omDO7 z=H|41{dz6kFR;G?Ujw!PH)Vaii^rXD(ANN?z{|kZ8i5m_LZP5z$Bxwueue4jY4!H@ z)+{HmtH5u7r-3zXB><2EHUlpJm+J&-(IzG)>IT2U<m6<eG6TCD`0`O8w_*hd0{<{@ zBt~!qXy?wIk%M1h$BrGb>Im!@unp*1F#-Txz*E3Uhk$6~#*LbvpN}oT!oq?!ZQA4_ zf`B)G?Trv3?ci?!UU3Y9`uh5G`t<48!LM-U%o+9f_q&Q9pa|U8asmMF0KP(%JDI4~ z)zzf~2M#y~zrw+T2i4u(okWB(Fag}w5&{5^0_PJPumFvZk0%a(h26V%C-Nn*bHGs3 z3V`kFcLirmqJteC9#*+r_9j5NT-NaLun!T+LCbzyQwadv2^{ipfOV5CSL!5baqW-5 z9Zews_CkBs$ALvnwp@vrq(!y!z`dCY06YL(@N_`2k}X$aCTaETBJfZq0stQeuJ}3_ zmt@No$0V(m%>$1+$I)pgc$@^cm`lwy*>WXel2*;G0iSS+r9<#P<nzq$>+93Z%uK_A zUtwluMtyyKK1EmnJ{&uqu{MUgfjM7J`%1Q4@sOk~wGuHe%yEK$C-85N&U#I@T=A5o zh3zacZc(EKzZ>|yPe+G_hP)<Qu9VAVZP~KLw+M%bn5;z=;LAQ8Oe@)P#dDHYv1jE& z0N`VI7+$DY+R2tHo|7~MF?&==1ORTu!@yeD8j)<d;yFnZb^z}dB@p17J{@XgvgL~B zBu&8A<stxZpU<wR(aDx8DJ5w&Z%u0jzYF^`$cqz6pKLW64^PsT+H2H!yje?tr+rnP zb+YA33Q5|NiXs4T19n!Kmx}l7*^^lilQKR&?o)u1)mlL{0Y-dP+APVID=8#tZy7aR z8hiu1?xV71OSW9`oTUAUC6m9F3b5HnMa`OQx#BrV`-qki;QKx*Y35|h6^}{U_f$;) zU^Q?lX$7s2Y`NkoNxMvFLU34sXOb4)D#?~B9+R}~sv^M4NeXSXWXly#N!ose1qiyI zW#{KFXRVrSx#A&7`ybG&kN}S)QM8qlEmu4wX`2-i;7hIr`JP7DDtMUgxJMxYUUeyC zr6gOfBuvtd%Eq46I1D?lv}DVb1WDR8pvM6BU?-b4H44s_s2F2X^293}a@cja9kO9< zM}TbU2#_&rbHKZ@_M(lsJqPq=?L`~Ylf%BFp+h$G<ba;6y=Y@PEg)lha#?%O?&Pow z%{pYmTn@Y9r9(E%d2a#ve4eqfF{Y-bD3wZer@u$FxcI8KR4OqwHO1K282NnOXQ&`J z`Ms@t>F@7Xu~<xX^f60{#iH*yqrU^#>!YxIKEI-aU!hnmDxc5$5@0fieXC$%Mn^{( z931pfR8uoJILPSesITIVdlO(}WW+}?ErG{lJ?`y+OsQ02)v8s=U1|X?UAjb}P^iCQ zeKr{EVB9QrVy-iCxKn9mJUnqL18Z`UE?{RwcW5lHN}8(-MZA=$EA7dz!45?L?9b4V zc4a?+kyLq6_Id2`Bquu8fLL4wZkBW*2O#@q@q<1b>kx_G2G?G~!_nVuqzA^BSk`Ri zC*(Veepb4Upc^^^yxpb5xLr`(gKqWmLtFvgDQOl$Eg<NIe(YLmhsgY}5`4J63j+9d zgPmzdCc?j%aMLrkUA+dpH*Tq|-bFO13;HwgK1t=uAFgWwvR>?RDY-)=J|7M~ENKA% z#+Vy`zX0!vQ*x`Hp$%vOCxLa6u7&^jmRS+O249R@dWX7vVQKK8N(+F+R&W@2f7H@j z{R~aH{G-4<)dZ+IFDTgX8SId0hh&t2&sGaQ)DQqb(jnkmDLK_nd_&S7YW=fn7qs|K zV{XBIjqc`pwX}E_kyiQVuovF*wKiCGYNDibz!TUf_?gn=V>{Il@YHg_hdKfPNcsu( z#jPFU@vNj5>ut1b7qqyMG2Pft|J_?_n+6VMrGjVw4*{DbEz~V1YQ@HwJA#65t@i(p z0E?Uj?w0h=DCI<+o-XMh*zYZNCiB*24*N!|NWq5~0su%ljQvj7d`!pMfd$|(Nk`-C z6nlY&q?dqC(Mi(6l!0xMei3&^rxh}iCb1tzzT&d~3S$8nk@SMg&XF&|Rd+V#0bn1M zmk-6;*SX#_aP<Eow%hr+YrTmC2pqW!_^G7ZV(yoyUf(zf@GtC3myRT<H}N99z<~|e zg&ys~E7&)pCkj4z5CA~ZDd2;^=UCYnX93Rv_e=V_j{*~SK~;DJ`{9RW2k=_33pxip ziRYOkX{;0e5%zKBbF7TkAmDjmJt<7vNuvdXxeNFz_5*O&SKJycpa^`16t8b-uarN6 z9l+ZTypeKUJ~;t=nnv7Q$kTe-2$qxdu%siw^p~cxfY&8$lT`I{BWYOLT~IX)@Q^X) z3G4;iX)dZqE(0%0ngD)AgC9O+A;6oJ+X=ys0iOi!$9_Dh5nRPCl71fef$Y54OvqG# zFvgey_ImMPU?0HmHR^A`uLAp}LK9@Oq-g|LiZP}K`$EA1U|sO@?b!Dl-3YAV&37GL s#IE$b7}zQ7g>)Lb4*G<orhJa^f4+tDAd@gT!~g&Q07*qoM6N<$f-&kicK`qY literal 0 HcmV?d00001 diff --git a/src/extension/manifest.json b/src/extension/firefox/manifest.json similarity index 92% rename from src/extension/manifest.json rename to src/extension/firefox/manifest.json index 1f24ed0..6fd656f 100644 --- a/src/extension/manifest.json +++ b/src/extension/firefox/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "121.0" + "strict_min_version": "126.0" } }, "manifest_version": 2, @@ -31,7 +31,7 @@ "persistent": true }, "homepage_url": "https://github.com/regseb/gout", - "minimum_chrome_version": "120", + "minimum_chrome_version": "125", "permissions": [ "<all_urls>", "activeTab", diff --git a/src/extension/firefox/polyfill/browser.js b/src/extension/firefox/polyfill/browser.js new file mode 100644 index 0000000..04f0dc9 --- /dev/null +++ b/src/extension/firefox/polyfill/browser.js @@ -0,0 +1,12 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +// Copier la variable "chrome" (qui contient les APIs pour les WebExtensions) +// dans la variable "browser", car Chromium fournit seulement "chrome". +// https://crbug.com/798169 +if (!("browser" in globalThis)) { + globalThis.browser = chrome; +} diff --git a/src/extension/firefox/popup/img/remove.svg b/src/extension/firefox/popup/img/remove.svg new file mode 100644 index 0000000..a11d462 --- /dev/null +++ b/src/extension/firefox/popup/img/remove.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> + <path + d="M6.5 12a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5z" + /> + <path + d="M14 2h-3.05a2.5 2.5 0 0 0-4.9 0H3a1 1 0 0 0 0 2v9a3 3 0 0 0 3 3h5a3 3 0 0 0 3-3V4a1 1 0 0 0 0-2zM8.5 1a1.489 1.489 0 0 1 1.391 1H7.109A1.489 1.489 0 0 1 8.5 1zM12 13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4h7z" + /> +</svg> diff --git a/src/extension/firefox/popup/index.html b/src/extension/firefox/popup/index.html new file mode 100644 index 0000000..781ff63 --- /dev/null +++ b/src/extension/firefox/popup/index.html @@ -0,0 +1,28 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Gout</title> + <link href="style.css" rel="stylesheet" /> + <link href="/img/icon.svg" rel="shortcut icon" /> + </head> + <body> + <template> + <li> + <span></span> + <button class="icon" title="Enlever"> + <img src="img/remove.svg" alt="remove" /> + </button> + </li> + </template> + + <div> + <button class="outlined" id="set" disabled="disabled">Ajouter</button> + </div> + + <ul></ul> + + <script src="script.js" type="module"></script> + </body> +</html> diff --git a/src/extension/firefox/popup/script.js b/src/extension/firefox/popup/script.js new file mode 100644 index 0000000..ab75c43 --- /dev/null +++ b/src/extension/firefox/popup/script.js @@ -0,0 +1,107 @@ +/** + * @module + * @license MIT + * @author Sébastien Règne + */ + +import "../polyfill/browser.js"; + +const check = function (href) { + try { + const url = new URL(href); + return ["http:", "https:", "data:", "file:"].includes(url.protocol); + } catch { + // Indiquer que l'URL est invalide. + return false; + } +}; + +const copy = async function (event) { + const li = event.target.closest("li"); + const url = li.querySelector("span").title; + + await navigator.clipboard.writeText(url); +}; + +const remove = async function (event) { + const li = event.target.closest("li"); + const url = li.querySelector("span").title; + + const { dashboards } = await browser.storage.sync.get("dashboards"); + dashboards.splice( + dashboards.findIndex((d) => url === d.url), + 1, + ); + await browser.storage.sync.set({ dashboards }); + + li.remove(); + const button = document.querySelector("#set"); + if (url === button.dataset.url) { + button.textContent = "Ajouter"; + } +}; + +const create = function (dashboard, active) { + const template = document.querySelector("template"); + const clone = document.importNode(template.content, true); + + clone.querySelector("span").textContent = dashboard.title; + clone.querySelector("span").title = dashboard.url; + if (active) { + clone.querySelector("span").classList.add("active"); + } + clone.querySelector("span").addEventListener("dblclick", copy); + clone.querySelector("button").addEventListener("click", remove); + + return clone; +}; + +const set = async function () { + const button = document.querySelector("#set"); + const dashboard = { + title: button.dataset.title, + url: button.dataset.url, + }; + + const { dashboards } = await browser.storage.sync.get("dashboards"); + const index = dashboards.findIndex((d) => dashboard.url === d.url); + if (-1 === index) { + dashboards.push(dashboard); + document.querySelector("ul").append(create(dashboard, true)); + } else { + dashboards[index] = dashboard; + document.querySelector(`ul li:nth-child(${index}) span`).textContent = + dashboard.title; + } + await browser.storage.sync.set({ dashboards }); + + button.textContent = "Mettre à jour"; +}; + +const { dashboards } = await browser.storage.sync.get("dashboards"); +// Récupérer le titre et l'URL de l'onglet courant. +// Attention avec Chromium ! Quand la popup est ouverte dans un onglet : la +// méthode retourne un élément, mais sans titre, ni URL. +const [{ title, url }] = await browser.tabs.query({ + active: true, + currentWindow: true, +}); + +const button = document.querySelector("#set"); +if (check(url)) { + if (dashboards.some((d) => url === d.url)) { + button.textContent = "Mettre à jour"; + } + + button.dataset.title = title; + button.dataset.url = url; + button.addEventListener("click", set); + button.disabled = false; +} else { + button.textContent = "(Impossible pour cette page)"; +} + +const ul = document.querySelector("ul"); +for (const dashboard of dashboards) { + ul.append(create(dashboard, url === dashboard.url)); +} diff --git a/src/extension/firefox/popup/style.css b/src/extension/firefox/popup/style.css new file mode 100644 index 0000000..65164af --- /dev/null +++ b/src/extension/firefox/popup/style.css @@ -0,0 +1,67 @@ +body { + font-family: system-ui; + font-size: 14px; + min-width: 200px; +} + +button.icon { + background: transparent; + border: none; + border-radius: 4px; + height: 34px; + width: 34px; +} +button.icon:hover { + background-color: rgba(0 0 0 / 6%); +} + +button.outlined { + background: transparent; + border: 1px solid rgba(0 0 0 / 12%); + border-radius: 4px; + color: rgba(0 0 0 / 87%); + line-height: 34px; + padding: 0 15px; + text-align: center; + text-transform: uppercase; +} +button.outlined::-moz-focus-inner { + border: none; +} +button.outlined:hover { + background-color: rgba(0 0 0 / 6%); +} + +ul { + list-style-type: none; + margin-bottom: 0; + margin-top: 0; + padding-left: 0; +} +li { + align-items: center; + display: flex; + height: 34px; +} +span { + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; + /* Ne pas sélectionner un mot durant un double-clic (pour copier l'URL dans + le presse-papier). */ + user-select: none; + white-space: nowrap; +} +span.active { + font-weight: bold; +} +li button { + display: none; +} +li:hover button { + display: block; +} + +#set { + width: 100%; +} diff --git a/src/extension/polyfill/browser.js b/src/extension/polyfill/browser.js deleted file mode 100644 index 861caaa..0000000 --- a/src/extension/polyfill/browser.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -import "./lib/browser-polyfill.js"; diff --git a/src/extension/polyfill/lib/browser-polyfill.js b/src/extension/polyfill/lib/browser-polyfill.js deleted file mode 100644 index 8e732a2..0000000 --- a/src/extension/polyfill/lib/browser-polyfill.js +++ /dev/null @@ -1,1269 +0,0 @@ -(function (global, factory) { - if (typeof define === "function" && define.amd) { - define("webextension-polyfill", ["module"], factory); - } else if (typeof exports !== "undefined") { - factory(module); - } else { - var mod = { - exports: {} - }; - factory(mod); - global.browser = mod.exports; - } -})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (module) { - /* webextension-polyfill - v0.10.0 - Fri Aug 12 2022 19:42:44 */ - - /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ - - /* vim: set sts=2 sw=2 et tw=80: */ - - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - "use strict"; - - if (!globalThis.chrome?.runtime?.id) { - throw new Error("This script should only be loaded in a browser extension."); - } - - if (typeof globalThis.browser === "undefined" || Object.getPrototypeOf(globalThis.browser) !== Object.prototype) { - const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = "The message port closed before a response was received."; // Wrapping the bulk of this polyfill in a one-time-use function is a minor - // optimization for Firefox. Since Spidermonkey does not fully parse the - // contents of a function until the first time it's called, and since it will - // never actually need to be called, this allows the polyfill to be included - // in Firefox nearly for free. - - const wrapAPIs = extensionAPIs => { - // NOTE: apiMetadata is associated to the content of the api-metadata.json file - // at build time by replacing the following "include" with the content of the - // JSON file. - const apiMetadata = { - "alarms": { - "clear": { - "minArgs": 0, - "maxArgs": 1 - }, - "clearAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "get": { - "minArgs": 0, - "maxArgs": 1 - }, - "getAll": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "bookmarks": { - "create": { - "minArgs": 1, - "maxArgs": 1 - }, - "get": { - "minArgs": 1, - "maxArgs": 1 - }, - "getChildren": { - "minArgs": 1, - "maxArgs": 1 - }, - "getRecent": { - "minArgs": 1, - "maxArgs": 1 - }, - "getSubTree": { - "minArgs": 1, - "maxArgs": 1 - }, - "getTree": { - "minArgs": 0, - "maxArgs": 0 - }, - "move": { - "minArgs": 2, - "maxArgs": 2 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeTree": { - "minArgs": 1, - "maxArgs": 1 - }, - "search": { - "minArgs": 1, - "maxArgs": 1 - }, - "update": { - "minArgs": 2, - "maxArgs": 2 - } - }, - "browserAction": { - "disable": { - "minArgs": 0, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "enable": { - "minArgs": 0, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "getBadgeBackgroundColor": { - "minArgs": 1, - "maxArgs": 1 - }, - "getBadgeText": { - "minArgs": 1, - "maxArgs": 1 - }, - "getPopup": { - "minArgs": 1, - "maxArgs": 1 - }, - "getTitle": { - "minArgs": 1, - "maxArgs": 1 - }, - "openPopup": { - "minArgs": 0, - "maxArgs": 0 - }, - "setBadgeBackgroundColor": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "setBadgeText": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "setIcon": { - "minArgs": 1, - "maxArgs": 1 - }, - "setPopup": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "setTitle": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - } - }, - "browsingData": { - "remove": { - "minArgs": 2, - "maxArgs": 2 - }, - "removeCache": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeCookies": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeDownloads": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeFormData": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeHistory": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeLocalStorage": { - "minArgs": 1, - "maxArgs": 1 - }, - "removePasswords": { - "minArgs": 1, - "maxArgs": 1 - }, - "removePluginData": { - "minArgs": 1, - "maxArgs": 1 - }, - "settings": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "commands": { - "getAll": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "contextMenus": { - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "update": { - "minArgs": 2, - "maxArgs": 2 - } - }, - "cookies": { - "get": { - "minArgs": 1, - "maxArgs": 1 - }, - "getAll": { - "minArgs": 1, - "maxArgs": 1 - }, - "getAllCookieStores": { - "minArgs": 0, - "maxArgs": 0 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "set": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "devtools": { - "inspectedWindow": { - "eval": { - "minArgs": 1, - "maxArgs": 2, - "singleCallbackArg": false - } - }, - "panels": { - "create": { - "minArgs": 3, - "maxArgs": 3, - "singleCallbackArg": true - }, - "elements": { - "createSidebarPane": { - "minArgs": 1, - "maxArgs": 1 - } - } - } - }, - "downloads": { - "cancel": { - "minArgs": 1, - "maxArgs": 1 - }, - "download": { - "minArgs": 1, - "maxArgs": 1 - }, - "erase": { - "minArgs": 1, - "maxArgs": 1 - }, - "getFileIcon": { - "minArgs": 1, - "maxArgs": 2 - }, - "open": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "pause": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeFile": { - "minArgs": 1, - "maxArgs": 1 - }, - "resume": { - "minArgs": 1, - "maxArgs": 1 - }, - "search": { - "minArgs": 1, - "maxArgs": 1 - }, - "show": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - } - }, - "extension": { - "isAllowedFileSchemeAccess": { - "minArgs": 0, - "maxArgs": 0 - }, - "isAllowedIncognitoAccess": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "history": { - "addUrl": { - "minArgs": 1, - "maxArgs": 1 - }, - "deleteAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "deleteRange": { - "minArgs": 1, - "maxArgs": 1 - }, - "deleteUrl": { - "minArgs": 1, - "maxArgs": 1 - }, - "getVisits": { - "minArgs": 1, - "maxArgs": 1 - }, - "search": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "i18n": { - "detectLanguage": { - "minArgs": 1, - "maxArgs": 1 - }, - "getAcceptLanguages": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "identity": { - "launchWebAuthFlow": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "idle": { - "queryState": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "management": { - "get": { - "minArgs": 1, - "maxArgs": 1 - }, - "getAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "getSelf": { - "minArgs": 0, - "maxArgs": 0 - }, - "setEnabled": { - "minArgs": 2, - "maxArgs": 2 - }, - "uninstallSelf": { - "minArgs": 0, - "maxArgs": 1 - } - }, - "notifications": { - "clear": { - "minArgs": 1, - "maxArgs": 1 - }, - "create": { - "minArgs": 1, - "maxArgs": 2 - }, - "getAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "getPermissionLevel": { - "minArgs": 0, - "maxArgs": 0 - }, - "update": { - "minArgs": 2, - "maxArgs": 2 - } - }, - "pageAction": { - "getPopup": { - "minArgs": 1, - "maxArgs": 1 - }, - "getTitle": { - "minArgs": 1, - "maxArgs": 1 - }, - "hide": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "setIcon": { - "minArgs": 1, - "maxArgs": 1 - }, - "setPopup": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "setTitle": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - }, - "show": { - "minArgs": 1, - "maxArgs": 1, - "fallbackToNoCallback": true - } - }, - "permissions": { - "contains": { - "minArgs": 1, - "maxArgs": 1 - }, - "getAll": { - "minArgs": 0, - "maxArgs": 0 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "request": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "runtime": { - "getBackgroundPage": { - "minArgs": 0, - "maxArgs": 0 - }, - "getPlatformInfo": { - "minArgs": 0, - "maxArgs": 0 - }, - "openOptionsPage": { - "minArgs": 0, - "maxArgs": 0 - }, - "requestUpdateCheck": { - "minArgs": 0, - "maxArgs": 0 - }, - "sendMessage": { - "minArgs": 1, - "maxArgs": 3 - }, - "sendNativeMessage": { - "minArgs": 2, - "maxArgs": 2 - }, - "setUninstallURL": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "sessions": { - "getDevices": { - "minArgs": 0, - "maxArgs": 1 - }, - "getRecentlyClosed": { - "minArgs": 0, - "maxArgs": 1 - }, - "restore": { - "minArgs": 0, - "maxArgs": 1 - } - }, - "storage": { - "local": { - "clear": { - "minArgs": 0, - "maxArgs": 0 - }, - "get": { - "minArgs": 0, - "maxArgs": 1 - }, - "getBytesInUse": { - "minArgs": 0, - "maxArgs": 1 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "set": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "managed": { - "get": { - "minArgs": 0, - "maxArgs": 1 - }, - "getBytesInUse": { - "minArgs": 0, - "maxArgs": 1 - } - }, - "sync": { - "clear": { - "minArgs": 0, - "maxArgs": 0 - }, - "get": { - "minArgs": 0, - "maxArgs": 1 - }, - "getBytesInUse": { - "minArgs": 0, - "maxArgs": 1 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "set": { - "minArgs": 1, - "maxArgs": 1 - } - } - }, - "tabs": { - "captureVisibleTab": { - "minArgs": 0, - "maxArgs": 2 - }, - "create": { - "minArgs": 1, - "maxArgs": 1 - }, - "detectLanguage": { - "minArgs": 0, - "maxArgs": 1 - }, - "discard": { - "minArgs": 0, - "maxArgs": 1 - }, - "duplicate": { - "minArgs": 1, - "maxArgs": 1 - }, - "executeScript": { - "minArgs": 1, - "maxArgs": 2 - }, - "get": { - "minArgs": 1, - "maxArgs": 1 - }, - "getCurrent": { - "minArgs": 0, - "maxArgs": 0 - }, - "getZoom": { - "minArgs": 0, - "maxArgs": 1 - }, - "getZoomSettings": { - "minArgs": 0, - "maxArgs": 1 - }, - "goBack": { - "minArgs": 0, - "maxArgs": 1 - }, - "goForward": { - "minArgs": 0, - "maxArgs": 1 - }, - "highlight": { - "minArgs": 1, - "maxArgs": 1 - }, - "insertCSS": { - "minArgs": 1, - "maxArgs": 2 - }, - "move": { - "minArgs": 2, - "maxArgs": 2 - }, - "query": { - "minArgs": 1, - "maxArgs": 1 - }, - "reload": { - "minArgs": 0, - "maxArgs": 2 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "removeCSS": { - "minArgs": 1, - "maxArgs": 2 - }, - "sendMessage": { - "minArgs": 2, - "maxArgs": 3 - }, - "setZoom": { - "minArgs": 1, - "maxArgs": 2 - }, - "setZoomSettings": { - "minArgs": 1, - "maxArgs": 2 - }, - "update": { - "minArgs": 1, - "maxArgs": 2 - } - }, - "topSites": { - "get": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "webNavigation": { - "getAllFrames": { - "minArgs": 1, - "maxArgs": 1 - }, - "getFrame": { - "minArgs": 1, - "maxArgs": 1 - } - }, - "webRequest": { - "handlerBehaviorChanged": { - "minArgs": 0, - "maxArgs": 0 - } - }, - "windows": { - "create": { - "minArgs": 0, - "maxArgs": 1 - }, - "get": { - "minArgs": 1, - "maxArgs": 2 - }, - "getAll": { - "minArgs": 0, - "maxArgs": 1 - }, - "getCurrent": { - "minArgs": 0, - "maxArgs": 1 - }, - "getLastFocused": { - "minArgs": 0, - "maxArgs": 1 - }, - "remove": { - "minArgs": 1, - "maxArgs": 1 - }, - "update": { - "minArgs": 2, - "maxArgs": 2 - } - } - }; - - if (Object.keys(apiMetadata).length === 0) { - throw new Error("api-metadata.json has not been included in browser-polyfill"); - } - /** - * A WeakMap subclass which creates and stores a value for any key which does - * not exist when accessed, but behaves exactly as an ordinary WeakMap - * otherwise. - * - * @param {function} createItem - * A function which will be called in order to create the value for any - * key which does not exist, the first time it is accessed. The - * function receives, as its only argument, the key being created. - */ - - - class DefaultWeakMap extends WeakMap { - constructor(createItem, items = undefined) { - super(items); - this.createItem = createItem; - } - - get(key) { - if (!this.has(key)) { - this.set(key, this.createItem(key)); - } - - return super.get(key); - } - - } - /** - * Returns true if the given object is an object with a `then` method, and can - * therefore be assumed to behave as a Promise. - * - * @param {*} value The value to test. - * @returns {boolean} True if the value is thenable. - */ - - - const isThenable = value => { - return value && typeof value === "object" && typeof value.then === "function"; - }; - /** - * Creates and returns a function which, when called, will resolve or reject - * the given promise based on how it is called: - * - * - If, when called, `chrome.runtime.lastError` contains a non-null object, - * the promise is rejected with that value. - * - If the function is called with exactly one argument, the promise is - * resolved to that value. - * - Otherwise, the promise is resolved to an array containing all of the - * function's arguments. - * - * @param {object} promise - * An object containing the resolution and rejection functions of a - * promise. - * @param {function} promise.resolve - * The promise's resolution function. - * @param {function} promise.reject - * The promise's rejection function. - * @param {object} metadata - * Metadata about the wrapped method which has created the callback. - * @param {boolean} metadata.singleCallbackArg - * Whether or not the promise is resolved with only the first - * argument of the callback, alternatively an array of all the - * callback arguments is resolved. By default, if the callback - * function is invoked with only a single argument, that will be - * resolved to the promise, while all arguments will be resolved as - * an array if multiple are given. - * - * @returns {function} - * The generated callback function. - */ - - - const makeCallback = (promise, metadata) => { - return (...callbackArgs) => { - if (extensionAPIs.runtime.lastError) { - promise.reject(new Error(extensionAPIs.runtime.lastError.message)); - } else if (metadata.singleCallbackArg || callbackArgs.length <= 1 && metadata.singleCallbackArg !== false) { - promise.resolve(callbackArgs[0]); - } else { - promise.resolve(callbackArgs); - } - }; - }; - - const pluralizeArguments = numArgs => numArgs == 1 ? "argument" : "arguments"; - /** - * Creates a wrapper function for a method with the given name and metadata. - * - * @param {string} name - * The name of the method which is being wrapped. - * @param {object} metadata - * Metadata about the method being wrapped. - * @param {integer} metadata.minArgs - * The minimum number of arguments which must be passed to the - * function. If called with fewer than this number of arguments, the - * wrapper will raise an exception. - * @param {integer} metadata.maxArgs - * The maximum number of arguments which may be passed to the - * function. If called with more than this number of arguments, the - * wrapper will raise an exception. - * @param {boolean} metadata.singleCallbackArg - * Whether or not the promise is resolved with only the first - * argument of the callback, alternatively an array of all the - * callback arguments is resolved. By default, if the callback - * function is invoked with only a single argument, that will be - * resolved to the promise, while all arguments will be resolved as - * an array if multiple are given. - * - * @returns {function(object, ...*)} - * The generated wrapper function. - */ - - - const wrapAsyncFunction = (name, metadata) => { - return function asyncFunctionWrapper(target, ...args) { - if (args.length < metadata.minArgs) { - throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`); - } - - if (args.length > metadata.maxArgs) { - throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`); - } - - return new Promise((resolve, reject) => { - if (metadata.fallbackToNoCallback) { - // This API method has currently no callback on Chrome, but it return a promise on Firefox, - // and so the polyfill will try to call it with a callback first, and it will fallback - // to not passing the callback if the first call fails. - try { - target[name](...args, makeCallback({ - resolve, - reject - }, metadata)); - } catch (cbError) { - console.warn(`${name} API method doesn't seem to support the callback parameter, ` + "falling back to call it without a callback: ", cbError); - target[name](...args); // Update the API method metadata, so that the next API calls will not try to - // use the unsupported callback anymore. - - metadata.fallbackToNoCallback = false; - metadata.noCallback = true; - resolve(); - } - } else if (metadata.noCallback) { - target[name](...args); - resolve(); - } else { - target[name](...args, makeCallback({ - resolve, - reject - }, metadata)); - } - }); - }; - }; - /** - * Wraps an existing method of the target object, so that calls to it are - * intercepted by the given wrapper function. The wrapper function receives, - * as its first argument, the original `target` object, followed by each of - * the arguments passed to the original method. - * - * @param {object} target - * The original target object that the wrapped method belongs to. - * @param {function} method - * The method being wrapped. This is used as the target of the Proxy - * object which is created to wrap the method. - * @param {function} wrapper - * The wrapper function which is called in place of a direct invocation - * of the wrapped method. - * - * @returns {Proxy<function>} - * A Proxy object for the given method, which invokes the given wrapper - * method in its place. - */ - - - const wrapMethod = (target, method, wrapper) => { - return new Proxy(method, { - apply(targetMethod, thisObj, args) { - return wrapper.call(thisObj, target, ...args); - } - - }); - }; - - let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); - /** - * Wraps an object in a Proxy which intercepts and wraps certain methods - * based on the given `wrappers` and `metadata` objects. - * - * @param {object} target - * The target object to wrap. - * - * @param {object} [wrappers = {}] - * An object tree containing wrapper functions for special cases. Any - * function present in this object tree is called in place of the - * method in the same location in the `target` object tree. These - * wrapper methods are invoked as described in {@see wrapMethod}. - * - * @param {object} [metadata = {}] - * An object tree containing metadata used to automatically generate - * Promise-based wrapper functions for asynchronous. Any function in - * the `target` object tree which has a corresponding metadata object - * in the same location in the `metadata` tree is replaced with an - * automatically-generated wrapper function, as described in - * {@see wrapAsyncFunction} - * - * @returns {Proxy<object>} - */ - - const wrapObject = (target, wrappers = {}, metadata = {}) => { - let cache = Object.create(null); - let handlers = { - has(proxyTarget, prop) { - return prop in target || prop in cache; - }, - - get(proxyTarget, prop, receiver) { - if (prop in cache) { - return cache[prop]; - } - - if (!(prop in target)) { - return undefined; - } - - let value = target[prop]; - - if (typeof value === "function") { - // This is a method on the underlying object. Check if we need to do - // any wrapping. - if (typeof wrappers[prop] === "function") { - // We have a special-case wrapper for this method. - value = wrapMethod(target, target[prop], wrappers[prop]); - } else if (hasOwnProperty(metadata, prop)) { - // This is an async method that we have metadata for. Create a - // Promise wrapper for it. - let wrapper = wrapAsyncFunction(prop, metadata[prop]); - value = wrapMethod(target, target[prop], wrapper); - } else { - // This is a method that we don't know or care about. Return the - // original method, bound to the underlying object. - value = value.bind(target); - } - } else if (typeof value === "object" && value !== null && (hasOwnProperty(wrappers, prop) || hasOwnProperty(metadata, prop))) { - // This is an object that we need to do some wrapping for the children - // of. Create a sub-object wrapper for it with the appropriate child - // metadata. - value = wrapObject(value, wrappers[prop], metadata[prop]); - } else if (hasOwnProperty(metadata, "*")) { - // Wrap all properties in * namespace. - value = wrapObject(value, wrappers[prop], metadata["*"]); - } else { - // We don't need to do any wrapping for this property, - // so just forward all access to the underlying object. - Object.defineProperty(cache, prop, { - configurable: true, - enumerable: true, - - get() { - return target[prop]; - }, - - set(value) { - target[prop] = value; - } - - }); - return value; - } - - cache[prop] = value; - return value; - }, - - set(proxyTarget, prop, value, receiver) { - if (prop in cache) { - cache[prop] = value; - } else { - target[prop] = value; - } - - return true; - }, - - defineProperty(proxyTarget, prop, desc) { - return Reflect.defineProperty(cache, prop, desc); - }, - - deleteProperty(proxyTarget, prop) { - return Reflect.deleteProperty(cache, prop); - } - - }; // Per contract of the Proxy API, the "get" proxy handler must return the - // original value of the target if that value is declared read-only and - // non-configurable. For this reason, we create an object with the - // prototype set to `target` instead of using `target` directly. - // Otherwise we cannot return a custom object for APIs that - // are declared read-only and non-configurable, such as `chrome.devtools`. - // - // The proxy handlers themselves will still use the original `target` - // instead of the `proxyTarget`, so that the methods and properties are - // dereferenced via the original targets. - - let proxyTarget = Object.create(target); - return new Proxy(proxyTarget, handlers); - }; - /** - * Creates a set of wrapper functions for an event object, which handles - * wrapping of listener functions that those messages are passed. - * - * A single wrapper is created for each listener function, and stored in a - * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener` - * retrieve the original wrapper, so that attempts to remove a - * previously-added listener work as expected. - * - * @param {DefaultWeakMap<function, function>} wrapperMap - * A DefaultWeakMap object which will create the appropriate wrapper - * for a given listener function when one does not exist, and retrieve - * an existing one when it does. - * - * @returns {object} - */ - - - const wrapEvent = wrapperMap => ({ - addListener(target, listener, ...args) { - target.addListener(wrapperMap.get(listener), ...args); - }, - - hasListener(target, listener) { - return target.hasListener(wrapperMap.get(listener)); - }, - - removeListener(target, listener) { - target.removeListener(wrapperMap.get(listener)); - } - - }); - - const onRequestFinishedWrappers = new DefaultWeakMap(listener => { - if (typeof listener !== "function") { - return listener; - } - /** - * Wraps an onRequestFinished listener function so that it will return a - * `getContent()` property which returns a `Promise` rather than using a - * callback API. - * - * @param {object} req - * The HAR entry object representing the network request. - */ - - - return function onRequestFinished(req) { - const wrappedReq = wrapObject(req, {} - /* wrappers */ - , { - getContent: { - minArgs: 0, - maxArgs: 0 - } - }); - listener(wrappedReq); - }; - }); - const onMessageWrappers = new DefaultWeakMap(listener => { - if (typeof listener !== "function") { - return listener; - } - /** - * Wraps a message listener function so that it may send responses based on - * its return value, rather than by returning a sentinel value and calling a - * callback. If the listener function returns a Promise, the response is - * sent when the promise either resolves or rejects. - * - * @param {*} message - * The message sent by the other end of the channel. - * @param {object} sender - * Details about the sender of the message. - * @param {function(*)} sendResponse - * A callback which, when called with an arbitrary argument, sends - * that value as a response. - * @returns {boolean} - * True if the wrapped listener returned a Promise, which will later - * yield a response. False otherwise. - */ - - - return function onMessage(message, sender, sendResponse) { - let didCallSendResponse = false; - let wrappedSendResponse; - let sendResponsePromise = new Promise(resolve => { - wrappedSendResponse = function (response) { - didCallSendResponse = true; - resolve(response); - }; - }); - let result; - - try { - result = listener(message, sender, wrappedSendResponse); - } catch (err) { - result = Promise.reject(err); - } - - const isResultThenable = result !== true && isThenable(result); // If the listener didn't returned true or a Promise, or called - // wrappedSendResponse synchronously, we can exit earlier - // because there will be no response sent from this listener. - - if (result !== true && !isResultThenable && !didCallSendResponse) { - return false; - } // A small helper to send the message if the promise resolves - // and an error if the promise rejects (a wrapped sendMessage has - // to translate the message into a resolved promise or a rejected - // promise). - - - const sendPromisedResult = promise => { - promise.then(msg => { - // send the message value. - sendResponse(msg); - }, error => { - // Send a JSON representation of the error if the rejected value - // is an instance of error, or the object itself otherwise. - let message; - - if (error && (error instanceof Error || typeof error.message === "string")) { - message = error.message; - } else { - message = "An unexpected error occurred"; - } - - sendResponse({ - __mozWebExtensionPolyfillReject__: true, - message - }); - }).catch(err => { - // Print an error on the console if unable to send the response. - console.error("Failed to send onMessage rejected reply", err); - }); - }; // If the listener returned a Promise, send the resolved value as a - // result, otherwise wait the promise related to the wrappedSendResponse - // callback to resolve and send it as a response. - - - if (isResultThenable) { - sendPromisedResult(result); - } else { - sendPromisedResult(sendResponsePromise); - } // Let Chrome know that the listener is replying. - - - return true; - }; - }); - - const wrappedSendMessageCallback = ({ - reject, - resolve - }, reply) => { - if (extensionAPIs.runtime.lastError) { - // Detect when none of the listeners replied to the sendMessage call and resolve - // the promise to undefined as in Firefox. - // See https://github.com/mozilla/webextension-polyfill/issues/130 - if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) { - resolve(); - } else { - reject(new Error(extensionAPIs.runtime.lastError.message)); - } - } else if (reply && reply.__mozWebExtensionPolyfillReject__) { - // Convert back the JSON representation of the error into - // an Error instance. - reject(new Error(reply.message)); - } else { - resolve(reply); - } - }; - - const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => { - if (args.length < metadata.minArgs) { - throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`); - } - - if (args.length > metadata.maxArgs) { - throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`); - } - - return new Promise((resolve, reject) => { - const wrappedCb = wrappedSendMessageCallback.bind(null, { - resolve, - reject - }); - args.push(wrappedCb); - apiNamespaceObj.sendMessage(...args); - }); - }; - - const staticWrappers = { - devtools: { - network: { - onRequestFinished: wrapEvent(onRequestFinishedWrappers) - } - }, - runtime: { - onMessage: wrapEvent(onMessageWrappers), - onMessageExternal: wrapEvent(onMessageWrappers), - sendMessage: wrappedSendMessage.bind(null, "sendMessage", { - minArgs: 1, - maxArgs: 3 - }) - }, - tabs: { - sendMessage: wrappedSendMessage.bind(null, "sendMessage", { - minArgs: 2, - maxArgs: 3 - }) - } - }; - const settingMetadata = { - clear: { - minArgs: 1, - maxArgs: 1 - }, - get: { - minArgs: 1, - maxArgs: 1 - }, - set: { - minArgs: 1, - maxArgs: 1 - } - }; - apiMetadata.privacy = { - network: { - "*": settingMetadata - }, - services: { - "*": settingMetadata - }, - websites: { - "*": settingMetadata - } - }; - return wrapObject(extensionAPIs, staticWrappers, apiMetadata); - }; // The build process adds a UMD wrapper around this file, which makes the - // `module` variable available. - - - module.exports = wrapAPIs(chrome); - } else { - module.exports = globalThis.browser; - } -}); -//# sourceMappingURL=browser-polyfill.js.map From 3f7a8a463be8faf7bccf8424484a866829e04def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 29 May 2024 10:35:16 +0200 Subject: [PATCH 23/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .metalint/eslint.config.js | 18 +- .metalint/eslint_browser.config.js | 5 +- .metalint/eslint_config.config.js | 3 + .metalint/eslint_node.config.js | 13 +- .metalint/eslint_test.config.js | 3 + .metalint/eslint_webext.config.js | 3 + .metalint/markdownlint.config.js | 14 +- .metalint/metalint.config.js | 3 + .metalint/prettier.config.js | 4 +- .metalint/prettier_css.config.js | 3 + .metalint/prettier_javascript.config.js | 3 + .metalint/prettier_tpl.config.js | 3 + .metalint/stylelint.config.js | 3 + README.md | 29 +- package-lock.json | 2610 ++++++++--------- package.json | 38 +- .../examples/preact/helloworld/helloworld.js | 4 +- .../examples/react/tictactoe/tictactoe.js | 6 +- src/scraper/tools/filter/filter.js | 14 +- 22 files changed, 1286 insertions(+), 1502 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index e7f4ece..f26f6d2 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +buy_me_a_coffee: regseb custom: https://www.paypal.me/sebastienregne diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e3c72cc..257075f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.11.0 -->: -- Browser version<!-- e.g. Chrome 122.0.6261.94, Firefox 123.0 -->: +- Gout extension version<!-- e.g. 0.12.0 -->: +- Browser version<!-- e.g. Chrome 125.0.6422.112, Firefox 126.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index eada9e2..f2d214f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.11.0 -->: -- Browser version<!-- e.g. Chrome 122.0.6261.94, Firefox 123.0 -->: +- Gout extension version<!-- e.g. 0.12.0 -->: +- Browser version<!-- e.g. Chrome 125.0.6422.112, Firefox 126.0 -->: ### Additional context diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index f680e40..a6269f8 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { plugins: [ "array-func", @@ -242,7 +245,6 @@ export default { "ForInStatement", "LabeledStatement", "SequenceExpression", - "TaggedTemplateExpression", "WithStatement", "YieldExpression", "JSXIdentifier", @@ -642,11 +644,13 @@ export default { "regexp/sort-character-class-elements": "error", "regexp/sort-flags": "error", "regexp/unicode-escape": "error", + "regexp/unicode-property": "error", // Plugin eslint-plugin-unicorn. "unicorn/better-regex": "error", "unicorn/catch-error-name": ["error", { ignore: [/^err$/u, /^e$/u] }], "unicorn/consistent-destructuring": "error", + "unicorn/consistent-empty-array-spread": "error", "unicorn/consistent-function-scoping": "error", "unicorn/custom-error-definition": "error", // Laisser Prettier gérer cette règle. @@ -659,21 +663,25 @@ export default { "unicorn/import-style": "error", "unicorn/new-for-builtins": "error", "unicorn/no-abusive-eslint-disable": "error", + "unicorn/no-anonymous-default-export": "error", "unicorn/no-array-callback-reference": "off", "unicorn/no-array-for-each": "off", "unicorn/no-array-method-this-argument": "error", "unicorn/no-array-push-push": "error", "unicorn/no-array-reduce": "off", "unicorn/no-await-expression-member": "error", + "unicorn/no-await-in-promise-methods": "error", "unicorn/no-console-spaces": "error", "unicorn/no-document-cookie": "error", "unicorn/no-empty-file": "error", "unicorn/no-for-loop": "error", "unicorn/no-hex-escape": "error", "unicorn/no-instanceof-array": "error", + "unicorn/no-invalid-fetch-options": "error", "unicorn/no-invalid-remove-event-listener": "error", "unicorn/no-keyword-prefix": "error", "unicorn/no-lonely-if": "error", + "unicorn/no-magic-array-flat-depth": "error", // Utiliser la règle no-negated-condition d'ESLint, car celle d'unicorn // apporte seulement la correction automatique. "unicorn/no-negated-condition": "off", @@ -683,6 +691,7 @@ export default { "unicorn/no-null": "error", "unicorn/no-object-as-default-parameter": "error", "unicorn/no-process-exit": "error", + "unicorn/no-single-promise-in-promise-methods": "error", "unicorn/no-static-only-class": "error", "unicorn/no-thenable": "error", "unicorn/no-this-assignment": "error", @@ -732,7 +741,8 @@ export default { "unicorn/prefer-module": "error", "unicorn/prefer-native-coercion-functions": "error", "unicorn/prefer-negative-index": "error", - "unicorn/prefer-node-protocol": "error", + // Désactiver cette règle et préférer la règle "n/prefer-node-protocol". + "unicorn/prefer-node-protocol": "off", "unicorn/prefer-number-properties": "error", "unicorn/prefer-object-from-entries": "error", "unicorn/prefer-optional-catch-binding": "error", @@ -743,10 +753,12 @@ export default { "unicorn/prefer-set-has": "error", "unicorn/prefer-set-size": "error", "unicorn/prefer-spread": "off", + "unicorn/prefer-string-raw": "error", "unicorn/prefer-string-replace-all": "error", "unicorn/prefer-string-slice": "error", "unicorn/prefer-string-starts-ends-with": "error", "unicorn/prefer-string-trim-start-end": "error", + "unicorn/prefer-structured-clone": "error", "unicorn/prefer-switch": "off", "unicorn/prefer-ternary": "off", "unicorn/prefer-top-level-await": "error", @@ -800,7 +812,7 @@ export default { var: "member", arg: "param", argument: "param", - prop: "property", + property: "prop", return: "returns", exception: "throws", yield: "yields", diff --git a/.metalint/eslint_browser.config.js b/.metalint/eslint_browser.config.js index 0b8efee..0e28ff2 100644 --- a/.metalint/eslint_browser.config.js +++ b/.metalint/eslint_browser.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { env: { browser: true, @@ -15,7 +18,7 @@ export default { "import/no-unresolved": [ "error", { - ignore: ["^https://esm\\.sh/"], + ignore: [String.raw`^https://esm\.sh/`], caseSensitiveStrict: true, }, ], diff --git a/.metalint/eslint_config.config.js b/.metalint/eslint_config.config.js index 7e2e711..e9bb255 100644 --- a/.metalint/eslint_config.config.js +++ b/.metalint/eslint_config.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { rules: { // Plugin eslint-plugin-unicorn. diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index 132abd6..3a4b04a 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { rules: { // Suggestions. @@ -38,6 +41,7 @@ export default { // Plugin eslint-plugin-n. // Possible Errors. "n/handle-callback-err": "error", + "n/hashbang": "error", "n/no-callback-literal": "error", "n/no-exports-assign": "error", "n/no-extraneous-import": "error", @@ -51,15 +55,9 @@ export default { "n/no-unpublished-import": "off", "n/no-unpublished-require": "error", "n/no-unsupported-features/es-builtins": "error", - "n/no-unsupported-features/es-syntax": [ - "error", - { - ignores: ["dynamicImport", "modules"], - }, - ], + "n/no-unsupported-features/es-syntax": "error", "n/no-unsupported-features/node-builtins": "error", "n/process-exit-as-throw": "error", - "n/shebang": "error", // Best Practices. "n/no-deprecated-api": "error", @@ -86,6 +84,7 @@ export default { "n/prefer-global/text-encoder": "off", "n/prefer-global/url-search-params": "off", "n/prefer-global/url": "off", + "n/prefer-node-protocol": "error", "n/prefer-promises/dns": "error", "n/prefer-promises/fs": "error", diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index 5f15980..3d6761c 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { env: { browser: true, diff --git a/.metalint/eslint_webext.config.js b/.metalint/eslint_webext.config.js index 459bd38..ba4ba06 100644 --- a/.metalint/eslint_webext.config.js +++ b/.metalint/eslint_webext.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("eslint").Linter.Config} + */ export default { env: { browser: true, diff --git a/.metalint/markdownlint.config.js b/.metalint/markdownlint.config.js index a28fe1d..747e003 100644 --- a/.metalint/markdownlint.config.js +++ b/.metalint/markdownlint.config.js @@ -46,13 +46,13 @@ export default { "fenced-code-language": { // eslint-disable-next-line camelcase allowed_languages: [ - "CSS", - "HTML", - "JavaScript", - "JSON", - "Markdown", - "Shell", - "YAML", + "css", + "html", + "javascript", + "json", + "markdown", + "shell", + "yaml", ], // eslint-disable-next-line camelcase language_only: true, diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 97e1f69..584e0b7 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("metalint/types").Config} + */ export default { patterns: [ "**", diff --git a/.metalint/prettier.config.js b/.metalint/prettier.config.js index a22cc6f..1f4d3bb 100644 --- a/.metalint/prettier.config.js +++ b/.metalint/prettier.config.js @@ -4,9 +4,11 @@ * @author Sébastien Règne */ -// @ts-ignore https://github.com/prettier/plugin-xml/issues/671 import pluginXML from "@prettier/plugin-xml"; +/** + * @type {import("prettier").Config} + */ export default { plugins: [pluginXML], diff --git a/.metalint/prettier_css.config.js b/.metalint/prettier_css.config.js index 449047e..6a7ba63 100644 --- a/.metalint/prettier_css.config.js +++ b/.metalint/prettier_css.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("prettier").Config} + */ export default { tabWidth: 4, }; diff --git a/.metalint/prettier_javascript.config.js b/.metalint/prettier_javascript.config.js index 449047e..6a7ba63 100644 --- a/.metalint/prettier_javascript.config.js +++ b/.metalint/prettier_javascript.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("prettier").Config} + */ export default { tabWidth: 4, }; diff --git a/.metalint/prettier_tpl.config.js b/.metalint/prettier_tpl.config.js index 0921006..ba258d3 100644 --- a/.metalint/prettier_tpl.config.js +++ b/.metalint/prettier_tpl.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("prettier").Config} + */ export default { parser: "html", }; diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index 4486a97..f47058c 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -4,6 +4,9 @@ * @author Sébastien Règne */ +/** + * @type {import("stylelint").Config} + */ export default { plugins: ["stylelint-order"], diff --git a/README.md b/README.md index 1ed2996..7526f8c 100644 --- a/README.md +++ b/README.md @@ -24,19 +24,28 @@ moteur de rendu de Gout : Voici un exemple de dashboard ayant quatre colonnes de widgets. -```HTML -<!DOCTYPE html> +```html +<!doctype html> <html lang="fr-FR"> <head> - <meta charset="utf-8"> - <link href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" - rel="shortcut icon"> + <meta charset="utf-8" /> + <link + href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" + rel="shortcut icon" + /> <title>Gout</title> - <script src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" - type="module"></script> + <script + src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" + type="module" + ></script> <style> - body { display: flex; } - div { display: flex; flex-direction: column; } + body { + display: flex; + } + div { + display: flex; + flex-direction: column; + } </style> </head> <body> @@ -192,7 +201,7 @@ d'outils du navigateur). Actualisez la page pour voir apparaitre les widgets. [img-firefox]: https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=whitesmoke [img-build]: https://img.shields.io/github/actions/workflow/status/regseb/gout/ci.yml?branch=main&logo=github&logoColor=whitesmoke -[img-coverage]: https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain&logo=stryker&logoColor=whitesmoke +[img-coverage]: https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain [link-firefox]: https://addons.mozilla.org/addon/gout/ [link-build]: https://github.com/regseb/gout/actions/workflows/ci.yml?query=branch%3Amain [link-coverage]: https://dashboard.stryker-mutator.io/reports/github.com/regseb/gout/main diff --git a/package-lock.json b/package-lock.json index 679ae2d..8b593bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,49 +7,47 @@ "": { "name": "gout", "version": "0.11.0", - "hasInstallScript": true, + "funding": [ + "https://buymeacoffee.com/regseb", + "https://www.paypal.me/sebastienregne" + ], "license": "MIT", - "dependencies": { - "webextension-polyfill": "0.10.0" - }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.3.1", + "@prettier/plugin-xml": "3.4.1", "@stryker-mutator/core": "8.2.6", "@stryker-mutator/mocha-runner": "8.2.6", + "@types/eslint": "8.56.10", "@types/mocha": "10.0.6", - "addons-linter": "6.23.0", + "addons-linter": "6.28.0", "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.0", - "eslint-plugin-mocha": "10.3.0", - "eslint-plugin-n": "16.6.2", + "eslint-plugin-jsdoc": "48.2.6", + "eslint-plugin-mocha": "10.4.3", + "eslint-plugin-n": "17.7.0", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "2.2.0", - "eslint-plugin-unicorn": "51.0.1", + "eslint-plugin-promise": "6.2.0", + "eslint-plugin-regexp": "2.6.0", + "eslint-plugin-unicorn": "53.0.0", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.33.0", - "metalint": "0.15.0", - "mocha": "10.3.0", + "markdownlint": "0.34.0", + "metalint": "0.17.0", + "mocha": "10.4.0", "npm-package-json-lint": "7.1.0", "prettier": "3.2.5", - "purgecss": "5.0.0", - "stylelint": "16.2.1", + "purgecss": "6.0.0", + "stylelint": "16.6.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.11", - "typescript": "5.3.3", - "web-ext": "7.11.0", + "typedoc": "0.25.13", + "typescript": "5.4.5", + "web-ext": "8.0.0", "yaml-lint": "1.7.0" }, "engines": { "node": ">=20.6.0" - }, - "funding": { - "url": "https://www.paypal.me/sebastienregne" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -451,10 +449,11 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -696,12 +695,13 @@ } }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dev": true, + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -781,9 +781,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", - "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", "dev": true, "funding": [ { @@ -795,17 +795,18 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", - "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", "dev": true, "funding": [ { @@ -817,14 +818,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", - "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", "dev": true, "funding": [ { @@ -836,18 +838,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", - "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", "dev": true, "funding": [ { @@ -859,6 +862,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": "^14 || ^16 || >=18" }, @@ -867,13 +871,14 @@ } }, "node_modules/@devicefarmer/adbkit": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-3.2.3.tgz", - "integrity": "sha512-wK9rVrabs4QU0oK8Jnwi+HRBEm+s1x/o63kgthUe0y7K1bfcYmgLuQf41/adsj/5enddlSxzkJavl2EwOu+r1g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-3.2.6.tgz", + "integrity": "sha512-8lO1hSeTgtxcOHhp4tTWq/JaOysp5KNbbyFoxNEBnwkCDZu/Bji3ZfOaG++Riv9jN6c9bgdLBOZqJTC5VJPRKQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@devicefarmer/adbkit-logcat": "^2.1.2", - "@devicefarmer/adbkit-monkey": "~1.2.0", + "@devicefarmer/adbkit-monkey": "~1.2.1", "bluebird": "~3.7", "commander": "^9.1.0", "debug": "~4.3.1", @@ -892,6 +897,7 @@ "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.3.tgz", "integrity": "sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 4" } @@ -901,6 +907,7 @@ "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-monkey/-/adbkit-monkey-1.2.1.tgz", "integrity": "sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.10.4" } @@ -910,16 +917,32 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz", - "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", + "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", "dev": true, + "license": "MIT", "dependencies": { + "@types/eslint": "^8.56.5", + "@types/estree": "^1.0.5", + "@typescript-eslint/types": "^7.2.0", "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" @@ -1277,10 +1300,11 @@ } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.11.tgz", - "integrity": "sha512-4o1ZaGmvqoDx3QLyEAcZvGDKmdVXLB0aiANuPDumgue/7iH67KUBsKejLX7wrdxEdyNYfXUKtjFQYhGwVUBXGw==", - "dev": true + "version": "5.5.29", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.29.tgz", + "integrity": "sha512-NHdG3QOiAsxh8ygBSKMa/WaNJwpNt87uVqW+S2RlnSqgeRdk+L3foNWTX6qd0I3NHSlCFb47rgopeNCJtRDY5A==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1388,10 +1412,11 @@ } }, "node_modules/@prettier/plugin-xml": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.3.1.tgz", - "integrity": "sha512-kllNJk6n2pXJjGWdj+HAr1GhOoOTrlmeWkDYCGBzkyZS2l0K6h2gsUQcVif2cNqAE1MNC+nUrzN6QwEsCukPnQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.4.1.tgz", + "integrity": "sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==", "dev": true, + "license": "MIT", "dependencies": { "@xml-tools/parser": "^1.0.11" }, @@ -1525,12 +1550,35 @@ "node": ">=14.16" } }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -1579,6 +1627,20 @@ "@types/node": "*" } }, + "node_modules/@typescript-eslint/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", + "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -1628,16 +1690,17 @@ } }, "node_modules/addons-linter": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.23.0.tgz", - "integrity": "sha512-yFI1fe/c0hkgcWwq6MerWAcDU/CG/NKzQlWxgjQDruMOezs0vyD2fCzapNZt2vxsyNLuDp54q9gNL/85ypYZ/g==", + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.28.0.tgz", + "integrity": "sha512-fCTjXL/yG4hwq74JG8tQdrvEu0OvGrEN9yU+Df0020RDtHl3g/tTCyMeC4G1uyk8IuyMzp4myCBNnOGC7MWSQQ==", "dev": true, + "license": "MPL-2.0", "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.11", + "@mdn/browser-compat-data": "5.5.29", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.9.0", - "ajv": "8.12.0", + "addons-scanner-utils": "9.10.1", + "ajv": "8.13.0", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", @@ -1649,22 +1712,21 @@ "espree": "10.0.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "10.3.10", + "glob": "10.4.1", "image-size": "1.1.1", "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", - "pino": "8.19.0", - "postcss": "8.4.35", + "pino": "8.20.0", "relaxed-json": "1.0.3", - "semver": "7.6.0", + "semver": "7.6.2", "sha.js": "2.4.11", "source-map-support": "0.5.21", "tosource": "1.0.0", "upath": "2.0.1", "yargs": "17.7.2", - "yauzl": "3.1.0" + "yauzl": "2.10.0" }, "bin": { "addons-linter": "bin/addons-linter" @@ -1673,6 +1735,57 @@ "node": ">=16.0.0" } }, + "node_modules/addons-linter/node_modules/addons-scanner-utils": { + "version": "9.10.1", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.10.1.tgz", + "integrity": "sha512-Tz9OUQx9Ja0TyQ+H2GakB9KlJ50myI6ESBGRlA8N80nHBzMjjPRFGm0APADSaCd5NP74SrFtEvL4TRpDwZXETA==", + "dev": true, + "dependencies": { + "@types/yauzl": "2.10.3", + "common-tags": "1.8.2", + "first-chunk-stream": "3.0.0", + "strip-bom-stream": "4.0.0", + "upath": "2.0.1", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "body-parser": "1.20.2", + "express": "4.18.3", + "node-fetch": "2.6.11", + "safe-compare": "1.1.4" + }, + "peerDependenciesMeta": { + "body-parser": { + "optional": true + }, + "express": { + "optional": true + }, + "node-fetch": { + "optional": true + }, + "safe-compare": { + "optional": true + } + } + }, + "node_modules/addons-linter/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/addons-linter/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1718,29 +1831,58 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/addons-linter/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==", + "node_modules/addons-linter/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/addons-linter/node_modules/yauzl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.0.tgz", - "integrity": "sha512-zbff6SaAPyewVextulqeBjJm+1ZhS69vSN7cRpqVD7jMNSE9oXEdQ1SGF+ydfB+gKE2a3GiWfXf/pnwVZ1/tOA==", + "node_modules/addons-linter/node_modules/jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "buffer-crc32": "~0.2.3", - "pend": "~1.2.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=12" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/addons-moz-compare": { @@ -1749,47 +1891,27 @@ "integrity": "sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==", "dev": true }, - "node_modules/addons-scanner-utils": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.9.0.tgz", - "integrity": "sha512-YDP10U3sEZMuIgnjXMiAYgUU64jTbxmhpUXMlhi1nKO4Etz+ctGWoTUst7IQRoLWaY9y2r1KZDG3jALxLA1n7Q==", + "node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, - "dependencies": { - "@types/yauzl": "2.10.3", - "common-tags": "1.8.2", - "first-chunk-stream": "3.0.0", - "strip-bom-stream": "4.0.0", - "upath": "2.0.1", - "yauzl": "2.10.0" - }, - "peerDependencies": { - "body-parser": "1.20.2", - "express": "4.18.2", - "node-fetch": "2.6.11", - "safe-compare": "1.1.4" - }, - "peerDependenciesMeta": { - "body-parser": { - "optional": true - }, - "express": { - "optional": true - }, - "node-fetch": { - "optional": true - }, - "safe-compare": { - "optional": true - } + "license": "MIT", + "engines": { + "node": ">=6.0" } }, - "node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, "engines": { - "node": ">=6.0" + "node": ">= 14" } }, "node_modules/ajv": { @@ -1910,7 +2032,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", @@ -2078,29 +2201,12 @@ "node": ">=0.10.0" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2111,17 +2217,12 @@ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", "dev": true }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } @@ -2147,21 +2248,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2200,13 +2286,14 @@ "node": ">= 0.8" } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" + "license": "Unlicense", + "engines": { + "node": ">=0.6" } }, "node_modules/binary-extensions": { @@ -2233,7 +2320,8 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", @@ -2366,6 +2454,19 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -2376,12 +2477,13 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2394,9 +2496,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -2412,9 +2514,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -2458,12 +2561,6 @@ "node": "*" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2491,6 +2588,22 @@ "semver": "^7.0.0" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bunyan": { "version": "1.8.15", "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", @@ -2598,9 +2711,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", "dev": true, "funding": [ { @@ -2615,13 +2728,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "5.3.0", @@ -2903,18 +3011,6 @@ "node": ">=8.0.0" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", @@ -3052,24 +3148,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/core-js": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.0.tgz", - "integrity": "sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -3151,10 +3237,11 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12 || >=16" } @@ -3212,23 +3299,12 @@ "node": ">=4" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } @@ -3341,15 +3417,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/deepcopy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-2.1.0.tgz", - "integrity": "sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.8" - } - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -3359,6 +3426,96 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -3395,12 +3552,16 @@ } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -3420,15 +3581,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -3558,30 +3710,12 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.623", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz", - "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==", - "dev": true + "version": "1.4.774", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz", + "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "10.3.0", @@ -3598,6 +3732,20 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -3725,16 +3873,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz", - "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", @@ -4026,19 +4166,19 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.0.tgz", - "integrity": "sha512-O2B1XLBJnUCRkggFzUQ+PBYJDit8iAgXdlu8ucolqGrbmOWPvttZQZX8d1sC0MbqDMSLs8SHSQxaNPRY1RQREg==", + "version": "48.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz", + "integrity": "sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.42.0", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.6.0", + "semver": "^7.6.1", "spdx-expression-parse": "^4.0.0" }, "engines": { @@ -4049,12 +4189,14 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.3.0.tgz", - "integrity": "sha512-IWzbg2K6B1Q7h37Ih4zMyW+nhmw1JvUlHlbCUUUu6PfOOAUGCB0gxmvv7/U+TQQ6e8yHUv+q7KMdIIum4bx+PA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", + "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^3.0.0", + "globals": "^13.24.0", "rambda": "^7.4.0" }, "engines": { @@ -4064,78 +4206,67 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-n": { - "version": "16.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", - "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", + "node_modules/eslint-plugin-mocha/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^13.24.0", - "ignore": "^5.2.4", - "is-builtin-module": "^3.2.1", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-n/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint-plugin-mocha/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==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/eslint-plugin-n": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.7.0.tgz", + "integrity": "sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@eslint-community/eslint-utils": "^4.4.0", + "enhanced-resolve": "^5.15.0", + "eslint-plugin-es-x": "^7.5.0", + "get-tsconfig": "^4.7.0", + "globals": "^15.0.0", + "ignore": "^5.2.4", + "minimatch": "^9.0.0", + "semver": "^7.5.3" }, "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" } }, - "node_modules/eslint-plugin-n/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==", + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.2.0.tgz", + "integrity": "sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4151,22 +4282,27 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", + "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", "dev": true, + "license": "ISC", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.2.0.tgz", - "integrity": "sha512-0kwpiWiLRVBkVr3oIRQLl196sXP/NF6DQFefv9jtR4ZOgQR+6WID2pIZ0I+wIt54qgBPwBB7Gm2a+ueh8/WsFQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.6.0.tgz", + "integrity": "sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.9.1", @@ -4184,17 +4320,18 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "51.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz", - "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==", + "version": "53.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz", + "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "@eslint-community/eslint-utils": "^4.4.0", - "@eslint/eslintrc": "^2.1.4", + "@eslint/eslintrc": "^3.0.2", "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", - "core-js-compat": "^3.34.0", + "core-js-compat": "^3.37.0", "esquery": "^1.5.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", @@ -4203,11 +4340,11 @@ "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", "regjsparser": "^0.10.0", - "semver": "^7.5.4", + "semver": "^7.6.1", "strip-indent": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=18.18" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" @@ -4216,61 +4353,177 @@ "eslint": ">=8.56.0" } }, - "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/eslint-plugin-unicorn/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "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": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint-utils/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==", + "node_modules/eslint-plugin-unicorn/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==", "dev": true, - "engines": { - "node": ">=10" - } - }, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/espree": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.11.3", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-unicorn/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-unicorn/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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==", + "dev": 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-utils/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==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -4501,12 +4754,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -4521,15 +4768,6 @@ "node": ">=4" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4633,6 +4871,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -4690,10 +4929,11 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4718,10 +4958,11 @@ } }, "node_modules/firefox-profile": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.3.2.tgz", - "integrity": "sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.6.0.tgz", + "integrity": "sha512-I9rAm1w8U3CdhgO4EzTJsCvgcbvynZn9lOySkZf78wUdUIQH2w9QOKf3pAX+THt2XMSSR3kJSuM8P7bYux9j8g==", "dev": true, + "license": "MIT", "dependencies": { "adm-zip": "~0.5.x", "fs-extra": "~9.0.1", @@ -4738,6 +4979,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -4753,6 +4995,7 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -4762,6 +5005,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4774,6 +5018,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -4783,6 +5028,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -4820,15 +5066,16 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -4836,6 +5083,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -4870,29 +5118,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/form-data-encoder": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", @@ -4907,6 +5132,7 @@ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dev": true, + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -4934,20 +5160,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5117,15 +5329,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -5164,7 +5367,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/global-dirs": { "version": "3.0.1", @@ -5351,51 +5555,6 @@ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/har-validator/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==", - "dev": true - }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -5762,21 +5921,6 @@ "node": ">=8" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", @@ -5802,6 +5946,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -5844,10 +6002,11 @@ ] }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -6197,6 +6356,41 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -6257,6 +6451,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -6478,12 +6673,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", @@ -6509,10 +6698,11 @@ "dev": true }, "node_modules/jose": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", - "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", + "version": "4.15.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", + "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } @@ -6535,12 +6725,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", @@ -6583,12 +6767,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -6601,12 +6779,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6634,37 +6806,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -6707,27 +6848,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -6747,10 +6867,11 @@ } }, "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", - "dev": true + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", + "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", + "dev": true, + "license": "MIT" }, "node_modules/latest-version": { "version": "7.0.0", @@ -6837,6 +6958,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" } @@ -6878,7 +7000,8 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -6998,30 +7121,32 @@ } }, "node_modules/markdown-it": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", - "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", - "uc.micro": "^2.0.0" + "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdownlint": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz", - "integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", + "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", "dev": true, + "license": "MIT", "dependencies": { - "markdown-it": "14.0.0", - "markdownlint-micromark": "0.1.8" + "markdown-it": "14.1.0", + "markdownlint-micromark": "0.1.9" }, "engines": { "node": ">=18" @@ -7031,12 +7156,13 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz", - "integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", + "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/DavidAnson" @@ -7080,7 +7206,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mem": { "version": "5.1.1", @@ -7159,10 +7286,15 @@ } }, "node_modules/metalint": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.15.0.tgz", - "integrity": "sha512-U4RTfBedIIP1gJp+BLyg+gkwqfRLTFFi9El/2tkKqBgi5dLlUr9FFrj47JrTHNBqSru7DuJYth+PZS/g6zIoRA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.17.0.tgz", + "integrity": "sha512-j76R59x8wfI9y1j80WtAdknJJntysTs5ddaljFMHQL36R2Xkp9CLAUhfPwYhxOeas/Tjde8uW+pdOz2PqhHwMw==", "dev": true, + "funding": [ + "https://buymeacoffee.com/regseb", + "https://www.paypal.me/sebastienregne" + ], + "license": "MIT", "dependencies": { "chalk": "5.3.0", "yargs": "17.7.2" @@ -7172,18 +7304,16 @@ }, "engines": { "node": ">=20.6.0" - }, - "funding": { - "url": "https://www.paypal.me/sebastienregne" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -7202,27 +7332,6 @@ "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -7257,10 +7366,11 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7304,10 +7414,11 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -7325,10 +7436,11 @@ } }, "node_modules/mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", - "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -7623,6 +7735,7 @@ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -7755,6 +7868,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } @@ -7784,6 +7898,7 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -8003,20 +8118,12 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8137,17 +8244,19 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, + "license": "MIT", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8554,26 +8663,28 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } @@ -8593,17 +8704,12 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -8618,15 +8724,16 @@ } }, "node_modules/pino": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", - "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.20.0.tgz", + "integrity": "sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", + "pino-abstract-transport": "^1.1.0", "pino-std-serializers": "^6.0.0", "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", @@ -8752,9 +8859,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -8770,10 +8877,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -8812,10 +8920,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -8911,12 +9020,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -8941,6 +9044,7 @@ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8961,13 +9065,14 @@ } }, "node_modules/purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", - "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz", + "integrity": "sha512-s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==", "dev": true, + "license": "MIT", "dependencies": { - "commander": "^9.0.0", - "glob": "^8.0.3", + "commander": "^12.0.0", + "glob": "^10.3.10", "postcss": "^8.4.4", "postcss-selector-parser": "^6.0.7" }, @@ -8975,46 +9080,6 @@ "purgecss": "bin/purgecss.js" } }, - "node_modules/purgecss/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/purgecss/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/purgecss/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -9303,10 +9368,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" }, "node_modules/regexp-ast-analysis": { "version": "0.7.1", @@ -9494,57 +9560,6 @@ "node": ">=4" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9741,6 +9756,138 @@ "node": "*" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/run-async": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", @@ -9843,10 +9990,11 @@ "dev": true }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" }, "node_modules/scslre": { "version": "0.3.0", @@ -9875,13 +10023,11 @@ "dev": true }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9904,24 +10050,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -10038,24 +10166,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sign-addon": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.3.0.tgz", - "integrity": "sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==", - "dev": true, - "dependencies": { - "common-tags": "1.8.2", - "core-js": "3.29.0", - "deepcopy": "2.1.0", - "es6-error": "4.1.1", - "es6-promisify": "7.0.0", - "jsonwebtoken": "9.0.0", - "mz": "2.7.0", - "request": "2.88.2", - "source-map-support": "0.5.21", - "stream-to-promise": "3.0.0" - } - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -10082,6 +10192,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -10113,10 +10224,11 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -10198,6 +10310,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -10214,54 +10327,6 @@ "node": ">= 10.x" } }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-to-array": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", - "dev": true, - "dependencies": { - "any-promise": "^1.1.0" - } - }, - "node_modules/stream-to-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-3.0.0.tgz", - "integrity": "sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==", - "dev": true, - "dependencies": { - "any-promise": "~1.3.0", - "end-of-stream": "~1.4.1", - "stream-to-array": "~2.3.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -10487,48 +10552,60 @@ } }, "node_modules/stylelint": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz", - "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.1.tgz", + "integrity": "sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3", - "@csstools/media-query-list-parser": "^2.1.7", - "@csstools/selector-specificity": "^3.0.1", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11", + "@csstools/selector-specificity": "^3.1.1", + "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.1", + "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^9.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.0", + "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.29.0", + "known-css-properties": "^0.31.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.1.0", - "micromatch": "^4.0.5", + "meow": "^13.2.0", + "micromatch": "^4.0.7", "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.33", + "picocolors": "^1.0.1", + "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^6.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", + "table": "^6.8.2", "write-file-atomic": "^5.0.1" }, "bin": { @@ -10536,10 +10613,6 @@ }, "engines": { "node": ">=18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" } }, "node_modules/stylelint-order": { @@ -10616,29 +10689,30 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", + "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^5.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", - "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4", - "rimraf": "^5.0.5" + "flatted": "^3.3.1", + "keyv": "^4.5.4" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/stylelint/node_modules/glob-parent": { @@ -10654,10 +10728,11 @@ } }, "node_modules/stylelint/node_modules/meow": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", - "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -10674,24 +10749,6 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/stylelint/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -10766,10 +10823,11 @@ "dev": true }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -10781,6 +10839,16 @@ "node": ">=10.0.0" } }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -10792,6 +10860,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -10801,6 +10870,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -10821,7 +10891,21 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/tmp": { "version": "0.0.33", @@ -10849,6 +10933,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -10865,19 +10950,6 @@ "node": ">=0.4.0" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -10941,24 +11013,6 @@ "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10971,15 +11025,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -11093,10 +11138,11 @@ } }, "node_modules/typedoc": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.11.tgz", - "integrity": "sha512-5MbI1W/FOG6oXsd8bdssQidSTeKh8Kt3xA5uKVzI+K99uzP8EGN45uPnPvQesyaWdD+89s4wCQdtWEd8QUbiRg==", + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", @@ -11110,14 +11156,15 @@ "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11127,10 +11174,11 @@ } }, "node_modules/uc.micro": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz", - "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" }, "node_modules/unbox-primitive": { "version": "1.0.2", @@ -11195,6 +11243,16 @@ "node": ">= 4.0.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -11325,20 +11383,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", @@ -11352,10 +11396,11 @@ "dev": true }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -11380,169 +11425,66 @@ "dev": true }, "node_modules/web-ext": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.11.0.tgz", - "integrity": "sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.0.0.tgz", + "integrity": "sha512-fcE6woJOHRAzGRTlHwcltEirOV+R3aLE/Yl+yoBbvHonJRnOcthaW1wjqlXc+iJu5rXqwd3yICLbLUndQlbCRQ==", "dev": true, + "license": "MPL-2.0", "dependencies": { - "@babel/runtime": "7.21.0", - "@devicefarmer/adbkit": "3.2.3", - "addons-linter": "6.21.0", + "@babel/runtime": "7.24.6", + "@devicefarmer/adbkit": "3.2.6", + "addons-linter": "6.28.0", "bunyan": "1.8.15", - "camelcase": "7.0.1", + "camelcase": "8.0.0", "chrome-launcher": "0.15.1", "debounce": "1.2.1", "decamelize": "6.0.0", "es6-error": "4.1.1", - "firefox-profile": "4.3.2", - "fs-extra": "11.1.0", + "firefox-profile": "4.6.0", + "fs-extra": "11.2.0", "fx-runner": "1.4.0", - "import-fresh": "3.3.0", - "jose": "4.13.1", + "https-proxy-agent": "^7.0.0", + "jose": "4.15.5", + "jszip": "3.10.1", "mkdirp": "1.0.4", "multimatch": "6.0.0", "mz": "2.7.0", - "node-fetch": "3.3.1", + "node-fetch": "3.3.2", "node-notifier": "10.0.1", - "open": "8.4.2", - "parse-json": "6.0.2", + "open": "9.1.0", + "parse-json": "7.1.1", "promise-toolbox": "0.21.0", - "sign-addon": "5.3.0", "source-map-support": "0.5.21", "strip-bom": "5.0.0", - "strip-json-comments": "5.0.0", - "tmp": "0.2.1", + "strip-json-comments": "5.0.1", + "tmp": "0.2.3", "update-notifier": "6.0.2", - "watchpack": "2.4.0", - "ws": "8.13.0", - "yargs": "17.7.1", + "watchpack": "2.4.1", + "ws": "8.17.0", + "yargs": "17.7.2", "zip-dir": "2.0.0" }, "bin": { "web-ext": "bin/web-ext.js" }, "engines": { - "node": ">=14.0.0", - "npm": ">=6.9.0" - } - }, - "node_modules/web-ext/node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { - "version": "5.5.7", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.7.tgz", - "integrity": "sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==", - "dev": true - }, - "node_modules/web-ext/node_modules/addons-linter": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.21.0.tgz", - "integrity": "sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==", - "dev": true, - "dependencies": { - "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.7", - "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.9.0", - "ajv": "8.12.0", - "chalk": "4.1.2", - "cheerio": "1.0.0-rc.12", - "columnify": "1.6.0", - "common-tags": "1.8.2", - "deepmerge": "4.3.1", - "eslint": "8.56.0", - "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "3.4.3", - "espree": "9.6.1", - "esprima": "4.0.1", - "fast-json-patch": "3.1.1", - "glob": "10.3.10", - "image-size": "1.1.1", - "is-mergeable-object": "1.1.1", - "jed": "1.1.1", - "json-merge-patch": "1.0.2", - "os-locale": "5.0.0", - "pino": "8.17.2", - "postcss": "8.4.33", - "relaxed-json": "1.0.3", - "semver": "7.5.4", - "sha.js": "2.4.11", - "source-map-support": "0.5.21", - "tosource": "1.0.0", - "upath": "2.0.1", - "yargs": "17.7.2", - "yauzl": "2.10.0" - }, - "bin": { - "addons-linter": "bin/addons-linter" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/web-ext/node_modules/addons-linter/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/web-ext/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=18.0.0", + "npm": ">=8.0.0" } }, "node_modules/web-ext/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": 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/web-ext/node_modules/decamelize": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", @@ -11555,82 +11497,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/web-ext/node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/web-ext/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11640,32 +11512,22 @@ "node": ">=14.14" } }, - "node_modules/web-ext/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/web-ext/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/web-ext/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==", - "dev": true - }, "node_modules/web-ext/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -11678,34 +11540,11 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/web-ext/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/web-ext/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/web-ext/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11719,10 +11558,11 @@ } }, "node_modules/web-ext/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -11737,88 +11577,25 @@ } }, "node_modules/web-ext/node_modules/parse-json": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz", - "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.0", + "@babel/code-frame": "^7.21.4", "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^2.3.1", - "lines-and-columns": "^2.0.2" + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/pino": { - "version": "8.17.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.17.2.tgz", - "integrity": "sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/web-ext/node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/web-ext/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/web-ext/node_modules/strip-bom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", @@ -11832,10 +11609,11 @@ } }, "node_modules/web-ext/node_modules/strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11843,37 +11621,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/web-ext/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8.17.0" + "node": ">=14.14" } }, "node_modules/web-ext/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==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11884,57 +11649,21 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/web-ext/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/web-ext/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/web-ext/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, - "node_modules/webextension-polyfill": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", - "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -12160,10 +11889,11 @@ } }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -12203,6 +11933,7 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -12216,6 +11947,7 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } diff --git a/package.json b/package.json index b59b739..1b0458f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,10 @@ }, "license": "MIT", "author": "Sébastien Règne <regseb@gmail.com> (https://github.com/regseb)", - "funding": "https://www.paypal.me/sebastienregne", + "funding": [ + "https://buymeacoffee.com/regseb", + "https://www.paypal.me/sebastienregne" + ], "repository": "regseb/gout", "type": "module", "scripts": { @@ -39,35 +42,36 @@ }, "devDependencies": { "@prantlf/jsonlint": "14.0.3", - "@prettier/plugin-xml": "3.3.1", + "@prettier/plugin-xml": "3.4.1", "@stryker-mutator/core": "8.2.6", "@stryker-mutator/mocha-runner": "8.2.6", + "@types/eslint": "8.56.10", "@types/mocha": "10.0.6", - "addons-linter": "6.23.0", + "addons-linter": "6.28.0", "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.0", - "eslint-plugin-mocha": "10.3.0", - "eslint-plugin-n": "16.6.2", + "eslint-plugin-jsdoc": "48.2.6", + "eslint-plugin-mocha": "10.4.3", + "eslint-plugin-n": "17.7.0", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-regexp": "2.2.0", - "eslint-plugin-unicorn": "51.0.1", + "eslint-plugin-promise": "6.2.0", + "eslint-plugin-regexp": "2.6.0", + "eslint-plugin-unicorn": "53.0.0", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.33.0", - "metalint": "0.15.0", - "mocha": "10.3.0", + "markdownlint": "0.34.0", + "metalint": "0.17.0", + "mocha": "10.4.0", "npm-package-json-lint": "7.1.0", "prettier": "3.2.5", - "purgecss": "5.0.0", - "stylelint": "16.2.1", + "purgecss": "6.0.0", + "stylelint": "16.6.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.11", - "typescript": "5.3.3", - "web-ext": "7.11.0", + "typedoc": "0.25.13", + "typescript": "5.4.5", + "web-ext": "8.0.0", "yaml-lint": "1.7.0" }, "engines": { diff --git a/src/module/examples/preact/helloworld/helloworld.js b/src/module/examples/preact/helloworld/helloworld.js index 24ffd23..15494fb 100644 --- a/src/module/examples/preact/helloworld/helloworld.js +++ b/src/module/examples/preact/helloworld/helloworld.js @@ -4,10 +4,10 @@ * @author Sébastien Règne */ -/* eslint-disable max-classes-per-file, no-restricted-syntax */ +/* eslint-disable max-classes-per-file */ import htm from "https://esm.sh/htm@3.1.1"; -import { Component, h, render } from "https://esm.sh/preact@10.19.6"; +import { Component, h, render } from "https://esm.sh/preact@10.22.0"; // Initialize htm with Preact const html = htm.bind(h); diff --git a/src/module/examples/react/tictactoe/tictactoe.js b/src/module/examples/react/tictactoe/tictactoe.js index 4475b54..e4d7c66 100644 --- a/src/module/examples/react/tictactoe/tictactoe.js +++ b/src/module/examples/react/tictactoe/tictactoe.js @@ -4,11 +4,9 @@ * @author Sébastien Règne */ -/* eslint-disable no-restricted-syntax */ - import { html } from "https://esm.sh/htm@3.1.1/react"; -import { createRoot } from "https://esm.sh/react-dom@18.2.0"; -import { useState } from "https://esm.sh/react@18.2.0"; +import { createRoot } from "https://esm.sh/react-dom@18.3.1"; +import { useState } from "https://esm.sh/react@18.3.1"; const calculateWinner = (squares) => { const lines = [ diff --git a/src/scraper/tools/filter/filter.js b/src/scraper/tools/filter/filter.js index 64fb251..bd31ab6 100644 --- a/src/scraper/tools/filter/filter.js +++ b/src/scraper/tools/filter/filter.js @@ -14,7 +14,7 @@ * @see https://developer.mozilla.org/Web/JavaScript/Guide/Regular_expressions */ const quote = function (pattern) { - return pattern.replaceAll(/[$()*+.?[\\\]^{|}]/gu, "\\$&"); + return pattern.replaceAll(/[$()*+.?[\\\]^{|}]/gu, String.raw`\$&`); }; const GENERIC_OP = { @@ -38,20 +38,20 @@ const NUMBER_OP = { }; const STRING_PATTERN = new RegExp( - "^\\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\\s*" + + String.raw`^\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\s*` + "(?<op>(?:" + Object.keys(STRING_OP).map(quote).join("|") + - "))\\s*" + - "'(?<val>.*)'\\s*$", + String.raw`))\s*` + + String.raw`'(?<val>.*)'\s*$`, "u", ); const NUMBER_PATTERN = new RegExp( - "^\\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\\s*" + + String.raw`^\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\s*` + "(?<op>(?:" + Object.keys(NUMBER_OP).map(quote).join("|") + - "))\\s*" + - "(?<val>[0-9]+)\\s*$", + String.raw`))\s*` + + String.raw`(?<val>[0-9]+)\s*$`, "u", ); From 20c55a51eb3e6d2cdbc7dbaab9b2819176f09cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Wed, 29 May 2024 10:50:20 +0200 Subject: [PATCH 24/38] =?UTF-8?q?fix:=20G=C3=A9rer=20la=20release=20avec?= =?UTF-8?q?=20deux=20extensions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 3 ++- .release-please/config.json | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 97896d6..12ca67c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,7 +51,8 @@ jobs: CHANGELOG.md package.json package-lock.json - src/extension/manifest.json + src/extension/chromium/manifest.json + src/extension/firefox/manifest.json - name: Commit and push if: ${{ steps.release.outputs.pr }} diff --git a/.release-please/config.json b/.release-please/config.json index 9656e8b..1ce3442 100644 --- a/.release-please/config.json +++ b/.release-please/config.json @@ -1,7 +1,10 @@ { "release-type": "node", "include-component-in-tag": false, - "extra-files": ["src/extension/manifest.json"], + "extra-files": [ + "src/extension/chromium/manifest.json", + "src/extension/firefox/manifest.json" + ], "packages": { ".": {} } From e17e8311351226f37f9d1057a9dead2e65e6d1fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 May 2024 10:53:02 +0200 Subject: [PATCH 25/38] chore(main): release 0.12.0 (#18) --- .release-please/manifest.json | 2 +- CHANGELOG.md | 11 +++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/chromium/manifest.json | 2 +- src/extension/firefox/manifest.json | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.release-please/manifest.json b/.release-please/manifest.json index 0051aa3..aafbabb 100644 --- a/.release-please/manifest.json +++ b/.release-please/manifest.json @@ -1 +1 @@ -{ ".": "0.11.0" } +{ ".": "0.12.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a995b5..f42a421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [0.12.0](https://github.com/regseb/gout/compare/v0.11.0...v0.12.0) (2024-05-29) + +### Features + +- Fournir une extension pour Chromium. ([b1cec7e](https://github.com/regseb/gout/commit/b1cec7e8bd92fb3f27e2f6689076e7dd4c1fc662)) +- Utiliser YAML pour les configurations. ([91b03ee](https://github.com/regseb/gout/commit/91b03eed5cbc4e8d5697863ddadd7792634f67b6)) + +### Bug Fixes + +- Gérer la release avec deux extensions. ([20c55a5](https://github.com/regseb/gout/commit/20c55a51eb3e6d2cdbc7dbaab9b2819176f09cf1)) + ## [0.11.0](https://github.com/regseb/gout/compare/v0.10.0...v0.11.0) (2024-03-07) ### Features diff --git a/package-lock.json b/package-lock.json index 8b593bc..398d0ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.11.0", + "version": "0.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.11.0", + "version": "0.12.0", "funding": [ "https://buymeacoffee.com/regseb", "https://www.paypal.me/sebastienregne" diff --git a/package.json b/package.json index 1b0458f..11b0804 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.11.0", + "version": "0.12.0", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json index 60bb78f..766ea2f 100644 --- a/src/extension/chromium/manifest.json +++ b/src/extension/chromium/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 3, "name": "Gout", - "version": "0.11.0", + "version": "0.12.0", "action": { "default_icon": { "16": "img/icon16.png", diff --git a/src/extension/firefox/manifest.json b/src/extension/firefox/manifest.json index 6fd656f..f6e8f87 100644 --- a/src/extension/firefox/manifest.json +++ b/src/extension/firefox/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.11.0", + "version": "0.12.0", "browser_action": { "default_icon": { "16": "img/icon16.png", From cc9c871d4a854d62787c6133a4d158ac49be1b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sun, 11 Aug 2024 14:22:53 +0200 Subject: [PATCH 26/38] fix: Corriger les exemples. --- README.md | 21 +++++++++++++++++---- src/module/list/README.md | 6 +++--- src/module/podcast/README.md | 4 ++-- src/module/single/README.md | 2 +- src/module/text/README.md | 2 +- src/scraper/examples/days/README.md | 4 ++-- src/scraper/list/jsonfeed/README.md | 2 +- src/scraper/tools/filter/README.md | 2 +- 8 files changed, 28 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7526f8c..1dd2863 100644 --- a/README.md +++ b/README.md @@ -108,9 +108,9 @@ liens. module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: + cron: "0 * * * *" max: 5 color: "#ffc107" - cron: "*/10 * * * *" scrapers: - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" options: @@ -118,6 +118,19 @@ liens. </script> ``` +Vous pouvez aussi importer des widgets directement dans votre dashboard. Il faut +ajouter un élément `<script>` avec l'attribut `src` (ainsi que le `type`). Dans +l'exemple ci-dessous, le widget permettant d'écouter la radio +[Fip](https://github.com/regseb/gout-regseb/tree/main/src/widget/radiofrance#readme) +est intégré dans le dashboard : + +```html +<script + type="application/yaml" + src="https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/widget/radiofrance/fip.yaml" +></script> +``` + Si vous voulez des widgets, vous pouvez chercher [_gout-widget_](https://github.com/search?q=%22+gout-widget%22+language%3AMarkdown&type=Code&l=Markdown) dans GitHub. @@ -143,9 +156,9 @@ affichée dans un bloc bleu `#2196f3` et actualisée toutes les dix minutes module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: - color: "#2196f3" cron: "*/10 * * * *" - "max": 5 + max: 5 + color: "#2196f3" scrapers: # ... </script> ``` @@ -159,7 +172,7 @@ dans GitHub. Les scrapers permettent d'extraire des données (flux RSS, parsing de page...) et de les transmettre à un module dans un format spécifique. Plusieurs scrapers peuvent être associés avec un module. Dans la configuration du widget, les -scrapers sont définis dans un tableau avec deux propriétés : +scrapers sont définis dans une liste ou chaque élément a deux propriétés : - `url` : L'URL du fichier JavaScript du scraper (par exemple pour le scraper [_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) diff --git a/src/module/list/README.md b/src/module/list/README.md index 378af74..2551ad6 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -225,9 +225,9 @@ Ce widget affiche les cinq dernières actualités du site module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: - color": "#ffc107" - cron": "*/10 * * * *" - max": 5 + cron: "*/10 * * * *" + max: 5 + color: "#ffc107" scrapers: - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" options: diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 1ec62c2..6e2f9d3 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -237,11 +237,11 @@ Podcast](https://lescastcodeurs.com/). module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/podcast/podcast.js" options: - color: "black" cron: "@daily" max: 2 + color: "black" scrapers: - - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" options: url: "https://lescastcodeurs.com/podcast-rss" </script> diff --git a/src/module/single/README.md b/src/module/single/README.md index 4a49dc3..a125a1d 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -182,6 +182,6 @@ Ce widget affiche un lien vers un article au hasard de options: cron: "*/5 * * * *" scrapers: - - url": "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/scraper/single/articleauhasard/articleauhasard.js" </script> ``` diff --git a/src/module/text/README.md b/src/module/text/README.md index 1f795c5..2d4069a 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -162,7 +162,7 @@ Ce widget affiche le texte _Carpe diem_. module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/text/text.js" scrapers: - - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/tools/repeater/repeater.js" options: extract: - title: "Carpe diem" diff --git a/src/scraper/examples/days/README.md b/src/scraper/examples/days/README.md index cb807aa..9e85fcf 100644 --- a/src/scraper/examples/days/README.md +++ b/src/scraper/examples/days/README.md @@ -64,9 +64,9 @@ anglais. options: max: 3 scrapers: - - url": "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" + - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/examples/days/days.js" options: - lang: "en", + lang: "en" filter: "title != 'Sunday'" </script> ``` diff --git a/src/scraper/list/jsonfeed/README.md b/src/scraper/list/jsonfeed/README.md index c7524b6..9eae96d 100644 --- a/src/scraper/list/jsonfeed/README.md +++ b/src/scraper/list/jsonfeed/README.md @@ -77,9 +77,9 @@ Ce widget affiche les cinq dernières actualités scientifiques du site module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: - color: "#2196f3" cron: "*/10 * * * *" max: 5 + color: "#2196f3" scrapers: - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/jsonfeed/jsonfeed.js" options: diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index 7426117..48136b8 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -94,9 +94,9 @@ _list/rss_ car ce scraper utilise _tools/filter_. module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: - color: "#757575" cron: "*/10 * * * *" max: 5 + color: "#757575" scrapers: - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" options: From 40f9e5debb7d5e094accd4779ad8cfb36ee24ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sun, 11 Aug 2024 15:12:59 +0200 Subject: [PATCH 27/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/CODE_OF_CONDUCT.md | 13 +- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .github/workflows/ci.yml | 6 +- .github/workflows/release.yml | 12 +- .metalint/addons-linter.config.js | 6 +- .metalint/eslint.config.js | 37 +- .metalint/eslint_config.config.js | 6 +- .metalint/eslint_node.config.js | 12 +- .metalint/eslint_test.config.js | 6 +- .metalint/eslint_webext.config.js | 6 +- .metalint/markdownlint.config.js | 61 +- .metalint/markdownlint_changelog.config.js | 14 - .metalint/metalint.config.js | 10 +- .metalint/prettier.config.js | 8 +- .metalint/prettier_css.config.js | 6 +- .metalint/prettier_javascript.config.js | 6 +- .metalint/stylelint.config.js | 7 +- CHANGELOG.md | 48 +- README.md | 22 +- package-lock.json | 5312 +++++++++++------ package.json | 38 +- src/engine/script.js | 4 +- src/extension/chromium/manifest.json | 5 +- src/extension/chromium/polyfill/browser.js | 2 +- src/extension/firefox/background/page.html | 10 - src/extension/firefox/background/script.js | 98 +- src/extension/firefox/manifest.json | 14 +- src/extension/firefox/polyfill/browser.js | 2 +- src/module/audio/README.md | 19 +- src/module/clock/README.md | 11 +- .../examples/preact/helloworld/README.md | 6 +- src/module/icon/README.md | 17 +- src/module/iframe/README.md | 11 +- src/module/image/README.md | 19 +- src/module/image/image.js | 2 +- src/module/list/README.md | 28 +- src/module/list/list.js | 2 +- src/module/notepad/README.md | 11 +- src/module/notepad/notepad.js | 2 +- src/module/podcast/README.md | 31 +- src/module/podcast/podcast.js | 2 +- src/module/search/README.md | 1 + src/module/single/README.md | 19 +- src/module/text/README.md | 17 +- src/module/tools/findrss/README.md | 6 +- src/scraper/examples/days/README.md | 11 +- src/scraper/examples/helloworld/README.md | 13 +- src/scraper/examples/helloworld/helloworld.js | 2 +- .../examples/jsonplaceholder/README.md | 15 +- src/scraper/icon/ping/README.md | 19 +- src/scraper/list/jsonfeed/README.md | 14 +- src/scraper/list/rss/README.md | 18 +- src/scraper/search/opensearch/README.md | 9 +- src/scraper/tools/complements/README.md | 19 +- src/scraper/tools/filter/README.md | 15 +- src/utils/scraper/chain.js | 10 +- test/unit/scraper/tools/filter.js | 8 + 58 files changed, 3801 insertions(+), 2335 deletions(-) delete mode 100644 .metalint/markdownlint_changelog.config.js delete mode 100644 src/extension/firefox/background/page.html diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index c2b2b62..e53a44b 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -60,8 +60,8 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -<regseb@gmail.com>. -All complaints will be reviewed and investigated promptly and fairly. +<regseb@gmail.com>. All complaints will be reviewed and investigated promptly +and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. @@ -114,12 +114,13 @@ community. ## Attribution -This Code of Conduct is adapted from the [Contributor -Covenant](https://www.contributor-covenant.org) version 2.1, available at +This Code of Conduct is adapted from the +[Contributor Covenant](https://www.contributor-covenant.org) version 2.1, +available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>. -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). For answers to common questions about this code of conduct, see the FAQ at <https://www.contributor-covenant.org/faq>. Translations are available at diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 257075f..aee414e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.12.0 -->: -- Browser version<!-- e.g. Chrome 125.0.6422.112, Firefox 126.0 -->: +- Gout extension version<!-- e.g. 0.12.1 -->: +- Browser version<!-- e.g. Chrome 127.0.6533.88, Firefox 129.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index f2d214f..0e496e2 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.12.0 -->: -- Browser version<!-- e.g. Chrome 125.0.6422.112, Firefox 126.0 -->: +- Gout extension version<!-- e.g. 0.12.1 -->: +- Browser version<!-- e.g. Chrome 127.0.6533.88, Firefox 129.0 -->: ### Additional context diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 969aaf9..7255038 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - name: Install dependencies run: npm ci @@ -36,7 +36,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - name: Install dependencies run: npm ci @@ -55,7 +55,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - name: Install dependencies run: npm ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12ca67c..a6a7908 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: pull-requests: write steps: - name: Run Release Please - uses: google-github-actions/release-please-action@v4 + uses: googleapis/release-please-action@v4 id: release with: config-file: .release-please/config.json @@ -37,7 +37,7 @@ jobs: if: ${{ steps.release.outputs.pr }} uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - name: Install dependencies if: ${{ steps.release.outputs.pr }} @@ -46,12 +46,8 @@ jobs: - name: Format files if: ${{ steps.release.outputs.pr }} run: > - npm run lint:fix -- - .release-please/manifest.json - CHANGELOG.md - package.json - package-lock.json - src/extension/chromium/manifest.json + npm run lint:fix -- .release-please/manifest.json CHANGELOG.md + package.json package-lock.json src/extension/chromium/manifest.json src/extension/firefox/manifest.json - name: Commit and push diff --git a/.metalint/addons-linter.config.js b/.metalint/addons-linter.config.js index 5eadf14..fca28cf 100644 --- a/.metalint/addons-linter.config.js +++ b/.metalint/addons-linter.config.js @@ -4,4 +4,8 @@ * @author Sébastien Règne */ -export default {}; +export default { + // Autoriser la propriété "service_worker" pour le "background". + // https://github.com/mozilla/addons-linter/issues/5152 + enableBackgroundServiceWorker: true, +}; diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index a6269f8..80f3ba8 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("eslint").Linter.Config} + * @import { Linter } from "eslint" + */ + +/** + * @type {Linter.Config} */ export default { plugins: [ @@ -466,7 +470,7 @@ export default { "error", "always", { - tags: ["param", "property"], + tags: ["param", "prop"], customSpacings: { postDelimiter: 1, postTag: 1, @@ -477,14 +481,18 @@ export default { "jsdoc/check-property-names": "error", "jsdoc/check-syntax": "error", "jsdoc/check-tag-names": "error", + "jsdoc/check-template-names": "error", "jsdoc/check-types": "error", "jsdoc/check-values": "error", + "jsdoc/convert-to-jsdoc-comments": "off", "jsdoc/empty-tags": "error", "jsdoc/implements-on-classes": "error", // Désactiver la règle, car elle ne supporte pas la propriété "exports". // https://github.com/gajus/eslint-plugin-jsdoc/issues/1114 "jsdoc/imports-as-dependencies": "off", "jsdoc/informative-docs": "error", + // Désactiver cette règle et laisser Prettier gérer le formatage. + "jsdoc/lines-before-block": "off", "jsdoc/match-description": ["error", { matchDescription: "[A-ZÉ].*" }], "jsdoc/match-name": "off", "jsdoc/multiline-blocks": "error", @@ -524,11 +532,13 @@ export default { "jsdoc/require-returns-check": "error", "jsdoc/require-returns-description": "error", "jsdoc/require-returns-type": "error", + "jsdoc/require-template": "error", "jsdoc/require-throws": "error", "jsdoc/require-yields": "error", "jsdoc/require-yields-check": "error", "jsdoc/sort-tags": "error", "jsdoc/tag-lines": ["error", "never", { startLines: 1 }], + "jsdoc/text-escaping": "off", "jsdoc/valid-types": "error", // Plugin eslint-plugin-no-unsanitized. @@ -536,21 +546,22 @@ export default { "no-unsanitized/property": "error", // Plugin eslint-plugin-promise. - "promise/catch-or-return": "off", - "promise/no-return-wrap": "error", - "promise/param-names": "error", "promise/always-return": "off", + "promise/avoid-new": "off", + "promise/catch-or-return": "off", + "promise/no-callback-in-promise": "error", + "promise/no-multiple-resolved": "error", "promise/no-native": "off", "promise/no-nesting": "error", - "promise/no-promise-in-callback": "error", - "promise/no-callback-in-promise": "error", - "promise/avoid-new": "off", "promise/no-new-statics": "error", + "promise/no-promise-in-callback": "error", "promise/no-return-in-finally": "error", - "promise/valid-params": "error", - "promise/prefer-await-to-then": "error", + "promise/no-return-wrap": "error", + "promise/param-names": "error", "promise/prefer-await-to-callbacks": "off", - "promise/no-multiple-resolved": "error", + "promise/prefer-await-to-then": ["error", { strict: true }], + "promise/spec-only": "error", + "promise/valid-params": "error", // Plugin eslint-plugin-regexp. // Possible Errors. @@ -680,11 +691,13 @@ export default { "unicorn/no-invalid-fetch-options": "error", "unicorn/no-invalid-remove-event-listener": "error", "unicorn/no-keyword-prefix": "error", + "unicorn/no-length-as-slice-end": "error", "unicorn/no-lonely-if": "error", "unicorn/no-magic-array-flat-depth": "error", // Utiliser la règle no-negated-condition d'ESLint, car celle d'unicorn // apporte seulement la correction automatique. "unicorn/no-negated-condition": "off", + "unicorn/no-negation-in-equality-check": "error", "unicorn/no-nested-ternary": "off", "unicorn/no-new-array": "error", "unicorn/no-new-buffer": "error", @@ -715,7 +728,7 @@ export default { "unicorn/number-literal-case": "off", "unicorn/numeric-separators-style": "error", "unicorn/prefer-add-event-listener": "error", - "unicorn/prefer-array-find": ["error", { checkFromLast: true }], + "unicorn/prefer-array-find": "error", "unicorn/prefer-array-flat": "error", "unicorn/prefer-array-flat-map": "error", "unicorn/prefer-array-index-of": "error", diff --git a/.metalint/eslint_config.config.js b/.metalint/eslint_config.config.js index e9bb255..f33814b 100644 --- a/.metalint/eslint_config.config.js +++ b/.metalint/eslint_config.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("eslint").Linter.Config} + * @import { Linter } from "eslint" + */ + +/** + * @type {Linter.Config} */ export default { rules: { diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index 3a4b04a..0a834be 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("eslint").Linter.Config} + * @import { Linter } from "eslint" + */ + +/** + * @type {Linter.Config} */ export default { rules: { @@ -52,8 +56,10 @@ export default { "n/no-path-concat": "error", "n/no-process-exit": "error", "n/no-unpublished-bin": "error", - "n/no-unpublished-import": "off", - "n/no-unpublished-require": "error", + "n/no-unpublished-import": "error", + // Ne pas vérifier les require(), car ils ne sont pas utilisés (en + // faveur des imports). + "n/no-unpublished-require": "off", "n/no-unsupported-features/es-builtins": "error", "n/no-unsupported-features/es-syntax": "error", "n/no-unsupported-features/node-builtins": "error", diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index 3d6761c..341bbfd 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("eslint").Linter.Config} + * @import { Linter } from "eslint" + */ + +/** + * @type {Linter.Config} */ export default { env: { diff --git a/.metalint/eslint_webext.config.js b/.metalint/eslint_webext.config.js index ba4ba06..0671860 100644 --- a/.metalint/eslint_webext.config.js +++ b/.metalint/eslint_webext.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("eslint").Linter.Config} + * @import { Linter } from "eslint" + */ + +/** + * @type {Linter.Config} */ export default { env: { diff --git a/.metalint/markdownlint.config.js b/.metalint/markdownlint.config.js index 747e003..25ea56e 100644 --- a/.metalint/markdownlint.config.js +++ b/.metalint/markdownlint.config.js @@ -5,40 +5,46 @@ */ /** - * @type {import("markdownlint").Configuration} + * @import { Configuration } from "markdownlint" + */ + +/** + * @type {Configuration} */ export default { "heading-increment": true, - "heading-style": { style: "atx" }, - "ul-style": { style: "dash" }, - "list-indent": true, - "ul-indent": true, - "no-trailing-spaces": true, - "no-hard-tabs": true, + // Désactiver les règles de style et laisser Prettier formatter les + // fichiers. + // https://github.com/DavidAnson/markdownlint/blob/main/doc/Prettier.md + "heading-style": false, + "ul-style": false, + "list-indent": false, + "ul-indent": false, + "no-trailing-spaces": false, + "no-hard-tabs": false, "no-reversed-links": true, - "no-multiple-blanks": true, - // eslint-disable-next-line camelcase - "line-length": { code_blocks: false, headings: false }, - "commonds-show-output": true, - "no-missing-space-atx": true, - "no-multiple-space-atx": true, - "no-missing-space-closed-atx": true, - "no-multiple-space-closed-atx": true, - "blanks-around-headings": true, - "heading-start-left": true, + "no-multiple-blanks": false, + "line-length": false, + "commands-show-output": true, + "no-missing-space-atx": false, + "no-multiple-space-atx": false, + "no-missing-space-closed-atx": false, + "no-multiple-space-closed-atx": false, + "blanks-around-headings": false, + "heading-start-left": false, // eslint-disable-next-line camelcase "no-duplicate-heading": { siblings_only: true }, "single-title": true, "no-trailing-punctuation": true, - "no-multiple-space-blockquote": true, - "no-blanks-blockquote": true, - "ol-prefix": { style: "ordered" }, - "list-marker-space": true, - "blanks-around-fences": true, - "blanks-around-lists": true, + "no-multiple-space-blockquote": false, + "no-blanks-blockquote": false, + "ol-prefix": false, + "list-marker-space": false, + "blanks-around-fences": false, + "blanks-around-lists": false, "no-inline-html": false, "no-bare-urls": true, - "hr-style": { style: "---" }, + "hr-style": false, "no-emphasis-as-heading": true, "no-space-in-emphasis": true, "no-space-in-code": true, @@ -60,13 +66,14 @@ export default { "first-line-heading": true, "no-empty-links": true, "required-headings": true, + // Désactiver cette règle, car il n'y a pas de mots à vérifier. "proper-names": false, "no-alt-text": true, "code-block-style": { style: "fenced" }, "single-trailing-newline": true, - "code-fence-style": { style: "backtick" }, - "emphasis-style": { style: "underscore" }, - "strong-style": { style: "asterisk" }, + "code-fence-style": false, + "emphasis-style": false, + "strong-style": false, "link-fragments": true, "reference-links-images": true, "link-image-reference-definitions": true, diff --git a/.metalint/markdownlint_changelog.config.js b/.metalint/markdownlint_changelog.config.js deleted file mode 100644 index 8f3edb1..0000000 --- a/.metalint/markdownlint_changelog.config.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -/** - * @type {import("markdownlint").Configuration} - */ -export default { - // Ne pas vérifier la longueur des lignes du CHANGELOG, car celui-ci est - // généré par release-please et il peut avoir de longues lignes. - "line-length": false, -}; diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 584e0b7..0b14754 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("metalint/types").Config} + * @import { Config } from "metalint/types" + */ + +/** + * @type {Config} */ export default { patterns: [ @@ -93,10 +97,6 @@ export default { { patterns: "*.md", linters: ["prettier", "markdownlint"], - overrides: { - patterns: "/CHANGELOG.md", - linters: "markdownlint_changelog", - }, }, { patterns: "*.json", diff --git a/.metalint/prettier.config.js b/.metalint/prettier.config.js index 1f4d3bb..79c4c54 100644 --- a/.metalint/prettier.config.js +++ b/.metalint/prettier.config.js @@ -7,11 +7,17 @@ import pluginXML from "@prettier/plugin-xml"; /** - * @type {import("prettier").Config} + * @import { Config } from "prettier" + */ + +/** + * @type {Config} */ export default { plugins: [pluginXML], + proseWrap: "always", + // Options spécifiques du plugin XML. xmlQuoteAttributes: "double", }; diff --git a/.metalint/prettier_css.config.js b/.metalint/prettier_css.config.js index 6a7ba63..c1fa98d 100644 --- a/.metalint/prettier_css.config.js +++ b/.metalint/prettier_css.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("prettier").Config} + * @import { Config } from "prettier" + */ + +/** + * @type {Config} */ export default { tabWidth: 4, diff --git a/.metalint/prettier_javascript.config.js b/.metalint/prettier_javascript.config.js index 6a7ba63..c1fa98d 100644 --- a/.metalint/prettier_javascript.config.js +++ b/.metalint/prettier_javascript.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("prettier").Config} + * @import { Config } from "prettier" + */ + +/** + * @type {Config} */ export default { tabWidth: 4, diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index f47058c..3597923 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -5,7 +5,11 @@ */ /** - * @type {import("stylelint").Config} + * @import { Config } from "stylelint" + */ + +/** + * @type {Config} */ export default { plugins: ["stylelint-order"], @@ -62,6 +66,7 @@ export default { "media-feature-name-no-unknown": true, "media-feature-name-value-no-unknown": true, "no-unknown-animations": true, + "no-unknown-custom-media": true, "no-unknown-custom-properties": true, "property-no-unknown": true, "selector-pseudo-class-no-unknown": true, diff --git a/CHANGELOG.md b/CHANGELOG.md index f42a421..b82ff3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,48 +4,61 @@ ### Features -- Fournir une extension pour Chromium. ([b1cec7e](https://github.com/regseb/gout/commit/b1cec7e8bd92fb3f27e2f6689076e7dd4c1fc662)) -- Utiliser YAML pour les configurations. ([91b03ee](https://github.com/regseb/gout/commit/91b03eed5cbc4e8d5697863ddadd7792634f67b6)) +- Fournir une extension pour Chromium. + ([b1cec7e](https://github.com/regseb/gout/commit/b1cec7e8bd92fb3f27e2f6689076e7dd4c1fc662)) +- Utiliser YAML pour les configurations. + ([91b03ee](https://github.com/regseb/gout/commit/91b03eed5cbc4e8d5697863ddadd7792634f67b6)) ### Bug Fixes -- Gérer la release avec deux extensions. ([20c55a5](https://github.com/regseb/gout/commit/20c55a51eb3e6d2cdbc7dbaab9b2819176f09cf1)) +- Gérer la release avec deux extensions. + ([20c55a5](https://github.com/regseb/gout/commit/20c55a51eb3e6d2cdbc7dbaab9b2819176f09cf1)) ## [0.11.0](https://github.com/regseb/gout/compare/v0.10.0...v0.11.0) (2024-03-07) ### Features -- Récupérer les données dans le group (Atom). ([e84592f](https://github.com/regseb/gout/commit/e84592f29543e54ac754a630766e9bc9f8ebb783)) +- Récupérer les données dans le group (Atom). + ([e84592f](https://github.com/regseb/gout/commit/e84592f29543e54ac754a630766e9bc9f8ebb783)) ### Bug Fixes -- **module/podcast:** Gérer les actions play/pause. ([d950ff3](https://github.com/regseb/gout/commit/d950ff3890482cd473f4b8883ced66cb597cc12d)) +- **module/podcast:** Gérer les actions play/pause. + ([d950ff3](https://github.com/regseb/gout/commit/d950ff3890482cd473f4b8883ced66cb597cc12d)) ## [0.10.0](https://github.com/regseb/gout/compare/v0.9.8...v0.10.0) (2024-01-08) ### Features -- Chainer les scrapers. ([04c094b](https://github.com/regseb/gout/commit/04c094b9f08b7ed980e27c57fd922d7e3f86e1fb)) +- Chainer les scrapers. + ([04c094b](https://github.com/regseb/gout/commit/04c094b9f08b7ed980e27c57fd922d7e3f86e1fb)) ### Bug Fixes -- Déplacer le scraper Repeater dans tools. ([da4af6f](https://github.com/regseb/gout/commit/da4af6fbf59a68223468b52abb401c2e683e5630)) -- **scraper/icon/ping:** Remplacer les points par des "x". ([402e2b4](https://github.com/regseb/gout/commit/402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b)) +- Déplacer le scraper Repeater dans tools. + ([da4af6f](https://github.com/regseb/gout/commit/da4af6fbf59a68223468b52abb401c2e683e5630)) +- **scraper/icon/ping:** Remplacer les points par des "x". + ([402e2b4](https://github.com/regseb/gout/commit/402e2b400f16b92b6e9e193a7ae70f1dacc5ff9b)) ## [0.9.8](https://github.com/regseb/gout/compare/v0.9.7...v0.9.8) (2023-09-24) ### Bug Fixes -- Corriger des fautes de français. ([ebb3cba](https://github.com/regseb/gout/commit/ebb3cba7bc03a738ef59055d857b2673dade3e32)) -- Corriger le nom des classes. ([c91d0fa](https://github.com/regseb/gout/commit/c91d0fa7befa9582dad35712b2a3fdf630183f31)) -- Gérer correctement les async / await. ([b017aaa](https://github.com/regseb/gout/commit/b017aaade74a678200fa4a8c597463fcd6296c33)) +- Corriger des fautes de français. + ([ebb3cba](https://github.com/regseb/gout/commit/ebb3cba7bc03a738ef59055d857b2673dade3e32)) +- Corriger le nom des classes. + ([c91d0fa](https://github.com/regseb/gout/commit/c91d0fa7befa9582dad35712b2a3fdf630183f31)) +- Gérer correctement les async / await. + ([b017aaa](https://github.com/regseb/gout/commit/b017aaade74a678200fa4a8c597463fcd6296c33)) ## [0.9.7](https://github.com/regseb/gout/compare/v0.9.6...v0.9.7) (2023-03-10) ### Bug Fixes -- **extension:** Modifier la requête HTTP. ([d0de0f9](https://github.com/regseb/gout/commit/d0de0f947c53fb594cdd61956952b297dd226114)) -- Renommer "Configuration" en "Options". ([eb0a0ad](https://github.com/regseb/gout/commit/eb0a0adcffdb07559a5853b630701cdfc197ddca)) +- **extension:** Modifier la requête HTTP. + ([d0de0f9](https://github.com/regseb/gout/commit/d0de0f947c53fb594cdd61956952b297dd226114)) +- Renommer "Configuration" en "Options". + ([eb0a0ad](https://github.com/regseb/gout/commit/eb0a0adcffdb07559a5853b630701cdfc197ddca)) ## [0.9.6](https://github.com/regseb/gout/compare/v0.9.5...v0.9.6) (2022-12-11) @@ -53,9 +66,12 @@ ### Features -- Améliorer l'héritage de widgets. ([1c25ad3](https://github.com/regseb/gout/commit/1c25ad37d0063bed18f4065d980d78ef2250e7eb)) -- **module/findrss:** Ajouter un module pour extraire les flux RSS. ([e7b88a7](https://github.com/regseb/gout/commit/e7b88a7e534ae6b335b5bffa4341e35f0d17a995)) +- Améliorer l'héritage de widgets. + ([1c25ad3](https://github.com/regseb/gout/commit/1c25ad37d0063bed18f4065d980d78ef2250e7eb)) +- **module/findrss:** Ajouter un module pour extraire les flux RSS. + ([e7b88a7](https://github.com/regseb/gout/commit/e7b88a7e534ae6b335b5bffa4341e35f0d17a995)) ### Bug Fixes -- **scraper/ping:** Gérer correctement les codes. ([b03035c](https://github.com/regseb/gout/commit/b03035ca4d5779653cbf0ab1811341a7c163d658)) +- **scraper/ping:** Gérer correctement les codes. + ([b03035c](https://github.com/regseb/gout/commit/b03035ca4d5779653cbf0ab1811341a7c163d658)) diff --git a/README.md b/README.md index 1dd2863..a961fdf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Gout -[![firefox][img-firefox]][link-firefox] -[![build][img-build]][link-build] +[![firefox][img-firefox]][link-firefox] [![build][img-build]][link-build] [![coverage][img-coverage]][link-coverage] > Agrégateur d'Internet (flux RSS et tout le reste). @@ -205,16 +204,21 @@ dans GitHub. ## Installation L'extension est disponible sur [**Firefox Browser Add-ons**][link-firefox]. -Après l'avoir installée, téléchargez un [template d'un -dashboard](https://github.com/regseb/gout/tree/HEAD/template/dashboard). +Après l'avoir installée, téléchargez un +[template d'un dashboard](https://github.com/regseb/gout/tree/HEAD/template/dashboard). Ouvrez le fichier avec un éditeur de texte. Ajoutez les widgets que vous souhaitez dans le code HTML. Ouvrez le fichier avec votre navigateur et ajoutez la page dans l'extension (en cliquant sur l'icône de l'extension dans la barre d'outils du navigateur). Actualisez la page pour voir apparaitre les widgets. -[img-firefox]: https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=whitesmoke -[img-build]: https://img.shields.io/github/actions/workflow/status/regseb/gout/ci.yml?branch=main&logo=github&logoColor=whitesmoke -[img-coverage]: https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain +[img-firefox]: + https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=whitesmoke +[img-build]: + https://img.shields.io/github/actions/workflow/status/regseb/gout/ci.yml?branch=main&logo=github&logoColor=whitesmoke +[img-coverage]: + https://img.shields.io/endpoint?label=coverage&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fgout%2Fmain [link-firefox]: https://addons.mozilla.org/addon/gout/ -[link-build]: https://github.com/regseb/gout/actions/workflows/ci.yml?query=branch%3Amain -[link-coverage]: https://dashboard.stryker-mutator.io/reports/github.com/regseb/gout/main +[link-build]: + https://github.com/regseb/gout/actions/workflows/ci.yml?query=branch%3Amain +[link-coverage]: + https://dashboard.stryker-mutator.io/reports/github.com/regseb/gout/main diff --git a/package-lock.json b/package-lock.json index 398d0ee..27d8cc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,50 +13,41 @@ ], "license": "MIT", "devDependencies": { - "@prantlf/jsonlint": "14.0.3", + "@prantlf/jsonlint": "16.0.0", "@prettier/plugin-xml": "3.4.1", - "@stryker-mutator/core": "8.2.6", - "@stryker-mutator/mocha-runner": "8.2.6", - "@types/eslint": "8.56.10", - "@types/mocha": "10.0.6", - "addons-linter": "6.28.0", + "@stryker-mutator/core": "8.4.0", + "@stryker-mutator/mocha-runner": "8.4.0", + "@types/eslint": "9.6.0", + "@types/mocha": "10.0.7", + "addons-linter": "6.33.0", "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.6", - "eslint-plugin-mocha": "10.4.3", - "eslint-plugin-n": "17.7.0", + "eslint-plugin-jsdoc": "50.0.1", + "eslint-plugin-mocha": "10.5.0", + "eslint-plugin-n": "17.10.2", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-plugin-promise": "6.2.0", + "eslint-plugin-promise": "7.1.0", "eslint-plugin-regexp": "2.6.0", - "eslint-plugin-unicorn": "53.0.0", + "eslint-plugin-unicorn": "55.0.0", "htmlhint": "1.1.4", "http-server": "14.1.1", "markdownlint": "0.34.0", "metalint": "0.17.0", - "mocha": "10.4.0", - "npm-package-json-lint": "7.1.0", - "prettier": "3.2.5", + "mocha": "10.7.3", + "npm-package-json-lint": "8.0.0", + "prettier": "3.3.3", "purgecss": "6.0.0", - "stylelint": "16.6.1", + "stylelint": "16.8.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.13", - "typescript": "5.4.5", - "web-ext": "8.0.0", + "typedoc": "0.26.5", + "typescript": "5.5.4", + "web-ext": "8.2.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=20.6.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=22.1.0" } }, "node_modules/@ampproject/remapping": { @@ -64,6 +55,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -73,114 +65,46 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -200,19 +124,21 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -220,26 +146,28 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -252,24 +180,24 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -284,79 +212,50 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -366,35 +265,38 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -404,54 +306,47 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "license": "MIT", "engines": { @@ -459,37 +354,40 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -500,6 +398,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -512,6 +411,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -526,6 +426,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -534,13 +435,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -550,6 +453,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -559,6 +463,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -567,10 +472,14 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -579,14 +488,32 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz", - "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-explicit-resource-management": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-explicit-resource-management/-/plugin-proposal-explicit-resource-management-7.24.7.tgz", + "integrity": "sha512-sYvUjHrKctxFiNe/YFyzNyXoblzP4YaZrWSk0js7QU3Lw2lYjLAxnzV8l/4+7PB5+NDFKGblPUq2YbdTxs3Ppg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.23.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-decorators": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-explicit-resource-management": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -596,12 +523,29 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", - "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-explicit-resource-management": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-explicit-resource-management/-/plugin-syntax-explicit-resource-management-7.24.7.tgz", + "integrity": "sha512-gEl7s4tkyWl3EcfUCLVcJJRSogDQju6qX2hdJmZVO0wdpVGzss5bJU8wySoZ7JQw1jBjztEY1a/eYstgv+AQkA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -611,12 +555,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -626,12 +571,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -641,14 +587,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -658,15 +605,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -676,16 +625,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -695,9 +645,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", - "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dev": true, "license": "MIT", "dependencies": { @@ -708,45 +658,32 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -754,26 +691,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -781,9 +707,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", - "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", + "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", "dev": true, "funding": [ { @@ -800,13 +726,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", - "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", + "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", "dev": true, "funding": [ { @@ -824,9 +750,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", - "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", + "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", "dev": true, "funding": [ { @@ -843,8 +769,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/selector-specificity": { @@ -934,17 +860,14 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", - "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz", + "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint": "^8.56.5", - "@types/estree": "^1.0.5", - "@typescript-eslint/types": "^7.2.0", "comment-parser": "1.4.1", - "esquery": "^1.5.0", + "esquery": "^1.6.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { @@ -956,6 +879,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -966,11 +890,25 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -980,6 +918,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1003,6 +942,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1019,16 +959,49 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -1043,13 +1016,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1062,6 +1037,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1074,6 +1050,7 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -1083,6 +1060,7 @@ "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.19.0.tgz", "integrity": "sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.0.0", "npm": ">=7.0.0" @@ -1092,7 +1070,9 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -1107,6 +1087,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1117,6 +1098,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1129,6 +1111,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -1138,16 +1121,241 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@inquirer/checkbox": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.7.tgz", + "integrity": "sha512-5YwCySyV1UEgqzz34gNsC38eKxRBtlRDpJLlKcRtTjlYA/yDKuc1rfw+hjw+2WJxbAZtaDPsRl5Zk7J14SBoBw==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.10.tgz", + "integrity": "sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.1.0", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/editor": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.22.tgz", + "integrity": "sha512-K1QwTu7GCK+nKOVRBp5HY9jt3DXOfPGPr6WRDrPImkcJRelG9UTx2cAtK1liXmibRrzJlTWOwqgWT3k2XnS62w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.22.tgz", + "integrity": "sha512-wTZOBkzH+ItPuZ3ZPa9lynBsdMp6kQ9zbjVPYEtSBG7UulGjg2kQiAnUjgyG4SlntpTce5bOmXAPvE4sguXjpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.9.tgz", + "integrity": "sha512-7Z6N+uzkWM7+xsE+3rJdhdG/+mQgejOVqspoW+w0AbSZnL6nq5tGMEVASaYVWbkoSzecABWwmludO2evU3d31g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.10.tgz", + "integrity": "sha512-kWTxRF8zHjQOn2TJs+XttLioBih6bdc5CcosXIzZsrTY383PXI35DuhIllZKu7CdXFi2rz2BWPN9l0dPsvrQOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.22.tgz", + "integrity": "sha512-5Fxt1L9vh3rAKqjYwqsjU4DZsEvY/2Gll+QkqR4yEpy6wvzLxdSgFhUcxfDAOtO4BEoTreWoznC0phagwLU5Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.2.4.tgz", + "integrity": "sha512-pb6w9pWrm7EfnYDgQObOurh2d2YH07+eDo3xQBsNAM2GRhliz6wFXGi1thKQ4bN6B0xDd6C3tBsjdr3obsCl3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.0.7.tgz", + "integrity": "sha512-p1wpV+3gd1eST/o5N3yQpYEdFNCzSP0Klrl+5bfD3cTTz8BGG6nf4Z07aBW0xjlKIj1Rp0y3x/X4cZYi6TfcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.7.tgz", + "integrity": "sha512-JH7XqPEkBpNWp3gPCqWqY8ECbyMoFcCZANlL6pV9hf59qK6dGmkOlx1ydyhY+KZ0c5X74+W6Mtp+nm2QX0/MAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -1165,6 +1373,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1177,6 +1386,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1184,34 +1394,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1227,6 +1415,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1244,6 +1433,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1258,6 +1448,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1267,42 +1458,33 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@ljharb/through": { - "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@mdn/browser-compat-data": { - "version": "5.5.29", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.29.tgz", - "integrity": "sha512-NHdG3QOiAsxh8ygBSKMa/WaNJwpNt87uVqW+S2RlnSqgeRdk+L3foNWTX6qd0I3NHSlCFb47rgopeNCJtRDY5A==", + "version": "5.5.40", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.40.tgz", + "integrity": "sha512-5hByR+TGX/iKG7Uv3Zk8f+aUftkBcHqWE3Ym229jxm+cRjeJSBZzUKPm6H+p46vaeooql72kydrqpz0B3UrErw==", "dev": true, "license": "CC0-1.0" }, @@ -1311,6 +1493,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1324,6 +1507,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1333,6 +1517,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1346,16 +1531,31 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -1365,6 +1565,7 @@ "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -1376,13 +1577,15 @@ "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -1393,22 +1596,23 @@ } }, "node_modules/@prantlf/jsonlint": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/@prantlf/jsonlint/-/jsonlint-14.0.3.tgz", - "integrity": "sha512-Z9FrZd+cqCiqB6r/EHb4evj8HUqMgPvi7RVBQhFHYOJ292K7XmnKprNTngTqiUclCFn5MFqeZv20Jo5ZzlOCqw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@prantlf/jsonlint/-/jsonlint-16.0.0.tgz", + "integrity": "sha512-L0jFtcsBRJZOr4T6sbePb1R6XYF6Nofj6kmEAxqTKCHEr50uvyxBFnB1UKaehWaMhHnvtyqWfTR5Go25RywXIQ==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", + "ajv": "8.17.1", "ajv-draft-04": "1.0.0", - "cosmiconfig": "8.1.3", - "diff": "5.1.0", - "fast-glob": "3.2.12" + "cosmiconfig": "9.0.0", + "diff": "5.2.0", + "fast-glob": "3.3.2" }, "bin": { "jsonlint": "lib/cli.js" }, "engines": { - "node": ">= 14" + "node": ">=16.9" } }, "node_modules/@prettier/plugin-xml": { @@ -1424,11 +1628,29 @@ "prettier": "^3.0.0" } }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.1.tgz", + "integrity": "sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4" + } + }, "node_modules/@sindresorhus/is": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -1436,15 +1658,29 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@stryker-mutator/api": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.2.6.tgz", - "integrity": "sha512-ygPT37teKh2Ei3sj+cs+kNpaFiz0JyelSDEz4GiQXu8DXy79D0oglSFAKsiVBdzO6MD2eRtyclovfdr/OdPVwA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.4.0.tgz", + "integrity": "sha512-VccQ0s4WOxVkIN0slBNM4CIo5jMf46Mc6gazwIWyyng/MvjuEaXO/yYl3ihL9wFww41FDKXiTy3alOc4WWyIVQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "mutation-testing-metrics": "3.0.2", - "mutation-testing-report-schema": "3.0.2", - "tslib": "~2.6.2", + "mutation-testing-metrics": "3.1.1", + "mutation-testing-report-schema": "3.1.1", + "tslib": "~2.6.3", "typed-inject": "~4.0.0" }, "engines": { @@ -1452,39 +1688,39 @@ } }, "node_modules/@stryker-mutator/core": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.2.6.tgz", - "integrity": "sha512-F3JaVOJn+m2xEzNXFrdWl0/34WOnnqjrBADyvxTfoejP8k/oz6R89+QPrR8RwuhTVZUdrmakNkHRPXh9CsaWkw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.4.0.tgz", + "integrity": "sha512-vqdggnLFpr6uG/JOwiRYmk62xDJmTrj42gx7Kvth1AAj8txIVeCxcmh0o6gMG31vS22NGkkSzW8uYIxT/gfyKg==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@stryker-mutator/api": "8.2.6", - "@stryker-mutator/instrumenter": "8.2.6", - "@stryker-mutator/util": "8.2.6", - "ajv": "~8.12.0", + "@inquirer/prompts": "^5.3.6", + "@stryker-mutator/api": "8.4.0", + "@stryker-mutator/instrumenter": "8.4.0", + "@stryker-mutator/util": "8.4.0", + "ajv": "~8.17.1", "chalk": "~5.3.0", - "commander": "~12.0.0", + "commander": "~12.1.0", "diff-match-patch": "1.0.5", "emoji-regex": "~10.3.0", - "execa": "~8.0.1", + "execa": "~9.3.0", "file-url": "~4.0.0", - "get-port": "~7.0.0", - "glob": "~10.3.10", - "inquirer": "~9.2.13", + "get-port": "~7.1.0", "lodash.groupby": "~4.6.0", "log4js": "~6.9.1", - "minimatch": "~9.0.3", - "mutation-testing-elements": "3.0.2", - "mutation-testing-metrics": "3.0.2", - "mutation-testing-report-schema": "3.0.2", + "minimatch": "~9.0.5", + "mutation-testing-elements": "3.1.1", + "mutation-testing-metrics": "3.1.1", + "mutation-testing-report-schema": "3.1.1", "npm-run-path": "~5.3.0", "progress": "~2.0.3", "rxjs": "~7.8.1", - "semver": "^7.5.4", + "semver": "^7.6.3", "source-map": "~0.7.4", "tree-kill": "~1.2.2", - "tslib": "2.6.2", + "tslib": "2.6.3", "typed-inject": "~4.0.0", - "typed-rest-client": "~1.8.11" + "typed-rest-client": "~2.0.2" }, "bin": { "stryker": "bin/stryker.js" @@ -1494,55 +1730,60 @@ } }, "node_modules/@stryker-mutator/instrumenter": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.2.6.tgz", - "integrity": "sha512-2o9ffO4yBxAtCbnOsOAojQmBI4IZcFTCMW9o7CaTThNTQ6j/8gLaU1suxt3IPCRGl30rph0skBAyKiiWaUVhMw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.4.0.tgz", + "integrity": "sha512-thLblaLuH+hIWk53bVxFJ9gfpnlOY+zNSxGV09986QoztYXejSSqRUWe8cxPc7PKF5xVewEh4yMTJaewX7Nzfw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/core": "~7.23.9", - "@babel/generator": "~7.23.6", - "@babel/parser": "~7.23.9", - "@babel/plugin-proposal-decorators": "~7.23.9", - "@babel/preset-typescript": "~7.23.3", - "@stryker-mutator/api": "8.2.6", - "@stryker-mutator/util": "8.2.6", - "angular-html-parser": "~5.2.0", - "semver": "~7.6.0", - "weapon-regex": "~1.3.0" + "@babel/core": "~7.25.2", + "@babel/generator": "~7.25.0", + "@babel/parser": "~7.25.0", + "@babel/plugin-proposal-decorators": "~7.24.7", + "@babel/plugin-proposal-explicit-resource-management": "^7.24.7", + "@babel/preset-typescript": "~7.24.7", + "@stryker-mutator/api": "8.4.0", + "@stryker-mutator/util": "8.4.0", + "angular-html-parser": "~6.0.2", + "semver": "~7.6.3", + "weapon-regex": "~1.3.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@stryker-mutator/mocha-runner": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.2.6.tgz", - "integrity": "sha512-WIoNECVBa5mjWJSLu8U6gnDYeeEt7/Y2iIwT75SJqJ4K317fslth2DKlfcXDZaUmdNGxfhvtf7MKOcsbczwboQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.4.0.tgz", + "integrity": "sha512-7A83OFZO7vx6U63TF3NLGzEVWZeEPFA9NR925KaX+4u/5pl8UbAP9L3jJLnPQrkZJnFivb4KXXaHZQkaKqcX/A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@stryker-mutator/api": "8.2.6", - "@stryker-mutator/util": "8.2.6", - "tslib": "~2.6.2" + "@stryker-mutator/api": "8.4.0", + "@stryker-mutator/util": "8.4.0", + "tslib": "~2.6.3" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@stryker-mutator/core": "~8.2.0", + "@stryker-mutator/core": "~8.4.0", "mocha": ">= 7.2 < 11" } }, "node_modules/@stryker-mutator/util": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.2.6.tgz", - "integrity": "sha512-2jmSYmrbGqt59JBkv1TvoOwQpUccCL3c90FLZIWg1zBNwj6zeOrwh734E5dKswDaC+BudQ3FtwlWB5augSuo1w==", - "dev": true + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.4.0.tgz", + "integrity": "sha512-dvDBmIrKpkqICO/7kcmfTzs+dsS1dA61q6XbbF+uB+WSsNLUHMfft0XKQg6BwLY+NLlis4pFN5CJz6gI7bfwxA==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -1551,9 +1792,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", "dev": true, "license": "MIT", "dependencies": { @@ -1565,93 +1806,125 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", + "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/node": { - "version": "20.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz", - "integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.13.0" } }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@xml-tools/parser": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "chevrotain": "7.1.1" } @@ -1661,6 +1934,7 @@ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -1669,10 +1943,11 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1685,22 +1960,23 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/addons-linter": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.28.0.tgz", - "integrity": "sha512-fCTjXL/yG4hwq74JG8tQdrvEu0OvGrEN9yU+Df0020RDtHl3g/tTCyMeC4G1uyk8IuyMzp4myCBNnOGC7MWSQQ==", + "version": "6.33.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.33.0.tgz", + "integrity": "sha512-FOXyI3v4HTUFCmKdyUH2eC1a6Efekuknq7yqMEIX1pl05USZuUtVO/0Mh+ZbA28Am26S62G5RbQghK7GTxtLhQ==", "dev": true, "license": "MPL-2.0", "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.29", + "@mdn/browser-compat-data": "5.5.40", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.10.1", - "ajv": "8.13.0", + "addons-scanner-utils": "9.11.0", + "ajv": "8.17.1", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", @@ -1709,10 +1985,10 @@ "eslint": "8.57.0", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-visitor-keys": "4.0.0", - "espree": "10.0.1", + "espree": "10.1.0", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "10.4.1", + "glob": "11.0.0", "image-size": "1.1.1", "is-mergeable-object": "1.1.1", "jed": "1.1.1", @@ -1720,7 +1996,7 @@ "os-locale": "5.0.0", "pino": "8.20.0", "relaxed-json": "1.0.3", - "semver": "7.6.2", + "semver": "7.6.3", "sha.js": "2.4.11", "source-map-support": "0.5.21", "tosource": "1.0.0", @@ -1735,62 +2011,12 @@ "node": ">=16.0.0" } }, - "node_modules/addons-linter/node_modules/addons-scanner-utils": { - "version": "9.10.1", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.10.1.tgz", - "integrity": "sha512-Tz9OUQx9Ja0TyQ+H2GakB9KlJ50myI6ESBGRlA8N80nHBzMjjPRFGm0APADSaCd5NP74SrFtEvL4TRpDwZXETA==", - "dev": true, - "dependencies": { - "@types/yauzl": "2.10.3", - "common-tags": "1.8.2", - "first-chunk-stream": "3.0.0", - "strip-bom-stream": "4.0.0", - "upath": "2.0.1", - "yauzl": "2.10.0" - }, - "peerDependencies": { - "body-parser": "1.20.2", - "express": "4.18.3", - "node-fetch": "2.6.11", - "safe-compare": "1.1.4" - }, - "peerDependenciesMeta": { - "body-parser": { - "optional": true - }, - "express": { - "optional": true - }, - "node-fetch": { - "optional": true - }, - "safe-compare": { - "optional": true - } - } - }, - "node_modules/addons-linter/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/addons-linter/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1799,78 +2025,7 @@ "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/addons-linter/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/addons-linter/node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", - "dev": true, - "dependencies": { - "acorn": "^8.11.3", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/addons-linter/node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/addons-linter/node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/addons-linter/node_modules/supports-color": { @@ -1878,6 +2033,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -1889,16 +2045,52 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/addons-moz-compare/-/addons-moz-compare-1.3.0.tgz", "integrity": "sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==", - "dev": true + "dev": true, + "license": "MPL-2.0" + }, + "node_modules/addons-scanner-utils": { + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.11.0.tgz", + "integrity": "sha512-X95V8ymnue9EHmOLz3zJTGHvHDFlWKiavlH+kJKOlv2sJDWFvD3TWeJMHJgxS9GKOqT/545mOXvX3vuuGGum+g==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/yauzl": "2.10.3", + "common-tags": "1.8.2", + "first-chunk-stream": "3.0.0", + "strip-bom-stream": "4.0.0", + "upath": "2.0.1", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "body-parser": "1.20.2", + "express": "4.19.2", + "node-fetch": "2.6.11", + "safe-compare": "1.1.4" + }, + "peerDependenciesMeta": { + "body-parser": { + "optional": true + }, + "express": { + "optional": true + }, + "node-fetch": { + "optional": true + }, + "safe-compare": { + "optional": true + } + } }, "node_modules/adm-zip": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", - "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=12.0" } }, "node_modules/agent-base": { @@ -1915,15 +2107,16 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -1935,6 +2128,7 @@ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, @@ -1949,15 +2143,17 @@ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": ">=5.0.0" } }, "node_modules/angular-html-parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-5.2.0.tgz", - "integrity": "sha512-8S/8g5iMcuGhRmBUJ+xuXm9hdjqIcaky2z52RA7tSyz9tWN0mgiP/JR9+kx/SiS1REJpTXnEKpMCMEeVVIeo3A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/angular-html-parser/-/angular-html-parser-6.0.2.tgz", + "integrity": "sha512-8+sH1TwYxv8XsQes1psxTHMtWRBbJFA/jY0ThqpT4AgCiRdhTtRxru0vlBfyRJpL9CHd3G06k871bR2vyqaM6A==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, @@ -1970,15 +2166,39 @@ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, + "node_modules/ansi-align/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-align/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "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==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1988,6 +2208,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -2003,21 +2224,17 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, "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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2040,6 +2257,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2053,6 +2271,7 @@ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } @@ -2061,16 +2280,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2081,6 +2305,7 @@ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -2089,15 +2314,17 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -2112,21 +2339,24 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2140,6 +2370,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -2158,6 +2389,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -2172,17 +2404,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -2197,6 +2431,7 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2215,7 +2450,8 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -2232,15 +2468,20 @@ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -2252,7 +2493,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -2272,13 +2514,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.1.2" }, @@ -2297,23 +2541,16 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bluebird": { @@ -2327,13 +2564,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/boxen": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -2356,6 +2595,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2368,6 +2608,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2380,6 +2621,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -2387,34 +2629,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/boxen/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/boxen/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2430,6 +2650,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -2442,6 +2663,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2472,6 +2694,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -2493,12 +2716,13 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -2516,10 +2740,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -2529,9 +2753,9 @@ } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -2547,9 +2771,10 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-crc32": { @@ -2557,6 +2782,7 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -2565,13 +2791,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -2579,15 +2807,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/bundle-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", @@ -2612,6 +2831,7 @@ "engines": [ "node >=0.10.0" ], + "license": "MIT", "bin": { "bunyan": "bin/bunyan" }, @@ -2627,6 +2847,7 @@ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" } @@ -2636,6 +2857,7 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -2654,6 +2876,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2662,14 +2885,20 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, + "license": "MIT", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2680,6 +2909,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2689,6 +2919,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2698,6 +2929,7 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -2711,9 +2943,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001620", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", - "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -2736,6 +2968,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -2747,13 +2980,15 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dev": true, + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -2775,6 +3010,7 @@ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -2792,21 +3028,17 @@ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "regexp-to-ast": "0.5.0" } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2819,6 +3051,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2828,6 +3063,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2840,6 +3076,7 @@ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -2864,6 +3101,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } @@ -2873,6 +3111,7 @@ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -2885,6 +3124,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -2894,6 +3134,7 @@ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2901,23 +3142,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -2930,6 +3160,7 @@ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } @@ -2939,13 +3170,36 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/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==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" } }, "node_modules/cliui/node_modules/wrap-ansi": { @@ -2953,6 +3207,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2970,6 +3225,7 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -2979,6 +3235,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -2990,19 +3247,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "dev": true, + "license": "MIT", "dependencies": { "strip-ansi": "^6.0.1", "wcwidth": "^1.0.0" @@ -3012,10 +3272,11 @@ } }, "node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -3025,6 +3286,7 @@ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } @@ -3034,6 +3296,7 @@ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -3042,7 +3305,8 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -3052,6 +3316,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -3063,13 +3328,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3085,6 +3352,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -3094,6 +3362,7 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -3104,6 +3373,7 @@ "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -3122,13 +3392,15 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/configstore/node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -3140,22 +3412,24 @@ "version": "2.15.3", "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.37.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", - "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -3163,36 +3437,47 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" }, "node_modules/corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { - "import-fresh": "^3.2.1", + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -3200,6 +3485,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3214,6 +3500,7 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -3229,6 +3516,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3251,6 +3539,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -3267,6 +3556,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -3280,6 +3570,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -3292,6 +3583,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -3309,11 +3601,66 @@ "node": ">= 12" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } @@ -3322,13 +3669,15 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -3346,6 +3695,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3355,6 +3705,7 @@ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -3371,6 +3722,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3380,6 +3732,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -3395,6 +3748,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3407,6 +3761,7 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -3415,13 +3770,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3509,6 +3866,19 @@ "node": ">=14.18.0" } }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-browser/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -3516,11 +3886,25 @@ "dev": true, "license": "ISC" }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -3533,22 +3917,27 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -3569,6 +3958,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3581,11 +3971,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -3594,13 +3996,15 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -3613,6 +4017,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -3625,6 +4030,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -3644,13 +4050,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -3666,6 +4074,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -3680,6 +4089,7 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -3696,6 +4106,7 @@ "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", "dev": true, "hasInstallScript": true, + "license": "BSD-2-Clause", "optional": true, "dependencies": { "nan": "^2.14.0" @@ -3708,12 +4119,13 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.774", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz", - "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==", + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz", + "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==", "dev": true, "license": "ISC" }, @@ -3721,21 +4133,23 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", - "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "license": "MIT", "dependencies": { @@ -3751,6 +4165,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3763,6 +4178,7 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3772,55 +4188,64 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -3829,15 +4254,59 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -3848,6 +4317,7 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } @@ -3857,6 +4327,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -3877,10 +4348,11 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3890,6 +4362,7 @@ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3902,6 +4375,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3914,6 +4388,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3965,10 +4440,14 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, "engines": { "node": ">=12" }, @@ -3981,6 +4460,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -3992,15 +4472,17 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -4018,6 +4500,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -4027,6 +4510,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-4.0.0.tgz", "integrity": "sha512-p3NY2idNIvgmQLF2/62ZskYt8gOuUgQ51smRc3Lh7FtSozpNc2sg+lniz9VaCagLZHEZTl8qGJKqE7xy8O/D/g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4035,21 +4519,23 @@ } }, "node_modules/eslint-plugin-es-x": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", - "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0", - "eslint-compat-utils": "^0.1.2" + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, "peerDependencies": { "eslint": ">=8" } @@ -4059,6 +4545,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5", "ignore": "^5.0.5" @@ -4078,6 +4565,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -4087,6 +4575,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -4118,6 +4607,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4128,6 +4618,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -4137,6 +4628,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -4149,6 +4641,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4161,25 +4654,29 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz", - "integrity": "sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==", + "version": "50.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.0.1.tgz", + "integrity": "sha512-UayhAysIk1Du8InV27WMbV4AMSJSu60+bekmeuGK2OUy4QJSFPr1srYT6AInykGkmMdRuHfDX6Q0tJEr8BtDtg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.43.0", + "@es-joy/jsdoccomment": "~0.46.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.4", + "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "semver": "^7.6.1", - "spdx-expression-parse": "^4.0.0" + "espree": "^10.1.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.1" }, "engines": { "node": ">=18" @@ -4189,9 +4686,9 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", - "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", "dev": true, "license": "MIT", "dependencies": { @@ -4211,6 +4708,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -4226,6 +4724,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -4234,19 +4733,19 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.7.0.tgz", - "integrity": "sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==", + "version": "17.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.2.tgz", + "integrity": "sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.0", "eslint-plugin-es-x": "^7.5.0", "get-tsconfig": "^4.7.0", - "globals": "^15.0.0", + "globals": "^15.8.0", "ignore": "^5.2.4", - "minimatch": "^9.0.0", + "minimatch": "^9.0.5", "semver": "^7.5.3" }, "engines": { @@ -4260,9 +4759,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.2.0.tgz", - "integrity": "sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "dev": true, "license": "MIT", "engines": { @@ -4277,18 +4776,19 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz", "integrity": "sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==", "dev": true, + "license": "MPL-2.0", "peerDependencies": { "eslint": "^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-promise": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", - "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz", + "integrity": "sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==", "dev": true, "license": "ISC", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4320,19 +4820,19 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "53.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz", - "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==", + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz", + "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.5", "@eslint-community/eslint-utils": "^4.4.0", - "@eslint/eslintrc": "^3.0.2", "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", "core-js-compat": "^3.37.0", "esquery": "^1.5.0", + "globals": "^15.7.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", @@ -4353,93 +4853,10 @@ "eslint": ">=8.56.0" } }, - "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "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/eslint-plugin-unicorn/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.11.3", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "dev": true, "license": "MIT", "engines": { @@ -4454,6 +4871,7 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -4461,31 +4879,12 @@ "node": ">=6" } }, - "node_modules/eslint-plugin-unicorn/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-unicorn/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4502,6 +4901,7 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -4520,17 +4920,19 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4541,6 +4943,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4557,6 +4960,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4567,6 +4971,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4578,11 +4983,43 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -4597,13 +5034,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4616,6 +5055,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4628,6 +5068,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -4636,17 +5077,18 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4657,6 +5099,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4666,10 +5109,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -4682,6 +5126,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -4694,6 +5139,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -4703,6 +5149,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -4712,6 +5159,7 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4720,35 +5168,41 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", + "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", "dev": true, + "license": "MIT", "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -4759,6 +5213,7 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -4772,13 +5227,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4795,6 +5252,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4806,43 +5264,56 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-redact": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", - "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -4852,6 +5323,7 @@ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, + "license": "MIT", "dependencies": { "pend": "~1.2.0" } @@ -4881,34 +5353,27 @@ } }, "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, + "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5" + "is-unicode-supported": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "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==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -4921,6 +5386,7 @@ "resolved": "https://registry.npmjs.org/file-url/-/file-url-4.0.0.tgz", "integrity": "sha512-vRCdScQ6j3Ku6Kd7W1kZk9c++5SqD6Xz5Jotrjr/nkY714M14RFHy/AAVA2WQvpsqVAVgTbDrYyBpU205F0cLw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4946,6 +5412,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -5038,6 +5505,7 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-3.0.0.tgz", "integrity": "sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5047,6 +5515,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -5056,6 +5525,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -5098,15 +5568,17 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5123,6 +5595,7 @@ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.17" } @@ -5145,26 +5618,44 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5174,6 +5665,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5192,6 +5684,7 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5201,6 +5694,7 @@ "resolved": "https://registry.npmjs.org/fx-runner/-/fx-runner-1.4.0.tgz", "integrity": "sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==", "dev": true, + "license": "MPL-2.0", "dependencies": { "commander": "2.9.0", "shell-quote": "1.7.3", @@ -5218,6 +5712,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", "dev": true, + "license": "MIT", "dependencies": { "graceful-readlink": ">= 1.0.0" }, @@ -5229,13 +5724,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", "integrity": "sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fx-runner/node_modules/which": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz", "integrity": "sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==", "dev": true, + "license": "ISC", "dependencies": { "is-absolute": "^0.1.7", "isexe": "^1.1.1" @@ -5249,6 +5746,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -5258,30 +5756,37 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, + "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-port": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz", - "integrity": "sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -5290,25 +5795,32 @@ } }, "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -5318,10 +5830,11 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", + "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -5330,22 +5843,24 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5356,6 +5871,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5370,11 +5886,28 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -5390,6 +5923,7 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -5399,6 +5933,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -5411,6 +5946,7 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -5425,6 +5961,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5437,17 +5974,20 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5461,6 +6001,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5480,13 +6021,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -5499,6 +6042,7 @@ "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -5524,6 +6068,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5535,31 +6080,36 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5569,6 +6119,7 @@ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5578,27 +6129,30 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5611,6 +6165,7 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5619,12 +6174,13 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5638,6 +6194,7 @@ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -5646,10 +6203,11 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5662,6 +6220,7 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } @@ -5671,6 +6230,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5683,6 +6243,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5694,13 +6255,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -5713,6 +6276,7 @@ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5725,6 +6289,7 @@ "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz", "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==", "dev": true, + "license": "MIT", "dependencies": { "async": "3.2.3", "chalk": "^4.1.2", @@ -5744,6 +6309,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5754,6 +6320,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5770,6 +6337,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } @@ -5778,7 +6346,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5799,6 +6369,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5811,6 +6382,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5820,6 +6392,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5839,6 +6412,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -5850,13 +6424,15 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -5871,6 +6447,7 @@ "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", "dev": true, + "license": "MIT", "dependencies": { "basic-auth": "^2.0.1", "chalk": "^4.1.2", @@ -5898,6 +6475,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5914,6 +6492,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5926,6 +6505,7 @@ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -5939,6 +6519,7 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5947,9 +6528,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "dependencies": { @@ -5961,12 +6542,13 @@ } }, "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/iconv-lite": { @@ -5974,6 +6556,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5999,7 +6582,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.1", @@ -6016,6 +6600,7 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", "dev": true, + "license": "MIT", "dependencies": { "queue": "6.0.2" }, @@ -6030,13 +6615,15 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -6053,6 +6640,7 @@ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6062,6 +6650,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -6071,6 +6660,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6079,7 +6669,9 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6089,47 +6681,24 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "9.2.13", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.13.tgz", - "integrity": "sha512-mUlJNemjYioZgaZXqEFlQ0z9GD8/o+pavIF3JyhzWLX4Xa9M1wioGMCxQEFmps70un9lrah2WaBl3kSRVcoV3g==", "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=14.18.0" - } + "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -6142,6 +6711,7 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -6154,6 +6724,7 @@ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6163,6 +6734,7 @@ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", "integrity": "sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==", "dev": true, + "license": "MIT", "dependencies": { "is-relative": "^0.1.0" }, @@ -6171,14 +6743,17 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6188,13 +6763,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -6207,6 +6784,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -6219,6 +6797,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6235,6 +6814,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -6250,6 +6830,7 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6262,6 +6843,7 @@ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -6280,17 +6862,38 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6301,6 +6904,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6316,6 +6920,7 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6331,6 +6936,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6340,6 +6946,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6349,6 +6956,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -6396,6 +7004,7 @@ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -6407,26 +7016,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-mergeable-object": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-mergeable-object/-/is-mergeable-object-1.1.1.tgz", "integrity": "sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6439,6 +7041,7 @@ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6461,6 +7064,7 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6476,6 +7080,7 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6485,17 +7090,19 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6506,6 +7113,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6515,6 +7123,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6536,24 +7145,29 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6564,6 +7178,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6579,6 +7194,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -6590,12 +7206,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -6608,15 +7225,17 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6626,13 +7245,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -6645,6 +7266,7 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -6657,6 +7279,7 @@ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -6665,24 +7288,27 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6695,29 +7321,39 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", "integrity": "sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.4.1.tgz", + "integrity": "sha512-U6QajmpV/nhL9SyfAewo000fkiRQ+Yd2H0lBxJJ9apjpOgkOcBQJWOrMo917lxLptdS/n/o/xPzMkXhF46K8hQ==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } }, + "node_modules/js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "dev": true, + "license": "MIT" + }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6730,6 +7366,7 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -6739,6 +7376,7 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -6750,13 +7388,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-merge-patch": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-merge-patch/-/json-merge-patch-1.0.2.tgz", "integrity": "sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" } @@ -6765,25 +7405,29 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -6792,16 +7436,18 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -6811,6 +7457,7 @@ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -6822,13 +7469,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jszip/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6844,6 +7493,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -6853,6 +7503,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -6862,14 +7513,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/known-css-properties": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", - "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", "dev": true, "license": "MIT" }, @@ -6878,6 +7530,7 @@ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dev": true, + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -6893,6 +7546,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", "dev": true, + "license": "MIT", "dependencies": { "invert-kv": "^3.0.0" }, @@ -6905,6 +7559,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6918,6 +7573,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } @@ -6927,6 +7583,7 @@ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -6937,6 +7594,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6945,13 +7603,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/linkify-it": { "version": "5.0.0", @@ -6968,6 +7628,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6982,19 +7643,22 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", @@ -7008,6 +7672,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -7024,6 +7689,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7035,11 +7701,25 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/log-symbols/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7052,6 +7732,7 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -7068,6 +7749,7 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7080,6 +7762,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -7088,19 +7771,22 @@ "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, + "license": "MIT", "dependencies": { "p-defer": "^1.0.0" }, @@ -7113,6 +7799,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7168,29 +7855,19 @@ "url": "https://github.com/sponsors/DavidAnson" } }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7200,7 +7877,8 @@ "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/mdurl": { "version": "2.0.0", @@ -7214,6 +7892,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", "dev": true, + "license": "MIT", "dependencies": { "map-age-cleaner": "^0.1.3", "mimic-fn": "^2.1.0", @@ -7223,20 +7902,12 @@ "node": ">=8" } }, - "node_modules/mem/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -7263,6 +7934,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7274,13 +7946,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -7325,6 +7999,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -7333,15 +8008,13 @@ } }, "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/mimic-response": { @@ -7349,6 +8022,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7361,14 +8035,22 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -7386,6 +8068,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7395,6 +8078,7 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -7409,6 +8093,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7428,6 +8113,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -7436,32 +8122,32 @@ } }, "node_modules/mocha": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", - "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", + "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -7476,26 +8162,27 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "node_modules/mocha/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==", "dev": true, - "engines": { - "node": ">=0.3.1" - } + "license": "MIT" }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7511,10 +8198,11 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7526,13 +8214,30 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7550,6 +8255,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7568,6 +8274,7 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": "*" @@ -7577,13 +8284,15 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/multimatch": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-6.0.0.tgz", "integrity": "sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "^3.0.5", "array-differ": "^4.0.0", @@ -7602,6 +8311,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7614,6 +8324,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7624,6 +8335,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7632,31 +8344,35 @@ } }, "node_modules/mutation-testing-elements": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.0.2.tgz", - "integrity": "sha512-ISsvj+2pfcyAUEMig83Y5KFvWpy3wJ3NIcXiJ6hD5NQeDdZJnhagRJqLQTwBRkzblqiAuYpY611v4isYJauBbg==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.1.1.tgz", + "integrity": "sha512-pYkrxZJh2zqA8XRSjtkoDFuIbezY1/4kIYjxw+DM6h6WL5wntLVKP5y3vQT8miRz/ek/3MP0qm2tuvgPn1rjOQ==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/mutation-testing-metrics": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.0.2.tgz", - "integrity": "sha512-FpyCAz43Mmq/l7BIyBrZLv8z3kc5XHNei/DcAyEVSXyj2i+h4jLhen4SiW/BPMijCIMVyiOeMJPMIfaYxrFZGg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.1.1.tgz", + "integrity": "sha512-AgXM0TAnwD4G5ml0pA4u4qZu6+EuKnFwDHKjwdipgxy6nZRvZzqj2JUOGfFvbTPyjFLeVbAxYMsedPQskxXyxw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "mutation-testing-report-schema": "3.0.2" + "mutation-testing-report-schema": "3.1.1" } }, "node_modules/mutation-testing-report-schema": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.0.2.tgz", - "integrity": "sha512-1F6s37zFDsoWa262sANVBDKANMvmKPVU1FAVEpSCMtKAGkFoar+tjXUlPnD0dWJfPuKV58G86zP7sMlcu+QOJQ==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.1.1.tgz", + "integrity": "sha512-lWIbgUEnMEdsY2yymC7SZRBO+6dbZa5tY/Bmw+xjXYPdBxTVlnd2mjKRPZ6FUxgHJ9vMQmQnktMNAKCWZp1H0A==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/mute-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -7666,6 +8382,7 @@ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "mkdirp": "~0.5.1", @@ -7681,6 +8398,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "balanced-match": "^1.0.0", @@ -7691,7 +8409,9 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "optional": true, "dependencies": { "inflight": "^1.0.4", @@ -7709,6 +8429,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "optional": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -7721,7 +8442,9 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "optional": true, "dependencies": { "glob": "^6.0.1" @@ -7743,10 +8466,11 @@ } }, "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/nanoid": { @@ -7760,6 +8484,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -7771,13 +8496,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nconf": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.1.tgz", "integrity": "sha512-p2cfF+B3XXacQdswUYWZ0w6Vld0832A/tuqjLBu3H1sfUcby4N2oVbGhyuCkZv+t3iY3aiFEj7gZGqax9Q2c1w==", "dev": true, + "license": "MIT", "dependencies": { "async": "^3.0.0", "ini": "^2.0.0", @@ -7793,26 +8520,51 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, + "node_modules/nconf/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==", + "dev": true, + "license": "MIT" + }, "node_modules/nconf/node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, + "node_modules/nconf/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nconf/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7830,6 +8582,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7848,6 +8601,7 @@ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", "dev": true, + "license": "MIT", "optional": true, "bin": { "ncp": "bin/ncp" @@ -7878,6 +8632,7 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -7908,6 +8663,7 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "dev": true, + "license": "MIT", "dependencies": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -7918,16 +8674,18 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -7943,15 +8701,17 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -7960,35 +8720,36 @@ } }, "node_modules/npm-package-json-lint": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-7.1.0.tgz", - "integrity": "sha512-ypcMpag32TCP89zzLSS+7vjeR2QY613WzmO2upcJgKNWlcswDz8cdb80urbBNHkhSPI40ex3nsKrRDH/WhMYOg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-8.0.0.tgz", + "integrity": "sha512-44xqAKoV0nXnBYYLGUhMItGZb5tW3cLoW3UZxcsaCOX/YAkECrzOQA5F48oAA51vVE5CqAnsJB2CFvtolzMA3Q==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.6", "ajv-errors": "^1.0.1", "chalk": "^4.1.2", - "cosmiconfig": "^8.2.0", + "cosmiconfig": "^8.3.6", "debug": "^4.3.4", "globby": "^11.1.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "is-plain-obj": "^3.0.0", - "jsonc-parser": "^3.2.0", + "jsonc-parser": "^3.2.1", "log-symbols": "^4.1.0", "meow": "^9.0.0", "plur": "^4.0.0", - "semver": "^7.5.4", + "semver": "^7.6.2", "slash": "^3.0.0", "strip-json-comments": "^3.1.1", - "type-fest": "^4.3.3", - "validate-npm-package-name": "^5.0.0" + "type-fest": "^4.20.0", + "validate-npm-package-name": "^5.0.1" }, "bin": { "npmPkgJsonLint": "dist/cli.js" }, "engines": { - "node": ">=16.0.0", - "npm": ">=8.0.0" + "node": ">=18.0.0", + "npm": ">=9.0.0" } }, "node_modules/npm-package-json-lint/node_modules/ajv": { @@ -7996,6 +8757,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -8012,6 +8774,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8028,6 +8791,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -8049,17 +8813,32 @@ } } }, + "node_modules/npm-package-json-lint/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-package-json-lint/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/npm-package-json-lint/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8068,10 +8847,11 @@ } }, "node_modules/npm-package-json-lint/node_modules/type-fest": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz", - "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", + "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -8084,6 +8864,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -8099,6 +8880,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8111,6 +8893,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -8129,10 +8912,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8142,6 +8929,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -8151,6 +8939,7 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -8165,14 +8954,16 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8182,26 +8973,30 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8215,6 +9010,7 @@ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -8224,6 +9020,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -8233,6 +9030,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -8243,6 +9041,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", @@ -8267,83 +9078,35 @@ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": 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/ora/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/os-locale": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^4.0.0", "lcid": "^3.0.0", @@ -8361,6 +9124,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -8384,6 +9148,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -8399,6 +9164,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.12.0" } @@ -8408,6 +9174,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8415,20 +9182,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-locale/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/os-locale/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -8441,6 +9200,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -8455,13 +9215,15 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/os-locale/node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8480,6 +9242,7 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8489,6 +9252,7 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" } @@ -8498,6 +9262,7 @@ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8507,6 +9272,7 @@ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8516,6 +9282,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -8531,6 +9298,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -8546,6 +9314,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8555,6 +9324,7 @@ "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dev": true, + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -8568,17 +9338,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "dev": true, + "license": "(MIT AND Zlib)" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -8586,11 +9365,26 @@ "node": ">=6" } }, + "node_modules/parse-imports": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz", + "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -8604,11 +9398,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -8621,6 +9429,7 @@ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dev": true, + "license": "MIT", "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" @@ -8634,6 +9443,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8643,6 +9453,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8652,6 +9463,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8660,33 +9472,34 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", "dev": true, "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-type": { @@ -8694,6 +9507,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8702,7 +9516,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.1", @@ -8716,6 +9531,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -8747,66 +9563,29 @@ } }, "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, - "node_modules/pino-abstract-transport/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/pino-std-serializers": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/plur": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", "dev": true, + "license": "MIT", "dependencies": { "irregular-plurals": "^3.2.0" }, @@ -8822,6 +9601,7 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8831,6 +9611,7 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", @@ -8845,6 +9626,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } @@ -8854,14 +9636,25 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -8880,18 +9673,19 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.5.tgz", + "integrity": "sha512-tum2m18S22ZSNjXatMG0FSk5ZL83pTttymeJx5Gzxg7RU0s1jNDU9rXltro4osQrukjyNormcb07IEjqEyPNaA==", + "dev": true, + "license": "MIT" }, "node_modules/postcss-safe-parser": { "version": "7.0.0", @@ -8912,6 +9706,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "engines": { "node": ">=18.0" }, @@ -8920,9 +9715,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "license": "MIT", "dependencies": { @@ -8938,6 +9733,7 @@ "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz", "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==", "dev": true, + "license": "MIT", "peerDependencies": { "postcss": "^8.4.20" } @@ -8946,22 +9742,25 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -8972,11 +9771,28 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-ms": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -8985,19 +9801,22 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/process-warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -9007,6 +9826,7 @@ "resolved": "https://registry.npmjs.org/promise-toolbox/-/promise-toolbox-0.21.0.tgz", "integrity": "sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==", "dev": true, + "license": "ISC", "dependencies": { "make-error": "^1.3.2" }, @@ -9018,13 +9838,15 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -9035,6 +9857,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9054,6 +9877,7 @@ "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", "dev": true, + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -9080,13 +9904,75 @@ "purgecss": "bin/purgecss.js" } }, + "node_modules/purgecss/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/purgecss/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/purgecss/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/purgecss/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -9100,6 +9986,7 @@ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "~2.0.3" } @@ -9122,19 +10009,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9143,13 +10033,15 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -9159,6 +10051,7 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9174,6 +10067,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9183,6 +10077,7 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -9198,6 +10093,7 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -9215,6 +10111,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9228,6 +10125,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -9240,6 +10138,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -9255,6 +10154,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -9267,6 +10167,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -9275,13 +10176,15 @@ "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -9294,6 +10197,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -9303,22 +10207,26 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/readdirp": { @@ -9326,6 +10234,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -9338,6 +10247,7 @@ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -9347,6 +10257,7 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -9360,6 +10271,7 @@ "resolved": "https://registry.npmjs.org/refa/-/refa-0.12.1.tgz", "integrity": "sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.8.0" }, @@ -9379,6 +10291,7 @@ "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", "integrity": "sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.8.0", "refa": "^0.12.1" @@ -9391,26 +10304,30 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, + "license": "MIT", "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -9424,6 +10341,7 @@ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -9436,6 +10354,7 @@ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dev": true, + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -9451,6 +10370,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -9472,6 +10392,7 @@ "resolved": "https://registry.npmjs.org/relaxed-json/-/relaxed-json-1.0.3.tgz", "integrity": "sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "chalk": "^2.4.2", "commander": "^2.6.0" @@ -9488,6 +10409,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -9500,6 +10422,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -9514,6 +10437,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -9522,19 +10446,22 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/relaxed-json/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/relaxed-json/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -9544,6 +10471,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9553,6 +10481,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -9565,6 +10494,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9574,6 +10504,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9582,13 +10513,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -9605,13 +10538,15 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9621,6 +10556,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -9630,6 +10566,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -9640,70 +10577,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -9719,6 +10617,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9728,7 +10627,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9749,6 +10650,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9832,16 +10734,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/run-applescript/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/run-applescript/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -9888,15 +10780,6 @@ "node": ">=6" } }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -9916,6 +10799,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -9925,18 +10809,20 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -9951,25 +10837,31 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-json-stringify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9979,6 +10871,7 @@ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -9987,7 +10880,8 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sax": { "version": "1.4.1", @@ -10001,6 +10895,7 @@ "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz", "integrity": "sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.8.0", "refa": "^0.12.0", @@ -10014,18 +10909,20 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/secure-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { @@ -10040,6 +10937,7 @@ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -10051,38 +10949,44 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10092,13 +10996,15 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -10112,6 +11018,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10124,6 +11031,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10132,35 +11040,41 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.1.tgz", + "integrity": "sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "@shikijs/core": "1.12.1", + "@types/hast": "^3.0.4" } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10171,6 +11085,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -10183,10 +11098,18 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true, + "license": "ISC" + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -10206,10 +11129,11 @@ } }, "node_modules/sonic-boom": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", - "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -10219,6 +11143,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -10238,6 +11163,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -10248,6 +11174,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -10258,6 +11185,7 @@ "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "concat-stream": "^1.4.7", "os-shim": "^0.1.2" @@ -10268,6 +11196,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -10278,32 +11207,36 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/split": { "version": "1.0.1", @@ -10323,6 +11256,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10.x" } @@ -10332,6 +11266,7 @@ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, + "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -10346,6 +11281,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -10368,20 +11304,25 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -10390,6 +11331,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -10403,23 +11345,56 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, "node_modules/string-width/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==", - "dev": true + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10429,28 +11404,33 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10461,6 +11441,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10474,6 +11455,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10486,6 +11468,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -10495,6 +11478,7 @@ "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-2.0.0.tgz", "integrity": "sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==", "dev": true, + "license": "MIT", "dependencies": { "is-utf8": "^0.2.1" }, @@ -10507,6 +11491,7 @@ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-4.0.0.tgz", "integrity": "sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==", "dev": true, + "license": "MIT", "dependencies": { "first-chunk-stream": "^3.0.0", "strip-bom-buf": "^2.0.0" @@ -10516,12 +11501,13 @@ } }, "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10532,6 +11518,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -10544,6 +11531,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -10552,9 +11540,9 @@ } }, "node_modules/stylelint": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.1.tgz", - "integrity": "sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.8.1.tgz", + "integrity": "sha512-O8aDyfdODSDNz/B3gW2HQ+8kv8pfhSu7ZR7xskQ93+vI6FhKKGUJMQ03Ydu+w3OvXXE0/u4hWU4hCPNOyld+OA==", "dev": true, "funding": [ { @@ -10568,9 +11556,9 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/media-query-list-parser": "^2.1.13", "@csstools/selector-specificity": "^3.1.1", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", @@ -10578,7 +11566,7 @@ "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", - "debug": "^4.3.4", + "debug": "^4.3.6", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^9.0.0", @@ -10589,16 +11577,16 @@ "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.31.0", + "known-css-properties": "^0.34.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.7", "normalize-path": "^3.0.0", "picocolors": "^1.0.1", - "postcss": "^8.4.38", - "postcss-resolve-nested-selector": "^0.1.1", + "postcss": "^8.4.40", + "postcss-resolve-nested-selector": "^0.1.4", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.1.0", + "postcss-selector-parser": "^6.1.1", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -10620,6 +11608,7 @@ "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz", "integrity": "sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^8.4.32", "postcss-sorting": "^8.0.2" @@ -10628,65 +11617,19 @@ "stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1" } }, - "node_modules/stylelint/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } + "license": "MIT" }, - "node_modules/stylelint/node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/stylelint/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==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } + "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { "version": "9.0.0", @@ -10715,18 +11658,6 @@ "node": ">=18" } }, - "node_modules/stylelint/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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/stylelint/node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -10745,6 +11676,35 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/string-width/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } @@ -10754,6 +11714,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -10761,7 +11722,20 @@ "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/supports-color": { @@ -10769,6 +11743,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10784,6 +11759,7 @@ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -10797,6 +11773,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10809,6 +11786,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10822,6 +11800,23 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/table": { "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", @@ -10839,6 +11834,28 @@ "node": ">=10.0.0" } }, + "node_modules/table/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/table/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -10853,7 +11870,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", @@ -10879,10 +11897,11 @@ } }, "node_modules/thread-stream": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", - "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", "dev": true, + "license": "MIT", "dependencies": { "real-require": "^0.2.0" } @@ -10912,6 +11931,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -10924,6 +11944,7 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -10954,13 +11975,15 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -10970,6 +11993,7 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10979,6 +12003,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -10991,6 +12016,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -10999,16 +12025,18 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true, + "license": "0BSD" }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -11018,6 +12046,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -11030,6 +12059,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -11038,29 +12068,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -11070,16 +12103,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -11089,14 +12124,21 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11107,62 +12149,72 @@ "resolved": "https://registry.npmjs.org/typed-inject/-/typed-inject-4.0.0.tgz", "integrity": "sha512-OuBL3G8CJlS/kjbGV/cN8Ni32+ktyyi6ADDZpKvksbX0fYBV5WcukhRCYa7WqLce7dY/Br2dwtmJ9diiadLFpg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16" } }, "node_modules/typed-rest-client": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", - "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-2.0.2.tgz", + "integrity": "sha512-rmAQM2gZw/PQpK5+5aSs+I6ZBv4PFC2BT1o+0ADS1SgSejA+14EmbI2Lt8uXwkX7oeOMkwFmg0pHKwe8D9IT5A==", "dev": true, + "license": "MIT", "dependencies": { - "qs": "^6.9.1", + "des.js": "^1.1.0", + "js-md4": "^0.3.2", + "qs": "^6.10.3", "tunnel": "0.0.6", "underscore": "^1.12.1" + }, + "engines": { + "node": ">= 16.0.0" } }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typedoc": { - "version": "0.25.13", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", - "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz", + "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==", "dev": true, "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.9.1", + "yaml": "^2.4.5" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 16" + "node": ">= 18" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "license": "Apache-2.0", "bin": { @@ -11185,6 +12237,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -11196,16 +12249,18 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "dev": true, + "license": "MIT" }, "node_modules/union": { "version": "0.5.0", @@ -11224,6 +12279,7 @@ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -11239,6 +12295,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -11258,15 +12315,16 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -11282,9 +12340,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -11298,6 +12357,7 @@ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -11326,6 +12386,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -11334,19 +12395,22 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -11356,6 +12420,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -11366,35 +12431,22 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", @@ -11414,26 +12466,28 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/weapon-regex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.3.1.tgz", - "integrity": "sha512-l1qFP+WdehGfqNwW9MTtEB87PZITaIiz+m0ndvJS80/jlShRvP4rRQR/XXij53Rfa1zRe2qbOAcH+MQAsYtYYw==", - "dev": true + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-1.3.2.tgz", + "integrity": "sha512-jtFTAr0F3gmiX10J6+BYgPrZ/yjXhpcxK/j/Lm1fWRLATxfecPgnkd3DqSUkD0AC2wVVyAkMtsgeuiIuELlW3w==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/web-ext": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.0.0.tgz", - "integrity": "sha512-fcE6woJOHRAzGRTlHwcltEirOV+R3aLE/Yl+yoBbvHonJRnOcthaW1wjqlXc+iJu5rXqwd3yICLbLUndQlbCRQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.2.0.tgz", + "integrity": "sha512-krU7rmxaG96b3Q9Enbry9/pmE/5FUGkvajCGfJCD+J79rt7JFjhVpw1Dszz4BqQkTd3y8cG5wJ3p1uC6uyAwcA==", "dev": true, "license": "MPL-2.0", "dependencies": { - "@babel/runtime": "7.24.6", + "@babel/runtime": "7.24.7", "@devicefarmer/adbkit": "3.2.6", - "addons-linter": "6.28.0", + "addons-linter": "6.31.1", "bunyan": "1.8.15", "camelcase": "8.0.0", "chrome-launcher": "0.15.1", @@ -11444,9 +12498,9 @@ "fs-extra": "11.2.0", "fx-runner": "1.4.0", "https-proxy-agent": "^7.0.0", - "jose": "4.15.5", + "jose": "5.4.1", "jszip": "3.10.1", - "mkdirp": "1.0.4", + "mkdirp": "3.0.1", "multimatch": "6.0.0", "mz": "2.7.0", "node-fetch": "3.3.2", @@ -11460,7 +12514,7 @@ "tmp": "0.2.3", "update-notifier": "6.0.2", "watchpack": "2.4.1", - "ws": "8.17.0", + "ws": "8.17.1", "yargs": "17.7.2", "zip-dir": "2.0.0" }, @@ -11472,6 +12526,76 @@ "npm": ">=8.0.0" } }, + "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { + "version": "5.5.34", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.34.tgz", + "integrity": "sha512-e8k7+8r3jiJuP7FMH6AL1OnmfQqLyABhTM+NmRDvFeAbMgtFcNQLHpmT7uza5cBnxI01+CAU3aSsIgcKGRdEBQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/web-ext/node_modules/addons-linter": { + "version": "6.31.1", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.31.1.tgz", + "integrity": "sha512-R9FCyVzqU/h5A2aB1t+jD8t4QKLuLxYqc1FjmjJ0nZrn1qNCna1jFOajt5R1T8pwt0H4WXgT+uwWSD2BdkBzqQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@fluent/syntax": "0.19.0", + "@mdn/browser-compat-data": "5.5.34", + "addons-moz-compare": "1.3.0", + "addons-scanner-utils": "9.11.0", + "ajv": "8.16.0", + "chalk": "4.1.2", + "cheerio": "1.0.0-rc.12", + "columnify": "1.6.0", + "common-tags": "1.8.2", + "deepmerge": "4.3.1", + "eslint": "8.57.0", + "eslint-plugin-no-unsanitized": "4.0.2", + "eslint-visitor-keys": "4.0.0", + "espree": "10.0.1", + "esprima": "4.0.1", + "fast-json-patch": "3.1.1", + "glob": "10.4.2", + "image-size": "1.1.1", + "is-mergeable-object": "1.1.1", + "jed": "1.1.1", + "json-merge-patch": "1.0.2", + "os-locale": "5.0.0", + "pino": "8.20.0", + "relaxed-json": "1.0.3", + "semver": "7.6.2", + "sha.js": "2.4.11", + "source-map-support": "0.5.21", + "tosource": "1.0.0", + "upath": "2.0.1", + "yargs": "17.7.2", + "yauzl": "2.10.0" + }, + "bin": { + "addons-linter": "bin/addons-linter" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/web-ext/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/web-ext/node_modules/camelcase": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", @@ -11485,11 +12609,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "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/web-ext/node_modules/decamelize": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -11497,19 +12639,77 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/web-ext/node_modules/espree": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.11.3", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/web-ext/node_modules/glob": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/web-ext/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14.14" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/web-ext/node_modules/json-parse-even-better-errors": { @@ -11545,16 +12745,27 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/web-ext/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/web-ext/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/web-ext/node_modules/node-fetch": { @@ -11596,11 +12807,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/web-ext/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/web-ext/node_modules/strip-bom": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", "integrity": "sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11621,6 +12863,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/web-ext/node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -11668,13 +12923,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -11687,6 +12944,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -11699,6 +12957,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -11708,13 +12967,15 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", "integrity": "sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11730,6 +12991,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -11742,16 +13004,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11765,6 +13028,7 @@ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -11775,73 +13039,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/winreg": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", + "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "BSD" }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/winreg": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", - "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", - "dev": true - }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -11857,6 +13084,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -11869,17 +13097,63 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -11889,9 +13163,9 @@ } }, "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "license": "MIT", "engines": { @@ -11915,6 +13189,7 @@ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11926,7 +13201,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/xml2js": { "version": "0.5.0", @@ -11957,6 +13233,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -11965,13 +13242,28 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/yaml-lint": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/yaml-lint/-/yaml-lint-1.7.0.tgz", "integrity": "sha512-zeBC/kskKQo4zuoGQ+IYjw6C9a/YILr2SXoEZA9jM0COrSwvwVbfTiFegT8qYBSBgOwLMWGL8sY137tOmFXGnQ==", "dev": true, + "license": "MIT", "dependencies": { "consola": "^2.15.3", "globby": "^11.1.0", @@ -11987,6 +13279,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -12001,10 +13294,11 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -12014,6 +13308,7 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -12029,6 +13324,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12041,6 +13337,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12053,6 +13350,29 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } @@ -12062,6 +13382,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -12071,6 +13392,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -12081,6 +13403,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12088,11 +13411,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zip-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/zip-dir/-/zip-dir-2.0.0.tgz", "integrity": "sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==", "dev": true, + "license": "MIT", "dependencies": { "async": "^3.2.0", "jszip": "^3.2.2" diff --git a/package.json b/package.json index 11b0804..32477ba 100644 --- a/package.json +++ b/package.json @@ -41,41 +41,41 @@ "clean": "node .script/clean.js" }, "devDependencies": { - "@prantlf/jsonlint": "14.0.3", + "@prantlf/jsonlint": "16.0.0", "@prettier/plugin-xml": "3.4.1", - "@stryker-mutator/core": "8.2.6", - "@stryker-mutator/mocha-runner": "8.2.6", - "@types/eslint": "8.56.10", - "@types/mocha": "10.0.6", - "addons-linter": "6.28.0", + "@stryker-mutator/core": "8.4.0", + "@stryker-mutator/mocha-runner": "8.4.0", + "@types/eslint": "9.6.0", + "@types/mocha": "10.0.7", + "addons-linter": "6.33.0", "eslint": "8.57.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.6", - "eslint-plugin-mocha": "10.4.3", - "eslint-plugin-n": "17.7.0", + "eslint-plugin-jsdoc": "50.0.1", + "eslint-plugin-mocha": "10.5.0", + "eslint-plugin-n": "17.10.2", "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-plugin-promise": "6.2.0", + "eslint-plugin-promise": "7.1.0", "eslint-plugin-regexp": "2.6.0", - "eslint-plugin-unicorn": "53.0.0", + "eslint-plugin-unicorn": "55.0.0", "htmlhint": "1.1.4", "http-server": "14.1.1", "markdownlint": "0.34.0", "metalint": "0.17.0", - "mocha": "10.4.0", - "npm-package-json-lint": "7.1.0", - "prettier": "3.2.5", + "mocha": "10.7.3", + "npm-package-json-lint": "8.0.0", + "prettier": "3.3.3", "purgecss": "6.0.0", - "stylelint": "16.6.1", + "stylelint": "16.8.1", "stylelint-order": "6.0.4", - "typedoc": "0.25.13", - "typescript": "5.4.5", - "web-ext": "8.0.0", + "typedoc": "0.26.5", + "typescript": "5.5.4", + "web-ext": "8.2.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=20.6.0" + "node": ">=22.1.0" }, "private": true } diff --git a/src/engine/script.js b/src/engine/script.js index 80ea278..67fce35 100644 --- a/src/engine/script.js +++ b/src/engine/script.js @@ -10,7 +10,7 @@ import YAML from "https://esm.sh/yaml@2.4.2"; const hashCode = function (text) { return Math.abs( Array.from(text).reduce((code, character) => { - return (code << 5) - code + character.codePointAt(); + return (code << 5) - code + character.codePointAt(0); }, 0), ).toString(36); }; @@ -38,7 +38,7 @@ const loadScrapers = function (scrapers) { * * @param {Object} widget La configuration du widget (un module et des éventuels * scrapers). - * @returns {Promise<Object>} Le module avec ses éventuels scrapers. + * @returns {Promise<HTMLElement>} L'élément HTML du widget. */ const loadWidget = async function (widget) { const scrapers = await loadScrapers(widget.module.scrapers ?? []); diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json index 766ea2f..55ad77c 100644 --- a/src/extension/chromium/manifest.json +++ b/src/extension/chromium/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "126.0" + "strict_min_version": "129.0" } }, "manifest_version": 3, @@ -27,12 +27,13 @@ }, "author": "Sébastien Règne", "background": { + "scripts": ["background/script.js"], "service_worker": "background/script.js", "type": "module" }, "homepage_url": "https://github.com/regseb/gout", "host_permissions": ["<all_urls>"], - "minimum_chrome_version": "125", + "minimum_chrome_version": "127", "permissions": [ "activeTab", "storage", diff --git a/src/extension/chromium/polyfill/browser.js b/src/extension/chromium/polyfill/browser.js index 04f0dc9..19e5e8f 100644 --- a/src/extension/chromium/polyfill/browser.js +++ b/src/extension/chromium/polyfill/browser.js @@ -6,7 +6,7 @@ // Copier la variable "chrome" (qui contient les APIs pour les WebExtensions) // dans la variable "browser", car Chromium fournit seulement "chrome". -// https://crbug.com/798169 +// https://issues.chromium.org/40556351 if (!("browser" in globalThis)) { globalThis.browser = chrome; } diff --git a/src/extension/firefox/background/page.html b/src/extension/firefox/background/page.html deleted file mode 100644 index d640daf..0000000 --- a/src/extension/firefox/background/page.html +++ /dev/null @@ -1,10 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8" /> - <title>Gout</title> - </head> - <body> - <script src="script.js" type="module"></script> - </body> -</html> diff --git a/src/extension/firefox/background/script.js b/src/extension/firefox/background/script.js index 72ff63a..6c1e222 100644 --- a/src/extension/firefox/background/script.js +++ b/src/extension/firefox/background/script.js @@ -7,45 +7,73 @@ import "../polyfill/browser.js"; import migrate from "./migrate.js"; -const replace = (headers, replacements) => { - const names = new Set(replacements.map((r) => r.name.toLowerCase())); - return [ - ...headers.filter((h) => !names.has(h.name.toLowerCase())), - ...replacements, +const handleBeforeNavigate = async (details) => { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = [ + ...rules.flatMap((r) => r.condition.tabIds), + // Ajouter le nouvel onglet. + details.tabId, ]; + + // Ajouter la règle de modification des entêtes HTTP pour tous les onglets + // affichant un dashboard. + await browser.declarativeNetRequest.updateSessionRules({ + addRules: [ + { + action: { + type: "modifyHeaders", + responseHeaders: [ + { + header: "Access-Control-Allow-Methods", + value: "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS", + operation: "set", + }, + { + header: "Access-Control-Allow-Credentials", + value: "true", + operation: "set", + }, + { + header: "Access-Control-Expose-Headers", + value: "*", + operation: "set", + }, + { + header: "Access-Control-Allow-Headers", + value: "*", + operation: "set", + }, + { + header: "Access-Control-Allow-Origin", + value: "*", + operation: "set", + }, + ], + }, + condition: { + tabIds, + urlFilter: "|http*", + resourceTypes: ["xmlhttprequest"], + }, + id: 1, + }, + ], + removeRuleIds: [1], + }); }; -browser.webRequest.onBeforeSendHeaders.addListener( - async (details) => { - const { dashboards } = await browser.storage.sync.get("dashboards"); - if (dashboards.some((d) => details.documentUrl === d.url)) { - return { - requestHeaders: replace(details.requestHeaders, [ - { name: "Sec-Fetch-Mode", value: "navigate" }, - ]), - }; - } - return {}; - }, - { urls: ["<all_urls>"] }, - ["blocking", "requestHeaders"], -); +browser.storage.onChanged.addListener(async () => { + const { dashboards } = await browser.storage.sync.get("dashboards"); + if (undefined === dashboards) { + return; + } -browser.webRequest.onHeadersReceived.addListener( - async (details) => { - const { dashboards } = await browser.storage.sync.get("dashboards"); - if (dashboards.some((d) => details.documentUrl === d.url)) { - return { - responseHeaders: replace(details.responseHeaders, [ - { name: "Access-Control-Allow-Origin", value: "*" }, - ]), - }; - } - return {}; - }, - { urls: ["<all_urls>"] }, - ["blocking", "responseHeaders"], -); + browser.webNavigation.onBeforeNavigate.removeListener(handleBeforeNavigate); + browser.webNavigation.onBeforeNavigate.addListener(handleBeforeNavigate, { + url: dashboards.map((d) => ({ urlEquals: d.url })), + }); +}); browser.runtime.onInstalled.addListener(async () => { await migrate(); diff --git a/src/extension/firefox/manifest.json b/src/extension/firefox/manifest.json index f6e8f87..58eae27 100644 --- a/src/extension/firefox/manifest.json +++ b/src/extension/firefox/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "126.0" + "strict_min_version": "129.0" } }, "manifest_version": 2, @@ -27,16 +27,18 @@ }, "author": "Sébastien Règne", "background": { - "page": "background/page.html", - "persistent": true + "scripts": ["background/script.js"], + "service_worker": "background/script.js", + "type": "module" }, "homepage_url": "https://github.com/regseb/gout", - "minimum_chrome_version": "125", + "minimum_chrome_version": "127", "permissions": [ "<all_urls>", "activeTab", "storage", - "webRequest", - "webRequestBlocking" + "webNavigation", + "declarativeNetRequest", + "declarativeNetRequestFeedback" ] } diff --git a/src/extension/firefox/polyfill/browser.js b/src/extension/firefox/polyfill/browser.js index 04f0dc9..19e5e8f 100644 --- a/src/extension/firefox/polyfill/browser.js +++ b/src/extension/firefox/polyfill/browser.js @@ -6,7 +6,7 @@ // Copier la variable "chrome" (qui contient les APIs pour les WebExtensions) // dans la variable "browser", car Chromium fournit seulement "chrome". -// https://crbug.com/798169 +// https://issues.chromium.org/40556351 if (!("browser" in globalThis)) { globalThis.browser = chrome; } diff --git a/src/module/audio/README.md b/src/module/audio/README.md index 191aaf1..bff231d 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -27,7 +27,7 @@ suivantes : propriété, les données ne sont jamais mises à jour. </p> <p> - Exemple : <code>"@daily"</code>. + Exemple : <code>"@daily"</code> </p> </td> </tr> @@ -42,7 +42,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -51,6 +51,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -77,7 +78,7 @@ suivantes : l'icône est affichée). </p> <p> - Exemple : <code>"https://example.com/foo/bar.mp3"</code>. + Exemple : <code>"https://example.com/foo/bar.mp3"</code> </p> </td> </tr> @@ -92,7 +93,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -108,7 +109,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -124,7 +125,7 @@ suivantes : l'image d'une note de musique est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -137,7 +138,7 @@ suivantes : de lien. </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -151,7 +152,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -164,7 +165,7 @@ suivantes : infobulle n'est affichée. </p> <p> - Exemple : <code>"La meilleur radio !"</code>. + Exemple : <code>"La meilleur radio !"</code> </p> </td> </tr> diff --git a/src/module/clock/README.md b/src/module/clock/README.md index cff071d..a080712 100644 --- a/src/module/clock/README.md +++ b/src/module/clock/README.md @@ -27,7 +27,7 @@ suivantes : propriété, les données ne sont jamais mises à jour. </p> <p> - Exemple : <code>"@daily"</code>. + Exemple : <code>"@daily"</code> </p> </td> </tr> @@ -42,7 +42,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -51,6 +51,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -79,7 +80,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -95,7 +96,7 @@ suivantes : courante est utilisée. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -113,7 +114,7 @@ suivantes : d'une simple horloge est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> diff --git a/src/module/examples/preact/helloworld/README.md b/src/module/examples/preact/helloworld/README.md index 84cc81e..f924137 100644 --- a/src/module/examples/preact/helloworld/README.md +++ b/src/module/examples/preact/helloworld/README.md @@ -4,8 +4,8 @@ > gout-module-examples-preact, gout-module-examples-preact-helloworld. Ce module est un exemple utilisant **[Preact](https://preactjs.com/)**. Il -implémente un _hello world_ récupéré du tutoriel [_Interactive Hello -World_](https://preactjs.com/guide/v10/tutorial/#interactive-hello-world). +implémente un _hello world_ récupéré du tutoriel +[_Interactive Hello World_](https://preactjs.com/guide/v10/tutorial/#interactive-hello-world). ## Options @@ -17,7 +17,7 @@ Ce module n'utilise pas de scraper. ## Exemple -Ce widget affiche un hello world développé avec Preact. +Ce widget affiche un _hello world_ développé avec Preact. ```html <script type="application/yaml"> diff --git a/src/module/icon/README.md b/src/module/icon/README.md index f48c4ac..afac8e6 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -27,7 +27,7 @@ suivantes : propriété, les données ne sont jamais mises à jour. </p> <p> - Exemple : <code>"@daily"</code>. + Exemple : <code>"@daily"</code> </p> </td> </tr> @@ -42,7 +42,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -51,6 +51,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -79,7 +80,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -95,7 +96,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -111,7 +112,7 @@ suivantes : aucune icône n'est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -124,7 +125,7 @@ suivantes : de lien. </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -138,7 +139,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -151,7 +152,7 @@ suivantes : infobulle est affichée. </p> <p> - Exemple : <code>"Click me!"</code>. + Exemple : <code>"Click me!"</code> </p> </td> </tr> diff --git a/src/module/iframe/README.md b/src/module/iframe/README.md index 0fb6257..9dffcb9 100644 --- a/src/module/iframe/README.md +++ b/src/module/iframe/README.md @@ -27,7 +27,7 @@ suivantes : propriété, l'<code>iframe</code> n'est jamais rechargé. </p> <p> - Exemple : <code>"@daily"</code>. + Exemple : <code>"@daily"</code> </p> </td> </tr> @@ -42,7 +42,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -55,7 +55,7 @@ suivantes : fixée à <code>150</code>. </p> <p> - Exemple : <code>200</code>. + Exemple : <code>200</code> </p> </td> </tr> @@ -64,6 +64,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -93,7 +94,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -105,7 +106,7 @@ suivantes : Le lien de la page Internet qui sera affiché dans l'<code>iframe</code>. </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> diff --git a/src/module/image/README.md b/src/module/image/README.md index 350f04e..7501390 100644 --- a/src/module/image/README.md +++ b/src/module/image/README.md @@ -32,7 +32,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code>. + Exemple : <code>"*/5 * * * *"</code> </p> </td> </tr> @@ -47,7 +47,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -60,7 +60,7 @@ suivantes : les éléments retournés par les scrapers sont affichés. </p> <p> - Exemple : <code>5</code>. + Exemple : <code>5</code> </p> </td> </tr> @@ -69,6 +69,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -97,7 +98,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -112,7 +113,7 @@ suivantes : propriétés. </p> <p> - Exemple : <code>"example.com:12345"</code>. + Exemple : <code>"example.com:12345"</code> </p> </td> </tr> @@ -124,7 +125,7 @@ suivantes : L'URL de l'image affichée. Par défaut, aucune image n'est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.jpg"</code>. + Exemple : <code>"https://example.com/foo/bar.jpg"</code> </p> </td> </tr> @@ -137,7 +138,7 @@ suivantes : affichée). </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -151,7 +152,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -164,7 +165,7 @@ suivantes : infobulle n'est affichée. </p> <p> - Exemple : <code>"Magnifique photo !"</code>. + Exemple : <code>"Magnifique photo !"</code> </p> </td> </tr> diff --git a/src/module/image/image.js b/src/module/image/image.js index cdc4a52..ed9439d 100644 --- a/src/module/image/image.js +++ b/src/module/image/image.js @@ -10,7 +10,7 @@ const hashCode = function (item) { return Math.abs( Array.from(item.guid ?? JSON.stringify(item)).reduce( (code, character) => { - return (code << 5) - code + character.codePointAt(); + return (code << 5) - code + character.codePointAt(0); }, 0, ), diff --git a/src/module/list/README.md b/src/module/list/README.md index 2551ad6..1d11984 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -28,7 +28,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -48,7 +48,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code>. + Exemple : <code>"*/5 * * * *"</code> </p> </td> </tr> @@ -63,7 +63,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -79,7 +79,7 @@ suivantes : opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -92,7 +92,7 @@ suivantes : les éléments retournés par les scrapers sont affichés. </p> <p> - Exemple : <code>5</code>. + Exemple : <code>5</code> </p> </td> </tr> @@ -101,6 +101,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -129,7 +130,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -142,7 +143,7 @@ suivantes : aucune infobulle n'est affichée. </p> <p> - Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. + Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code> </p> </td> </tr> @@ -157,7 +158,7 @@ suivantes : propriétés. </p> <p> - Exemple : <code>"example.com:12345"</code>. + Exemple : <code>"example.com:12345"</code> </p> </td> </tr> @@ -170,7 +171,7 @@ suivantes : affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -183,7 +184,7 @@ suivantes : l'élément est affiché). </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -197,7 +198,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -209,7 +210,7 @@ suivantes : Le texte affiché dans la ligne. </p> <p> - Exemple : <code>"La 7e va vous étonner"</code>. + Exemple : <code>"La 7e va vous étonner"</code> </p> </td> </tr> @@ -218,7 +219,8 @@ suivantes : ## Exemple Ce widget affiche les cinq dernières actualités du site -[LinuxFr.org](https://linuxfr.org/) avec une mise à jour toutes les dix minutes. +[LinuxFr.org](https://linuxfr.org/) avec une mise à jour toutes les +[dix minutes](https://crontab.guru/#*/10_*_*_*_*). ```html <script type="application/yaml"> diff --git a/src/module/list/list.js b/src/module/list/list.js index 335ca5c..ed0f25b 100644 --- a/src/module/list/list.js +++ b/src/module/list/list.js @@ -10,7 +10,7 @@ const hashCode = function (item) { return Math.abs( Array.from(item.guid ?? JSON.stringify(item)).reduce( (code, character) => { - return (code << 5) - code + character.codePointAt(); + return (code << 5) - code + character.codePointAt(0); }, 0, ), diff --git a/src/module/notepad/README.md b/src/module/notepad/README.md index cdb7828..2befb09 100644 --- a/src/module/notepad/README.md +++ b/src/module/notepad/README.md @@ -7,6 +7,7 @@ Ce module affiche un bloc-notes. ## Options > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -31,7 +32,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -47,7 +48,7 @@ suivantes : opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -60,7 +61,7 @@ suivantes : aucune infobulle n'est affichée. </p> <p> - Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. + Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code> </p> </td> </tr> @@ -75,7 +76,7 @@ suivantes : propriétés. </p> <p> - Exemple : <code>"example.com:12345"</code>. + Exemple : <code>"example.com:12345"</code> </p> </td> </tr> @@ -87,7 +88,7 @@ suivantes : L'indication affichée dans le bloc-notes quand celui-ci est vide. </p> <p> - Exemple : <code>"La 7e va vous étonner"</code>. + Exemple : <code>"La 7e va vous étonner"</code> </p> </td> </tr> diff --git a/src/module/notepad/notepad.js b/src/module/notepad/notepad.js index 2132aa3..8220337 100644 --- a/src/module/notepad/notepad.js +++ b/src/module/notepad/notepad.js @@ -8,7 +8,7 @@ const hashCode = function (item) { return Math.abs( Array.from(item.guid ?? JSON.stringify(item)).reduce( (code, character) => { - return (code << 5) - code + character.codePointAt(); + return (code << 5) - code + character.codePointAt(0); }, 0, ), diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 6e2f9d3..e30ce3a 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -27,7 +27,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -47,7 +47,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code>. + Exemple : <code>"*/5 * * * *"</code> </p> </td> </tr> @@ -62,7 +62,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -79,7 +79,7 @@ suivantes : est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -92,7 +92,7 @@ suivantes : les éléments retournés par les scrapers sont affichés. </p> <p> - Exemple : <code>5</code>. + Exemple : <code>5</code> </p> </td> </tr> @@ -101,6 +101,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -125,7 +126,7 @@ suivantes : L'URL d'un fichier audio. </p> <p> - Exemple : <code>"https://example.com/foo/bar.mp3"</code>. + Exemple : <code>"https://example.com/foo/bar.mp3"</code> </p> </td> </tr> @@ -141,7 +142,7 @@ suivantes : ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -154,7 +155,7 @@ suivantes : aucune infobulle n'est affichée. </p> <p> - Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. + Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code> </p> </td> </tr> @@ -169,7 +170,7 @@ suivantes : propriétés. </p> <p> - Exemple : <code>"example.com:12345"</code>. + Exemple : <code>"example.com:12345"</code> </p> </td> </tr> @@ -182,7 +183,7 @@ suivantes : affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -195,7 +196,7 @@ suivantes : l'élément est affiché). </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -209,7 +210,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -221,7 +222,7 @@ suivantes : Le texte affiché dans la ligne. </p> <p> - Exemple : <code>"La 7e va vous étonner"</code>. + Exemple : <code>"La 7e va vous étonner"</code> </p> </td> </tr> @@ -229,8 +230,8 @@ suivantes : ## Exemple -Ce widget affiche les deux derniers épisodes des [Cast Codeurs -Podcast](https://lescastcodeurs.com/). +Ce widget affiche les deux derniers épisodes des +[Cast Codeurs Podcast](https://lescastcodeurs.com/). ```html <script type="application/yaml"> diff --git a/src/module/podcast/podcast.js b/src/module/podcast/podcast.js index 2ad8a26..c1991f9 100644 --- a/src/module/podcast/podcast.js +++ b/src/module/podcast/podcast.js @@ -10,7 +10,7 @@ const hashCode = function (item) { return Math.abs( Array.from(item.guid ?? JSON.stringify(item)).reduce( (code, character) => { - return (code << 5) - code + character.codePointAt(); + return (code << 5) - code + character.codePointAt(0); }, 0, ), diff --git a/src/module/search/README.md b/src/module/search/README.md index d632197..ce3b867 100644 --- a/src/module/search/README.md +++ b/src/module/search/README.md @@ -11,6 +11,7 @@ Aucune option n'est nécessaire. Tout le paramétrage se fait avec les scrapers. ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. diff --git a/src/module/single/README.md b/src/module/single/README.md index a125a1d..fe468f9 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -32,7 +32,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code>. + Exemple : <code>"*/5 * * * *"</code> </p> </td> </tr> @@ -47,7 +47,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -56,6 +56,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -83,7 +84,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -99,7 +100,7 @@ suivantes : récent. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -112,7 +113,7 @@ suivantes : aucune infobulle n'est affichée. </p> <p> - Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. + Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code> </p> </td> </tr> @@ -125,7 +126,7 @@ suivantes : affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -138,7 +139,7 @@ suivantes : l'élément est affiché). </p> <p> - Exemple : <code>"https://example.com/foo/bar.html"</code>. + Exemple : <code>"https://example.com/foo/bar.html"</code> </p> </td> </tr> @@ -152,7 +153,7 @@ suivantes : des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> - Exemple : <code>"_top"</code>. + Exemple : <code>"_top"</code> </p> </td> </tr> @@ -164,7 +165,7 @@ suivantes : Le texte affiché dans la ligne. </p> <p> - Exemple : <code>"La 7e va vous étonner"</code>. + Exemple : <code>"La 7e va vous étonner"</code> </p> </td> </tr> diff --git a/src/module/text/README.md b/src/module/text/README.md index 2d4069a..d5d24c6 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -28,7 +28,7 @@ suivantes : propriété, les données ne sont jamais mises à jour. </p> <p> - Exemple : <code>"@daily"</code>. + Exemple : <code>"@daily"</code> </p> </td> </tr> @@ -43,7 +43,7 @@ suivantes : laissé vide. </p> <p> - Exemple : <code>title: "(aucun élément)"</code>. + Exemple : <code>title: "(aucun élément)"</code> </p> </td> </tr> @@ -52,6 +52,7 @@ suivantes : ## Scrapers > [!NOTE] +> > Ce chapitre est utile principalement pour le développement de scrapers > compatibles avec ce module. @@ -77,7 +78,7 @@ suivantes : du texte. Par défaut, le texte est aligné à gauche. </p> <p> - Exemple : <code>"justify"</code>. + Exemple : <code>"justify"</code> </p> </td> </tr> @@ -92,7 +93,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -108,7 +109,7 @@ suivantes : récent. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> - Exemple : <code>900277200000</code>. + Exemple : <code>900277200000</code> </p> </td> </tr> @@ -121,7 +122,7 @@ suivantes : aucune infobulle n'est affichée. </p> <p> - Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code>. + Exemple : <code>"Ce top10 des choses incroyables est incroyable"</code> </p> </td> </tr> @@ -134,7 +135,7 @@ suivantes : affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -147,7 +148,7 @@ suivantes : concaténé et affiché dans le cadre. </p> <p> - Exemple : <code>"La 7e va vous étonner"</code>. + Exemple : <code>"La 7e va vous étonner"</code> </p> </td> </tr> diff --git a/src/module/tools/findrss/README.md b/src/module/tools/findrss/README.md index 558c092..e1b3a71 100644 --- a/src/module/tools/findrss/README.md +++ b/src/module/tools/findrss/README.md @@ -27,7 +27,7 @@ suivantes : utilisée. </p> <p> - Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code>. + Exemples : <code>"#673ab7"</code>, <code>"chocolate"</code> </p> </td> </tr> @@ -43,7 +43,7 @@ suivantes : opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. </p> <p> - Exemple : <code>"https://example.com/foo/bar.svg"</code>. + Exemple : <code>"https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -56,7 +56,7 @@ suivantes : tous les flux extraits sont affichés. </p> <p> - Exemple : <code>5</code>. + Exemple : <code>5</code> </p> </td> </tr> diff --git a/src/scraper/examples/days/README.md b/src/scraper/examples/days/README.md index 9e85fcf..ff34dc4 100644 --- a/src/scraper/examples/days/README.md +++ b/src/scraper/examples/days/README.md @@ -2,8 +2,8 @@ > Mots-clés : gout, gout-scraper, gout-scraper-examples-days. -Ce scraper d'exemple d'exemple retourne les noms des prochains jours de la -semaine. La langue des noms est paramétrable dans les options du scraper. +Ce scraper d'exemple retourne les noms des prochains jours de la semaine. La +langue des noms est paramétrable dans les options du scraper. Il peut être utilisé avec les modules : @@ -28,11 +28,12 @@ suivantes : <td><code>string</code></td> <td> <p> - Le code ISO 639-1 de la langue. Par défaut, c'est le français qui est - utilisé. + Le code + <a href="https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1">ISO 639-1</a> + de la langue. Par défaut, c'est le français qui est utilisé. </p> <p> - Exemple : <code>"en"</code>. + Exemple : <code>"en"</code> </p> </td> </tr> diff --git a/src/scraper/examples/helloworld/README.md b/src/scraper/examples/helloworld/README.md index f1f3f5d..19e9dfd 100644 --- a/src/scraper/examples/helloworld/README.md +++ b/src/scraper/examples/helloworld/README.md @@ -9,8 +9,8 @@ Il peut être utilisé avec les modules : - [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) ; -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) - pour afficher un seul élément. +- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) pour + afficher un seul élément. ## Options @@ -29,10 +29,11 @@ suivantes : <td><code>string</code></td> <td> <p> - Le nom de la personne à saluer. Par défaut, c'est le `"world"`. + Le nom de la personne à saluer. Par défaut, c'est le + <code>"world"</code>. </p> <p> - Exemple : <code>"there"</code>. + Exemple : <code>"there"</code> </p> </td> </tr> @@ -40,7 +41,7 @@ suivantes : ## Exemples -Ce widget affiche le texte `"Hello world!"`. +Ce widget affiche le texte _Hello world!_ ```html <script type="application/yaml"> @@ -51,7 +52,7 @@ Ce widget affiche le texte `"Hello world!"`. </script> ``` -Ce widget affiche le texte `"Hello Doctor!"`. +Ce widget affiche le texte _Hello Doctor!_ ```html <script type="application/yaml"> diff --git a/src/scraper/examples/helloworld/helloworld.js b/src/scraper/examples/helloworld/helloworld.js index 5cea323..88aeaba 100644 --- a/src/scraper/examples/helloworld/helloworld.js +++ b/src/scraper/examples/helloworld/helloworld.js @@ -25,7 +25,7 @@ export default class HelloWorldScraper { */ constructor({ who }) { // Le premier paramètre du constructeur contient les options du scraper. - // Si aucune option est spécifiée dans la configuration du widget, le + // Si aucune option n'est spécifiée dans la configuration du widget, le // constructeur recevra un objet vide. // Récupérer le nom de la personne à saluer dans les options du scraper. diff --git a/src/scraper/examples/jsonplaceholder/README.md b/src/scraper/examples/jsonplaceholder/README.md index 7966fee..75996d8 100644 --- a/src/scraper/examples/jsonplaceholder/README.md +++ b/src/scraper/examples/jsonplaceholder/README.md @@ -13,9 +13,8 @@ Il peut être utilisé avec les modules : - [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) pour afficher seulement le nom de la dernière image (avec un lien vers l'image) ; -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) - pour afficher seulement le nom des images (avec un lien pour voir chaque - image). +- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) pour + afficher seulement le nom des images (avec un lien pour voir chaque image). ## Options @@ -38,7 +37,7 @@ suivantes : <code>100</code>. </p> <p> - Exemple : <code>42</code>. + Exemple : <code>42</code> </p> </td> </tr> @@ -53,7 +52,7 @@ suivantes : <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> - Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -62,12 +61,12 @@ suivantes : <td><code>string</code></td> <td> <p> - Le filtre qui sera appliqué sur les éléments retournées. Par défaut - aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. Pour plus de détails, voir le scraper <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. </p> <p> - Exemple : <code>"title != 'foo'"</code>. + Exemple : <code>"title != 'foo'"</code> </p> </td> </tr> diff --git a/src/scraper/icon/ping/README.md b/src/scraper/icon/ping/README.md index abe9e16..68ba884 100644 --- a/src/scraper/icon/ping/README.md +++ b/src/scraper/icon/ping/README.md @@ -27,7 +27,7 @@ suivantes : L'URL du serveur qui sera testé. </p> <p> - Exemple : <code>"https://example.com/"</code>. + Exemple : <code>"https://example.com/"</code> </p> </td> </tr> @@ -49,9 +49,12 @@ suivantes : <li>autre : gris.</li> </ul> <p> - Exemple : - <code>{ "1xx": "blue", "200": "green", "2xx": "darkgreen", "xxx": - "gray" }</code>. + Exemple : <pre><code> +1xx: blue +200: green +2xx: darkgreen +xxx: gray + </code></pre> </p> </td> </tr> @@ -66,7 +69,7 @@ suivantes : <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> - Exemple : <code>{ "target": "_top" }</code>. + Exemple : <code>target: "_top"</code> </p> </td> </tr> @@ -75,12 +78,12 @@ suivantes : <td><code>string</code></td> <td> <p> - Le filtre qui sera appliqué sur les éléments retournées. Par défaut - aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. Pour plus de détails, voir le scraper <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. </p> <p> - Exemple : <code>"color != 'green'"</code>. + Exemple : <code>"color != 'green'"</code> </p> </td> </tr> diff --git a/src/scraper/list/jsonfeed/README.md b/src/scraper/list/jsonfeed/README.md index 9eae96d..e9d8739 100644 --- a/src/scraper/list/jsonfeed/README.md +++ b/src/scraper/list/jsonfeed/README.md @@ -3,8 +3,8 @@ > Mots-clés : gout, gout-scraper, gout-scraper-list-jsonfeed, gout-module-list, > gout-module-single. -Ce scraper récupère la liste des derniers éléments d'un flux [**JSON -Feed**](https://jsonfeed.org/). +Ce scraper récupère la liste des derniers éléments d'un flux +[**JSON Feed**](https://jsonfeed.org/). Il peut être utilisé avec les modules : @@ -32,7 +32,7 @@ suivantes : L'URL vers un JSON Feed. </p> <p> - Exemple : <code>"https://example.com/foo/bar.json"</code>. + Exemple : <code>"https://example.com/foo/bar.json"</code> </p> </td> </tr> @@ -47,7 +47,7 @@ suivantes : <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> - Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -56,12 +56,12 @@ suivantes : <td><code>string</code></td> <td> <p> - Le filtre qui sera appliqué sur les éléments retournées. Par défaut - aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. Pour plus de détails, voir le scraper <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. </p> <p> - Exemple : <code>"title != 'foo'"</code>. + Exemple : <code>"title != 'foo'"</code> </p> </td> </tr> diff --git a/src/scraper/list/rss/README.md b/src/scraper/list/rss/README.md index cbe82f8..9f347c9 100644 --- a/src/scraper/list/rss/README.md +++ b/src/scraper/list/rss/README.md @@ -11,7 +11,9 @@ Il peut être utilisé avec les modules : - [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) pour afficher seulement le dernier élément ; - [_podcast_](https://github.com/regseb/gout/tree/HEAD/src/module/podcast#readme) - pour un flux RSS avec des `enclosure` de type `audio` ; + pour un flux RSS avec des + [`enclosure`](https://www.rssboard.org/rss-specification#ltenclosuregtSubelementOfLtitemgt) + de type `audio` ; - [_image_](https://github.com/regseb/gout/tree/HEAD/src/module/image#readme) pour un flux RSS avec des `enclosure` de type `image`. @@ -35,7 +37,7 @@ suivantes : L'URL vers un flux RSS ou Atom. </p> <p> - Exemple : <code>"https://example.com/foo/bar.rss"</code>. + Exemple : <code>"https://example.com/foo/bar.rss"</code> </p> </td> </tr> @@ -50,7 +52,7 @@ suivantes : <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. </p> <p> - Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -59,12 +61,12 @@ suivantes : <td><code>string</code></td> <td> <p> - Le filtre qui sera appliqué sur les éléments retournées. Par défaut - aucun filtre n'est appliqué. Pour plus de détails, voir le scraper + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. Pour plus de détails, voir le scraper <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. </p> <p> - Exemple : <code>"title != 'foo'"</code>. + Exemple : <code>"title != 'foo'"</code> </p> </td> </tr> @@ -72,8 +74,8 @@ suivantes : ## Exemple -Ce widget affiche les cinq dernières actualités du site [Le -Monde.fr](https://www.lemonde.fr/). +Ce widget affiche les cinq dernières actualités du site +[Le Monde.fr](https://www.lemonde.fr/). ```html <script type="application/yaml"> diff --git a/src/scraper/search/opensearch/README.md b/src/scraper/search/opensearch/README.md index 667d84c..3b4b5f4 100644 --- a/src/scraper/search/opensearch/README.md +++ b/src/scraper/search/opensearch/README.md @@ -30,7 +30,7 @@ suivantes : qui sera remplacée par les termes recherchés. </p> <p> - Exemple : <code>"https://example.com/foo.html?q={searchTerms}"</code>. + Exemple : <code>"https://example.com/foo.html?q={searchTerms}"</code> </p> </td> </tr> @@ -45,7 +45,7 @@ suivantes : remontée. </p> <p> - Exemple : <code>"https://example.com/foo.html?q={searchTerms}"</code>. + Exemple : <code>"https://example.com/foo.html?q={searchTerms}"</code> </p> </td> </tr> @@ -58,7 +58,10 @@ suivantes : <a href="https://github.com/regseb/gout/tree/HEAD/src/module/search#scrapers"><code>info()</code></a>. </p> <p> - Exemple : <code>{ "title": "Google", "color": "#2196f3" }</code>. + Exemple : <pre><code> +title: "Google" +color: "#2196f3" + </code></pre> </p> </td> </tr> diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md index e606432..c75c15b 100644 --- a/src/scraper/tools/complements/README.md +++ b/src/scraper/tools/complements/README.md @@ -3,8 +3,8 @@ > Mots-clés : gout, gout-scraper, gout-scraper-tools-complements. Ce scraper ajoute des propriétés dans les résultats d'un autre scraper. Il est -rare d'utiliser ce scraper directement dans un widget. Il peut être utilisé -pour ajouter la fonctionnalité dans un autre scraper : +rare d'utiliser ce scraper directement dans un widget. Il peut être utilisé pour +ajouter la fonctionnalité dans un autre scraper : ```javascript import chain from "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/utils/scraper/chain.js"; @@ -40,7 +40,7 @@ suivantes : défaut aucune propriété n'est ajoutée. </p> <p> - Exemple : <code>{ "icon": "https://example.com/foo/bar.svg" }</code>. + Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> </p> </td> </tr> @@ -58,23 +58,24 @@ du tableau. ## Exemple Ce widget affiche les dernières vidéos de la chaine YouTube de -[FIP](https://www.youtube.com/@FipradioFr) en ajoutant le logo de FIP à chaque -élément. L'option `"complements"` est passée au scraper _list/rss_ car ce -scraper utilise _tools/complements_. +[Arte](https://www.youtube.com/@arte) en ajoutant le logo de Arte à chaque +élément. L'option `complements` est passée au scraper +[_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) +car ce scraper utilise _tools/complements_. ```html <script type="application/yaml"> module: url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js" options: - color: "#757575" - cron: "*/10 * * * *" + cron: "@hourly" max: 5 + color: "#e23014" scrapers: - url: "https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js" options: url: "https://www.youtube.com/feeds/videos.xml?user=arte" complements: - icon: "https://example.com/fip.svg" + icon: "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/widget/arte/arte_white.svg" </script> ``` diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index 48136b8..36db789 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -36,11 +36,11 @@ suivantes : <td><code>string</code></td> <td> <p> - Le filtre qui sera appliqué sur les éléments retournées. Par défaut - aucun filtre n'est appliqué. + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. </p> <p> - Exemple : <code>"title != 'foo'"</code>. + Exemple : <code>"title != 'foo'"</code> </p> </td> </tr> @@ -67,7 +67,7 @@ Les filtres sont composés de trois éléments : - `^=` : garder les éléments dont la propriété commence par la valeur ([`.startsWith()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/startsWith) sous le capot) ; - - `^=` : garder les éléments dont la propriété finit par la valeur + - `$=` : garder les éléments dont la propriété finit par la valeur ([`.endsWith()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/endsWith) sous le capot) ; - la valeur comparée : @@ -85,9 +85,10 @@ tableau. ## Exemple -Ce widget affiche les dernières reportages de la chaine YouTube de -[Arte](https://www.youtube.com/@arte). L'option `"filter"` est passée au scraper -_list/rss_ car ce scraper utilise _tools/filter_. +Ce widget affiche les derniers reportages de la chaine YouTube de +[Arte](https://www.youtube.com/@arte). L'option `filter` est passée au scraper +[_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) +car ce scraper utilise _tools/filter_. ```html <script type="application/yaml"> diff --git a/src/utils/scraper/chain.js b/src/utils/scraper/chain.js index 58bbbe1..399c8e6 100644 --- a/src/utils/scraper/chain.js +++ b/src/utils/scraper/chain.js @@ -9,16 +9,16 @@ * * @param {any} options Les options des scrapers. * @returns {Object} Une simulation d'un tableau dont la méthode - * <code>pop()</code> retourne toujours les options. + * <code>pop()</code> retourne toujours toutes les options. */ const DEFAULT_DISPATCH = (options) => ({ pop: () => options }); /** - * Chaine des scrapers pour combiner leurs fonctionnalités. + * Chaine des classes de scrapers pour combiner leurs fonctionnalités. * - * @param {Function} FirstScraper Le premier scraper. - * @param {...(Function|Object)} others Les autres scrapers et/ou les - * options. + * @param {Function} FirstScraper La classe du premier scraper. + * @param {...(Function|Object)} others Les classes des autres scrapers + * et/ou les options. */ export default function chain(FirstScraper, ...others) { const AllScraperss = []; diff --git a/test/unit/scraper/tools/filter.js b/test/unit/scraper/tools/filter.js index 1893fd6..128105a 100644 --- a/test/unit/scraper/tools/filter.js +++ b/test/unit/scraper/tools/filter.js @@ -22,6 +22,14 @@ const check = async (value, filter, expected) => { describe("scraper/tools/filter/filter.js", function () { describe("extract()", function () { + it("should support no filter", async function () { + await check( + [{ foo: "bar" }, { foo: "baz" }, { foo: 42 }], + undefined, + [{ foo: "bar" }, { foo: "baz" }, { foo: 42 }], + ); + }); + it("should support '==' with string", async function () { await check( [{ foo: "bar" }, { foo: "baz" }, { foo: 42 }], From b9e5397cf8dd9b886fbf7902a97693930a3f43fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sun, 11 Aug 2024 15:13:20 +0200 Subject: [PATCH 28/38] =?UTF-8?q?fix:=20G=C3=A9rer=20les=20flux=20RSS=20sa?= =?UTF-8?q?ns=20date.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scraper/list/rss/rss.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index 546be17..0ba8161 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -24,7 +24,8 @@ const RSSScraper = class { date: item.querySelector("pubDate")?.textContent ?? // S'il n'y a pas de date de publication, utiliser la "dc:date". - item.querySelector("date").textContent, + item.querySelector("date")?.textContent ?? + 0, desc: item.querySelector("description")?.textContent ?? "", guid: item.querySelector("guid")?.textContent ?? "", img: item From f1b9522454904b2011dead14ce5abb53d7b68259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sun, 11 Aug 2024 15:13:43 +0200 Subject: [PATCH 29/38] fix: Optimiser les filtres. --- src/scraper/tools/filter/filter.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/scraper/tools/filter/filter.js b/src/scraper/tools/filter/filter.js index bd31ab6..8a97399 100644 --- a/src/scraper/tools/filter/filter.js +++ b/src/scraper/tools/filter/filter.js @@ -57,7 +57,7 @@ const NUMBER_PATTERN = new RegExp( const compile = (filter) => { if (undefined === filter) { - return (_item) => true; + return undefined; } let result = STRING_PATTERN.exec(filter); if (null !== result) { @@ -74,7 +74,7 @@ const compile = (filter) => { export default class FilterScraper { /** - * La fonction pour filtrer prennant en argument un élément et retournant un + * La fonction pour filtrer prenant en argument un élément et retournant un * booléen. * * @type {Function} @@ -94,6 +94,9 @@ export default class FilterScraper { } async extract(max = Number.MAX_SAFE_INTEGER) { + if (undefined === this.#filter) { + return this.#scraper.extract(max); + } const items = await this.#scraper.extract(Number.MAX_SAFE_INTEGER); return items.filter(this.#filter).slice(0, max); } From 57cd0a1a4ea3d5280eee218063c164542d441a8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Aug 2024 16:45:10 +0200 Subject: [PATCH 30/38] chore(main): release 0.12.1 (#19) --- .release-please/manifest.json | 2 +- CHANGELOG.md | 11 +++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/chromium/manifest.json | 2 +- src/extension/firefox/manifest.json | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.release-please/manifest.json b/.release-please/manifest.json index aafbabb..9a1c691 100644 --- a/.release-please/manifest.json +++ b/.release-please/manifest.json @@ -1 +1 @@ -{ ".": "0.12.0" } +{ ".": "0.12.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index b82ff3d..20e9b8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [0.12.1](https://github.com/regseb/gout/compare/v0.12.0...v0.12.1) (2024-08-11) + +### Bug Fixes + +- Corriger les exemples. + ([cc9c871](https://github.com/regseb/gout/commit/cc9c871d4a854d62787c6133a4d158ac49be1b3b)) +- Gérer les flux RSS sans date. + ([b9e5397](https://github.com/regseb/gout/commit/b9e5397cf8dd9b886fbf7902a97693930a3f43fa)) +- Optimiser les filtres. + ([f1b9522](https://github.com/regseb/gout/commit/f1b9522454904b2011dead14ce5abb53d7b68259)) + ## [0.12.0](https://github.com/regseb/gout/compare/v0.11.0...v0.12.0) (2024-05-29) ### Features diff --git a/package-lock.json b/package-lock.json index 27d8cc9..08eb603 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.12.0", + "version": "0.12.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.12.0", + "version": "0.12.1", "funding": [ "https://buymeacoffee.com/regseb", "https://www.paypal.me/sebastienregne" diff --git a/package.json b/package.json index 32477ba..cbbd8bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.12.0", + "version": "0.12.1", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json index 55ad77c..cfc8b6b 100644 --- a/src/extension/chromium/manifest.json +++ b/src/extension/chromium/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 3, "name": "Gout", - "version": "0.12.0", + "version": "0.12.1", "action": { "default_icon": { "16": "img/icon16.png", diff --git a/src/extension/firefox/manifest.json b/src/extension/firefox/manifest.json index 58eae27..1b43cdf 100644 --- a/src/extension/firefox/manifest.json +++ b/src/extension/firefox/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.12.0", + "version": "0.12.1", "browser_action": { "default_icon": { "16": "img/icon16.png", From bb51fc54b64d9aa0bc55551800dd3157b11c3dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sun, 3 Nov 2024 18:50:03 +0100 Subject: [PATCH 31/38] =?UTF-8?q?docs:=20Am=C3=A9liorer=20la=20JSDoc.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .metalint/addons-linter.config.js | 1 - .metalint/eslint.config.js | 1 - .metalint/eslint_browser.config.js | 1 - .metalint/eslint_config.config.js | 1 - .metalint/eslint_node.config.js | 1 - .metalint/eslint_test.config.js | 1 - .metalint/eslint_webext.config.js | 1 - .metalint/htmlhint.config.js | 1 - .metalint/htmlhint_dashboard.config.js | 1 - .metalint/htmlhint_tpl.config.js | 1 - .metalint/markdownlint.config.js | 1 - .metalint/metalint.config.js | 1 - .metalint/npm-package-json-lint.config.js | 1 - .metalint/prantlf__jsonlint.config.js | 1 - .metalint/prettier.config.js | 1 - .metalint/prettier_css.config.js | 1 - .metalint/prettier_javascript.config.js | 1 - .metalint/prettier_tpl.config.js | 7 +++++-- .metalint/purgecss_popup.config.js | 1 - .metalint/stylelint.config.js | 1 - .metalint/yaml-lint.config.js | 1 - .script/clean.js | 1 - .stryker.config.js | 7 +++++-- src/module/tools/contrast/contrast.js | 9 ++++----- src/utils/scraper/chain.js | 4 ++-- test/unit/scraper/tools/filter.js | 1 - 26 files changed, 16 insertions(+), 33 deletions(-) diff --git a/.metalint/addons-linter.config.js b/.metalint/addons-linter.config.js index fca28cf..5f60150 100644 --- a/.metalint/addons-linter.config.js +++ b/.metalint/addons-linter.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 80f3ba8..5943807 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint_browser.config.js b/.metalint/eslint_browser.config.js index 0e28ff2..3bd93f0 100644 --- a/.metalint/eslint_browser.config.js +++ b/.metalint/eslint_browser.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint_config.config.js b/.metalint/eslint_config.config.js index f33814b..26f3d31 100644 --- a/.metalint/eslint_config.config.js +++ b/.metalint/eslint_config.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index 0a834be..113f4b6 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index 341bbfd..da02fe4 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/eslint_webext.config.js b/.metalint/eslint_webext.config.js index 0671860..0a4f4b1 100644 --- a/.metalint/eslint_webext.config.js +++ b/.metalint/eslint_webext.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/htmlhint.config.js b/.metalint/htmlhint.config.js index 4e18771..2cec607 100644 --- a/.metalint/htmlhint.config.js +++ b/.metalint/htmlhint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/htmlhint_dashboard.config.js b/.metalint/htmlhint_dashboard.config.js index c3decd4..34defbf 100644 --- a/.metalint/htmlhint_dashboard.config.js +++ b/.metalint/htmlhint_dashboard.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/htmlhint_tpl.config.js b/.metalint/htmlhint_tpl.config.js index 97a76ea..7fc516a 100644 --- a/.metalint/htmlhint_tpl.config.js +++ b/.metalint/htmlhint_tpl.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/markdownlint.config.js b/.metalint/markdownlint.config.js index 25ea56e..aa3c839 100644 --- a/.metalint/markdownlint.config.js +++ b/.metalint/markdownlint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 0b14754..f5684eb 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/npm-package-json-lint.config.js b/.metalint/npm-package-json-lint.config.js index 58bbef8..080f764 100644 --- a/.metalint/npm-package-json-lint.config.js +++ b/.metalint/npm-package-json-lint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/prantlf__jsonlint.config.js b/.metalint/prantlf__jsonlint.config.js index 82e427f..283e393 100644 --- a/.metalint/prantlf__jsonlint.config.js +++ b/.metalint/prantlf__jsonlint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/prettier.config.js b/.metalint/prettier.config.js index 79c4c54..969d418 100644 --- a/.metalint/prettier.config.js +++ b/.metalint/prettier.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/prettier_css.config.js b/.metalint/prettier_css.config.js index c1fa98d..789c0cb 100644 --- a/.metalint/prettier_css.config.js +++ b/.metalint/prettier_css.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/prettier_javascript.config.js b/.metalint/prettier_javascript.config.js index c1fa98d..789c0cb 100644 --- a/.metalint/prettier_javascript.config.js +++ b/.metalint/prettier_javascript.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/prettier_tpl.config.js b/.metalint/prettier_tpl.config.js index ba258d3..b55c98c 100644 --- a/.metalint/prettier_tpl.config.js +++ b/.metalint/prettier_tpl.config.js @@ -1,11 +1,14 @@ /** - * @module * @license MIT * @author Sébastien Règne */ /** - * @type {import("prettier").Config} + * @import { Config } from "prettier" + */ + +/** + * @type {Config} */ export default { parser: "html", diff --git a/.metalint/purgecss_popup.config.js b/.metalint/purgecss_popup.config.js index db4058d..7ef4df3 100644 --- a/.metalint/purgecss_popup.config.js +++ b/.metalint/purgecss_popup.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/stylelint.config.js b/.metalint/stylelint.config.js index 3597923..fe050c3 100644 --- a/.metalint/stylelint.config.js +++ b/.metalint/stylelint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.metalint/yaml-lint.config.js b/.metalint/yaml-lint.config.js index 5eadf14..ccde286 100644 --- a/.metalint/yaml-lint.config.js +++ b/.metalint/yaml-lint.config.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.script/clean.js b/.script/clean.js index c88a881..4eacd48 100644 --- a/.script/clean.js +++ b/.script/clean.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ diff --git a/.stryker.config.js b/.stryker.config.js index 7a156e2..7ea420f 100644 --- a/.stryker.config.js +++ b/.stryker.config.js @@ -1,11 +1,14 @@ /** - * @module * @license MIT * @author Sébastien Règne */ /** - * @type {import("@stryker-mutator/api/core").PartialStrykerOptions} + * @import { PartialStrykerOptions } from "@stryker-mutator/api/core" + */ + +/** + * @type {PartialStrykerOptions} */ export default { disableTypeChecks: false, diff --git a/src/module/tools/contrast/contrast.js b/src/module/tools/contrast/contrast.js index 120fcad..325beec 100644 --- a/src/module/tools/contrast/contrast.js +++ b/src/module/tools/contrast/contrast.js @@ -7,7 +7,7 @@ /** * Convertit une couleur du format RGB vers de l'hexadécimal (avec le préfixe - * <code>"#"</code>). + * `"#"`). * * @param {Object} rgb La couleur au format RGB. * @returns {string} La couleur en hexadécimale. @@ -22,8 +22,8 @@ const rgb2hex = function (rgb) { }; /** - * Convertit une couleur en hexadécimale (avec le préfixe <code>"#"</code>) vers - * le format RGB. + * Convertit une couleur en hexadécimale (avec le préfixe `"#"`) vers le format + * RGB. * * @param {string} hex La couleur en hexadécimale. * @returns {Object} La couleur au format RGB. @@ -70,8 +70,7 @@ const rgb2lab = function (rgb) { /** * Calcule la valeur linéaire d'un canal. * - * @param {number} channel Le canal d'une couleur (entre <code>0</code> et - * <code>255</code>). + * @param {number} channel Le canal d'une couleur (entre `0` et `255`). * @returns {number} La valeur linéaire. * @see https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-procedure */ diff --git a/src/utils/scraper/chain.js b/src/utils/scraper/chain.js index 399c8e6..87a4331 100644 --- a/src/utils/scraper/chain.js +++ b/src/utils/scraper/chain.js @@ -8,8 +8,8 @@ * Envoie les options à tous les scrapers. * * @param {any} options Les options des scrapers. - * @returns {Object} Une simulation d'un tableau dont la méthode - * <code>pop()</code> retourne toujours toutes les options. + * @returns {Object} Une simulation d'un tableau dont la méthode `pop()` + * retourne toujours toutes les options. */ const DEFAULT_DISPATCH = (options) => ({ pop: () => options }); diff --git a/test/unit/scraper/tools/filter.js b/test/unit/scraper/tools/filter.js index 128105a..320acd5 100644 --- a/test/unit/scraper/tools/filter.js +++ b/test/unit/scraper/tools/filter.js @@ -1,5 +1,4 @@ /** - * @module * @license MIT * @author Sébastien Règne */ From 75b0ec7b16137c074f21de62d0afd34b744599bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Fri, 8 Nov 2024 18:54:21 +0100 Subject: [PATCH 32/38] feat: Simplifier les images SVG. --- src/engine/img/icon.svg | 46 +++++++++--------- src/engine/img/icon_0003.svg | 6 +++ src/engine/img/icon_fff.svg | 6 +++ src/extension/chromium/img/icon.svg | 46 +++++++++--------- src/extension/chromium/img/icon128.png | Bin 3022 -> 1774 bytes src/extension/chromium/img/icon16.png | Bin 479 -> 330 bytes src/extension/chromium/img/icon24.png | Bin 719 -> 473 bytes src/extension/chromium/img/icon32.png | Bin 775 -> 478 bytes src/extension/chromium/img/icon48.png | Bin 1180 -> 659 bytes src/extension/chromium/img/icon64.png | Bin 1451 -> 858 bytes src/extension/chromium/img/icon96.png | Bin 2270 -> 1277 bytes src/extension/chromium/img/icon_png.svg | 28 +++++++++++ src/extension/firefox/img/icon.svg | 46 +++++++++--------- src/extension/firefox/img/icon128.png | Bin 3022 -> 1774 bytes src/extension/firefox/img/icon16.png | Bin 479 -> 330 bytes src/extension/firefox/img/icon24.png | Bin 719 -> 473 bytes src/extension/firefox/img/icon32.png | Bin 775 -> 478 bytes src/extension/firefox/img/icon48.png | Bin 1180 -> 659 bytes src/extension/firefox/img/icon64.png | Bin 1451 -> 858 bytes src/extension/firefox/img/icon96.png | Bin 2270 -> 1277 bytes src/extension/firefox/img/icon_png.svg | 28 +++++++++++ src/module/audio/README.md | 8 +-- src/module/audio/audio.js | 2 +- .../audio/img/{icon.svg => icon_fff.svg} | 0 src/module/clock/README.md | 15 +++--- src/module/clock/clock.css | 5 +- src/module/clock/clock.js | 2 +- .../clock/img/{icon.svg => default.svg} | 0 src/module/icon/README.md | 10 ++-- src/module/list/README.md | 18 ++++--- src/module/notepad/README.md | 11 +++-- .../notepad/img/{icon.svg => icon_0003.svg} | 3 +- src/module/podcast/README.md | 19 +++++--- src/module/podcast/img/icon.svg | 13 ----- src/module/podcast/img/icon_0003.svg | 15 ++++++ src/module/podcast/img/play.svg | 4 +- src/module/podcast/img/volume.svg | 3 +- src/module/single/README.md | 7 ++- src/module/text/README.md | 6 ++- src/module/tools/contrast/img/icon.svg | 6 --- src/module/tools/findrss/README.md | 11 +++-- src/module/tools/findrss/findrss.js | 2 +- src/module/tools/findrss/img/rss.svg | 8 --- src/scraper/tools/complements/README.md | 2 +- 44 files changed, 227 insertions(+), 149 deletions(-) create mode 100644 src/engine/img/icon_0003.svg create mode 100644 src/engine/img/icon_fff.svg create mode 100644 src/extension/chromium/img/icon_png.svg create mode 100644 src/extension/firefox/img/icon_png.svg rename src/module/audio/img/{icon.svg => icon_fff.svg} (100%) rename src/module/clock/img/{icon.svg => default.svg} (100%) rename src/module/notepad/img/{icon.svg => icon_0003.svg} (96%) delete mode 100644 src/module/podcast/img/icon.svg create mode 100644 src/module/podcast/img/icon_0003.svg delete mode 100644 src/module/tools/contrast/img/icon.svg delete mode 100644 src/module/tools/findrss/img/rss.svg diff --git a/src/engine/img/icon.svg b/src/engine/img/icon.svg index 12ee39d..3d312c6 100644 --- a/src/engine/img/icon.svg +++ b/src/engine/img/icon.svg @@ -1,26 +1,26 @@ <?xml version="1.0" encoding="UTF-8" ?> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> - <defs> - <mask id="circle"> - <circle cx="16" cy="16" r="16" fill="white" /> - </mask> - </defs> - - <g mask="url(#circle)"> - <rect x="0" y="0" width="32" height="32" /> - <polygon - points="9,11 23,11 16,2" - fill="white" - stroke="white" - stroke-width="4" - /> - <line x1="16" y1="25" x2="16" y2="11" stroke="white" stroke-width="4" /> - <polyline - points="8,32 8,19 24,19 24,32" - fill="none" - stroke="white" - stroke-width="4" - stroke-linejoin="round" - /> - </g> + <style> + @media (prefers-color-scheme: dark) { + svg { + color: white; + } + } + </style> + <polygon points="6,14 26,14 16,0" fill="currentColor" /> + <line + x1="16" + y1="12" + x2="16" + y2="26" + stroke="currentColor" + stroke-width="4" + /> + <polyline + points="8,32 8,20 24,20 24,32" + fill="none" + stroke="currentColor" + stroke-width="4" + stroke-linejoin="round" + /> </svg> diff --git a/src/engine/img/icon_0003.svg b/src/engine/img/icon_0003.svg new file mode 100644 index 0000000..784a7a7 --- /dev/null +++ b/src/engine/img/icon_0003.svg @@ -0,0 +1,6 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> + <path + d="M16 0 6 14h8v4H8a2 2 0 0 0-2 2v12h4V22h4v4h4v-4h4v10h4V20a2 2 0 0 0-2-2h-6v-4h8z" + fill="#0003" + /> +</svg> diff --git a/src/engine/img/icon_fff.svg b/src/engine/img/icon_fff.svg new file mode 100644 index 0000000..7d51452 --- /dev/null +++ b/src/engine/img/icon_fff.svg @@ -0,0 +1,6 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> + <path + d="M16 0 6 14h8v4H8a2 2 0 0 0-2 2v12h4V22h4v4h4v-4h4v10h4V20a2 2 0 0 0-2-2h-6v-4h8z" + fill="#fff" + /> +</svg> diff --git a/src/extension/chromium/img/icon.svg b/src/extension/chromium/img/icon.svg index 12ee39d..3d312c6 100644 --- a/src/extension/chromium/img/icon.svg +++ b/src/extension/chromium/img/icon.svg @@ -1,26 +1,26 @@ <?xml version="1.0" encoding="UTF-8" ?> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> - <defs> - <mask id="circle"> - <circle cx="16" cy="16" r="16" fill="white" /> - </mask> - </defs> - - <g mask="url(#circle)"> - <rect x="0" y="0" width="32" height="32" /> - <polygon - points="9,11 23,11 16,2" - fill="white" - stroke="white" - stroke-width="4" - /> - <line x1="16" y1="25" x2="16" y2="11" stroke="white" stroke-width="4" /> - <polyline - points="8,32 8,19 24,19 24,32" - fill="none" - stroke="white" - stroke-width="4" - stroke-linejoin="round" - /> - </g> + <style> + @media (prefers-color-scheme: dark) { + svg { + color: white; + } + } + </style> + <polygon points="6,14 26,14 16,0" fill="currentColor" /> + <line + x1="16" + y1="12" + x2="16" + y2="26" + stroke="currentColor" + stroke-width="4" + /> + <polyline + points="8,32 8,20 24,20 24,32" + fill="none" + stroke="currentColor" + stroke-width="4" + stroke-linejoin="round" + /> </svg> diff --git a/src/extension/chromium/img/icon128.png b/src/extension/chromium/img/icon128.png index 728804abe2fc361135314f34fe3380e4f86b6894..59b3a2e8b6a842c1dc17d84bc0bcfaa5738cea58 100644 GIT binary patch literal 1774 zcmZ`)eLT~79RF>M$jC#<lF8$FJXdEpPb0(h%3<?(vn13lvfId_={I-QE+G!rd00p$ z&Ql(0%e2d->|%(QTFUMft#rpsXytUj-QV3G-{1H3`@G-Z_xt_%eE<0V7!e+V)J5q6 z0D#1Y21P+Ts9xK&pzo01(LbO~hZ-7B2LNw<^@2U@Z}=W6nq}eQvIv=JSvf~(sX$In zj_bFlPSTGZrKY-O(vH_G`JezmD-RzOKxEYZT{n7?6utZW74MQ^P3d>`CORec_wJo| zR9Kj@GuBElUR<>A&8F$Mmjo__Zm<BN^z~igtpm2>1?Z$G0z3>q+lzaX9QD<s(tT$V zo2>Dx+571drbH-b%AQrEj4h9;QkR%7+kWK80?Tc7%B+)&7}|`z3<P81wHCaI+^Iob zTZ~??(U?Fah>nO3%TNj-$A|hp!_X@WyvfQ0^(}F~Q2HF(V-6*>R}tHy*L)nl)_#Zb zWX^9{+*q*|+4k>gW@4|0^GQ{EJWhp{zM1Jf#3#i_7LE!;xTJS+2p}AGN0SPW(@vj` z;mS8vtBZV}F(bD{A|P|7dVu5PwB+PK!LubUJnMF%85$ick$<-Y95-+Q6bWS>ccQL8 zkV>W8(dF*`e!I#roG<UbN}F+V4h{^7B(NXeVn)+eMWf3T>6mGHF83SJgM7p-6Rc+@ zp>w8mcGF@lH_^9K&hKgi(%Z;?cC6<;BKXDXwz9o>$XaPUn5nUCA(a~om40OlRmvyN z>E#8!BR%wWHLHW2A=AYAf^OuOmJ4)SxcjD_tPLn=@(Xde;)IAD`W%*zv<zK*(RjAQ zBo28FehZDgM3j4q<zWHSicHWRrisreX@fu_5^ap-Of?@_pkJ$}v{+d7nFXmx4)v&3 z?a)-MXvnICy$I9d_EtzL3$8chf-L*P5ETnilj>I*AcY|0w8mTCK{eh2;e*3BmHa5c zooFyVlLF!MBnUUpyAkCVOY4B7O5Ed}t~hzc99#qLqmWQ`9wa3?^JS%^(!8}H7vN3A zKuoo1No@oqTB|m-wzq+pArMnGu5(yL8YzSFc~S$Re6&W0s$Y9aeO~R)v^Rjdl&SMc z=5Z>Lj@tjP>H%mjur>%!{3!&Iih%MdKF&u&cqH;C^7h{AL`P>Am&o>*zN?H>CbO=) z`wI*P(|Z+&nA9J?I&s1ze-+j`?N}Uq(0kZ*3eCRIbhhIM$eIUI`oxoyM$q*i2!5HK zp6-Uh48MObpy*E%uzXVUll0)5sxIazeL=iayl{h3VhYB$-#ea`cDcHGGJ#w-F%j9{ z-ycUJ5l0(nOAZ1hzp<U|I0JNlcEzch(n3S-DEhC|e3n(;!2X2`PlkH_a>}iTfPE;I zUtpusnpxe@Kv9$vV$<F6tqmI|0m9(cgD|A<h{k2*T1X6~Wh?no=I<*XaXuUyd{mf` z-ERYE(fDt=JG^4R2i@?XlAV^cUxBh?2#&cEc0LYfb^jAk?ZfR6ZPS-)YK~=RSDwCI z%wg08tkiWrJJll)h-YWb`x0CV^KO+Mdzj2-vs3c($ruk0!a0M)$j7s@6)M#kGZad! z?14Q=-@1FZVEvz(J-c@8y5Y?Fh(i^#*O}GcsN!Hdgkp;;N@yQeD)(P2Pt3G9-`?&r zR_iq+7GIdj9#|H?ecPLnkFE%_ZRYX*>3osL8X3XQ9WtqMUh-b%f#JL%g`!JhtNX{* zkkZ{|W-9{r20T>P)#AXQ|IbPG@=vxJvQb3YyL;+;ZKg$F9&_%o_5Tjw|7K&n`2nVN z?bY0d|7YvlK0VS3kSE=z=gzGFwWSVv?wBx<;I!_+;yxoP!Mm_wc-dA~t^P+F%WS9y z3S~A?iXNM?lf765I;(=_VT!uW=!;2wXDb6^!+rSjM<N%W0UvY45v-kN?q-JUupvJd zzN5?^^g=tC1<)dcmS8qQwjEx%ziZpT&o9GRTZoik@cy~&p7vIIAFmL*I6hi_h^1y> zqoLjg>+9Sa1Bq~#rBx1C$~t#IKkc2|Pr>5MK3A3Ik@bwq=0Kf(wByC(F8D?Nr%x0A z`ar4YZ0gi%3?@A_Ej~M`<=Vv@yCa-4un9?Qvcc1IFT<K&y%=c(J}=mhd;QK^lqy?& zKE1`dxr}ndmm7=Di#~{Mi}qj<jMrUrJ#dEq77ttWx9M6H3n9}sJoAe7;Ulc8$jg4= TcNaJ4tpf14@Su*sq=J6|=5R6g delta 2959 zcmV;A3vl%A4bB&kU4IK(Nkl<Zc%1E>e{7vq8OJ~8EnC+PaN3j~GDguF`Bl*<Tg)b; zZUz)8f+!K9{NW$Xx|o<46aO-5A{z=-Y+PcDAvQ8vNQM(4RHa5`k+C^rp=B_j(;*D9 zIoRkn2JPb?=WV&YyKV11@A+}>ea|O(vbDYUoaa5y_n!OS?|*yVbCrltPbj4na3OF> z`fnSs0%+~(>T21xZCi^{Y6-9ySeia<0yrrmCvLjwrbAn|ZaoCN2J8p+0WSj20OL|; z1Ey;Ic$8A-0jtxv0=Nt~qxf;{?d|N`xszqfmd)GV(W6IMxpF0Y_UtM7XW%JdC$JsZ zE+Q{yJA%N7NPkTQumrdUxEpvDkcFbDsY!P4-Yw-aGBP5~&CLt8o5mjCC&1M}W9adz zcsxTVP-f8=1J?olz#C;2W+v{r=bo~QKh3@O-dj;0X}k{n8n_l%6nfms8r#qbEKv9l z0h@pW2E`CSdU|>)F8(y@*RMC~GmQi3EOlw<ah!LILw_ewGAURCJOoT-D1fY5wMtH$ zIAK<O5jlDCq^w@OI*SOV<8h#i^qi}jB6tD?MOVNLz&|YvxU{si$oTlUaq*|wzkk29 zwzk?3fdKyiuCFE`1W!P8@jnafvNXt&B#8_S4P`9-y9^HxOG870EfEO%Q^eJw$6Z1T z0QfNQuz$sY6+kv_+?c)UMcjV-?N)P4<Bz~)L2D4CQ)mY60^YVgs9jxMGBq`2r|Jbv zO-;#-H{R$%1Sf$zfTkd|@ZKS;172`2kka1XE{6{vwpR3FjvP567hQCb3lRvg7x=XI zdU)$d8#tSQNf!fHso7&ng(gv@F$MerX!ceYFMplDM}Vgt4VnPb-`{V!)N|9{-|y@= z(ip*$f8e9|Ujg29Ibd1L9#b-!MCHUW;I^#ezfia=d;{7ecREm6%^p)MnnVl5oj_uv zCZ)nv@fQPwt_R1K*<*@jlW4x!3M^S@+)cto@lOYaTn~zEv&R$%Ced6m44f&|ECAqa zw13^{d_Y{7J*GG^iAu#T;4G;|0iajj?Da7auFM`&9GXO>;yIvAs!0GqD|%ss^8s*e z_L$<>Br1;Qfper91OS|gr)l4p*<*@hlc+fU1uT=00zjYb|H0D%do_DZ@n8}a#xNO| zp=Bw40^INGU^i^o;H7{z=;`V4DS`)q27d`40Ouypbc8Z{Oz~(EO~)PLQvkp%z78(5 z*<*@FlSt4Pk**gX0zhBbnecI7)nfLT;?X1$;2?0mxD){TlJ1DFSAR8`J*Idxi3E6p z3YVi-Du6y;2UBfkk13u_A^|pu3jv^4@?=`3U2asX*<*@llV}RKN^A-My@v03AAbi> z?PiZDo=u`r%6uy*R{(c;O5Er+u3EwHb~DrXw%8B=a4~x2s`I34$?P%3qe(OYTp$(% z@Q9CuYt8I2#j{EDfMgK>`i>pviPoywV~S^!XswtC0DZ6Cldco2b+gA5k0#M}F%-ZJ zJ``FHW{)WzO`=bUfdH)Br8{5Li+|Z;ibs=ZNGcHk+VpXnRK1x!rg$`ou8;}@;PlMD zUd<j;JefofN;v{RZ_DD;@~vmH#}p4H(G>7ODMJ8vxJ)DuW{)WzOrjskd;$O#0k619 zATMT*DIQFsS17thP%MBhSDok0>@mfINpy`A)I4D}U&aARlCWjV7TVg{Tz@oQS1ez? zoWa3C8X6j0b#e2opXA+F{}K!~VJs)|Z1$Mq&?GtxESBQ80QB~&);r9**<*@hlW3ik z5WwBGJBnscHXNEncS;EXJZH0$X!h7)WMo8^E?sI{0HabU0N^~^DyxOtxM~GQx0{_S z1p>I)X5-Q9v5y0j=!;Sy0Do)m|IzGmg9DSOR|<T9E3iOIOA7-712i@^+Gs9Pz@kNq z7#J9!wYAk&lPf{5`bp5A|4+Boay21(hBHQg1yNn{2Jqel_yBcU{K&k#2UwAymwiX_ z$t4N;tJNa;q%8q12%SYF7#Ak!FI9}>lM52ytk79Rg3+1)EupiB1b?F?0p1rni%2k9 z67;?Qk$lpepf`Jr<deoIfPB+fyeKr1GZOUfACY|WRun+Kc`HHhB@@Xf6AAD?pFMVT zbkNt=$Jp2y6B82)?opIAvf?_wiHQlu#>VLD>!YKi!@>wx#36t`V}HTnDbd*2D4REL zmdVLU+pDGOhRMlE*?+uwvotm~I<H3>e*$>GNAZV;heMBV%`iMX>`MfL3GkmeCkRXQ z_V&`*+3C8Qx}mePliuE5A6@MO_y!JD*3r=sr+ot^Cnu$&qr>$Kus#9CEvsr4-QC?J zN%Wg4B}o#xySrU?GoAorE_;Ymzd0VpZd9R{hQE&f`ZwzwJAZbJrluwrP1ilgj~}PG z+1bTfy)0Zr1bEt2FR}RMI3ByFL`0_FoOinHDN>c}0A_9t+a55HNEo(56hNN&JEQ^- zk(bdML`3qzsE8Z@X6+L8NT6gQ{+X$D6hJ<CboxI^(o3dFsYc*c^j)LY5DS-N^NfSr z(_aV97Lk)sFn<Gx$XmcR+r4E)DU~T|y?+O6oi09b%1)v8drl_epTWW(RN)k@lsXN4 zdH7sgy=8q1$oeYEd;dio09J^|+ta_8H3NvqJ3zn99wSx7uL_F~MKb_^QmP&830RR{ z=vP4A`!7I%b`g28@Rz4ts27pvi605;k%x<m4<!VUa(|cOWFr3gaj9RH6o7~f1G}B3 z6Y<Fo5&2uGKg_pQ>j#dKiTG#ETAp$eIO~r}?I7Jz(v;9AL3!^Vz1Cxu%#p}Kt2Muy zwf9JHzB5<xVF3Y%$Pn;*>nTNiF_@mu&B?rP0WjkWjAFQvMCd6n$Ne7#E*6ph&i9}N z7wo6Lz<*Covxo%adkYmG%9sHFlu}K=2+&?>7CC+ehU|Y7_*k*+TZ*!7*%6WBKsVY> zj8r#M!1{8E4`m7fX3U|VnPwG=I=r605S!*QeM(W*TfoeN^{SyAz~$vWC-f8?8qdf7 z1aM`!uYRat27sAWL$?yQm8nJ!0$-}6_)wt$0DnYe6!<Ffe4v^T;OiptQl(Ecx^G)V z9t6DXU=S&bO(OC;lP6Ym4lwJ9N+rM+iocDzh<Fa*{P+ieTSa8bsQoMnDy0?y4*^%t z^_VCCr^i1Gd@emVGi%>Mf@h$28vA&uzefQ$JN{ijr-;0nrTxr%w}{A5^jFV6o3*V- z*?+tMT$i=@U_k%?B61Kdg1t7{i_FVjV6BL}YNIi0yElo*KH!sRGa}-KUBDU<`M0eG zt#02XB8Py_07Ew0jR5+DZ>@;DX0uW2`?sa<OP@!7Jc-z0D{!rd9I@T7lMVdRn-6aV zenfN(vmn4mw8eYEMF*Kb2A07(;5We8CVx-P@yEb}z->5QlIKGJ0Ly{<fHjpqF{c7} z678_=vzkl^eC^@-63_{JAH859QW`<8xmbgT;)A~#ppdJ8p97bc^WYrK08arMfU*~J z*dW9%&VK<u3Vaj2ay9Q9L(hz#z;p2-%nVS-`+-g9^#vuV^BLe_^sC<acQ(vL=zo3O zUk1L0{-oet{Q-FbSPOI!u=o&O0Mk4MT!}tEsAm`PN#I(vWj^m6JH8107BCl=1K$E} zQA#z0P9_WKeR+?e&+Z=zoX#m!s{p1sUnzA9&;zUpolJ$i0`!Z>FVUB8tCDIL05G$A z**dg2@&#a7*o@}nFz{RSR&0-@n}2RqH8mlCLX=XA(dP=+q;W~uj2K04z4|Ed*TPL0 zYk`^*Kru?GbAZ)ptOPE@@^-fcyn!}sb^?zB+ifk(2t~~cpcG1}HsE65LZA(O{%{u1 zl14Ld8gNGXl%v2qXjA4;8m|KT(ch{z4m@LXAx5?Ef6G+!k27M0WB>pF00>D%PDHLk FV1o9daVh`+ diff --git a/src/extension/chromium/img/icon16.png b/src/extension/chromium/img/icon16.png index 6a97843da8c0b17dc46bc99208cd659b02471a5d..da4687f462eb63deb65cbd25dcef756daa7b7777 100644 GIT binary patch delta 245 zcmV<R01E%#1IhxBU4H=ANkl<ZIE|%~!3~5U5Jf*5?$kgVTEXs?KrvbjouF-SPz&JB z;qO7&h=?(}KbZvhGcPj)0N@Q^0l;GzV`z*i&bOEWys#~b1g$kg2n-=mYh8m(I5VV_ z9LJGK!!S@vS%Z{^ec$t_uIugr+O}nku>iyv*)+{HKq*D<eQr^l<h`d-st&N$R*RFY zwHZJp%9+U35<=8c@TfXBl>wY{Ao-1bCn=nB86X>BUv#DYNT(wRA+n_7zB<A$l2_){ v?e9BS{%BwZ)-O2&_&ye#zxks-0eF4@An6eTEf$uz00000NkvXXu0mjf&a7)v delta 396 zcmV;70dxM!0^b9WU4H>=Nkl<ZIE{sq%}T>i5QV?UwH7Mf<{i{@-A#A8=(7mfcHLzc zipAeI$RiZ|%Q~w<jnWs$6I2K-mE*!pxu*Uc7|3PjoS8HC21)n<M8LS!YUO#Jzt89M z_jbFT0~f&2R=r2u18#s1KuMCwkR*u!0c+q2XnYf>$j?=g;(s_+9dR6+h=3;(F@al4 zcDr3Im&+}I)oP_)ujh+gR$L+*I}Ae=MX^OT6h)yh41GI?0AoPTIi+d(E7_2ysho2r za_)d*fGCQ{vWzUtFboC*07jz`KB6dMI-LTX1i%8==LeX_AP9a+11wxM3IP3npH8Q< zRb`U^%w{ttlYhyk2f(Xswk*qkcTkq4e-ke|z=O#(o6U`9-?x9ZnhN&-M|@q$ri*p> z=e!0EoTNMmf;-@}?tM5M{<b`TYe{dm=?3sv?^q8n{{ZZ&_A@mkT}oR2A+VM-Hu5(C qFAjlo;DxU@vZ%h#BpuZ2KLJJvwD%|t=PLjJ002ovP6b4+LSTY#GP2nK diff --git a/src/extension/chromium/img/icon24.png b/src/extension/chromium/img/icon24.png index 7322dcabc360cb02c03e74ba84ceebbee2213a30..a9fb7b9d99dcc7731db67ab789577579af093e13 100644 GIT binary patch delta 389 zcmV;00eb$=1=$0TU4H>)Nkl<ZNQt$TF>Zq}6o$V<Ry(pc6UxLDLT=)6jxZI*w$})` z1w$m@1lie0R(6Khp;&?tz)90jvSc3i`|ao7GQcbF4V(d)YFca2T2GE?+Zp%*UTBlg zPI6sW>bjP?uElj-8xa9M0WNa`l~Pg^g&6WY7p0Vqzy+I?#D8%t*F;fdyNl@ozVA!Z zGy{RAX=Jn6{7t}d94X6kklav~r8tiBxImI5qsa|Pk~}7$wVq9Gn6d7-C2g6p?zAOs z8MCh93eWS%vWzUtdhzXci|_jY6h%Rv=hsv5Jde}qG>BXIxqBDlIJUh5vK+`gnL&vb ziv?P1R;yJnZhp#R`n%n(_rIzt4u=CGG7#x)DF}kQ57-a{!F-9<>-7VL7@s>RQJ1b; z#$42m-(vER(=;UvL&7j5P1D)<-2%^GvP4~u$K%cZQw8oxY*^AhYyU*G1or<ZuvfrG j`|%FEJt^^---Sm%rZs7SEDV}@00000NkvXXu0mjfIkdYo delta 637 zcmV-@0)qY71J4DJU4H^xNkl<ZNQteMF>ljA7=|AkXDjK16bMw1r9*#&JJb>qQVR=Y zVCW7MgtB91ri2M0kVQ6>1wv`pO8E~MAz76ur4mz(H>Z6WVn>c+CoS+uC)uCBd*8dy zcV{DsvIZ;xkAU6f<z+t%!zhZPXk}%^2X=vnz_pngCBk*!6@M@URIOI!`@T|q-&eI- z6(HaQcn@4ZlL2rW_?>i?VHoQ5ddk!5^<)@EY9b&6)@K?3kCPFNJGNS_De;t6tCclK zXR}pkkc@mne06nIaU7Q#42MHGj#Ff^K4Ab{&6WjFtya_F;bEzG%F)r0>h*fwBm}Nx z4c=xGDwT=`gMYzX@sz<}ph~5ZH+h|Cvy`ruv~@b2GmEFR+wHu;FsTe%*$2&L^W5So z&1N%i^1uLgfSUk|i;H-k$HKw_c^ZudjYb22AP5M8U@9kyA~rWSIX*s4L!SY@<y;G! z>$>BSx~@AnKWV-R)TV~=|EOC<(QG-gvF!EQ+S<hPl7F(D0(>PiE!(zdZmu%oIF@bO z`4W9GfeBmNwy~_jiOs~aENt7(hXV`PCRs%QrfC*VyKEI@<JrCmpG@Ebqw`~mZnul$ zI5>_&x7(c?&oKo0rljwHSC;h;ypeQ}7W)}+7r0oKy}!TD-rnB$dJZA*9KZsQ^usWW zdq5w!P<GVA^E^DyJIlyVf%}qv0*v2^q#fXClJK{j0#79M)4;@Qm(&67F#0x}mk`*H z^l~Dq;=h4QlG?88#>_vXP9(jPbh${YY)AcK^nHE-Yyh`_8zkpDaKLDTZUY~a`$GNz X5#biFF}fDh00000NkvXXu0mjfWCbqS diff --git a/src/extension/chromium/img/icon32.png b/src/extension/chromium/img/icon32.png index ba6fb23b0be9631955f904353abcf55684950529..68e3aa80c1066fa32f0c8041063c1aff02dd931d 100644 GIT binary patch delta 395 zcmV;60d)R{2HpdZU4H><Nkl<ZScUDEJ95G>5QaZ9>U{wkS8xWnf^VS1z+v2^$fHe> z4zA(K?lKbtrHf60RYdr)QefQh&1|Jz?XMmEnh_!bum(PWGa%Zq){3=Oo!`Y7cn4Np zZ`Qz1;3kq~nKVr!P18u0WuYRZ>$##kc~G%2Mvlj$I1Yz{7=L48M7$C@c0l&~z4+{Q zyBGl{LW{QBt+Z`>BcN?t*=#m3BJ{~=no3!gH_aVoSxTCwj}uT7#b9$sQ5266V6B~O z?g+Hzbds~2mOyKcC-|1r5@5~ogg(n@QCc(Ha$1zujI*2;g*D?Xr)A8ViBl1Z$ltOg zNn*BP5mj|Zo__)c1>|{7UDt?6Z}<%5)pbpt=c6KeZ)a6icXL5iRpBn^JLP{Ea>?v> zz-SZw6HL7W+6m4+fu{iV9q@^L`+a7gzyi3;*#EQuzGf8g3D*ze&F9p|U!Mv^{Wq|5 p55@|3<N8;7w15-v0xU&@UwCt7k>7lx!vFvP07*qoL<FuvV1h!&yG{TA delta 694 zcmV;n0!jVe1BV8XU4H_UNkl<ZScS!x&ubGw7>1t-)U?=?T!cs{)Iz<bX#WGr(cIOX z@^7@aUOY$<FAY@fRlMfnO+_dzEd?tcdI%`AS&%@%9|<LC;PtS(kfbx4%{J8+=8|vb zd!NnDzB`K~;tXI8cmliv4$9?nQ&Lw_w^FGzfdk+r@EFL%?tdG@_%5&wv;hGs6bfp$ z+X{7ley)|36@~R+?rUHvF#s?FYycO1jg`q{bbNfQVb$w(WwY6S2mxK-88AH-0I&pn z9cm_HjB2&oCG$|VT2027VF&?x!0lK7z<r=;X`;2YHK%!~)zwuSfPhnAIT9eaa;tf< zSX8gq8wt?s^?y_>7Na0?RsdicII=CApPyH=*&Jye>g?=H3kwS_h(ln;2C!jUFf}!$ zot>T7=AriY_mxhkT@dR70KubnVVhj7R>w9EwYj<J0{9c&iV$GiHnChTCpHgNsZ?AL z)xev%{*ZBnO;TAxDjY2!1Ae>?6kTDHRF04m@Cf{DkAEFDN#zKsE%09=uKVO1!%ETv z*h>L-_<ve7KnJ)n?n(taIFvCa2|y>6WYr{<0)E>HrBVsc^P*nY19HvtJdaYT<nsRo zj!oETG$!^0G#ZV_O?YHO%jfg)|Hl!E==CK9e3+Qi_<C=ES>Ok7v%fNGmtVDxAOE?O zq!#dYJb&<s=#8XS|4FFJ7)f`<dIwmPL<)a)9eD8%ul~8DZv^K3N3y-RS2$`!tltIF zlKoJc15U0HzytCFp1PcH%fRV10Gt4YOMb&Y1Q53*eVQP^E<?xhNPu9ZC9O+pT>+pY z>1og_*~h7*oTMuL87?kBOVXC4#Zmo@EN?cOj4v^>z(e2xa1Z|=lMTv0f$zX);3M!( ce!z{?UtH|Z<Uyu)ng9R*07*qoM6N<$f@+yUk^lez diff --git a/src/extension/chromium/img/icon48.png b/src/extension/chromium/img/icon48.png index e4c1f5ddb8775794f93881a263a019e04c2b9eec..b2bff5a897f365819e5cd19670893ee4ce443014 100644 GIT binary patch delta 577 zcmV-H0>1s636lkoU4H@~Nkl<ZXo2mTO>&}86h@C0g_%*M!%h#_hAxFI^xqD21+WRS z6YZokNva1KvI8lqb;jWKAkYI7<ifiK)A3Zj*?X7!@$euDB7%qjTmj#KU%(y^*AYdL zL{a2iry6_U4)_L4{`Flo{~7pgbRYpF3_~f3LW-i0FbvJ=R)6CWxUPEV%DQ>a^JKHx zNX>e^7SHoe5n=-H!?>`lRx3GVxm;QY5a27oy=BqGVj*Q&z6em3rOfAZ>i~BEJF9|0 z5J;9~FPg8(vP^;?une%n@{FWu+Sq(enx@vfU{ffHqSoeX4Ap8ApjM_9W3{>!I8>$< zL$$gUcukpFjDOVHe{qvCwHT?j-@-O!YB5l2zl9oQYH?I+_eEWlsl`F9-4=9JrWOaa z>L>SArk0*+)lYU&rj{OR)lGC&rj{ORZJ%VNOf4PN+CIrrnOd}J9n~o;5qZ7jXf(1u z6l3#>Z_FjY&|CrxjVgfe`^0ffp65vQlisn>gl27?=YPa;jPLvE5Us9FlH`r=0wPJ0 z*xd)V+bz@SRDDJ)$n%`pY}PtY72w!qaY{5dzK`)CK4(0a#Z6n>bjfv{ui@SAz$L)Y zTmlS@lZBc%#gkVP?|ujVivatfn{eRI7<d}G3kROYz|GKIIB)~cf7d^9<e{O7V{5vM zp7kF9zdHURb$u+v83uR&K1uzyN)=+l^ScMP9Q=EKCINQ9Pv8sS*M0v5;;MSlZfMHw P00000NkvXXu0mjff-M=e delta 1102 zcmV-U1hM;*1)K?xU4H~ANkl<ZXo1z5!D}2<9LGPi*;aO=P#RVn5)dJ^xfKaU*_`|b zmJ|;~PaedYXxfVqj}4MQ4z1Ob;322nbCT^Lc*voxZq{W_mI&e!(JF0dCV>#cem%@g z-6r#9-pp(^@e9Ap%x~ZC`<*xYzQ6Z&kwn%2E&%TXUjcUug@3|Ey<UGJX<yQQv)O!7 zEEYF_yME4lz=f{V&OmwqxDNaXs56$9mUI})%gZ{P2mAoc00TV}01N|nfZY&6nx39M zLO#IM)Kr)V0Xx8#z|gS?0L}n60M|f5<KyGn+uJh=*x%pR#KeS2g#3qc6L_Jk0)R_E zBciZMrIK2$mVc3afL5!eQmGUrLcmYJ>s=85yc_k@0p)TzRjbul@&Q&?SJl_o7bjvH zxROZ#@B#2oOd%~SELf8dFh4&ZCqTdf@Np^uz%`2ks#Gd!x7&#YwA*b}Dis?M0%j5k z@L!vQxPeDTMzpoHm6&{h?d@%ij*i;S#H5t~U<7y?H-BiMP|*7NdTR0kn$4z)#iES} z7Z{Bc0Gy3mZGs3htF$nfTv*hBGf@IQw;3qPtkNRF<POJYp#p#*JV%TiAkM7P!ouV_ zU!}n?0e9j)Y-?6&VQF##ZapUeuQ3blZGuQ@R%u~ray$49U?AXnoa!`Yl@^vJ_erOK zBQ0@fq<=N5w6HX}2R?TOfwn0zt68Omg~_#nSHRmzg(ek?MKv0Yo|6yIXf)zX?rI)* z3j@Z+#;8`SRI61}N+@P$XG5<qE-oe-C*ZKQwr0BhHhB9~TNAMg6S`do_%4Un`}|*V zF$bJGX%-o9E(g4L(kwFIrQAs~$cj9kEuW7|9Dg1jW^!_p{{H^d#Z0SHCw6ytSy@?O zb92*XNEhH2V!rL=a#^nH_H6xkU03CD*=7~m0E=a`R;%@le1KZ5X1$F595+vwFJHEq z&aT3;=EEFtKQ1eu&u1o-6qYsbId~1xAAn=ZlHc|98jfS61l}t&n3wd(ahw|PX3_$t z-hU=(FJ!Yih2VjtN5Rvbp^LrEap(InEeS^wj^hjfzX73(yy+D(P4RK(<86OmmGn60 z5AYcH)|7n;@r}>fn*jjFafX10gv`Pzn*kT^=>1QCXT6Z5-+?beM><`Y3&?}l3w7c) za20qXQ-!&?EFX_T9r*gWE3!D;O}R>Rdw&P#0+){PJ$%6zafOcK^;00=0H}m=4ZG-z z_~?`fXagS_d75sh<0qyQ6mS4si{uz}(-$!*Y5N2OJT<*Gi3Ip@QBu8!0@fvs*l@EI zfTX;n8=bRp3<7o~-IR3JmRAx1K@3W|Eh+ZLkOTsDB;Asf_zxgy1Ozbve2TXrGDjW` zM?@RAhj&bVJ}r-Dy-*f7j`K3`4&GViDDWCk;=ePe9pG=^SG+Ckec*dZe`T%xFE;u5 U&n(}l?*IS*07*qoM6N<$f}_v<PXGV_ diff --git a/src/extension/chromium/img/icon64.png b/src/extension/chromium/img/icon64.png index 7a92b4c7db1714ae6b2ce06e63b25c5c3e3918fc..eb7264010ccd4f1d29af9fbff2837cb7f82d9c18 100644 GIT binary patch delta 778 zcmV+l1NHo?3)%*dU4H`SNkl<Zc%1E<y-wRu6o5ZRR#__i2vrtOKzEq?6dwB^@CN-8 zEezeV`UP64bb!55VT~#tAPO#9K&L}uDFmpGeeXS&HvXhLg?s*F-_MCKBEs?lc7S)l z1#k^Ws8tk&6h#p%{$gDN=fGQF`(D3Gjc)))z-{1y1d!oyD1X!GRHoCZ42Q$u`4;OI z_y}y=8Nj0X??y#Pnx=Agb|y8ar>Bypsnrk!IH`wF58%i!xf~oE$SV8$`<4R`;Be79 zI~ZN|fb8w<$!s>eH-On}CcC@4mIJr}wgBE+CC#!-#^dq5=4-~|v1D0hIfOSbKkZEt zjz*(Lo39y-Mt_zAI0yJ`k*p|+#^!4b)L5?yi$t~Zv>2-~Y=TwgX)#n|*aQzLPm7Tn z!v%j#d0LFr7$$I&^0XMJF-%~M^0Wk2qyM07l&2-28vO=rt2`|M)#xu+SLJC5q(*<i zT$HCJfExV-a#fy|0BUp(;!Am2Jgd<?h)?Bd@u)_(0DmErr^S;RyKfGqJT0Eo*llBI z<!SMt#%>!el&8f}jqNvCDNl=|8ryBKR-P6IHMZLjLwQ=ds4=OhV1>xv(<Mn_RLPuy zX|^XwKY-W;#HJrW>;hub4<L2{vFS8`JkKf1lB%li{J)K6HPJR+RaKN_NuK9jTAAl; zv+_Kb$$w;G_H?IZGMPx8=iwiP%d(8!>!Xxq8U9iD>gtNk&CNDj%&4l0EX!K$X*~c@ z+{ZC#`(2{9K<olyv-Sf>eFtp12b<0i*Zpl-`zxRyK<oly(+?na0kP=^5W9fbcz+IP z!uogrCf5E6=m!wHfY=O}zgM@eR0H5Lb`=r19De{`V^<N8FA1;>{6KjgxPF~=#bf?k z;N?I>egemib^VKc5|NALS7%R9{EXa$CWg!Ml>Zy>Odfc7`jGh>mH+DiZh#MU^CChb zEB92ABwN61;1%!!c)tAk>ff*O1kZqL;1~15{<DZ&EPwb1s~~d;$l}$&00000NkvXX It^-0~f*Ch>x&QzG delta 1375 zcmV-l1)%!c2CEB@U4I2QNkl<Zc%0>%O^g&p7>1wfuzT7cFo<NiC}?kV^gz_>h68)| zKck27pz&%XEb#*V+z1if^=ynGtOqg)iF(otD~7~C{8`xui6magEW!Z8oLsW6hw7GQ znVGJt`RQGFk}uiJbaj2-yVc!qRo5Vieg?1&cm?<X_!>A@E`OIVNvccwH;H<sQn>`2 z1LlE4z{|k4zUSAcqMrwj0*k;Zpfn~YC)H>)w3cSGsZyz=?6FDPMc@<Qxpgf7Fb3=g zmev&Ue~gTbXlZHbp5jw3Uc9LB@$r^zlQ^IBF}iL903HH90_q(SmoY{sPMm04e9Fm_ zCuNN3B!ZH@K7RzZ6ea**fC_LWCs_eHaNt00@hLMiGr8wW;u`QS5DioS;Bnw5$0W69 z&mOI;tT+pB`}S>3PfxpwAmB8xYajvuF9O$Hlbe{BP_0&TE<UAJt7&3l!bgM#Q0|)m zKm>g1k&uRlhP1G-;9Y#mnKNfJJUr|pg0N2v=S#x1_<v#S^Vutzxw*OE;!|d4XMF__ za2y!wi2zCQ-}xp{E|<G5KBZErgoyC1iwG`v`mcODFO^DaHk&;Ypp8j#iTS+CAx{9W zYaa5=PACp0sa+fi5&(GBw=-9>6N;lrY89`02>|Q@ZuoZOV|GIEFiF|C0qk@VAi3_H zO->rVW`8G?0F#u)0$^MOc-!~n+qZAm<;$1*UVO^(^0Id9*bySan;iwfPHg`1Icc|M zCzL>wv<z(SB*4eMs`kR{gc4|y4z&~jJD=}3rCl4nG&`XLn51iD))TS<?DsiQyOo_m z6KIn5sf7TGt|#c1*$E}UB%N1Q0PGr`Q{#S{oqtdQOww*;1UTy2a1drE6i<_ML>U48 zaA`CsvlEJ^N%}>$cDAu*>AF>fuIvmNkCmiVU@O>{799^R%It*VVUk|j1UyX+D=RBZ zO-<z;=7f@A*A8P$Px^7B6akZi>~Wnj839ieokfAf5y_3<0cC3hj24|mfs97LNYPmo z$bV>5bOuEe0nMV5D3DtbaLcz<9LH3vRT_<k)0?Gi<l%e1Mx#NsS|yI-AOQf*;xU(w z<5=~2ePFK6m3qCdIF5ZLLjryV&v$;+YPINE+fuDoeFZoc0T+D6%-+3weGVTe0l8g> zuv1}Y#>U2cI~f=Oxt%xI>2MAELL?VC+<(Z5#A7nG3Oo`?x`N$(^`P;aq^qeB`o7Rq zis1*aMhNVapeGn(I!3?SdoT})0Fut)c{AMLEJ^wm?u-DiJ3$^4zDWNt>0R9zGYb3- zZ0Xc8?<tTsOp9)hef{^Sq+5^~0m%oS=e52M_$)0RG9v)M7_$ZI3?FXSy6FF4mw)Y- zfk{a>(+}=i50G>nc)w#08=IMI@xZ;)Ppl(6O`8cs9_`w#gZ8Iru|?*tOCZG<vkUv{ zjq$bL_24Gd6@mTV0G^d}Y3&y+m&7Ffh21N3zwlP8;(^X9FxZX9JsrZ`MnM0EJJy&Z zfC0YTzychno2{~m2t#BxOK%_nzJH<H&C(eWHev1KMiJncOYzPE=+5PEWStAJ3LK`z z<F0D~GVy}!j~>^X05>JQ=37sQ07%*?spXD|f&@4v>9LSnLIpsQkyMeiT%Z8gB)ya5 z5>!Vw0;I87(xD`oK?!hG(m_e%-R9p50n!+ev=7G}XMwRO>Aj?{p5)zfE?Cel#+co} z8^AR13~em81FOLA*hSlUCCga7q%Q*8)qycvfhpiA;7K6HZp+`yoxKT7?1ZI`U61$^ hyHx+9q^teR?>~%7Ho+HIHhusA002ovPDHLkV1gn@k3|3g diff --git a/src/extension/chromium/img/icon96.png b/src/extension/chromium/img/icon96.png index 641ce897baeb54b0caabff869978ba4295d21506..c3e123f85ca8a6a89004093d483a06f38d8606a7 100644 GIT binary patch delta 1200 zcmca7_?L4+Y&}btr;B4q#hkZuH)cnNi?r`w&Lww)^=;Q=w`lXX-|8o*nzrgK@@DrH zRb06HZ$68cw_}`Bds@Lu`GjV-T-_;JsuJa*g-={J`m_I>d82C5`N{8UpYQuoS0JW1 zzq+K}=H=v+z0*55x;-X65&R(ffu({chjBLd{{<;lbNLw9+1cxlO}>-BG>73oQ~QBz z!OGnq?kO3CpE3KT`hjtR!0M}6Co62GeXP(~8+N*8o@y!M9;T?B)pIxhjAwq&EK!qq z^>wMGo!zva#fz0!UVr_p_-<hOfp?b}8pIEzG91=h`}c3{&a?OK&HEYCwTormb2f%I zM%FQF+GC=ut*wpb`aNfw;a9(W)84(gcJqx|^7B|2Y*aohmvxZpZR>Gcyz}gNiC(u$ z8760*hg^~T@Zd2+9bdu<>(%$)>)-j)Q@20gZuzFVGdy1e8E^ZA0S!BM_WX+yt7o6J zUNLV@mz&3GaOTpfDZ$>XS4>vFXZ**JFrl?H+Hz}%i*G&q59<a;v9NhXSt}drXZ>T{ z9G>#pu_${Yh(Bwd-~oZ1rPIOeS^N{CrJi09+A(Vuzd^Vw(6j?tS#}3{wN}lEVhRiX z%(yN)6ezs{C|wZyT4VV%hO1X<7#hD$4fbvTDr_(YO3naEJ_xbg%CcnHHs&7ze!7h- zR^ENI4``M`R@UYX_4z<G4YO|P#IzM<8HQc{B(Cdixm99y=1%TuYv)AqT-|bqRd-5o z_rzJ#w$E4!R1$ExNNiJ>pDtV0tNMunKx0mV7!!bu&a7AEjTaz{^_445tz4>N`t`a^ z%F`=BO|yPw#;`uU@+i{xuKC)oqO6Z=mgPx@`C4wRuLud=&bxZWoG6=>D|e@bhWhEw zyK=>M@ha`*V*FXJmR(%FU`|xbs?14C1*|qb5&v7M;`u03X#15l>^t5cVd&{(ln`b% zP-9E*;W;ovqQTIRAvuZR7)0W+O@oQ=%db^DY|LttJ>PjUhOb<-BdXkJrhx>{i?3Bn zGGA5gPOIO%YgO82&BG5byjGt$ji=o?(`<HPo&1DlFV*+{lsx<};F3wHSi|P!3-Y#m z@4j1hRWIV!TeG`)*CXxI8B@|X?&aT6v*z5s2{V1va&mHZWQf{4fBrltZ<l5B=FJQ# ztidad*6l0oe$R~R&|Oy#x#})jk^1x9`}(d57TjKd_^sz=x})pLQ~CS4g!+;E2b5fP z?2XYjLFs!}8~(3ZzT^0uYYp`vx+g0p_M&mpp~ORPn$9Ud*j#G$^WS>b`x0mB8Ew{e zo``-hy>z!L*XPL{b5!b;oF=J6ADDmO`RcN6cL&9D4f?K6wv=uC!TCYAV5i^p4lc%h z!V`mkyy%_L@rUh?gX_5kp@Djh;!2-hf7LbmUwk1pY{#jxz^-rKV^z=m=c};Vet&!Z z4z7ocAB1MGePLK7b%6B)*AJ!q^}>;#9!*v`>HI+R14{;Dv`)psxNGT-?=_vifA2l~ o^FFis0qF+<6}p?R--!9g9wEB&Ur|VzJOdDTy85}Sb4q9e05S7A)&Kwi delta 2201 zcmV;K2xj;F3EmNqU4IB`Nkl<Zc%1E>{cjvc8OJ|!wK<Wios_;<m?E`5;6xF~pr%!- zHbN?uD1_D(ZWJn`6q?rk0i65|2qA?y70_Q0LLhKKxI`!v1md*`g@8$u=-LKw((ob@ zD<UMq#JMCk$$j}@_S}to=i8l~y}k3@M|vc`?9M#<e0OH|nSY(xHIisXj4`W$0bnh# zF8KM~LqkJ_ef#zmj4?L>g<$iNr2lN)y0x@-@7@w{3OE5w1IK|AlK$KHqlkc{rZC_} z;6Y#)a2U7-C~N}*1Dc(kRW0V`=CpqOdM({Au)hLd1GWG+WqrJh$DMJ|*8roy%fQtd zffJxYp`c^Oj(^n*eue4jY4!H@)+{HmtH5u7r-3zXB><2EHUlpJm+J&-(IzG)>IT2U z<m6<eG6TCD`0`O8w_*hd0{<{@Bt~!qXy?wIk%M1h$BrGb>Im!@unp*1F#-Txz*E3U zhk$6~#*LbvpN}oT!oq?!ZQA4_f`B)G?Trv3?ci?!UVm{6g8KUUbo%t^*uk%G=FA!O z_xHPsAfO1`*Kz^??*P6+l{=ZJ*45Re0|yQ`2fxC>g9p{!-JL{)GB5$$))E2$j{@ft z9Iyb5kB=t~eudq;cPH{Cuyepr(+Ys?>vsibOrnDw9v)V?T=phFxm?!p@URaN%0bJ1 zTT=-D+<yri@^FB4lPy>3Bx!N&kH8&GAprJ5d)CK+MNPI`iI}8Cwe!HenF;_r09^2N zK(Uf7S7Ih<_3R?>P$mKZ9|x}ZIvAH^%N55Yt(MILk2}ZFX(xD`1h<$=%{AF_C1H|Q z&8`8TaEhfv@IU19%<t>#)6C3F!-8L7W@bixeSdvEMOXkn96O$|Hio-_IbTluO150_ zkfbfO5-~5#ae{v*@NbXKdQG-m@sy;6?JO~FQKJUG8~D9XM~8-nye3<&l*?sp*|NpA z2#1K6tVI>z%RU`UE7@|zbCOoEXXQfx;A40gUZ_~w$(AdglQab}dsImT0B*&@z*^WE zk$-Ht;yFnZb^z}dB@p17J{@XgvgL~BBu&8A<stxZpU<wR(aDx8DJ5w&Z%u0jzYF^` z$cqz6pKLW64^PsT+H2H!yje?tr+rnPb+YA33Q5|NiXs4T19n!Kmx}l7*^^lilQKR& z?o)u1)mlL{0Y-dP+APVID=8#tZy7aR8h?BPyzZm2W=pnQ@tmani6xW2mI|=hM@7w= zY`Nk&N&ASF5#akiDrx3q%N37F+V@mV0AMw6DQN|*kZif)DM`CbXhLvUfM=2x-YUtK zD;|@y?W!Wc%Sj4twPec`Pf6N-g#`$@pJnIgFK4ZqY`NkgN&6qrtB?SXBvG`LlYcE& zJS1tG6%yb}t_As?M%XHNnC`eoApu@>DP*N2TdpKb(vHf;p4B)EJFm24%asI4+BKlZ z0QX=gn>IBH&X%YcV^Z?OD;sjyb+{d}VQoi%Z0QJ)F>7<cyR!D8jk!Gs^k(fv8`G1+ zzN4W-HuU6xo~*rSV>&G$V|sE~dw<aG<gg3PI%LCK4!h!|LpIELZvpvyp0TkprlzJS zl}dG|zelyW_^P*5Dls)R#n{*w`F!4Is317`y{&xd@9$T!SWI>FF-wZYqVGAQzXRCo zqp*BFzoLU*p;#;`pU?XeU^0h&t6*YAM@JbP9Q09CQ!_X?$mr;(ui}n-6MtZ2WW+}? zErG{lJ?`y+OsQ02)v8s=U1|X?UAjb}P^iCQeKr{EVB9QrVy-iCxKn9mJUnqL18Z`U zE?{RwcW5lHN}8(-MZA=$EA7dz!45?L?9b4Vc4a?+kyLq6_Id2`Bquu8fLL4wZkBW* z2O#@q@q<1b>kx_G2G?G~!++7=ZKMarm{`_q<tOAji+)zRj-VSl1H9d(#JF8h+=FiQ z@<Ut!-YIDoLM<TZhJNf?YKO@Duo8T@z6%2Qc7vU1M<&9*m~hiGwq3mjyf<#Ct=>g6 zs0;ct@IFc9${((40kU4~aw)k(Bt9PwJ}hYg0LGXbfWH9miBoc`pMRkZXaOgIb&{@y z|M-?!5y1vuj9Yq#x_n`2@S#czfW=mD7<hlw(p&uuO}YG|z&+Ijs5&nw*zg(bkZFfx zl!4Dy3qI5k06@|q;9Ds<)lPgv(jRL5vuYQ#_)lYQ!G4YI=6bcXco&gY`RA|~-t)CK zSaxcnq;tR%*eCdz(tqS*JJk^I)N;XxIsyPl`U&>MtsUa=tfUv~ZM19`w78Km-Plk6 z-CJv$1`cMWf@l8^0h=T()Ga4!#m1OBf`V_Y_WzCmi<|}Smh{gk<wTyIF6kfG?=5yF z^VVh#`$nut!G{<E07yEF{Z80?Ovl=R1>iABN8{`idx3_emw$jy(Mi(6l!0xMei3&^ zrxh}iCb1tzzT&d~3S$8nk@SMg&XF&|Rd+V#0bn1Mmk-6;*SX#_aP<Eow%hr+YrTmC z2pqW!_^G7ZV(yoyUf(zf@GtC3myRT<H}N99z<~|eg&ys~E7&)pCkj4z5CA~ZDd2;^ z=UCYnX93Rv_kT<JyN?1BcR^Kn1pDEKWe4zDunRf|Jc;L-BWbJ?{t@<Z=5wr!)*#?{ zU_B{J+exDZgt-g&D)s|#*H_#cEuaW|h7_-FX|I$&f*ruy4!n_aT|PMhe40kwT*%XU z+6b1D^suBO!St7=vVhkmZIe{>b0cY3+FejJ4DgUK=6?z71>0#Zsz)vZFG`vKenx{I zK4l@mo0Z!M!H)r-1n$RvJg5;|#V(S59{7Rmyx2_0RDdwXm;&~C@nB#d!0$EcZ@{kt z`=vq?WV57c1XzkOrU&~%!2w`h@bm51_Z!^^tl`af9bLq(^t>3@DeQ%G8oLhqgruf? bj`4rKg%a~1lQ22N00000NkvXXu0mjfC(<mt diff --git a/src/extension/chromium/img/icon_png.svg b/src/extension/chromium/img/icon_png.svg new file mode 100644 index 0000000..7a84d80 --- /dev/null +++ b/src/extension/chromium/img/icon_png.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> + <!-- Version du logo static (fond noir et icône blanche) pour l'exporter en + PNG. Car Chromium ne gère pas les images en SVG pour les WebExtensions. + https://issues.chromium.org/issues/41057033 --> + <style> + svg { + color: white; + } + </style> + <rect x="0" y="0" width="32" height="32" fill="black" rx="4" ry="4" /> + <polygon points="6,14 26,14 16,0" fill="currentColor" /> + <line + x1="16" + y1="12" + x2="16" + y2="26" + stroke="currentColor" + stroke-width="4" + /> + <polyline + points="8,32 8,20 24,20 24,32" + fill="none" + stroke="currentColor" + stroke-width="4" + stroke-linejoin="round" + /> +</svg> diff --git a/src/extension/firefox/img/icon.svg b/src/extension/firefox/img/icon.svg index 12ee39d..3d312c6 100644 --- a/src/extension/firefox/img/icon.svg +++ b/src/extension/firefox/img/icon.svg @@ -1,26 +1,26 @@ <?xml version="1.0" encoding="UTF-8" ?> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> - <defs> - <mask id="circle"> - <circle cx="16" cy="16" r="16" fill="white" /> - </mask> - </defs> - - <g mask="url(#circle)"> - <rect x="0" y="0" width="32" height="32" /> - <polygon - points="9,11 23,11 16,2" - fill="white" - stroke="white" - stroke-width="4" - /> - <line x1="16" y1="25" x2="16" y2="11" stroke="white" stroke-width="4" /> - <polyline - points="8,32 8,19 24,19 24,32" - fill="none" - stroke="white" - stroke-width="4" - stroke-linejoin="round" - /> - </g> + <style> + @media (prefers-color-scheme: dark) { + svg { + color: white; + } + } + </style> + <polygon points="6,14 26,14 16,0" fill="currentColor" /> + <line + x1="16" + y1="12" + x2="16" + y2="26" + stroke="currentColor" + stroke-width="4" + /> + <polyline + points="8,32 8,20 24,20 24,32" + fill="none" + stroke="currentColor" + stroke-width="4" + stroke-linejoin="round" + /> </svg> diff --git a/src/extension/firefox/img/icon128.png b/src/extension/firefox/img/icon128.png index 728804abe2fc361135314f34fe3380e4f86b6894..59b3a2e8b6a842c1dc17d84bc0bcfaa5738cea58 100644 GIT binary patch literal 1774 zcmZ`)eLT~79RF>M$jC#<lF8$FJXdEpPb0(h%3<?(vn13lvfId_={I-QE+G!rd00p$ z&Ql(0%e2d->|%(QTFUMft#rpsXytUj-QV3G-{1H3`@G-Z_xt_%eE<0V7!e+V)J5q6 z0D#1Y21P+Ts9xK&pzo01(LbO~hZ-7B2LNw<^@2U@Z}=W6nq}eQvIv=JSvf~(sX$In zj_bFlPSTGZrKY-O(vH_G`JezmD-RzOKxEYZT{n7?6utZW74MQ^P3d>`CORec_wJo| zR9Kj@GuBElUR<>A&8F$Mmjo__Zm<BN^z~igtpm2>1?Z$G0z3>q+lzaX9QD<s(tT$V zo2>Dx+571drbH-b%AQrEj4h9;QkR%7+kWK80?Tc7%B+)&7}|`z3<P81wHCaI+^Iob zTZ~??(U?Fah>nO3%TNj-$A|hp!_X@WyvfQ0^(}F~Q2HF(V-6*>R}tHy*L)nl)_#Zb zWX^9{+*q*|+4k>gW@4|0^GQ{EJWhp{zM1Jf#3#i_7LE!;xTJS+2p}AGN0SPW(@vj` z;mS8vtBZV}F(bD{A|P|7dVu5PwB+PK!LubUJnMF%85$ick$<-Y95-+Q6bWS>ccQL8 zkV>W8(dF*`e!I#roG<UbN}F+V4h{^7B(NXeVn)+eMWf3T>6mGHF83SJgM7p-6Rc+@ zp>w8mcGF@lH_^9K&hKgi(%Z;?cC6<;BKXDXwz9o>$XaPUn5nUCA(a~om40OlRmvyN z>E#8!BR%wWHLHW2A=AYAf^OuOmJ4)SxcjD_tPLn=@(Xde;)IAD`W%*zv<zK*(RjAQ zBo28FehZDgM3j4q<zWHSicHWRrisreX@fu_5^ap-Of?@_pkJ$}v{+d7nFXmx4)v&3 z?a)-MXvnICy$I9d_EtzL3$8chf-L*P5ETnilj>I*AcY|0w8mTCK{eh2;e*3BmHa5c zooFyVlLF!MBnUUpyAkCVOY4B7O5Ed}t~hzc99#qLqmWQ`9wa3?^JS%^(!8}H7vN3A zKuoo1No@oqTB|m-wzq+pArMnGu5(yL8YzSFc~S$Re6&W0s$Y9aeO~R)v^Rjdl&SMc z=5Z>Lj@tjP>H%mjur>%!{3!&Iih%MdKF&u&cqH;C^7h{AL`P>Am&o>*zN?H>CbO=) z`wI*P(|Z+&nA9J?I&s1ze-+j`?N}Uq(0kZ*3eCRIbhhIM$eIUI`oxoyM$q*i2!5HK zp6-Uh48MObpy*E%uzXVUll0)5sxIazeL=iayl{h3VhYB$-#ea`cDcHGGJ#w-F%j9{ z-ycUJ5l0(nOAZ1hzp<U|I0JNlcEzch(n3S-DEhC|e3n(;!2X2`PlkH_a>}iTfPE;I zUtpusnpxe@Kv9$vV$<F6tqmI|0m9(cgD|A<h{k2*T1X6~Wh?no=I<*XaXuUyd{mf` z-ERYE(fDt=JG^4R2i@?XlAV^cUxBh?2#&cEc0LYfb^jAk?ZfR6ZPS-)YK~=RSDwCI z%wg08tkiWrJJll)h-YWb`x0CV^KO+Mdzj2-vs3c($ruk0!a0M)$j7s@6)M#kGZad! z?14Q=-@1FZVEvz(J-c@8y5Y?Fh(i^#*O}GcsN!Hdgkp;;N@yQeD)(P2Pt3G9-`?&r zR_iq+7GIdj9#|H?ecPLnkFE%_ZRYX*>3osL8X3XQ9WtqMUh-b%f#JL%g`!JhtNX{* zkkZ{|W-9{r20T>P)#AXQ|IbPG@=vxJvQb3YyL;+;ZKg$F9&_%o_5Tjw|7K&n`2nVN z?bY0d|7YvlK0VS3kSE=z=gzGFwWSVv?wBx<;I!_+;yxoP!Mm_wc-dA~t^P+F%WS9y z3S~A?iXNM?lf765I;(=_VT!uW=!;2wXDb6^!+rSjM<N%W0UvY45v-kN?q-JUupvJd zzN5?^^g=tC1<)dcmS8qQwjEx%ziZpT&o9GRTZoik@cy~&p7vIIAFmL*I6hi_h^1y> zqoLjg>+9Sa1Bq~#rBx1C$~t#IKkc2|Pr>5MK3A3Ik@bwq=0Kf(wByC(F8D?Nr%x0A z`ar4YZ0gi%3?@A_Ej~M`<=Vv@yCa-4un9?Qvcc1IFT<K&y%=c(J}=mhd;QK^lqy?& zKE1`dxr}ndmm7=Di#~{Mi}qj<jMrUrJ#dEq77ttWx9M6H3n9}sJoAe7;Ulc8$jg4= TcNaJ4tpf14@Su*sq=J6|=5R6g delta 2959 zcmV;A3vl%A4bB&kU4IK(Nkl<Zc%1E>e{7vq8OJ~8EnC+PaN3j~GDguF`Bl*<Tg)b; zZUz)8f+!K9{NW$Xx|o<46aO-5A{z=-Y+PcDAvQ8vNQM(4RHa5`k+C^rp=B_j(;*D9 zIoRkn2JPb?=WV&YyKV11@A+}>ea|O(vbDYUoaa5y_n!OS?|*yVbCrltPbj4na3OF> z`fnSs0%+~(>T21xZCi^{Y6-9ySeia<0yrrmCvLjwrbAn|ZaoCN2J8p+0WSj20OL|; z1Ey;Ic$8A-0jtxv0=Nt~qxf;{?d|N`xszqfmd)GV(W6IMxpF0Y_UtM7XW%JdC$JsZ zE+Q{yJA%N7NPkTQumrdUxEpvDkcFbDsY!P4-Yw-aGBP5~&CLt8o5mjCC&1M}W9adz zcsxTVP-f8=1J?olz#C;2W+v{r=bo~QKh3@O-dj;0X}k{n8n_l%6nfms8r#qbEKv9l z0h@pW2E`CSdU|>)F8(y@*RMC~GmQi3EOlw<ah!LILw_ewGAURCJOoT-D1fY5wMtH$ zIAK<O5jlDCq^w@OI*SOV<8h#i^qi}jB6tD?MOVNLz&|YvxU{si$oTlUaq*|wzkk29 zwzk?3fdKyiuCFE`1W!P8@jnafvNXt&B#8_S4P`9-y9^HxOG870EfEO%Q^eJw$6Z1T z0QfNQuz$sY6+kv_+?c)UMcjV-?N)P4<Bz~)L2D4CQ)mY60^YVgs9jxMGBq`2r|Jbv zO-;#-H{R$%1Sf$zfTkd|@ZKS;172`2kka1XE{6{vwpR3FjvP567hQCb3lRvg7x=XI zdU)$d8#tSQNf!fHso7&ng(gv@F$MerX!ceYFMplDM}Vgt4VnPb-`{V!)N|9{-|y@= z(ip*$f8e9|Ujg29Ibd1L9#b-!MCHUW;I^#ezfia=d;{7ecREm6%^p)MnnVl5oj_uv zCZ)nv@fQPwt_R1K*<*@jlW4x!3M^S@+)cto@lOYaTn~zEv&R$%Ced6m44f&|ECAqa zw13^{d_Y{7J*GG^iAu#T;4G;|0iajj?Da7auFM`&9GXO>;yIvAs!0GqD|%ss^8s*e z_L$<>Br1;Qfper91OS|gr)l4p*<*@hlc+fU1uT=00zjYb|H0D%do_DZ@n8}a#xNO| zp=Bw40^INGU^i^o;H7{z=;`V4DS`)q27d`40Ouypbc8Z{Oz~(EO~)PLQvkp%z78(5 z*<*@FlSt4Pk**gX0zhBbnecI7)nfLT;?X1$;2?0mxD){TlJ1DFSAR8`J*Idxi3E6p z3YVi-Du6y;2UBfkk13u_A^|pu3jv^4@?=`3U2asX*<*@llV}RKN^A-My@v03AAbi> z?PiZDo=u`r%6uy*R{(c;O5Er+u3EwHb~DrXw%8B=a4~x2s`I34$?P%3qe(OYTp$(% z@Q9CuYt8I2#j{EDfMgK>`i>pviPoywV~S^!XswtC0DZ6Cldco2b+gA5k0#M}F%-ZJ zJ``FHW{)WzO`=bUfdH)Br8{5Li+|Z;ibs=ZNGcHk+VpXnRK1x!rg$`ou8;}@;PlMD zUd<j;JefofN;v{RZ_DD;@~vmH#}p4H(G>7ODMJ8vxJ)DuW{)WzOrjskd;$O#0k619 zATMT*DIQFsS17thP%MBhSDok0>@mfINpy`A)I4D}U&aARlCWjV7TVg{Tz@oQS1ez? zoWa3C8X6j0b#e2opXA+F{}K!~VJs)|Z1$Mq&?GtxESBQ80QB~&);r9**<*@hlW3ik z5WwBGJBnscHXNEncS;EXJZH0$X!h7)WMo8^E?sI{0HabU0N^~^DyxOtxM~GQx0{_S z1p>I)X5-Q9v5y0j=!;Sy0Do)m|IzGmg9DSOR|<T9E3iOIOA7-712i@^+Gs9Pz@kNq z7#J9!wYAk&lPf{5`bp5A|4+Boay21(hBHQg1yNn{2Jqel_yBcU{K&k#2UwAymwiX_ z$t4N;tJNa;q%8q12%SYF7#Ak!FI9}>lM52ytk79Rg3+1)EupiB1b?F?0p1rni%2k9 z67;?Qk$lpepf`Jr<deoIfPB+fyeKr1GZOUfACY|WRun+Kc`HHhB@@Xf6AAD?pFMVT zbkNt=$Jp2y6B82)?opIAvf?_wiHQlu#>VLD>!YKi!@>wx#36t`V}HTnDbd*2D4REL zmdVLU+pDGOhRMlE*?+uwvotm~I<H3>e*$>GNAZV;heMBV%`iMX>`MfL3GkmeCkRXQ z_V&`*+3C8Qx}mePliuE5A6@MO_y!JD*3r=sr+ot^Cnu$&qr>$Kus#9CEvsr4-QC?J zN%Wg4B}o#xySrU?GoAorE_;Ymzd0VpZd9R{hQE&f`ZwzwJAZbJrluwrP1ilgj~}PG z+1bTfy)0Zr1bEt2FR}RMI3ByFL`0_FoOinHDN>c}0A_9t+a55HNEo(56hNN&JEQ^- zk(bdML`3qzsE8Z@X6+L8NT6gQ{+X$D6hJ<CboxI^(o3dFsYc*c^j)LY5DS-N^NfSr z(_aV97Lk)sFn<Gx$XmcR+r4E)DU~T|y?+O6oi09b%1)v8drl_epTWW(RN)k@lsXN4 zdH7sgy=8q1$oeYEd;dio09J^|+ta_8H3NvqJ3zn99wSx7uL_F~MKb_^QmP&830RR{ z=vP4A`!7I%b`g28@Rz4ts27pvi605;k%x<m4<!VUa(|cOWFr3gaj9RH6o7~f1G}B3 z6Y<Fo5&2uGKg_pQ>j#dKiTG#ETAp$eIO~r}?I7Jz(v;9AL3!^Vz1Cxu%#p}Kt2Muy zwf9JHzB5<xVF3Y%$Pn;*>nTNiF_@mu&B?rP0WjkWjAFQvMCd6n$Ne7#E*6ph&i9}N z7wo6Lz<*Covxo%adkYmG%9sHFlu}K=2+&?>7CC+ehU|Y7_*k*+TZ*!7*%6WBKsVY> zj8r#M!1{8E4`m7fX3U|VnPwG=I=r605S!*QeM(W*TfoeN^{SyAz~$vWC-f8?8qdf7 z1aM`!uYRat27sAWL$?yQm8nJ!0$-}6_)wt$0DnYe6!<Ffe4v^T;OiptQl(Ecx^G)V z9t6DXU=S&bO(OC;lP6Ym4lwJ9N+rM+iocDzh<Fa*{P+ieTSa8bsQoMnDy0?y4*^%t z^_VCCr^i1Gd@emVGi%>Mf@h$28vA&uzefQ$JN{ijr-;0nrTxr%w}{A5^jFV6o3*V- z*?+tMT$i=@U_k%?B61Kdg1t7{i_FVjV6BL}YNIi0yElo*KH!sRGa}-KUBDU<`M0eG zt#02XB8Py_07Ew0jR5+DZ>@;DX0uW2`?sa<OP@!7Jc-z0D{!rd9I@T7lMVdRn-6aV zenfN(vmn4mw8eYEMF*Kb2A07(;5We8CVx-P@yEb}z->5QlIKGJ0Ly{<fHjpqF{c7} z678_=vzkl^eC^@-63_{JAH859QW`<8xmbgT;)A~#ppdJ8p97bc^WYrK08arMfU*~J z*dW9%&VK<u3Vaj2ay9Q9L(hz#z;p2-%nVS-`+-g9^#vuV^BLe_^sC<acQ(vL=zo3O zUk1L0{-oet{Q-FbSPOI!u=o&O0Mk4MT!}tEsAm`PN#I(vWj^m6JH8107BCl=1K$E} zQA#z0P9_WKeR+?e&+Z=zoX#m!s{p1sUnzA9&;zUpolJ$i0`!Z>FVUB8tCDIL05G$A z**dg2@&#a7*o@}nFz{RSR&0-@n}2RqH8mlCLX=XA(dP=+q;W~uj2K04z4|Ed*TPL0 zYk`^*Kru?GbAZ)ptOPE@@^-fcyn!}sb^?zB+ifk(2t~~cpcG1}HsE65LZA(O{%{u1 zl14Ld8gNGXl%v2qXjA4;8m|KT(ch{z4m@LXAx5?Ef6G+!k27M0WB>pF00>D%PDHLk FV1o9daVh`+ diff --git a/src/extension/firefox/img/icon16.png b/src/extension/firefox/img/icon16.png index 6a97843da8c0b17dc46bc99208cd659b02471a5d..da4687f462eb63deb65cbd25dcef756daa7b7777 100644 GIT binary patch delta 245 zcmV<R01E%#1IhxBU4H=ANkl<ZIE|%~!3~5U5Jf*5?$kgVTEXs?KrvbjouF-SPz&JB z;qO7&h=?(}KbZvhGcPj)0N@Q^0l;GzV`z*i&bOEWys#~b1g$kg2n-=mYh8m(I5VV_ z9LJGK!!S@vS%Z{^ec$t_uIugr+O}nku>iyv*)+{HKq*D<eQr^l<h`d-st&N$R*RFY zwHZJp%9+U35<=8c@TfXBl>wY{Ao-1bCn=nB86X>BUv#DYNT(wRA+n_7zB<A$l2_){ v?e9BS{%BwZ)-O2&_&ye#zxks-0eF4@An6eTEf$uz00000NkvXXu0mjf&a7)v delta 396 zcmV;70dxM!0^b9WU4H>=Nkl<ZIE{sq%}T>i5QV?UwH7Mf<{i{@-A#A8=(7mfcHLzc zipAeI$RiZ|%Q~w<jnWs$6I2K-mE*!pxu*Uc7|3PjoS8HC21)n<M8LS!YUO#Jzt89M z_jbFT0~f&2R=r2u18#s1KuMCwkR*u!0c+q2XnYf>$j?=g;(s_+9dR6+h=3;(F@al4 zcDr3Im&+}I)oP_)ujh+gR$L+*I}Ae=MX^OT6h)yh41GI?0AoPTIi+d(E7_2ysho2r za_)d*fGCQ{vWzUtFboC*07jz`KB6dMI-LTX1i%8==LeX_AP9a+11wxM3IP3npH8Q< zRb`U^%w{ttlYhyk2f(Xswk*qkcTkq4e-ke|z=O#(o6U`9-?x9ZnhN&-M|@q$ri*p> z=e!0EoTNMmf;-@}?tM5M{<b`TYe{dm=?3sv?^q8n{{ZZ&_A@mkT}oR2A+VM-Hu5(C qFAjlo;DxU@vZ%h#BpuZ2KLJJvwD%|t=PLjJ002ovP6b4+LSTY#GP2nK diff --git a/src/extension/firefox/img/icon24.png b/src/extension/firefox/img/icon24.png index 7322dcabc360cb02c03e74ba84ceebbee2213a30..a9fb7b9d99dcc7731db67ab789577579af093e13 100644 GIT binary patch delta 389 zcmV;00eb$=1=$0TU4H>)Nkl<ZNQt$TF>Zq}6o$V<Ry(pc6UxLDLT=)6jxZI*w$})` z1w$m@1lie0R(6Khp;&?tz)90jvSc3i`|ao7GQcbF4V(d)YFca2T2GE?+Zp%*UTBlg zPI6sW>bjP?uElj-8xa9M0WNa`l~Pg^g&6WY7p0Vqzy+I?#D8%t*F;fdyNl@ozVA!Z zGy{RAX=Jn6{7t}d94X6kklav~r8tiBxImI5qsa|Pk~}7$wVq9Gn6d7-C2g6p?zAOs z8MCh93eWS%vWzUtdhzXci|_jY6h%Rv=hsv5Jde}qG>BXIxqBDlIJUh5vK+`gnL&vb ziv?P1R;yJnZhp#R`n%n(_rIzt4u=CGG7#x)DF}kQ57-a{!F-9<>-7VL7@s>RQJ1b; z#$42m-(vER(=;UvL&7j5P1D)<-2%^GvP4~u$K%cZQw8oxY*^AhYyU*G1or<ZuvfrG j`|%FEJt^^---Sm%rZs7SEDV}@00000NkvXXu0mjfIkdYo delta 637 zcmV-@0)qY71J4DJU4H^xNkl<ZNQteMF>ljA7=|AkXDjK16bMw1r9*#&JJb>qQVR=Y zVCW7MgtB91ri2M0kVQ6>1wv`pO8E~MAz76ur4mz(H>Z6WVn>c+CoS+uC)uCBd*8dy zcV{DsvIZ;xkAU6f<z+t%!zhZPXk}%^2X=vnz_pngCBk*!6@M@URIOI!`@T|q-&eI- z6(HaQcn@4ZlL2rW_?>i?VHoQ5ddk!5^<)@EY9b&6)@K?3kCPFNJGNS_De;t6tCclK zXR}pkkc@mne06nIaU7Q#42MHGj#Ff^K4Ab{&6WjFtya_F;bEzG%F)r0>h*fwBm}Nx z4c=xGDwT=`gMYzX@sz<}ph~5ZH+h|Cvy`ruv~@b2GmEFR+wHu;FsTe%*$2&L^W5So z&1N%i^1uLgfSUk|i;H-k$HKw_c^ZudjYb22AP5M8U@9kyA~rWSIX*s4L!SY@<y;G! z>$>BSx~@AnKWV-R)TV~=|EOC<(QG-gvF!EQ+S<hPl7F(D0(>PiE!(zdZmu%oIF@bO z`4W9GfeBmNwy~_jiOs~aENt7(hXV`PCRs%QrfC*VyKEI@<JrCmpG@Ebqw`~mZnul$ zI5>_&x7(c?&oKo0rljwHSC;h;ypeQ}7W)}+7r0oKy}!TD-rnB$dJZA*9KZsQ^usWW zdq5w!P<GVA^E^DyJIlyVf%}qv0*v2^q#fXClJK{j0#79M)4;@Qm(&67F#0x}mk`*H z^l~Dq;=h4QlG?88#>_vXP9(jPbh${YY)AcK^nHE-Yyh`_8zkpDaKLDTZUY~a`$GNz X5#biFF}fDh00000NkvXXu0mjfWCbqS diff --git a/src/extension/firefox/img/icon32.png b/src/extension/firefox/img/icon32.png index ba6fb23b0be9631955f904353abcf55684950529..68e3aa80c1066fa32f0c8041063c1aff02dd931d 100644 GIT binary patch delta 395 zcmV;60d)R{2HpdZU4H><Nkl<ZScUDEJ95G>5QaZ9>U{wkS8xWnf^VS1z+v2^$fHe> z4zA(K?lKbtrHf60RYdr)QefQh&1|Jz?XMmEnh_!bum(PWGa%Zq){3=Oo!`Y7cn4Np zZ`Qz1;3kq~nKVr!P18u0WuYRZ>$##kc~G%2Mvlj$I1Yz{7=L48M7$C@c0l&~z4+{Q zyBGl{LW{QBt+Z`>BcN?t*=#m3BJ{~=no3!gH_aVoSxTCwj}uT7#b9$sQ5266V6B~O z?g+Hzbds~2mOyKcC-|1r5@5~ogg(n@QCc(Ha$1zujI*2;g*D?Xr)A8ViBl1Z$ltOg zNn*BP5mj|Zo__)c1>|{7UDt?6Z}<%5)pbpt=c6KeZ)a6icXL5iRpBn^JLP{Ea>?v> zz-SZw6HL7W+6m4+fu{iV9q@^L`+a7gzyi3;*#EQuzGf8g3D*ze&F9p|U!Mv^{Wq|5 p55@|3<N8;7w15-v0xU&@UwCt7k>7lx!vFvP07*qoL<FuvV1h!&yG{TA delta 694 zcmV;n0!jVe1BV8XU4H_UNkl<ZScS!x&ubGw7>1t-)U?=?T!cs{)Iz<bX#WGr(cIOX z@^7@aUOY$<FAY@fRlMfnO+_dzEd?tcdI%`AS&%@%9|<LC;PtS(kfbx4%{J8+=8|vb zd!NnDzB`K~;tXI8cmliv4$9?nQ&Lw_w^FGzfdk+r@EFL%?tdG@_%5&wv;hGs6bfp$ z+X{7ley)|36@~R+?rUHvF#s?FYycO1jg`q{bbNfQVb$w(WwY6S2mxK-88AH-0I&pn z9cm_HjB2&oCG$|VT2027VF&?x!0lK7z<r=;X`;2YHK%!~)zwuSfPhnAIT9eaa;tf< zSX8gq8wt?s^?y_>7Na0?RsdicII=CApPyH=*&Jye>g?=H3kwS_h(ln;2C!jUFf}!$ zot>T7=AriY_mxhkT@dR70KubnVVhj7R>w9EwYj<J0{9c&iV$GiHnChTCpHgNsZ?AL z)xev%{*ZBnO;TAxDjY2!1Ae>?6kTDHRF04m@Cf{DkAEFDN#zKsE%09=uKVO1!%ETv z*h>L-_<ve7KnJ)n?n(taIFvCa2|y>6WYr{<0)E>HrBVsc^P*nY19HvtJdaYT<nsRo zj!oETG$!^0G#ZV_O?YHO%jfg)|Hl!E==CK9e3+Qi_<C=ES>Ok7v%fNGmtVDxAOE?O zq!#dYJb&<s=#8XS|4FFJ7)f`<dIwmPL<)a)9eD8%ul~8DZv^K3N3y-RS2$`!tltIF zlKoJc15U0HzytCFp1PcH%fRV10Gt4YOMb&Y1Q53*eVQP^E<?xhNPu9ZC9O+pT>+pY z>1og_*~h7*oTMuL87?kBOVXC4#Zmo@EN?cOj4v^>z(e2xa1Z|=lMTv0f$zX);3M!( ce!z{?UtH|Z<Uyu)ng9R*07*qoM6N<$f@+yUk^lez diff --git a/src/extension/firefox/img/icon48.png b/src/extension/firefox/img/icon48.png index e4c1f5ddb8775794f93881a263a019e04c2b9eec..b2bff5a897f365819e5cd19670893ee4ce443014 100644 GIT binary patch delta 577 zcmV-H0>1s636lkoU4H@~Nkl<ZXo2mTO>&}86h@C0g_%*M!%h#_hAxFI^xqD21+WRS z6YZokNva1KvI8lqb;jWKAkYI7<ifiK)A3Zj*?X7!@$euDB7%qjTmj#KU%(y^*AYdL zL{a2iry6_U4)_L4{`Flo{~7pgbRYpF3_~f3LW-i0FbvJ=R)6CWxUPEV%DQ>a^JKHx zNX>e^7SHoe5n=-H!?>`lRx3GVxm;QY5a27oy=BqGVj*Q&z6em3rOfAZ>i~BEJF9|0 z5J;9~FPg8(vP^;?une%n@{FWu+Sq(enx@vfU{ffHqSoeX4Ap8ApjM_9W3{>!I8>$< zL$$gUcukpFjDOVHe{qvCwHT?j-@-O!YB5l2zl9oQYH?I+_eEWlsl`F9-4=9JrWOaa z>L>SArk0*+)lYU&rj{OR)lGC&rj{ORZJ%VNOf4PN+CIrrnOd}J9n~o;5qZ7jXf(1u z6l3#>Z_FjY&|CrxjVgfe`^0ffp65vQlisn>gl27?=YPa;jPLvE5Us9FlH`r=0wPJ0 z*xd)V+bz@SRDDJ)$n%`pY}PtY72w!qaY{5dzK`)CK4(0a#Z6n>bjfv{ui@SAz$L)Y zTmlS@lZBc%#gkVP?|ujVivatfn{eRI7<d}G3kROYz|GKIIB)~cf7d^9<e{O7V{5vM zp7kF9zdHURb$u+v83uR&K1uzyN)=+l^ScMP9Q=EKCINQ9Pv8sS*M0v5;;MSlZfMHw P00000NkvXXu0mjff-M=e delta 1102 zcmV-U1hM;*1)K?xU4H~ANkl<ZXo1z5!D}2<9LGPi*;aO=P#RVn5)dJ^xfKaU*_`|b zmJ|;~PaedYXxfVqj}4MQ4z1Ob;322nbCT^Lc*voxZq{W_mI&e!(JF0dCV>#cem%@g z-6r#9-pp(^@e9Ap%x~ZC`<*xYzQ6Z&kwn%2E&%TXUjcUug@3|Ey<UGJX<yQQv)O!7 zEEYF_yME4lz=f{V&OmwqxDNaXs56$9mUI})%gZ{P2mAoc00TV}01N|nfZY&6nx39M zLO#IM)Kr)V0Xx8#z|gS?0L}n60M|f5<KyGn+uJh=*x%pR#KeS2g#3qc6L_Jk0)R_E zBciZMrIK2$mVc3afL5!eQmGUrLcmYJ>s=85yc_k@0p)TzRjbul@&Q&?SJl_o7bjvH zxROZ#@B#2oOd%~SELf8dFh4&ZCqTdf@Np^uz%`2ks#Gd!x7&#YwA*b}Dis?M0%j5k z@L!vQxPeDTMzpoHm6&{h?d@%ij*i;S#H5t~U<7y?H-BiMP|*7NdTR0kn$4z)#iES} z7Z{Bc0Gy3mZGs3htF$nfTv*hBGf@IQw;3qPtkNRF<POJYp#p#*JV%TiAkM7P!ouV_ zU!}n?0e9j)Y-?6&VQF##ZapUeuQ3blZGuQ@R%u~ray$49U?AXnoa!`Yl@^vJ_erOK zBQ0@fq<=N5w6HX}2R?TOfwn0zt68Omg~_#nSHRmzg(ek?MKv0Yo|6yIXf)zX?rI)* z3j@Z+#;8`SRI61}N+@P$XG5<qE-oe-C*ZKQwr0BhHhB9~TNAMg6S`do_%4Un`}|*V zF$bJGX%-o9E(g4L(kwFIrQAs~$cj9kEuW7|9Dg1jW^!_p{{H^d#Z0SHCw6ytSy@?O zb92*XNEhH2V!rL=a#^nH_H6xkU03CD*=7~m0E=a`R;%@le1KZ5X1$F595+vwFJHEq z&aT3;=EEFtKQ1eu&u1o-6qYsbId~1xAAn=ZlHc|98jfS61l}t&n3wd(ahw|PX3_$t z-hU=(FJ!Yih2VjtN5Rvbp^LrEap(InEeS^wj^hjfzX73(yy+D(P4RK(<86OmmGn60 z5AYcH)|7n;@r}>fn*jjFafX10gv`Pzn*kT^=>1QCXT6Z5-+?beM><`Y3&?}l3w7c) za20qXQ-!&?EFX_T9r*gWE3!D;O}R>Rdw&P#0+){PJ$%6zafOcK^;00=0H}m=4ZG-z z_~?`fXagS_d75sh<0qyQ6mS4si{uz}(-$!*Y5N2OJT<*Gi3Ip@QBu8!0@fvs*l@EI zfTX;n8=bRp3<7o~-IR3JmRAx1K@3W|Eh+ZLkOTsDB;Asf_zxgy1Ozbve2TXrGDjW` zM?@RAhj&bVJ}r-Dy-*f7j`K3`4&GViDDWCk;=ePe9pG=^SG+Ckec*dZe`T%xFE;u5 U&n(}l?*IS*07*qoM6N<$f}_v<PXGV_ diff --git a/src/extension/firefox/img/icon64.png b/src/extension/firefox/img/icon64.png index 7a92b4c7db1714ae6b2ce06e63b25c5c3e3918fc..eb7264010ccd4f1d29af9fbff2837cb7f82d9c18 100644 GIT binary patch delta 778 zcmV+l1NHo?3)%*dU4H`SNkl<Zc%1E<y-wRu6o5ZRR#__i2vrtOKzEq?6dwB^@CN-8 zEezeV`UP64bb!55VT~#tAPO#9K&L}uDFmpGeeXS&HvXhLg?s*F-_MCKBEs?lc7S)l z1#k^Ws8tk&6h#p%{$gDN=fGQF`(D3Gjc)))z-{1y1d!oyD1X!GRHoCZ42Q$u`4;OI z_y}y=8Nj0X??y#Pnx=Agb|y8ar>Bypsnrk!IH`wF58%i!xf~oE$SV8$`<4R`;Be79 zI~ZN|fb8w<$!s>eH-On}CcC@4mIJr}wgBE+CC#!-#^dq5=4-~|v1D0hIfOSbKkZEt zjz*(Lo39y-Mt_zAI0yJ`k*p|+#^!4b)L5?yi$t~Zv>2-~Y=TwgX)#n|*aQzLPm7Tn z!v%j#d0LFr7$$I&^0XMJF-%~M^0Wk2qyM07l&2-28vO=rt2`|M)#xu+SLJC5q(*<i zT$HCJfExV-a#fy|0BUp(;!Am2Jgd<?h)?Bd@u)_(0DmErr^S;RyKfGqJT0Eo*llBI z<!SMt#%>!el&8f}jqNvCDNl=|8ryBKR-P6IHMZLjLwQ=ds4=OhV1>xv(<Mn_RLPuy zX|^XwKY-W;#HJrW>;hub4<L2{vFS8`JkKf1lB%li{J)K6HPJR+RaKN_NuK9jTAAl; zv+_Kb$$w;G_H?IZGMPx8=iwiP%d(8!>!Xxq8U9iD>gtNk&CNDj%&4l0EX!K$X*~c@ z+{ZC#`(2{9K<olyv-Sf>eFtp12b<0i*Zpl-`zxRyK<oly(+?na0kP=^5W9fbcz+IP z!uogrCf5E6=m!wHfY=O}zgM@eR0H5Lb`=r19De{`V^<N8FA1;>{6KjgxPF~=#bf?k z;N?I>egemib^VKc5|NALS7%R9{EXa$CWg!Ml>Zy>Odfc7`jGh>mH+DiZh#MU^CChb zEB92ABwN61;1%!!c)tAk>ff*O1kZqL;1~15{<DZ&EPwb1s~~d;$l}$&00000NkvXX It^-0~f*Ch>x&QzG delta 1375 zcmV-l1)%!c2CEB@U4I2QNkl<Zc%0>%O^g&p7>1wfuzT7cFo<NiC}?kV^gz_>h68)| zKck27pz&%XEb#*V+z1if^=ynGtOqg)iF(otD~7~C{8`xui6magEW!Z8oLsW6hw7GQ znVGJt`RQGFk}uiJbaj2-yVc!qRo5Vieg?1&cm?<X_!>A@E`OIVNvccwH;H<sQn>`2 z1LlE4z{|k4zUSAcqMrwj0*k;Zpfn~YC)H>)w3cSGsZyz=?6FDPMc@<Qxpgf7Fb3=g zmev&Ue~gTbXlZHbp5jw3Uc9LB@$r^zlQ^IBF}iL903HH90_q(SmoY{sPMm04e9Fm_ zCuNN3B!ZH@K7RzZ6ea**fC_LWCs_eHaNt00@hLMiGr8wW;u`QS5DioS;Bnw5$0W69 z&mOI;tT+pB`}S>3PfxpwAmB8xYajvuF9O$Hlbe{BP_0&TE<UAJt7&3l!bgM#Q0|)m zKm>g1k&uRlhP1G-;9Y#mnKNfJJUr|pg0N2v=S#x1_<v#S^Vutzxw*OE;!|d4XMF__ za2y!wi2zCQ-}xp{E|<G5KBZErgoyC1iwG`v`mcODFO^DaHk&;Ypp8j#iTS+CAx{9W zYaa5=PACp0sa+fi5&(GBw=-9>6N;lrY89`02>|Q@ZuoZOV|GIEFiF|C0qk@VAi3_H zO->rVW`8G?0F#u)0$^MOc-!~n+qZAm<;$1*UVO^(^0Id9*bySan;iwfPHg`1Icc|M zCzL>wv<z(SB*4eMs`kR{gc4|y4z&~jJD=}3rCl4nG&`XLn51iD))TS<?DsiQyOo_m z6KIn5sf7TGt|#c1*$E}UB%N1Q0PGr`Q{#S{oqtdQOww*;1UTy2a1drE6i<_ML>U48 zaA`CsvlEJ^N%}>$cDAu*>AF>fuIvmNkCmiVU@O>{799^R%It*VVUk|j1UyX+D=RBZ zO-<z;=7f@A*A8P$Px^7B6akZi>~Wnj839ieokfAf5y_3<0cC3hj24|mfs97LNYPmo z$bV>5bOuEe0nMV5D3DtbaLcz<9LH3vRT_<k)0?Gi<l%e1Mx#NsS|yI-AOQf*;xU(w z<5=~2ePFK6m3qCdIF5ZLLjryV&v$;+YPINE+fuDoeFZoc0T+D6%-+3weGVTe0l8g> zuv1}Y#>U2cI~f=Oxt%xI>2MAELL?VC+<(Z5#A7nG3Oo`?x`N$(^`P;aq^qeB`o7Rq zis1*aMhNVapeGn(I!3?SdoT})0Fut)c{AMLEJ^wm?u-DiJ3$^4zDWNt>0R9zGYb3- zZ0Xc8?<tTsOp9)hef{^Sq+5^~0m%oS=e52M_$)0RG9v)M7_$ZI3?FXSy6FF4mw)Y- zfk{a>(+}=i50G>nc)w#08=IMI@xZ;)Ppl(6O`8cs9_`w#gZ8Iru|?*tOCZG<vkUv{ zjq$bL_24Gd6@mTV0G^d}Y3&y+m&7Ffh21N3zwlP8;(^X9FxZX9JsrZ`MnM0EJJy&Z zfC0YTzychno2{~m2t#BxOK%_nzJH<H&C(eWHev1KMiJncOYzPE=+5PEWStAJ3LK`z z<F0D~GVy}!j~>^X05>JQ=37sQ07%*?spXD|f&@4v>9LSnLIpsQkyMeiT%Z8gB)ya5 z5>!Vw0;I87(xD`oK?!hG(m_e%-R9p50n!+ev=7G}XMwRO>Aj?{p5)zfE?Cel#+co} z8^AR13~em81FOLA*hSlUCCga7q%Q*8)qycvfhpiA;7K6HZp+`yoxKT7?1ZI`U61$^ hyHx+9q^teR?>~%7Ho+HIHhusA002ovPDHLkV1gn@k3|3g diff --git a/src/extension/firefox/img/icon96.png b/src/extension/firefox/img/icon96.png index 641ce897baeb54b0caabff869978ba4295d21506..c3e123f85ca8a6a89004093d483a06f38d8606a7 100644 GIT binary patch delta 1200 zcmca7_?L4+Y&}btr;B4q#hkZuH)cnNi?r`w&Lww)^=;Q=w`lXX-|8o*nzrgK@@DrH zRb06HZ$68cw_}`Bds@Lu`GjV-T-_;JsuJa*g-={J`m_I>d82C5`N{8UpYQuoS0JW1 zzq+K}=H=v+z0*55x;-X65&R(ffu({chjBLd{{<;lbNLw9+1cxlO}>-BG>73oQ~QBz z!OGnq?kO3CpE3KT`hjtR!0M}6Co62GeXP(~8+N*8o@y!M9;T?B)pIxhjAwq&EK!qq z^>wMGo!zva#fz0!UVr_p_-<hOfp?b}8pIEzG91=h`}c3{&a?OK&HEYCwTormb2f%I zM%FQF+GC=ut*wpb`aNfw;a9(W)84(gcJqx|^7B|2Y*aohmvxZpZR>Gcyz}gNiC(u$ z8760*hg^~T@Zd2+9bdu<>(%$)>)-j)Q@20gZuzFVGdy1e8E^ZA0S!BM_WX+yt7o6J zUNLV@mz&3GaOTpfDZ$>XS4>vFXZ**JFrl?H+Hz}%i*G&q59<a;v9NhXSt}drXZ>T{ z9G>#pu_${Yh(Bwd-~oZ1rPIOeS^N{CrJi09+A(Vuzd^Vw(6j?tS#}3{wN}lEVhRiX z%(yN)6ezs{C|wZyT4VV%hO1X<7#hD$4fbvTDr_(YO3naEJ_xbg%CcnHHs&7ze!7h- zR^ENI4``M`R@UYX_4z<G4YO|P#IzM<8HQc{B(Cdixm99y=1%TuYv)AqT-|bqRd-5o z_rzJ#w$E4!R1$ExNNiJ>pDtV0tNMunKx0mV7!!bu&a7AEjTaz{^_445tz4>N`t`a^ z%F`=BO|yPw#;`uU@+i{xuKC)oqO6Z=mgPx@`C4wRuLud=&bxZWoG6=>D|e@bhWhEw zyK=>M@ha`*V*FXJmR(%FU`|xbs?14C1*|qb5&v7M;`u03X#15l>^t5cVd&{(ln`b% zP-9E*;W;ovqQTIRAvuZR7)0W+O@oQ=%db^DY|LttJ>PjUhOb<-BdXkJrhx>{i?3Bn zGGA5gPOIO%YgO82&BG5byjGt$ji=o?(`<HPo&1DlFV*+{lsx<};F3wHSi|P!3-Y#m z@4j1hRWIV!TeG`)*CXxI8B@|X?&aT6v*z5s2{V1va&mHZWQf{4fBrltZ<l5B=FJQ# ztidad*6l0oe$R~R&|Oy#x#})jk^1x9`}(d57TjKd_^sz=x})pLQ~CS4g!+;E2b5fP z?2XYjLFs!}8~(3ZzT^0uYYp`vx+g0p_M&mpp~ORPn$9Ud*j#G$^WS>b`x0mB8Ew{e zo``-hy>z!L*XPL{b5!b;oF=J6ADDmO`RcN6cL&9D4f?K6wv=uC!TCYAV5i^p4lc%h z!V`mkyy%_L@rUh?gX_5kp@Djh;!2-hf7LbmUwk1pY{#jxz^-rKV^z=m=c};Vet&!Z z4z7ocAB1MGePLK7b%6B)*AJ!q^}>;#9!*v`>HI+R14{;Dv`)psxNGT-?=_vifA2l~ o^FFis0qF+<6}p?R--!9g9wEB&Ur|VzJOdDTy85}Sb4q9e05S7A)&Kwi delta 2201 zcmV;K2xj;F3EmNqU4IB`Nkl<Zc%1E>{cjvc8OJ|!wK<Wios_;<m?E`5;6xF~pr%!- zHbN?uD1_D(ZWJn`6q?rk0i65|2qA?y70_Q0LLhKKxI`!v1md*`g@8$u=-LKw((ob@ zD<UMq#JMCk$$j}@_S}to=i8l~y}k3@M|vc`?9M#<e0OH|nSY(xHIisXj4`W$0bnh# zF8KM~LqkJ_ef#zmj4?L>g<$iNr2lN)y0x@-@7@w{3OE5w1IK|AlK$KHqlkc{rZC_} z;6Y#)a2U7-C~N}*1Dc(kRW0V`=CpqOdM({Au)hLd1GWG+WqrJh$DMJ|*8roy%fQtd zffJxYp`c^Oj(^n*eue4jY4!H@)+{HmtH5u7r-3zXB><2EHUlpJm+J&-(IzG)>IT2U z<m6<eG6TCD`0`O8w_*hd0{<{@Bt~!qXy?wIk%M1h$BrGb>Im!@unp*1F#-Txz*E3U zhk$6~#*LbvpN}oT!oq?!ZQA4_f`B)G?Trv3?ci?!UVm{6g8KUUbo%t^*uk%G=FA!O z_xHPsAfO1`*Kz^??*P6+l{=ZJ*45Re0|yQ`2fxC>g9p{!-JL{)GB5$$))E2$j{@ft z9Iyb5kB=t~eudq;cPH{Cuyepr(+Ys?>vsibOrnDw9v)V?T=phFxm?!p@URaN%0bJ1 zTT=-D+<yri@^FB4lPy>3Bx!N&kH8&GAprJ5d)CK+MNPI`iI}8Cwe!HenF;_r09^2N zK(Uf7S7Ih<_3R?>P$mKZ9|x}ZIvAH^%N55Yt(MILk2}ZFX(xD`1h<$=%{AF_C1H|Q z&8`8TaEhfv@IU19%<t>#)6C3F!-8L7W@bixeSdvEMOXkn96O$|Hio-_IbTluO150_ zkfbfO5-~5#ae{v*@NbXKdQG-m@sy;6?JO~FQKJUG8~D9XM~8-nye3<&l*?sp*|NpA z2#1K6tVI>z%RU`UE7@|zbCOoEXXQfx;A40gUZ_~w$(AdglQab}dsImT0B*&@z*^WE zk$-Ht;yFnZb^z}dB@p17J{@XgvgL~BBu&8A<stxZpU<wR(aDx8DJ5w&Z%u0jzYF^` z$cqz6pKLW64^PsT+H2H!yje?tr+rnPb+YA33Q5|NiXs4T19n!Kmx}l7*^^lilQKR& z?o)u1)mlL{0Y-dP+APVID=8#tZy7aR8h?BPyzZm2W=pnQ@tmani6xW2mI|=hM@7w= zY`Nk&N&ASF5#akiDrx3q%N37F+V@mV0AMw6DQN|*kZif)DM`CbXhLvUfM=2x-YUtK zD;|@y?W!Wc%Sj4twPec`Pf6N-g#`$@pJnIgFK4ZqY`NkgN&6qrtB?SXBvG`LlYcE& zJS1tG6%yb}t_As?M%XHNnC`eoApu@>DP*N2TdpKb(vHf;p4B)EJFm24%asI4+BKlZ z0QX=gn>IBH&X%YcV^Z?OD;sjyb+{d}VQoi%Z0QJ)F>7<cyR!D8jk!Gs^k(fv8`G1+ zzN4W-HuU6xo~*rSV>&G$V|sE~dw<aG<gg3PI%LCK4!h!|LpIELZvpvyp0TkprlzJS zl}dG|zelyW_^P*5Dls)R#n{*w`F!4Is317`y{&xd@9$T!SWI>FF-wZYqVGAQzXRCo zqp*BFzoLU*p;#;`pU?XeU^0h&t6*YAM@JbP9Q09CQ!_X?$mr;(ui}n-6MtZ2WW+}? zErG{lJ?`y+OsQ02)v8s=U1|X?UAjb}P^iCQeKr{EVB9QrVy-iCxKn9mJUnqL18Z`U zE?{RwcW5lHN}8(-MZA=$EA7dz!45?L?9b4Vc4a?+kyLq6_Id2`Bquu8fLL4wZkBW* z2O#@q@q<1b>kx_G2G?G~!++7=ZKMarm{`_q<tOAji+)zRj-VSl1H9d(#JF8h+=FiQ z@<Ut!-YIDoLM<TZhJNf?YKO@Duo8T@z6%2Qc7vU1M<&9*m~hiGwq3mjyf<#Ct=>g6 zs0;ct@IFc9${((40kU4~aw)k(Bt9PwJ}hYg0LGXbfWH9miBoc`pMRkZXaOgIb&{@y z|M-?!5y1vuj9Yq#x_n`2@S#czfW=mD7<hlw(p&uuO}YG|z&+Ijs5&nw*zg(bkZFfx zl!4Dy3qI5k06@|q;9Ds<)lPgv(jRL5vuYQ#_)lYQ!G4YI=6bcXco&gY`RA|~-t)CK zSaxcnq;tR%*eCdz(tqS*JJk^I)N;XxIsyPl`U&>MtsUa=tfUv~ZM19`w78Km-Plk6 z-CJv$1`cMWf@l8^0h=T()Ga4!#m1OBf`V_Y_WzCmi<|}Smh{gk<wTyIF6kfG?=5yF z^VVh#`$nut!G{<E07yEF{Z80?Ovl=R1>iABN8{`idx3_emw$jy(Mi(6l!0xMei3&^ zrxh}iCb1tzzT&d~3S$8nk@SMg&XF&|Rd+V#0bn1Mmk-6;*SX#_aP<Eow%hr+YrTmC z2pqW!_^G7ZV(yoyUf(zf@GtC3myRT<H}N99z<~|eg&ys~E7&)pCkj4z5CA~ZDd2;^ z=UCYnX93Rv_kT<JyN?1BcR^Kn1pDEKWe4zDunRf|Jc;L-BWbJ?{t@<Z=5wr!)*#?{ zU_B{J+exDZgt-g&D)s|#*H_#cEuaW|h7_-FX|I$&f*ruy4!n_aT|PMhe40kwT*%XU z+6b1D^suBO!St7=vVhkmZIe{>b0cY3+FejJ4DgUK=6?z71>0#Zsz)vZFG`vKenx{I zK4l@mo0Z!M!H)r-1n$RvJg5;|#V(S59{7Rmyx2_0RDdwXm;&~C@nB#d!0$EcZ@{kt z`=vq?WV57c1XzkOrU&~%!2w`h@bm51_Z!^^tl`af9bLq(^t>3@DeQ%G8oLhqgruf? bj`4rKg%a~1lQ22N00000NkvXXu0mjfC(<mt diff --git a/src/extension/firefox/img/icon_png.svg b/src/extension/firefox/img/icon_png.svg new file mode 100644 index 0000000..7a84d80 --- /dev/null +++ b/src/extension/firefox/img/icon_png.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"> + <!-- Version du logo static (fond noir et icône blanche) pour l'exporter en + PNG. Car Chromium ne gère pas les images en SVG pour les WebExtensions. + https://issues.chromium.org/issues/41057033 --> + <style> + svg { + color: white; + } + </style> + <rect x="0" y="0" width="32" height="32" fill="black" rx="4" ry="4" /> + <polygon points="6,14 26,14 16,0" fill="currentColor" /> + <line + x1="16" + y1="12" + x2="16" + y2="26" + stroke="currentColor" + stroke-width="4" + /> + <polyline + points="8,32 8,20 24,20 24,32" + fill="none" + stroke="currentColor" + stroke-width="4" + stroke-linejoin="round" + /> +</svg> diff --git a/src/module/audio/README.md b/src/module/audio/README.md index bff231d..6e09bf0 100644 --- a/src/module/audio/README.md +++ b/src/module/audio/README.md @@ -118,10 +118,10 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer horizontalement et - verticalement. Seule la couleur blanche doit être utilisée. Par défaut, + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur blanche doit être utilisée. Par défaut, l'image d'une note de musique est affichée. </p> <p> diff --git a/src/module/audio/audio.js b/src/module/audio/audio.js index a96d321..15de42b 100644 --- a/src/module/audio/audio.js +++ b/src/module/audio/audio.js @@ -60,7 +60,7 @@ export default class AudioModule extends HTMLElement { a.title = item.title ?? ""; const img = this.shadowRoot.querySelector("img"); - img.src = item.icon ?? import.meta.resolve("./img/icon.svg"); + img.src = item.icon ?? import.meta.resolve("./img/icon_fff.svg"); const input = this.shadowRoot.querySelector("input"); input.dataset.audio = item.audio; diff --git a/src/module/audio/img/icon.svg b/src/module/audio/img/icon_fff.svg similarity index 100% rename from src/module/audio/img/icon.svg rename to src/module/audio/img/icon_fff.svg diff --git a/src/module/clock/README.md b/src/module/clock/README.md index a080712..56b907b 100644 --- a/src/module/clock/README.md +++ b/src/module/clock/README.md @@ -105,13 +105,14 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'image qui sera utilisée comme horloge. Il est conseillé que - l'image soit carrée et que le dessin occupe toute la zone de l'image. Le - document <a href="https://www.w3.org/Graphics/SVG/">SVG</a> doit avoir - trois enfants avec les identifiants <code>hour</code>, - <code>minute</code> et <code>second</code>. Tous les sous-éléments - tourneront avec comme axe le centre de l'image. Par défaut, l'image - d'une simple horloge est affichée. + L'URL de l'image qui sera utilisée comme horloge. Pour avoir une + harmonie avec les autres widgets, il est conseillé d'utiliser une image + carrée avec un dessin occupant toute l'image. Le document + <a href="https://www.w3.org/Graphics/SVG/">SVG</a> doit avoir trois + enfants avec les identifiants <code>hour</code>, <code>minute</code> et + <code>second</code>. Tous ces sous-éléments tourneront avec comme axe le + centre de l'image. Par défaut, l'image d'une simple horloge est + affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/clock/clock.css b/src/module/clock/clock.css index 0d00e07..1c8c9cf 100644 --- a/src/module/clock/clock.css +++ b/src/module/clock/clock.css @@ -1,5 +1,8 @@ object { display: block; padding: 8px; - vertical-align: top; +} + +svg { + width: 100%; } diff --git a/src/module/clock/clock.js b/src/module/clock/clock.js index 6c3115d..7e93508 100644 --- a/src/module/clock/clock.js +++ b/src/module/clock/clock.js @@ -44,7 +44,7 @@ export default class ClockModule extends HTMLElement { } const response = await fetch( - item.icon ?? import.meta.resolve("./img/icon.svg"), + item.icon ?? import.meta.resolve("./img/default.svg"), ); const text = await response.text(); const xml = new DOMParser().parseFromString(text, "image/svg+xml"); diff --git a/src/module/clock/img/icon.svg b/src/module/clock/img/default.svg similarity index 100% rename from src/module/clock/img/icon.svg rename to src/module/clock/img/default.svg diff --git a/src/module/icon/README.md b/src/module/icon/README.md index afac8e6..1ad9531 100644 --- a/src/module/icon/README.md +++ b/src/module/icon/README.md @@ -105,11 +105,11 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer horizontalement et - verticalement. Seule la couleur blanche doit être utilisée. Par défaut, - aucune icône n'est affichée. + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur blanche doit être utilisée. Par défaut, aucune + icône n'est affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/list/README.md b/src/module/list/README.md index 1d11984..d71c9ad 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -72,11 +72,12 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer verticalement et l'aligner à - droite. Seule la couleur noire doit être utilisée et elle doit avoir une - opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur noire doit être utilisée et elle doit avoir + une opacité de <code>0.2</code>. Par défaut, aucune icône n'est + affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> @@ -167,8 +168,11 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui préfixera le titre. Par défaut, aucune icône n'est - affichée. + L'URL de l'icône qui préfixera le titre. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur blanche doit être utilisée. Par défaut, aucune + icône n'est affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/notepad/README.md b/src/module/notepad/README.md index 2befb09..bd65e8b 100644 --- a/src/module/notepad/README.md +++ b/src/module/notepad/README.md @@ -41,11 +41,12 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer verticalement et l'aligner à - droite. Seule la couleur noire doit être utilisée et elle doit avoir une - opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur noire doit être utilisée et elle doit avoir + une opacité de <code>0.2</code>. Par défaut, aucune icône n'est + affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/notepad/img/icon.svg b/src/module/notepad/img/icon_0003.svg similarity index 96% rename from src/module/notepad/img/icon.svg rename to src/module/notepad/img/icon_0003.svg index ef0fb9a..18ab4f8 100644 --- a/src/module/notepad/img/icon.svg +++ b/src/module/notepad/img/icon_0003.svg @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.2"> +<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> <path d="M 78,18 61.28,18 C 59.6,13.36 55.2,10 50,10 44.8,10 40.4,13.36 38.72,18 L 22,18 c -4.4,0 -8,3.6 -8,8 l 0,56 c 0,4.4 3.6,8 8,8 l 56,0 c 4.4,0 8,-3.6 8,-8 l 0,-56 c 0,-4.4 -3.6,-8 -8,-8 z m -28,0 c 2.2,0 4,1.8 4,4 0,2.2 -1.8,4 -4,4 -2.2,0 -4,-1.8 -4,-4 0,-2.2 1.8,-4 4,-4 z m 8,56 -28,0 0,-8 28,0 0,8 z m 12,-16 -40,0 0,-8 40,0 0,8 z m 0,-16 -40,0 0,-8 40,0 0,8 z" + opacity="0.2" /> </svg> diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index e30ce3a..9b3dc43 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -71,12 +71,12 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer verticalement et l'aligner à - droite. Seule la couleur noire doit être utilisée et elle doit avoir une - opacité de <code>0.2</code>. Par défaut, c'est une icône de lecture qui - est affichée. + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur noire doit être utilisée et elle doit avoir + une opacité de <code>0.2</code>. Par défaut, aucune icône n'est + affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> @@ -179,8 +179,11 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui préfixera le titre. Par défaut, aucune icône n'est - affichée. + L'URL de l'icône qui préfixera le titre. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur blanche doit être utilisée. Par défaut, une + icône de lecture est affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/podcast/img/icon.svg b/src/module/podcast/img/icon.svg deleted file mode 100644 index 2bc27e6..0000000 --- a/src/module/podcast/img/icon.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.2"> - <path - d="m 57,60 c -9.133641,0 -16.538461,4.483333 -16.538461,11.111111 0,6.666667 0.882051,13.402222 2.64505,19.363333 1.025386,3.466667 3.116949,7.768889 3.116949,7.768889 C 46.693231,99.21 48.06923,100 49.282052,100 h 15.435896 c 1.212821,0 2.588821,-0.79 3.058513,-1.756667 0,0 2.090462,-4.302222 3.115846,-7.767777 C 72.65641,84.514444 73.538461,77.777778 73.538461,71.111111 73.538461,64.483333 66.133641,60 57,60 Z" - /> - <ellipse cx="57" cy="43.333332" rx="10" ry="10" /> - <path - d="M 57,0 C 33.289359,0 14,19.438889 14,43.333333 c 0,15.524445 8.146846,29.161111 20.354436,36.814445 -0.312026,-2.801111 -0.482923,-5.662222 -0.499462,-8.544445 -8.081795,-6.73 -13.239589,-16.904444 -13.239589,-28.27 0,-20.217777 16.322359,-36.6666663 36.384615,-36.6666663 20.062256,0 36.384615,16.4488893 36.384615,36.6666663 0,11.365556 -5.157795,21.54 -13.239589,28.27 -0.01764,2.882223 -0.187436,5.743334 -0.499463,8.544445 C 91.853154,72.494444 100,58.857778 100,43.333333 100,19.438889 80.710641,0 57,0 Z" - /> - <path - d="M 42.510102,56.955556 C 39.198,53.381111 37.153846,48.598889 37.153846,43.333333 c 0,-11.027777 8.903206,-20 19.846154,-20 10.942948,0 19.846153,8.972223 19.846153,20 0,5.265556 -2.044154,10.047778 -5.356255,13.622223 2.013281,1.186666 3.733281,2.63 5.09605,4.291111 C 80.856179,56.51 83.461538,50.222222 83.461538,43.333333 83.461538,28.628889 71.591333,16.666667 57,16.666667 c -14.591333,0 -26.461538,11.962222 -26.461538,26.666666 0,6.888889 2.605358,13.176667 6.87559,17.913334 1.362769,-1.661111 3.082768,-3.104445 5.09605,-4.291111 z" - /> -</svg> diff --git a/src/module/podcast/img/icon_0003.svg b/src/module/podcast/img/icon_0003.svg new file mode 100644 index 0000000..3edc432 --- /dev/null +++ b/src/module/podcast/img/icon_0003.svg @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> + <g opacity="0.2"> + <path + d="m 57,60 c -9.133641,0 -16.538461,4.483333 -16.538461,11.111111 0,6.666667 0.882051,13.402222 2.64505,19.363333 1.025386,3.466667 3.116949,7.768889 3.116949,7.768889 C 46.693231,99.21 48.06923,100 49.282052,100 h 15.435896 c 1.212821,0 2.588821,-0.79 3.058513,-1.756667 0,0 2.090462,-4.302222 3.115846,-7.767777 C 72.65641,84.514444 73.538461,77.777778 73.538461,71.111111 73.538461,64.483333 66.133641,60 57,60 Z" + /> + <ellipse cx="57" cy="43.333332" rx="10" ry="10" /> + <path + d="M 57,0 C 33.289359,0 14,19.438889 14,43.333333 c 0,15.524445 8.146846,29.161111 20.354436,36.814445 -0.312026,-2.801111 -0.482923,-5.662222 -0.499462,-8.544445 -8.081795,-6.73 -13.239589,-16.904444 -13.239589,-28.27 0,-20.217777 16.322359,-36.6666663 36.384615,-36.6666663 20.062256,0 36.384615,16.4488893 36.384615,36.6666663 0,11.365556 -5.157795,21.54 -13.239589,28.27 -0.01764,2.882223 -0.187436,5.743334 -0.499463,8.544445 C 91.853154,72.494444 100,58.857778 100,43.333333 100,19.438889 80.710641,0 57,0 Z" + /> + <path + d="M 42.510102,56.955556 C 39.198,53.381111 37.153846,48.598889 37.153846,43.333333 c 0,-11.027777 8.903206,-20 19.846154,-20 10.942948,0 19.846153,8.972223 19.846153,20 0,5.265556 -2.044154,10.047778 -5.356255,13.622223 2.013281,1.186666 3.733281,2.63 5.09605,4.291111 C 80.856179,56.51 83.461538,50.222222 83.461538,43.333333 83.461538,28.628889 71.591333,16.666667 57,16.666667 c -14.591333,0 -26.461538,11.962222 -26.461538,26.666666 0,6.888889 2.605358,13.176667 6.87559,17.913334 1.362769,-1.661111 3.082768,-3.104445 5.09605,-4.291111 z" + /> + </g> +</svg> diff --git a/src/module/podcast/img/play.svg b/src/module/podcast/img/play.svg index 5c6ea86..7197089 100644 --- a/src/module/podcast/img/play.svg +++ b/src/module/podcast/img/play.svg @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" fill="white"> - <polygon points="11,0 89,50 11,100" /> +<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> + <polygon points="11,0 89,50 11,100" fill="white" /> </svg> diff --git a/src/module/podcast/img/volume.svg b/src/module/podcast/img/volume.svg index 8157041..96d83fd 100644 --- a/src/module/podcast/img/volume.svg +++ b/src/module/podcast/img/volume.svg @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" fill="white"> +<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> <path d="M 0,33.238312 V 66.761687 H 22.222222 L 50,94.697833 V 5.302166 L 22.222222,33.238312 Z M 75,50 C 75,40.110604 69.333333,31.618016 61.111111,27.483466 V 72.460661 C 69.333333,68.381984 75,59.889395 75,50 Z M 61.111111,1 V 12.509692 C 77.166667,17.314709 88.888889,32.288483 88.888889,50 c 0,17.711517 -11.722222,32.685291 -27.777778,37.490308 V 99 C 83.388889,93.915621 100,73.913341 100,50 100,26.086659 83.388889,6.084378 61.111111,1 Z" + fill="white" /> </svg> diff --git a/src/module/single/README.md b/src/module/single/README.md index fe468f9..73baad3 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -122,8 +122,11 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône affichée dans le cadre. Par défaut, aucune icône n'est - affichée. + L'URL de l'icône affichée dans le cadre. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur blanche doit être utilisée. Par défaut, aucune + icône n'est affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/text/README.md b/src/module/text/README.md index d5d24c6..1737d2d 100644 --- a/src/module/text/README.md +++ b/src/module/text/README.md @@ -131,7 +131,11 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône affichée dans le cadre. Par défaut, aucune icône n'est + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur noire doit être utilisée et elle doit avoir + une opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. </p> <p> diff --git a/src/module/tools/contrast/img/icon.svg b/src/module/tools/contrast/img/icon.svg deleted file mode 100644 index ef0fb9a..0000000 --- a/src/module/tools/contrast/img/icon.svg +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.2"> - <path - d="M 78,18 61.28,18 C 59.6,13.36 55.2,10 50,10 44.8,10 40.4,13.36 38.72,18 L 22,18 c -4.4,0 -8,3.6 -8,8 l 0,56 c 0,4.4 3.6,8 8,8 l 56,0 c 4.4,0 8,-3.6 8,-8 l 0,-56 c 0,-4.4 -3.6,-8 -8,-8 z m -28,0 c 2.2,0 4,1.8 4,4 0,2.2 -1.8,4 -4,4 -2.2,0 -4,-1.8 -4,-4 0,-2.2 1.8,-4 4,-4 z m 8,56 -28,0 0,-8 28,0 0,8 z m 12,-16 -40,0 0,-8 40,0 0,8 z m 0,-16 -40,0 0,-8 40,0 0,8 z" - /> -</svg> diff --git a/src/module/tools/findrss/README.md b/src/module/tools/findrss/README.md index e1b3a71..15f4e06 100644 --- a/src/module/tools/findrss/README.md +++ b/src/module/tools/findrss/README.md @@ -36,11 +36,12 @@ suivantes : <td><code>string</code></td> <td> <p> - L'URL de l'icône qui sera affichée en fond. Il est conseillé que l'image - soit carrée et que le dessin occupe toute la zone de l'image. Si le - dessin n'est pas carré, il faut le centrer verticalement et l'aligner à - droite. Seule la couleur noire doit être utilisée et elle doit avoir une - opacité de <code>0.2</code>. Par défaut, aucune icône n'est affichée. + L'URL de l'icône qui sera affichée en fond. Pour avoir une harmonie avec + les autres widgets, il est conseillé d'utiliser une image carrée avec un + dessin occupant toute l'image. Si le dessin n'est pas carré, il faut le + centrer. Seule la couleur noire doit être utilisée et elle doit avoir + une opacité de <code>0.2</code>. Par défaut, aucune icône n'est + affichée. </p> <p> Exemple : <code>"https://example.com/foo/bar.svg"</code> diff --git a/src/module/tools/findrss/findrss.js b/src/module/tools/findrss/findrss.js index 27049a9..e8789dd 100644 --- a/src/module/tools/findrss/findrss.js +++ b/src/module/tools/findrss/findrss.js @@ -13,7 +13,7 @@ const extract = async function (url) { 'link[type="application/rss+xml"][href],' + ' link[type="application/atom+xml"][href]'; return Array.from(doc.querySelectorAll(selector), (link) => ({ - icon: import.meta.resolve("./img/rss.svg"), + icon: "https://cdn.simpleicons.org/rss/fff", link: new URL(link.getAttribute("href"), url).href, title: link.title, })); diff --git a/src/module/tools/findrss/img/rss.svg b/src/module/tools/findrss/img/rss.svg deleted file mode 100644 index 6a8942f..0000000 --- a/src/module/tools/findrss/img/rss.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> - <g fill="white"> - <path - d="M 79.995833,100 C 79.995833,56.1125 43.8875,20 0,20 V 0 C 54.854167,0 100,45.145833 100,100 Z M 13.7125,72.5625 c 7.558333,0 13.720833,6.1625 13.720833,13.729167 C 27.433333,93.845833 21.245833,100 13.679167,100 6.125,100 0,93.858333 0,86.291667 0,78.725 6.1458333,72.566667 13.7125,72.5625 Z M 66.2875,100 H 46.85 C 46.85,74.295833 25.704167,53.145833 0,53.145833 v -19.4375 c 36.3625,0 66.2875,29.933334 66.2875,66.291667 z" - /> - </g> -</svg> diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md index c75c15b..e20d800 100644 --- a/src/scraper/tools/complements/README.md +++ b/src/scraper/tools/complements/README.md @@ -76,6 +76,6 @@ car ce scraper utilise _tools/complements_. options: url: "https://www.youtube.com/feeds/videos.xml?user=arte" complements: - icon: "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/widget/arte/arte_white.svg" + icon: "https://cdn.jsdelivr.net/gh/regseb/gout-regseb@0/src/widget/arte/arte_wc.svg" </script> ``` From f1dce28a5af028e6bd5e92acceb1821b110864d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Fri, 8 Nov 2024 18:56:38 +0100 Subject: [PATCH 33/38] feat(tools/filter): Ajouter le support des RegExp. --- src/scraper/tools/filter/README.md | 30 ++++-- src/scraper/tools/filter/filter.js | 149 ++++++++++++++++++++++------- test/unit/scraper/tools/filter.js | 50 ++++++++++ 3 files changed, 187 insertions(+), 42 deletions(-) diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index 36db789..62ea321 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -52,15 +52,10 @@ Les filtres sont composés de trois éléments : - la propriété récupérée dans un élément des résultats ; - le type de comparaison : - - générique : + - chaine de caractères : - [`==`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_equality), - [`!=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_inequality), - [`<`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than), - [`<=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than_or_equal), - [`>`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than), - [`>=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than_or_equal) + [`!=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_inequality) ; - - chaine de caractères : - `*=` : garder les éléments dont la propriété contient la valeur ([`.includes()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/includes) sous le capot) ; @@ -70,9 +65,26 @@ Les filtres sont composés de trois éléments : - `$=` : garder les éléments dont la propriété finit par la valeur ([`.endsWith()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/endsWith) sous le capot) ; + - `~=` : garder les éléments dont la propriété contient la valeur entourée + par des caractères blancs ; + - expression rationnelle : + - `==` : utiliser la méthode + [`test()`](https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/RegExp/test) + ; + - `!=` : inverser le retour de la méthode `test()` ; + - nombre : + [`==`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_equality), + [`!=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Strict_inequality), + [`<`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than), + [`<=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Less_than_or_equal), + [`>`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than), + [`>=`](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Greater_than_or_equal) + ; - la valeur comparée : - - un nombre : `42` ; - - une chaine de caractères (entourée par des apostrophes) : `'foo'`. + - une chaine de caractères (entourée par des apostrophes) : `'foo'`, `'BAR'` + - une expression rationnelle (sans les marqueurs) : `/fo+/`, `/^bar/`, + `/Baz|Qux/` + - un nombre : `42`, `3.14` ## Scrapers diff --git a/src/scraper/tools/filter/filter.js b/src/scraper/tools/filter/filter.js index 8a97399..66ea4db 100644 --- a/src/scraper/tools/filter/filter.js +++ b/src/scraper/tools/filter/filter.js @@ -4,55 +4,127 @@ * @author Sébastien Règne */ +// Créer une prothèse pour la méthode `RegExp.escape`. +// https://github.com/tc39/proposal-regex-escaping +// https://issues.chromium.org/353856236 +// https://bugzil.la/1918235 +if (undefined === RegExp.escape) { + /** + * Protège les caractères spéciaux d'une chaine de caractères pour les + * expressions rationnelles. + * + * @param {string} s La chaine de caractères. + * @returns {string} La chaine de caractères avec les caractères spéciaux + * protégés. + */ + RegExp.escape = (s) => + s.replaceAll(/[$\(\)*+.?\[\\\]^\{\|\}]/gv, String.raw`\$&`); +} + /** - * Protège les caractères spéciaux d'une chaine de caractères pour les - * expressions rationnelles. + * Les opérations de comparaison avec des chaines de caractères. * - * @param {string} pattern La chaine de caractères. - * @returns {string} La chaine de caractères avec les caractères spéciaux - * protégés. - * @see https://developer.mozilla.org/Web/JavaScript/Guide/Regular_expressions + * @type {Object<string, Object<string, Function>>} */ -const quote = function (pattern) { - return pattern.replaceAll(/[$()*+.?[\\\]^{|}]/gu, String.raw`\$&`); -}; - -const GENERIC_OP = { - "==": (a, b) => a === b, - "!=": (a, b) => a !== b, - "<": (a, b) => a < b, - "<=": (a, b) => a <= b, - ">": (a, b) => a > b, - ">=": (a, b) => a >= b, -}; +const STRING_OP = Object.fromEntries( + Object.entries({ + "==": (a, e) => a === e, + "!=": (a, e) => a !== e, + "*=": (a, e) => "string" === typeof a && a.includes(e), + "^=": (a, e) => "string" === typeof a && a.startsWith(e), + "$=": (a, e) => "string" === typeof a && a.endsWith(e), + "~=": { + prepare: (e) => + new RegExp( + String.raw`(?:^|\s)${RegExp.escape(e)}(?:$|\s)`, + "v", + ), + test: (a, e) => "string" === typeof a && e.test(a), + }, + }).map(([op, value]) => [ + op, + "function" === typeof value + ? { prepare: (e) => e, test: value } + : { prepare: value.prepare, test: value.test }, + ]), +); -const STRING_OP = { - ...GENERIC_OP, - "*=": (a, b) => "string" === typeof a && a.includes(b), - "^=": (a, b) => "string" === typeof a && a.startsWith(b), - "$=": (a, b) => "string" === typeof a && a.endsWith(b), +/** + * Les opérations de comparaison avec des expressions rationnelles. + * + * @type {Object<string, Object<string, Function>>} + */ +const REGEX_OP = { + "==": { + prepare: (e) => new RegExp(e, "v"), + test: (a, e) => "string" === typeof a && e.test(a), + }, + "!=": { + prepare: (e) => new RegExp(e, "v"), + test: (a, e) => !("string" === typeof a && e.test(a)), + }, }; -const NUMBER_OP = { - ...GENERIC_OP, -}; +/** + * Les opérations de comparaison avec des nombres. + * + * @type {Object<string, Object<string, Function>>} + */ +const NUMBER_OP = Object.fromEntries( + Object.entries({ + "==": (a, e) => a === e, + "!=": (a, e) => a !== e, + "<": (a, e) => a < e, + "<=": (a, e) => a <= e, + ">": (a, e) => a > e, + ">=": (a, e) => a >= e, + }).map(([op, test]) => [op, { prepare: Number, test }]), +); +/** + * Le motif pour les filtres avec des chaines de caractères (entre guillemets + * simples). + * + * @type {RegExp} + */ const STRING_PATTERN = new RegExp( String.raw`^\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\s*` + "(?<op>(?:" + - Object.keys(STRING_OP).map(quote).join("|") + + Object.keys(STRING_OP).map(RegExp.escape).join("|") + String.raw`))\s*` + String.raw`'(?<val>.*)'\s*$`, - "u", + "v", ); +/** + * Le motif pour les filtres avec des expressions rationnelles (entre barres + * obliques, mais sans les marqueurs). + * + * @type {RegExp} + */ +const REGEX_PATTERN = new RegExp( + String.raw`^\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\s*` + + "(?<op>(?:" + + Object.keys(REGEX_OP).map(RegExp.escape).join("|") + + String.raw`))\s*` + + String.raw`/(?<val>.*)/\s*$`, + "v", +); + +/** + * Le motif pour les filtres avec des nombres. Les nombres peuvent être entiers + * (`123`, `123.`), décimaux (`123.456`, `.456`), positifs (`+123`) ou négatifs + * (`-123`). + * + * @type {RegExp} + */ const NUMBER_PATTERN = new RegExp( String.raw`^\s*(?<prop>[a-zA-Z_][a-zA-Z_0-9]*)\s*` + "(?<op>(?:" + - Object.keys(NUMBER_OP).map(quote).join("|") + + Object.keys(NUMBER_OP).map(RegExp.escape).join("|") + String.raw`))\s*` + - String.raw`(?<val>[0-9]+)\s*$`, - "u", + String.raw`(?<val>[+\-]?(?:\d+(?:\.\d*)?|\.\d+))\s*$`, + "v", ); const compile = (filter) => { @@ -62,12 +134,23 @@ const compile = (filter) => { let result = STRING_PATTERN.exec(filter); if (null !== result) { const { prop, op, val } = result.groups; - return (item) => STRING_OP[op](item[prop], val); + const prepared = STRING_OP[op].prepare(val); + const test = STRING_OP[op].test; + return (item) => test(item[prop], prepared); + } + result = REGEX_PATTERN.exec(filter); + if (null !== result) { + const { prop, op, val } = result.groups; + const prepared = REGEX_OP[op].prepare(val); + const test = REGEX_OP[op].test; + return (item) => test(item[prop], prepared); } result = NUMBER_PATTERN.exec(filter); if (null !== result) { const { prop, op, val } = result.groups; - return (item) => NUMBER_OP[op](item[prop], Number(val)); + const prepared = NUMBER_OP[op].prepare(val); + const test = NUMBER_OP[op].test; + return (item) => test(item[prop], prepared); } throw new Error(`Invalid filter: "${filter}"`); }; diff --git a/test/unit/scraper/tools/filter.js b/test/unit/scraper/tools/filter.js index 320acd5..d84277f 100644 --- a/test/unit/scraper/tools/filter.js +++ b/test/unit/scraper/tools/filter.js @@ -95,6 +95,56 @@ describe("scraper/tools/filter/filter.js", function () { ); }); + it("should support '~=' with string", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42 bar" }, + { foo: "bar 42" }, + { foo: "42bar42" }, + { foo: "baz" }, + { foo: 42 }, + ], + "foo ~= 'bar'", + [{ foo: "bar" }, { foo: "42 bar" }, { foo: "bar 42" }], + ); + }); + + it("should support '==' with regex", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + { foo: "baz42" }, + { foo: 42 }, + ], + String.raw`foo == /bar\d+/`, + [{ foo: "bar42" }, { foo: "42bar42" }], + ); + }); + + it("should support '!=' with regex", async function () { + await check( + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "bar42" }, + { foo: "42bar42" }, + { foo: "baz42" }, + { foo: 42 }, + ], + String.raw`foo != /bar\d+/`, + [ + { foo: "bar" }, + { foo: "42bar" }, + { foo: "baz42" }, + { foo: 42 }, + ], + ); + }); + it("should support '==' with number", async function () { await check([{ foo: 1 }, { foo: 2 }, { foo: "bar" }], "foo == 1", [ { foo: 1 }, From 48ae5313d7c65176ac9db1fe61ebfcc85801401f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Fri, 8 Nov 2024 18:58:08 +0100 Subject: [PATCH 34/38] =?UTF-8?q?fix(list/rss):=20R=C3=A9cup=C3=A9rer=20le?= =?UTF-8?q?s=20donn=C3=A9es=20dans=20"updated".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scraper/list/rss/rss.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/scraper/list/rss/rss.js b/src/scraper/list/rss/rss.js index 0ba8161..371335f 100644 --- a/src/scraper/list/rss/rss.js +++ b/src/scraper/list/rss/rss.js @@ -57,7 +57,9 @@ const RSSScraper = class { .slice(0, max) .map((entry) => ({ content: entry.querySelector("content")?.textContent ?? "", - date: entry.querySelector("published").textContent, + date: + entry.querySelector("published")?.textContent ?? + entry.querySelector("updated").textContent, guid: entry.querySelector("id").textContent, link: entry.querySelector("link").getAttribute("href"), summary: @@ -70,16 +72,16 @@ const RSSScraper = class { entry.querySelector("title").textContent ?? // Essayer le titre dans "media:group media:title". entry.querySelector("group title")?.textContent, - thumbnail: entry - // Essayer la miniature dans "media:group media:thumbnail". - .querySelector("group thumbnail") - ?.getAttribute("url"), + thumbnail: + // Essayer la miniature dans "media:thumbnail" ou + // "media:group media:thumbnail". + entry.querySelector("thumbnail")?.getAttribute("url"), })) .map((item) => ({ date: new Date(item.date).getTime(), desc: new DOMParser() .parseFromString( - /^\s*$/u.test(item.summary) + /^\s*$/v.test(item.summary) ? item.content : item.summary, "text/html", @@ -103,7 +105,10 @@ const RSSScraper = class { case "feed": return this.#extractAtom(xml, max); default: - throw new Error("Unknown format"); + throw new Error( + `Unknown format '${xml.documentElement.nodeName}' of ` + + this.#url, + ); } } }; From 06ea93b0fa202297a88c2859c774aaa1657975af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Fri, 8 Nov 2024 19:01:17 +0100 Subject: [PATCH 35/38] =?UTF-8?q?fix:=20G=C3=A9rer=20les=20diff=C3=A9rents?= =?UTF-8?q?=20cas=20pour=20modifier=20les=20ent=C3=AAtes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/extension/chromium/background/migrate.js | 4 +- src/extension/chromium/background/script.js | 106 ++++++++++--- src/extension/chromium/manifest.json | 4 +- .../chromium/popup/img/checkmark.svg | 18 +++ src/extension/chromium/popup/img/remove.svg | 9 -- src/extension/chromium/popup/index.html | 45 ++++-- src/extension/chromium/popup/script.js | 133 +++++++--------- src/extension/chromium/popup/style.css | 146 ++++++++++++------ src/extension/firefox/background/migrate.js | 4 +- src/extension/firefox/background/script.js | 106 ++++++++++--- src/extension/firefox/manifest.json | 4 +- src/extension/firefox/popup/img/checkmark.svg | 18 +++ src/extension/firefox/popup/img/remove.svg | 9 -- src/extension/firefox/popup/index.html | 45 ++++-- src/extension/firefox/popup/script.js | 133 +++++++--------- src/extension/firefox/popup/style.css | 146 ++++++++++++------ 16 files changed, 600 insertions(+), 330 deletions(-) create mode 100644 src/extension/chromium/popup/img/checkmark.svg delete mode 100644 src/extension/chromium/popup/img/remove.svg create mode 100644 src/extension/firefox/popup/img/checkmark.svg delete mode 100644 src/extension/firefox/popup/img/remove.svg diff --git a/src/extension/chromium/background/migrate.js b/src/extension/chromium/background/migrate.js index 912b1c4..e0bedf8 100644 --- a/src/extension/chromium/background/migrate.js +++ b/src/extension/chromium/background/migrate.js @@ -16,12 +16,12 @@ export default async function migrate() { if ("version" in current) { await browser.storage.sync.set({ version: current.version, - dashboards: current.dashboards, + urls: current.urls, }); } else { await browser.storage.sync.set({ version: 1, - dashboards: [], + urls: [], }); } } diff --git a/src/extension/chromium/background/script.js b/src/extension/chromium/background/script.js index 6c1e222..5564b58 100644 --- a/src/extension/chromium/background/script.js +++ b/src/extension/chromium/background/script.js @@ -7,14 +7,19 @@ import "../polyfill/browser.js"; import migrate from "./migrate.js"; -const handleBeforeNavigate = async (details) => { - // Récupérer les identifiants des onglets déjà impactés par l'extension. - const rules = await browser.declarativeNetRequest.getSessionRules(); - const tabIds = [ - ...rules.flatMap((r) => r.condition.tabIds), - // Ajouter le nouvel onglet. - details.tabId, - ]; +/** + * Met à jour la règle de modification des entêtes HTTP. + * + * @param {number[]} tabIds Les identifiants des onglets impactés. + */ +const updateRule = async (tabIds) => { + await browser.declarativeNetRequest.updateSessionRules({ + removeRuleIds: [1], + }); + + if (0 === tabIds.length) { + return; + } // Ajouter la règle de modification des entêtes HTTP pour tous les onglets // affichant un dashboard. @@ -26,7 +31,9 @@ const handleBeforeNavigate = async (details) => { responseHeaders: [ { header: "Access-Control-Allow-Methods", - value: "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS", + value: + "GET, HEAD, POST, PUT, PATCH, DELETE," + + " OPTIONS", operation: "set", }, { @@ -59,22 +66,81 @@ const handleBeforeNavigate = async (details) => { id: 1, }, ], - removeRuleIds: [1], }); }; -browser.storage.onChanged.addListener(async () => { - const { dashboards } = await browser.storage.sync.get("dashboards"); - if (undefined === dashboards) { +/** + * Ajoute un onglet dans la liste des onglets impactés. + * + * @param {Object} details Les détails de l'onglet à ajouter. + * @param {number} details.tabId L'identifiant de l'onglet. + */ +const addWatchedTabs = async ({ tabId }) => { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = rules.flatMap((r) => r.condition.tabIds); + if (!tabIds.includes(tabId)) { + // Ajouter le nouvel onglet. + await updateRule([...tabIds, tabId]); + } +}; + +/** + * Supprime un onglet des onglets impactés (si celui-ci est impactés). + * + * @param {Object} details Les détails de l'onglet à enlever. + * @param {number} details.tabId L'identifiant de l'onglet. + * @param {Object} [details.changeInfo] Les éventuelles informations sur les + * changements de l'onglet. + */ +const removeWatchedTabs = async ({ tabId, changeInfo }) => { + const config = await browser.storage.sync.get("urls"); + const urls = config.urls ?? []; + + // Si on n'a pas d'informations sur le changement : c'est que l'onglet a été + // fermé. + if (!urls.includes(changeInfo?.url)) { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = rules.flatMap((r) => r.condition.tabIds); + if (tabIds.includes(tabId)) { + await updateRule(tabIds.filter((i) => tabId !== i)); + } + } +}; + +/** + * Mets à jour les URLs surveillées. + */ +const updateWatchedUrls = async () => { + browser.webNavigation.onBeforeNavigate.removeListener(addWatchedTabs); + browser.tabs.onUpdated.removeListener(removeWatchedTabs); + + const config = await browser.storage.sync.get("urls"); + const urls = config.urls ?? []; + + // Mettre à jour la liste des onglets impactés avec les onglets déjà + // ouverts. + const tabs = await browser.tabs.query({ url: urls }); + await updateRule(tabs.map((t) => t.id)); + + if (0 === urls.length) { return; } - browser.webNavigation.onBeforeNavigate.removeListener(handleBeforeNavigate); - browser.webNavigation.onBeforeNavigate.addListener(handleBeforeNavigate, { - url: dashboards.map((d) => ({ urlEquals: d.url })), + // Surveiller quand un onglet arrive sur une URL d'un dashboards. + browser.webNavigation.onBeforeNavigate.addListener(addWatchedTabs, { + url: urls.map((u) => ({ urlEquals: u })), + }); + + // Surveiller quand un onglet d'un dashboard change d'URL. + browser.tabs.onUpdated.addListener(removeWatchedTabs, { + urls, + properties: ["url"], }); -}); +}; -browser.runtime.onInstalled.addListener(async () => { - await migrate(); -}); +browser.storage.onChanged.addListener(updateWatchedUrls); +browser.runtime.onInstalled.addListener(migrate); +browser.runtime.onStartup.addListener(updateWatchedUrls); +browser.tabs.onRemoved.addListener(removeWatchedTabs); diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json index cfc8b6b..eae1e81 100644 --- a/src/extension/chromium/manifest.json +++ b/src/extension/chromium/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "129.0" + "strict_min_version": "132.0" } }, "manifest_version": 3, @@ -33,7 +33,7 @@ }, "homepage_url": "https://github.com/regseb/gout", "host_permissions": ["<all_urls>"], - "minimum_chrome_version": "127", + "minimum_chrome_version": "130", "permissions": [ "activeTab", "storage", diff --git a/src/extension/chromium/popup/img/checkmark.svg b/src/extension/chromium/popup/img/checkmark.svg new file mode 100644 index 0000000..03a642c --- /dev/null +++ b/src/extension/chromium/popup/img/checkmark.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> + <style> + svg { + color: #15141a; + } + @media (prefers-color-scheme: dark) { + svg { + color: white; + } + } + </style> + <polyline + points="14.939,3.54 6.23,12.25 1.06,7.081" + fill="none" + stroke="currentColor" + /> +</svg> diff --git a/src/extension/chromium/popup/img/remove.svg b/src/extension/chromium/popup/img/remove.svg deleted file mode 100644 index a11d462..0000000 --- a/src/extension/chromium/popup/img/remove.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> - <path - d="M6.5 12a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5z" - /> - <path - d="M14 2h-3.05a2.5 2.5 0 0 0-4.9 0H3a1 1 0 0 0 0 2v9a3 3 0 0 0 3 3h5a3 3 0 0 0 3-3V4a1 1 0 0 0 0-2zM8.5 1a1.489 1.489 0 0 1 1.391 1H7.109A1.489 1.489 0 0 1 8.5 1zM12 13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4h7z" - /> -</svg> diff --git a/src/extension/chromium/popup/index.html b/src/extension/chromium/popup/index.html index 781ff63..7248419 100644 --- a/src/extension/chromium/popup/index.html +++ b/src/extension/chromium/popup/index.html @@ -8,20 +8,41 @@ <link href="/img/icon.svg" rel="shortcut icon" /> </head> <body> - <template> - <li> - <span></span> - <button class="icon" title="Enlever"> - <img src="img/remove.svg" alt="remove" /> - </button> - </li> - </template> + <header> + <h1>Gout</h1> + </header> - <div> - <button class="outlined" id="set" disabled="disabled">Ajouter</button> - </div> + <main id="ok"> + <p>Activer / désactiver l'extension Gout pour la page :</p> + <p> + <a rel="noopener noreferrer"><code></code></a> + </p> + <form> + <label class="switch"> + <input type="checkbox" /> + <span>Inactif</span> + <span>Actif</span> + </label> + </form> + <p class="detail"> + Quand Gout est actif, les widgets de la page peuvent récupérer des + données externes. Pour plus d'informations, consultez la + <a href="https://github.com/regseb/gout" rel="noopener noreferrer" + >documentation</a + >. + </p> + </main> - <ul></ul> + <main id="forbidden"> + <p>Impossible d'activer l'extension Gout pour la page :</p> + <p> + <a rel="noopener noreferrer"><code></code></a> + </p> + <p> + Seules les pages <code>https</code>, <code>http</code>, + <code>file</code> et <code>data</code> sont supportées. + </p> + </main> <script src="script.js" type="module"></script> </body> diff --git a/src/extension/chromium/popup/script.js b/src/extension/chromium/popup/script.js index ab75c43..6132df9 100644 --- a/src/extension/chromium/popup/script.js +++ b/src/extension/chromium/popup/script.js @@ -6,102 +6,83 @@ import "../polyfill/browser.js"; -const check = function (href) { +/** + * Vérifie si une URL est supporté par l'extension. + * + * @param {string} href L'URL à vérifier. + * @returns {boolean} `true` si l'URL est supporté, sinon `false`. + */ +const check = (href) => { try { const url = new URL(href); - return ["http:", "https:", "data:", "file:"].includes(url.protocol); + return ["https:", "http:", "file:", "data:"].includes(url.protocol); } catch { // Indiquer que l'URL est invalide. return false; } }; -const copy = async function (event) { - const li = event.target.closest("li"); - const url = li.querySelector("span").title; - - await navigator.clipboard.writeText(url); -}; - -const remove = async function (event) { - const li = event.target.closest("li"); - const url = li.querySelector("span").title; - - const { dashboards } = await browser.storage.sync.get("dashboards"); - dashboards.splice( - dashboards.findIndex((d) => url === d.url), - 1, - ); - await browser.storage.sync.set({ dashboards }); - - li.remove(); - const button = document.querySelector("#set"); - if (url === button.dataset.url) { - button.textContent = "Ajouter"; - } -}; - -const create = function (dashboard, active) { - const template = document.querySelector("template"); - const clone = document.importNode(template.content, true); - - clone.querySelector("span").textContent = dashboard.title; - clone.querySelector("span").title = dashboard.url; - if (active) { - clone.querySelector("span").classList.add("active"); +/** + * Ajoute ou enlève une URL de la liste des URLs actives. + */ +const change = async () => { + const [{ url }] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + const config = await browser.storage.sync.get("urls"); + const urls = new Set(config.urls); + + if (document.querySelector("#ok input").checked) { + urls.add(url); + } else { + urls.delete(url); } - clone.querySelector("span").addEventListener("dblclick", copy); - clone.querySelector("button").addEventListener("click", remove); - return clone; + await browser.storage.sync.set({ urls: Array.from(urls) }); + await browser.tabs.reload(); }; -const set = async function () { - const button = document.querySelector("#set"); - const dashboard = { - title: button.dataset.title, - url: button.dataset.url, - }; - - const { dashboards } = await browser.storage.sync.get("dashboards"); - const index = dashboards.findIndex((d) => dashboard.url === d.url); - if (-1 === index) { - dashboards.push(dashboard); - document.querySelector("ul").append(create(dashboard, true)); - } else { - dashboards[index] = dashboard; - document.querySelector(`ul li:nth-child(${index}) span`).textContent = - dashboard.title; +/** + * Ouvre un lien. + * + * @param {Event} event L'événement du clic sur le lien. + */ +const open = async (event) => { + const [{ url }] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + const a = event.target.closest("a"); + + if (url !== a.href) { + await browser.tabs.create({ url: a.href }); } - await browser.storage.sync.set({ dashboards }); - - button.textContent = "Mettre à jour"; + close(); }; -const { dashboards } = await browser.storage.sync.get("dashboards"); -// Récupérer le titre et l'URL de l'onglet courant. +// Récupérer l'URL de l'onglet courant. // Attention avec Chromium ! Quand la popup est ouverte dans un onglet : la -// méthode retourne un élément, mais sans titre, ni URL. -const [{ title, url }] = await browser.tabs.query({ +// méthode retourne un élément, mais sans URL. +const [{ url }] = await browser.tabs.query({ active: true, currentWindow: true, }); - -const button = document.querySelector("#set"); if (check(url)) { - if (dashboards.some((d) => url === d.url)) { - button.textContent = "Mettre à jour"; - } - - button.dataset.title = title; - button.dataset.url = url; - button.addEventListener("click", set); - button.disabled = false; + const config = await browser.storage.sync.get("urls"); + const urls = new Set(config.urls); + + document.querySelector("#ok a:has(code)").href = url; + document.querySelector("#ok code").textContent = url; + document.querySelector("#ok input").checked = urls.has(url); + document.querySelector("#ok input").addEventListener("change", change); + document.querySelector("#ok").classList.add("visible"); } else { - button.textContent = "(Impossible pour cette page)"; + document.querySelector("#forbidden a:has(code)").href = url; + document.querySelector("#forbidden code").textContent = url; + document.querySelector("#forbidden").classList.add("visible"); } -const ul = document.querySelector("ul"); -for (const dashboard of dashboards) { - ul.append(create(dashboard, url === dashboard.url)); -} +document + .querySelectorAll("a") + .forEach((a) => a.addEventListener("click", open)); diff --git a/src/extension/chromium/popup/style.css b/src/extension/chromium/popup/style.css index 65164af..bae136c 100644 --- a/src/extension/chromium/popup/style.css +++ b/src/extension/chromium/popup/style.css @@ -1,67 +1,125 @@ +:root { + --background-color: white; + --inactive-color: #bbbbc4; + --inactive-color-hover: #8f8f9d; + --color: #15141a; + --accent-color: #0060df; + --accent-color-hover: #0250bb; + --line-color: #5e5e5e; +} +@media (prefers-color-scheme: dark) { + :root { + --background-color: #272727; + --inactive-color: #484854; + --inactive-color-hover: #5c5c6a; + --color: white; + --accent-color: #00ddff; + --accent-color-hover: #80ebff; + --line-color: #5e5e5e; + } +} + body { - font-family: system-ui; + background-color: var(--background-color); + color: var(--color); + font-family: sans-serif; font-size: 14px; - min-width: 200px; } -button.icon { - background: transparent; - border: none; - border-radius: 4px; - height: 34px; - width: 34px; +a, +a:visited { + color: var(--accent-color); } -button.icon:hover { - background-color: rgba(0 0 0 / 6%); +a:hover { + color: var(--accent-color-hover); } -button.outlined { - background: transparent; - border: 1px solid rgba(0 0 0 / 12%); - border-radius: 4px; - color: rgba(0 0 0 / 87%); - line-height: 34px; - padding: 0 15px; +header { + border-bottom: 1px solid var(--line-color); text-align: center; - text-transform: uppercase; } -button.outlined::-moz-focus-inner { - border: none; +h1 { + font-size: 14px; } -button.outlined:hover { - background-color: rgba(0 0 0 / 6%); + +main { + display: none; + margin: 0 8px; + width: 340px; +} +main.visible { + display: block; } -ul { - list-style-type: none; - margin-bottom: 0; - margin-top: 0; - padding-left: 0; +form { + display: flex; + justify-content: center; + margin: 28px; } -li { + +label.switch { align-items: center; + background-color: var(--inactive-color); + border-radius: 64px; + color: var(--color); display: flex; - height: 34px; + font-size: 22px; + font-weight: 600; + height: 64px; + position: relative; + transition: 0.4s; + width: 164px; +} + +label.switch input { + display: none; } -span { - flex-grow: 1; - overflow: hidden; - text-overflow: ellipsis; - /* Ne pas sélectionner un mot durant un double-clic (pour copier l'URL dans - le presse-papier). */ - user-select: none; - white-space: nowrap; + +label.switch::before { + background: url("./img/checkmark.svg") center / 50% no-repeat var(--color); + border-radius: 50%; + bottom: 8px; + content: ""; + height: 48px; + left: 8px; + position: absolute; + transition: 0.4s; + width: 48px; } -span.active { - font-weight: bold; + +label.switch:has(input:checked) { + background-color: var(--accent-color); + color: var(--background-color); } -li button { - display: none; +label.switch:has(input:hover) { + background-color: var(--inactive-color-hover); } -li:hover button { - display: block; +label.switch:has(input:checked:hover) { + background-color: var(--accent-color-hover); +} +label.switch:has(input:checked)::before { + background-color: var(--background-color); + transform: translateX(98px); } -#set { +label.switch input ~ span { + box-sizing: border-box; + padding: 0 25px; + position: absolute; + transition: 0.4s; width: 100%; } +label.switch input ~ span:first-of-type { + text-align: right; +} +label.switch input ~ span:last-of-type { + text-align: left; +} +label.switch input ~ span:last-of-type, +label.switch input:checked ~ span:first-of-type { + opacity: 0%; +} +label.switch input ~ span:first-of-type, +label.switch input:checked ~ span:last-of-type { + opacity: 100%; +} diff --git a/src/extension/firefox/background/migrate.js b/src/extension/firefox/background/migrate.js index 912b1c4..e0bedf8 100644 --- a/src/extension/firefox/background/migrate.js +++ b/src/extension/firefox/background/migrate.js @@ -16,12 +16,12 @@ export default async function migrate() { if ("version" in current) { await browser.storage.sync.set({ version: current.version, - dashboards: current.dashboards, + urls: current.urls, }); } else { await browser.storage.sync.set({ version: 1, - dashboards: [], + urls: [], }); } } diff --git a/src/extension/firefox/background/script.js b/src/extension/firefox/background/script.js index 6c1e222..5564b58 100644 --- a/src/extension/firefox/background/script.js +++ b/src/extension/firefox/background/script.js @@ -7,14 +7,19 @@ import "../polyfill/browser.js"; import migrate from "./migrate.js"; -const handleBeforeNavigate = async (details) => { - // Récupérer les identifiants des onglets déjà impactés par l'extension. - const rules = await browser.declarativeNetRequest.getSessionRules(); - const tabIds = [ - ...rules.flatMap((r) => r.condition.tabIds), - // Ajouter le nouvel onglet. - details.tabId, - ]; +/** + * Met à jour la règle de modification des entêtes HTTP. + * + * @param {number[]} tabIds Les identifiants des onglets impactés. + */ +const updateRule = async (tabIds) => { + await browser.declarativeNetRequest.updateSessionRules({ + removeRuleIds: [1], + }); + + if (0 === tabIds.length) { + return; + } // Ajouter la règle de modification des entêtes HTTP pour tous les onglets // affichant un dashboard. @@ -26,7 +31,9 @@ const handleBeforeNavigate = async (details) => { responseHeaders: [ { header: "Access-Control-Allow-Methods", - value: "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS", + value: + "GET, HEAD, POST, PUT, PATCH, DELETE," + + " OPTIONS", operation: "set", }, { @@ -59,22 +66,81 @@ const handleBeforeNavigate = async (details) => { id: 1, }, ], - removeRuleIds: [1], }); }; -browser.storage.onChanged.addListener(async () => { - const { dashboards } = await browser.storage.sync.get("dashboards"); - if (undefined === dashboards) { +/** + * Ajoute un onglet dans la liste des onglets impactés. + * + * @param {Object} details Les détails de l'onglet à ajouter. + * @param {number} details.tabId L'identifiant de l'onglet. + */ +const addWatchedTabs = async ({ tabId }) => { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = rules.flatMap((r) => r.condition.tabIds); + if (!tabIds.includes(tabId)) { + // Ajouter le nouvel onglet. + await updateRule([...tabIds, tabId]); + } +}; + +/** + * Supprime un onglet des onglets impactés (si celui-ci est impactés). + * + * @param {Object} details Les détails de l'onglet à enlever. + * @param {number} details.tabId L'identifiant de l'onglet. + * @param {Object} [details.changeInfo] Les éventuelles informations sur les + * changements de l'onglet. + */ +const removeWatchedTabs = async ({ tabId, changeInfo }) => { + const config = await browser.storage.sync.get("urls"); + const urls = config.urls ?? []; + + // Si on n'a pas d'informations sur le changement : c'est que l'onglet a été + // fermé. + if (!urls.includes(changeInfo?.url)) { + // Récupérer les identifiants des onglets déjà impactés par l'extension. + const rules = await browser.declarativeNetRequest.getSessionRules(); + const tabIds = rules.flatMap((r) => r.condition.tabIds); + if (tabIds.includes(tabId)) { + await updateRule(tabIds.filter((i) => tabId !== i)); + } + } +}; + +/** + * Mets à jour les URLs surveillées. + */ +const updateWatchedUrls = async () => { + browser.webNavigation.onBeforeNavigate.removeListener(addWatchedTabs); + browser.tabs.onUpdated.removeListener(removeWatchedTabs); + + const config = await browser.storage.sync.get("urls"); + const urls = config.urls ?? []; + + // Mettre à jour la liste des onglets impactés avec les onglets déjà + // ouverts. + const tabs = await browser.tabs.query({ url: urls }); + await updateRule(tabs.map((t) => t.id)); + + if (0 === urls.length) { return; } - browser.webNavigation.onBeforeNavigate.removeListener(handleBeforeNavigate); - browser.webNavigation.onBeforeNavigate.addListener(handleBeforeNavigate, { - url: dashboards.map((d) => ({ urlEquals: d.url })), + // Surveiller quand un onglet arrive sur une URL d'un dashboards. + browser.webNavigation.onBeforeNavigate.addListener(addWatchedTabs, { + url: urls.map((u) => ({ urlEquals: u })), + }); + + // Surveiller quand un onglet d'un dashboard change d'URL. + browser.tabs.onUpdated.addListener(removeWatchedTabs, { + urls, + properties: ["url"], }); -}); +}; -browser.runtime.onInstalled.addListener(async () => { - await migrate(); -}); +browser.storage.onChanged.addListener(updateWatchedUrls); +browser.runtime.onInstalled.addListener(migrate); +browser.runtime.onStartup.addListener(updateWatchedUrls); +browser.tabs.onRemoved.addListener(removeWatchedTabs); diff --git a/src/extension/firefox/manifest.json b/src/extension/firefox/manifest.json index 1b43cdf..61001fd 100644 --- a/src/extension/firefox/manifest.json +++ b/src/extension/firefox/manifest.json @@ -2,7 +2,7 @@ "browser_specific_settings": { "gecko": { "id": "gout@regseb.github.io", - "strict_min_version": "129.0" + "strict_min_version": "132.0" } }, "manifest_version": 2, @@ -32,7 +32,7 @@ "type": "module" }, "homepage_url": "https://github.com/regseb/gout", - "minimum_chrome_version": "127", + "minimum_chrome_version": "130", "permissions": [ "<all_urls>", "activeTab", diff --git a/src/extension/firefox/popup/img/checkmark.svg b/src/extension/firefox/popup/img/checkmark.svg new file mode 100644 index 0000000..03a642c --- /dev/null +++ b/src/extension/firefox/popup/img/checkmark.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" ?> +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> + <style> + svg { + color: #15141a; + } + @media (prefers-color-scheme: dark) { + svg { + color: white; + } + } + </style> + <polyline + points="14.939,3.54 6.23,12.25 1.06,7.081" + fill="none" + stroke="currentColor" + /> +</svg> diff --git a/src/extension/firefox/popup/img/remove.svg b/src/extension/firefox/popup/img/remove.svg deleted file mode 100644 index a11d462..0000000 --- a/src/extension/firefox/popup/img/remove.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> - <path - d="M6.5 12a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5zm2 0a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 0 .5.5z" - /> - <path - d="M14 2h-3.05a2.5 2.5 0 0 0-4.9 0H3a1 1 0 0 0 0 2v9a3 3 0 0 0 3 3h5a3 3 0 0 0 3-3V4a1 1 0 0 0 0-2zM8.5 1a1.489 1.489 0 0 1 1.391 1H7.109A1.489 1.489 0 0 1 8.5 1zM12 13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4h7z" - /> -</svg> diff --git a/src/extension/firefox/popup/index.html b/src/extension/firefox/popup/index.html index 781ff63..7248419 100644 --- a/src/extension/firefox/popup/index.html +++ b/src/extension/firefox/popup/index.html @@ -8,20 +8,41 @@ <link href="/img/icon.svg" rel="shortcut icon" /> </head> <body> - <template> - <li> - <span></span> - <button class="icon" title="Enlever"> - <img src="img/remove.svg" alt="remove" /> - </button> - </li> - </template> + <header> + <h1>Gout</h1> + </header> - <div> - <button class="outlined" id="set" disabled="disabled">Ajouter</button> - </div> + <main id="ok"> + <p>Activer / désactiver l'extension Gout pour la page :</p> + <p> + <a rel="noopener noreferrer"><code></code></a> + </p> + <form> + <label class="switch"> + <input type="checkbox" /> + <span>Inactif</span> + <span>Actif</span> + </label> + </form> + <p class="detail"> + Quand Gout est actif, les widgets de la page peuvent récupérer des + données externes. Pour plus d'informations, consultez la + <a href="https://github.com/regseb/gout" rel="noopener noreferrer" + >documentation</a + >. + </p> + </main> - <ul></ul> + <main id="forbidden"> + <p>Impossible d'activer l'extension Gout pour la page :</p> + <p> + <a rel="noopener noreferrer"><code></code></a> + </p> + <p> + Seules les pages <code>https</code>, <code>http</code>, + <code>file</code> et <code>data</code> sont supportées. + </p> + </main> <script src="script.js" type="module"></script> </body> diff --git a/src/extension/firefox/popup/script.js b/src/extension/firefox/popup/script.js index ab75c43..6132df9 100644 --- a/src/extension/firefox/popup/script.js +++ b/src/extension/firefox/popup/script.js @@ -6,102 +6,83 @@ import "../polyfill/browser.js"; -const check = function (href) { +/** + * Vérifie si une URL est supporté par l'extension. + * + * @param {string} href L'URL à vérifier. + * @returns {boolean} `true` si l'URL est supporté, sinon `false`. + */ +const check = (href) => { try { const url = new URL(href); - return ["http:", "https:", "data:", "file:"].includes(url.protocol); + return ["https:", "http:", "file:", "data:"].includes(url.protocol); } catch { // Indiquer que l'URL est invalide. return false; } }; -const copy = async function (event) { - const li = event.target.closest("li"); - const url = li.querySelector("span").title; - - await navigator.clipboard.writeText(url); -}; - -const remove = async function (event) { - const li = event.target.closest("li"); - const url = li.querySelector("span").title; - - const { dashboards } = await browser.storage.sync.get("dashboards"); - dashboards.splice( - dashboards.findIndex((d) => url === d.url), - 1, - ); - await browser.storage.sync.set({ dashboards }); - - li.remove(); - const button = document.querySelector("#set"); - if (url === button.dataset.url) { - button.textContent = "Ajouter"; - } -}; - -const create = function (dashboard, active) { - const template = document.querySelector("template"); - const clone = document.importNode(template.content, true); - - clone.querySelector("span").textContent = dashboard.title; - clone.querySelector("span").title = dashboard.url; - if (active) { - clone.querySelector("span").classList.add("active"); +/** + * Ajoute ou enlève une URL de la liste des URLs actives. + */ +const change = async () => { + const [{ url }] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + const config = await browser.storage.sync.get("urls"); + const urls = new Set(config.urls); + + if (document.querySelector("#ok input").checked) { + urls.add(url); + } else { + urls.delete(url); } - clone.querySelector("span").addEventListener("dblclick", copy); - clone.querySelector("button").addEventListener("click", remove); - return clone; + await browser.storage.sync.set({ urls: Array.from(urls) }); + await browser.tabs.reload(); }; -const set = async function () { - const button = document.querySelector("#set"); - const dashboard = { - title: button.dataset.title, - url: button.dataset.url, - }; - - const { dashboards } = await browser.storage.sync.get("dashboards"); - const index = dashboards.findIndex((d) => dashboard.url === d.url); - if (-1 === index) { - dashboards.push(dashboard); - document.querySelector("ul").append(create(dashboard, true)); - } else { - dashboards[index] = dashboard; - document.querySelector(`ul li:nth-child(${index}) span`).textContent = - dashboard.title; +/** + * Ouvre un lien. + * + * @param {Event} event L'événement du clic sur le lien. + */ +const open = async (event) => { + const [{ url }] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + const a = event.target.closest("a"); + + if (url !== a.href) { + await browser.tabs.create({ url: a.href }); } - await browser.storage.sync.set({ dashboards }); - - button.textContent = "Mettre à jour"; + close(); }; -const { dashboards } = await browser.storage.sync.get("dashboards"); -// Récupérer le titre et l'URL de l'onglet courant. +// Récupérer l'URL de l'onglet courant. // Attention avec Chromium ! Quand la popup est ouverte dans un onglet : la -// méthode retourne un élément, mais sans titre, ni URL. -const [{ title, url }] = await browser.tabs.query({ +// méthode retourne un élément, mais sans URL. +const [{ url }] = await browser.tabs.query({ active: true, currentWindow: true, }); - -const button = document.querySelector("#set"); if (check(url)) { - if (dashboards.some((d) => url === d.url)) { - button.textContent = "Mettre à jour"; - } - - button.dataset.title = title; - button.dataset.url = url; - button.addEventListener("click", set); - button.disabled = false; + const config = await browser.storage.sync.get("urls"); + const urls = new Set(config.urls); + + document.querySelector("#ok a:has(code)").href = url; + document.querySelector("#ok code").textContent = url; + document.querySelector("#ok input").checked = urls.has(url); + document.querySelector("#ok input").addEventListener("change", change); + document.querySelector("#ok").classList.add("visible"); } else { - button.textContent = "(Impossible pour cette page)"; + document.querySelector("#forbidden a:has(code)").href = url; + document.querySelector("#forbidden code").textContent = url; + document.querySelector("#forbidden").classList.add("visible"); } -const ul = document.querySelector("ul"); -for (const dashboard of dashboards) { - ul.append(create(dashboard, url === dashboard.url)); -} +document + .querySelectorAll("a") + .forEach((a) => a.addEventListener("click", open)); diff --git a/src/extension/firefox/popup/style.css b/src/extension/firefox/popup/style.css index 65164af..bae136c 100644 --- a/src/extension/firefox/popup/style.css +++ b/src/extension/firefox/popup/style.css @@ -1,67 +1,125 @@ +:root { + --background-color: white; + --inactive-color: #bbbbc4; + --inactive-color-hover: #8f8f9d; + --color: #15141a; + --accent-color: #0060df; + --accent-color-hover: #0250bb; + --line-color: #5e5e5e; +} +@media (prefers-color-scheme: dark) { + :root { + --background-color: #272727; + --inactive-color: #484854; + --inactive-color-hover: #5c5c6a; + --color: white; + --accent-color: #00ddff; + --accent-color-hover: #80ebff; + --line-color: #5e5e5e; + } +} + body { - font-family: system-ui; + background-color: var(--background-color); + color: var(--color); + font-family: sans-serif; font-size: 14px; - min-width: 200px; } -button.icon { - background: transparent; - border: none; - border-radius: 4px; - height: 34px; - width: 34px; +a, +a:visited { + color: var(--accent-color); } -button.icon:hover { - background-color: rgba(0 0 0 / 6%); +a:hover { + color: var(--accent-color-hover); } -button.outlined { - background: transparent; - border: 1px solid rgba(0 0 0 / 12%); - border-radius: 4px; - color: rgba(0 0 0 / 87%); - line-height: 34px; - padding: 0 15px; +header { + border-bottom: 1px solid var(--line-color); text-align: center; - text-transform: uppercase; } -button.outlined::-moz-focus-inner { - border: none; +h1 { + font-size: 14px; } -button.outlined:hover { - background-color: rgba(0 0 0 / 6%); + +main { + display: none; + margin: 0 8px; + width: 340px; +} +main.visible { + display: block; } -ul { - list-style-type: none; - margin-bottom: 0; - margin-top: 0; - padding-left: 0; +form { + display: flex; + justify-content: center; + margin: 28px; } -li { + +label.switch { align-items: center; + background-color: var(--inactive-color); + border-radius: 64px; + color: var(--color); display: flex; - height: 34px; + font-size: 22px; + font-weight: 600; + height: 64px; + position: relative; + transition: 0.4s; + width: 164px; +} + +label.switch input { + display: none; } -span { - flex-grow: 1; - overflow: hidden; - text-overflow: ellipsis; - /* Ne pas sélectionner un mot durant un double-clic (pour copier l'URL dans - le presse-papier). */ - user-select: none; - white-space: nowrap; + +label.switch::before { + background: url("./img/checkmark.svg") center / 50% no-repeat var(--color); + border-radius: 50%; + bottom: 8px; + content: ""; + height: 48px; + left: 8px; + position: absolute; + transition: 0.4s; + width: 48px; } -span.active { - font-weight: bold; + +label.switch:has(input:checked) { + background-color: var(--accent-color); + color: var(--background-color); } -li button { - display: none; +label.switch:has(input:hover) { + background-color: var(--inactive-color-hover); } -li:hover button { - display: block; +label.switch:has(input:checked:hover) { + background-color: var(--accent-color-hover); +} +label.switch:has(input:checked)::before { + background-color: var(--background-color); + transform: translateX(98px); } -#set { +label.switch input ~ span { + box-sizing: border-box; + padding: 0 25px; + position: absolute; + transition: 0.4s; width: 100%; } +label.switch input ~ span:first-of-type { + text-align: right; +} +label.switch input ~ span:last-of-type { + text-align: left; +} +label.switch input ~ span:last-of-type, +label.switch input:checked ~ span:first-of-type { + opacity: 0%; +} +label.switch input ~ span:first-of-type, +label.switch input:checked ~ span:last-of-type { + opacity: 100%; +} From 7efa071f11786bfe1be28fe0c530e0dd5e70c2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 9 Nov 2024 15:27:44 +0100 Subject: [PATCH 36/38] chore: Remplacer les templates par des exemples. --- .metalint/metalint.config.js | 2 +- README.md | 22 ++++++------ examples/.gitignore | 4 +++ examples/gout-dashboard-example.zip | Bin 0 -> 2822 bytes template/dashboard/3-columns.html | 50 -------------------------- template/dashboard/4-columns.html | 54 ---------------------------- template/dashboard/README.md | 8 ----- 7 files changed, 17 insertions(+), 123 deletions(-) create mode 100644 examples/.gitignore create mode 100644 examples/gout-dashboard-example.zip delete mode 100644 template/dashboard/3-columns.html delete mode 100644 template/dashboard/4-columns.html delete mode 100644 template/dashboard/README.md diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index f5684eb..13913a0 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -74,7 +74,7 @@ export default { linters: ["prettier", "htmlhint"], overrides: [ { - patterns: "/template/dashboard/**", + patterns: "/examples/**", linters: "htmlhint_dashboard", }, ], diff --git a/README.md b/README.md index a961fdf..d4cd8f9 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,18 @@ une page Web. Les [dashboards](#dashboard) sont ces pages Web avec du pour définir le format d'affichage ; et des [scrapers](#scraper) pour extraire des données. +## Démarrage rapide + +- Installez l'extension Gout depuis le [**Firefox Browser + Add-ons**][link-firefox]. +- Téléchargez et décompressez le zip + [`gout-dashboard-example.zip`](./examples/gout-dashboard-example.zip). +- Ouvrez le fichier `gout-dashboard-example/index.html` dans Firefox. +- Ouvrez la popup de l'extension Gout et activez Gout pour la page courant. +- Découvrez les widgets qui s'affichent. + +## Composants + ### Dashboard Un dashboard est une page Web qui contient des widgets. Elle doit importer le @@ -201,16 +213,6 @@ Si vous voulez des scrapers, vous pouvez chercher [_gout-scraper_](https://github.com/search?q=%22+gout-scraper%22+language%3AMarkdown&type=Code&l=Markdown) dans GitHub. -## Installation - -L'extension est disponible sur [**Firefox Browser Add-ons**][link-firefox]. -Après l'avoir installée, téléchargez un -[template d'un dashboard](https://github.com/regseb/gout/tree/HEAD/template/dashboard). -Ouvrez le fichier avec un éditeur de texte. Ajoutez les widgets que vous -souhaitez dans le code HTML. Ouvrez le fichier avec votre navigateur et ajoutez -la page dans l'extension (en cliquant sur l'icône de l'extension dans la barre -d'outils du navigateur). Actualisez la page pour voir apparaitre les widgets. - [img-firefox]: https://img.shields.io/amo/v/gout.svg?label=add-on&logo=firefox-browser&logoColor=whitesmoke [img-build]: diff --git a/examples/.gitignore b/examples/.gitignore new file mode 100644 index 0000000..09668ff --- /dev/null +++ b/examples/.gitignore @@ -0,0 +1,4 @@ +# Ignorer tous les fichiers / répertoires sauf les archives. +* +!.gitignore +!*.zip diff --git a/examples/gout-dashboard-example.zip b/examples/gout-dashboard-example.zip new file mode 100644 index 0000000000000000000000000000000000000000..4cfeb0d8ae43b7f815c79086a5fccc1fd50daf9e GIT binary patch literal 2822 zcmbW34LFl~8^E7oXrV%skJlz2Gx>;!h~bD?zQPJewqhpVGmIouNHy}+kt38v@{t;1 z%G(Ojhm<oalUm4|5#G*@v78>g%GLFDPVaj^*Z=?Qxt{B~@9Tbk`~R-n4J#@p4}hVc zs_nh><3F1s00)91Vkmk6glN+K2m(1kFOW(Iiwq4k@bZ)fB;xUd#E&}+g1~zWbu|DH zdn*b6OPkwLQb|A(2&D#pN$Q{o0Eq7=4Gs?or0SC>VWCUut3wQeme)7wIeR(bFHGfc zO?gBrHJ%hv_|2@#s3+Ef64FwpdbR9D7}~=@RxZ;M(`~IQ&}VX@C)#6?-L(?~m|so8 zj5ZcHPQSNEA3NLk{-kGgQ)RMzZ64RbZV{eyIZ;0F6907*X(1z<0NMOOI<#PT!z-w< z!XUEBk8N>6GE9Q*rs#Y!n}s&bgpHvrO7kjER!usNTTJRj9A;CM?&<9!)rRmlm$4&Z zC`DK$G8%OQS6@8pzB&j^Q}-otsk{s|=}p*2E@rE^9(UDu%y3n@omkmvO(`t$CR9HQ z(c}wL#Ahez6!s4xQ87MP$*GPz1qZvH=@sl=Yt%cQ+8SbUtel0*(G%CmHC(JcEWCxa z*m-U|#@O-cJ30%9v%La&<-?}8h)fsU*xAFjiK@T<L3;d&d)j$-W@67J#72ALGcEhk zGPGNn1p*T9N!1yzeEDDFag^Im&FY&pNYtzUlH09p4nO3xrPNKQIwV}xPJrEWzJW(Z z98+$4|8@&6xAT=^&FQnDR&a-R9*jQmvBbHs1S!llm#Lfl(Nw<eytl0Ncqd_9WrxbR z6!!QdDGwDARWg74x&}tTc|5I%D)hpeDzKUPFyHD@y8|_g5tUIDD1)Lf)1r18>b4KB z4|Jy2K$JI4%2IY*FufSxM%|~wxPo0p$LT!wu^BWQf+eIMXykI4XLnU5(45>2uP@p& z5bfyJPDF6Z#(j(|=_4(x`C)V8us-@Ik7HglcYJYd`)EtK>r2`Y^xihS(|nTL`m?w( z^MPa`ByE~1dSV)j_unQyL!fR{sK7%v+cfK`UmW{`m9db77XNsp%D|3tZEq}fU`j1w z)3coW)$gl?$)_8-EKp_M1%7h9Yf5D__IRe`^1J{U0fx+IfZctFOE=;ULx_{m)P6aV z<yKKgz2Z!H#_2J7VkYw^I{N$x%D?AlpSj*F(XMFQdw8Gj2lCA8L+4wq7GfegZ>F?0 z7{wIxa8ABG9U(2z#;*(s$2zT)LcLOLsYioG_1Q0BO~&k6eKA+7Lx{DS_g~EKb1$4Y z)%~%PR>7-XCsyMBp3xk0tWB+JlB@gsum=ivaB!+hMYIC*oHOL&<<EWB6~vDznJ>CN z$%&v!dH(a~ih9@Asm;cxm|;4Xo1Q!W!R0qP+g8YG6{VMrG`uV$%}X3Leh|+Q#9Omy z*oOuzp^fj{okE3$sa(~EY+CaLfptkrUaVU^Wv&%d;BuQBz=vIj<0Wc5l~*fk`HPcO zI{T9{2L@dtiBbU>PQu?QhXvi5GFffr!`gh^NtJ}?=tGa)`_F~920r%hxn0K5t<I{n z9FfZQLEvYFPnmYzp<8+%l$YDe$(EEIm`ShY$yk=3W0eHh44CJnPJgtwh5LwPF3iTE zR6J<#L@g>J`^`vEf8A@p8O(I!PV~tKQQcxTCKnd$$+%gORL`OQgX7H@1$GWgrj-bZ z+k-ZB#ale-%ubssvQx4uT3qdhm5`J;9@&N$0{~E3pLGUmQT(#!7oCC6Du1D~0}<h$ zMXBnwJ_r;gc>l&^UqyK->Z>T9Kmb7JZ!#0elt6z&LqlWz=-8koVUGJ71TC*`$~d3t z31=Bfbxc_v&oAa~f27taH*(eQ#soCBXoId}ARMiiWnJ;K9230I9-K5cQ62FV=%2kY z#hKn}_6u!(Ze-!DDg>gfEc1_w>3KHujxZ^HvL*g}6peaIMpe!|2x#(#R2!)AkJ=~q z4BdowRIS@!@}?iYmp(p_y{frSOTI7=1_|jqT8Cui_Bi^)y*ZOg?Z|e!mW70hkgKfl z@Y{}EdF1-K5zo^ZdAwgPTsqZgs=wG?<J>%<)BrSydhSqI|I+lDp9aRzvEfSI#tYuM zqncXB(a0@={g+9jUAyqRO$xWh>*hL-UPb>ljC(ZWFsqrb%<NL?8xBpor=HJVOBB{M z5ziKNA=!s@wG(X0BngB?{UOeiH+5XI-zU5F!5e>S@~(N|5sI@0>9->H!}LB;07-mh zRJVdr@25A&A7Ml!62Bl4d_uImzKh5{ubBIMC87b?N<>2Qnj=eyhWvWCd#17~ZpJ;G z4oNb%PRNo`)%G3Q;lkzD@YCmoGlMa+mUmQMC350UWfVgeh$Dl7nJDYMl*#M-h`Vkk z+r{Y%P9k3CXwrqr*f84^Z!Pso_cdjylCB8RgB${&u}UfrP0oO~uZyfoNp^$pH=_SM z5qzj>r`QABrBa=vBON1cHyZZnGk5CA_(Ir#y(VMLGnpI>^llz9Ft)dP{j6;6cH8U? zcJ(!+(cWEXkP$Q_*O};3dN491Xzt=%PWNd}fToFA5rUCHmp<mb_^#&J2+=6h`Q`Hy zHfY1`J_BuCO#d`XmCky;>m5Tz>x*hOPs{X*8i)w?F|r3l1cGqGLPX?6zdy!+M->dA z4Y>c`L(S(R%VW(-Lx5w=axhZ7zF*|Whn$r?{Wt9_mlN7(K)>5l@Q+F8Yh$2>R{r@x z4J`*FCFyS}{ZCR_ZV>#Q;K^DE6g*kW!AMb;`0ECj%KqRvbHhT#!OYN4m#zo^v`d0d Fe*&6`avcBw literal 0 HcmV?d00001 diff --git a/template/dashboard/3-columns.html b/template/dashboard/3-columns.html deleted file mode 100644 index 86a2ff5..0000000 --- a/template/dashboard/3-columns.html +++ /dev/null @@ -1,50 +0,0 @@ -<!doctype html> -<html lang="fr-FR"> - <head> - <meta charset="utf-8" /> - <link - href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" - rel="shortcut icon" - /> - <title>Gout</title> - <script - src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" - type="module" - ></script> - <style> - body { - display: flex; - } - div { - display: flex; - flex-direction: column; - } - </style> - </head> - <body> - <!-- Les largeurs des colonnes sont modifiables en changeant la valeur de - la propriété width. --> - <div style="width: 33%"> - <!-- - Les widgets sont à ajouter dans ce div pour les afficher dans la - première colonne. Voici un exemple de structure d'un widget : - <script type="application/yaml"> - module: - url: # ... - options: # ... - scrapers: - - url: # ... - options: # ... - </script> - --> - </div> - <div style="width: 33%"> - <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - colonne du milieu. --> - </div> - <div style="width: 33%"> - <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - dernière colonne. --> - </div> - </body> -</html> diff --git a/template/dashboard/4-columns.html b/template/dashboard/4-columns.html deleted file mode 100644 index 237ec04..0000000 --- a/template/dashboard/4-columns.html +++ /dev/null @@ -1,54 +0,0 @@ -<!doctype html> -<html lang="fr-FR"> - <head> - <meta charset="utf-8" /> - <link - href="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/img/icon.svg" - rel="shortcut icon" - /> - <title>Gout</title> - <script - src="https://cdn.jsdelivr.net/gh/regseb/gout@0/src/engine/script.js" - type="module" - ></script> - <style> - body { - display: flex; - } - div { - display: flex; - flex-direction: column; - } - </style> - </head> - <body> - <!-- Les largeurs des colonnes sont modifiables en changeant la valeur de - la propriété width. --> - <div style="width: 25%"> - <!-- - Les widgets sont à ajouter dans ce div pour les afficher dans la - première colonne. Voici un exemple de structure d'un widget : - <script type="application/yaml"> - module: - url: # ... - options: # ... - scrapers: - - url: # ... - options: # ... - </script> - --> - </div> - <div style="width: 25%"> - <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - deuxième colonne. --> - </div> - <div style="width: 25%"> - <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - troisième colonne. --> - </div> - <div style="width: 25%"> - <!-- Les widgets sont à ajouter dans ce div pour les afficher dans la - dernière colonne. --> - </div> - </body> -</html> diff --git a/template/dashboard/README.md b/template/dashboard/README.md deleted file mode 100644 index b88dea8..0000000 --- a/template/dashboard/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Templates de dashboards - -Ce répertoire contient des templates basiques pour vos dashboards. - -- [_3-columns.html_](3-columns.html) : un dashboard avec trois colonnes de - largeur identique ; -- [_4-columns.html_](3-columns.html) : un dashboard avec quatre colonnes de - largeur identique. From c4a57a40283476d48b6e6afd990670ca22801e9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= <regseb@gmail.com> Date: Sat, 9 Nov 2024 16:15:26 +0100 Subject: [PATCH 37/38] =?UTF-8?q?chore:=20Mettre=20=C3=A0=20jour=20les=20d?= =?UTF-8?q?=C3=A9pendances.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/feature_request.md | 4 +- .metalint/addons-linter_mv3.config.js | 11 - .metalint/eslint.config.js | 68 +- .metalint/eslint_browser.config.js | 22 +- .metalint/eslint_node.config.js | 4 + .metalint/eslint_test.config.js | 23 +- .metalint/eslint_webext.config.js | 17 +- .metalint/markdownlint.config.js | 5 +- .metalint/metalint.config.js | 6 +- README.md | 10 +- package-lock.json | 5196 +++++++++-------- package.json | 41 +- src/module/image/README.md | 2 +- src/module/list/README.md | 23 +- src/module/podcast/README.md | 2 +- src/module/search/search.js | 2 +- src/module/search/search.tpl | 2 +- src/module/single/README.md | 2 +- src/module/tools/contrast/README.md | 3 +- src/scraper/examples/README.md | 11 +- src/scraper/examples/days/README.md | 34 +- src/scraper/examples/helloworld/README.md | 6 +- .../examples/jsonplaceholder/README.md | 15 +- src/scraper/icon/ping/README.md | 7 +- src/scraper/icon/ping/ping.js | 2 +- src/scraper/list/jsonfeed/README.md | 10 +- src/scraper/list/rss/README.md | 17 +- src/scraper/search/opensearch/README.md | 5 +- src/scraper/tools/complements/README.md | 3 +- src/scraper/tools/filter/README.md | 3 +- 31 files changed, 2822 insertions(+), 2738 deletions(-) delete mode 100644 .metalint/addons-linter_mv3.config.js diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index aee414e..a7c8287 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,8 +28,8 @@ Steps to reproduce the behavior: ### Environment -- Gout extension version<!-- e.g. 0.12.1 -->: -- Browser version<!-- e.g. Chrome 127.0.6533.88, Firefox 129.0 -->: +- Gout extension version<!-- e.g. 0.13.0 -->: +- Browser version<!-- e.g. Chrome 130.0.6723.91, Firefox 132.0 -->: ### Additional context diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 0e496e2..de2b543 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -17,8 +17,8 @@ assignees: "" ### Environment -- Gout extension version<!-- e.g. 0.12.1 -->: -- Browser version<!-- e.g. Chrome 127.0.6533.88, Firefox 129.0 -->: +- Gout extension version<!-- e.g. 0.13.0 -->: +- Browser version<!-- e.g. Chrome 130.0.6723.91, Firefox 132.0 -->: ### Additional context diff --git a/.metalint/addons-linter_mv3.config.js b/.metalint/addons-linter_mv3.config.js deleted file mode 100644 index fca28cf..0000000 --- a/.metalint/addons-linter_mv3.config.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @module - * @license MIT - * @author Sébastien Règne - */ - -export default { - // Autoriser la propriété "service_worker" pour le "background". - // https://github.com/mozilla/addons-linter/issues/5152 - enableBackgroundServiceWorker: true, -}; diff --git a/.metalint/eslint.config.js b/.metalint/eslint.config.js index 5943807..f1b7f60 100644 --- a/.metalint/eslint.config.js +++ b/.metalint/eslint.config.js @@ -3,6 +3,21 @@ * @author Sébastien Règne */ +// @ts-expect-error -- Le plugin array-func ne fournit pas de types. +import arrayFunc from "eslint-plugin-array-func"; +// @ts-expect-error -- Le plugin eslint-comments ne fournit pas de types. +import eslintComments from "eslint-plugin-eslint-comments"; +// @ts-expect-error -- Le plugin import ne fournit pas de types. +import importPlugin from "eslint-plugin-import"; +import jsdoc from "eslint-plugin-jsdoc"; +// @ts-expect-error -- Le plugin no-unsanitized ne fournit pas de types. +import noUnsanitized from "eslint-plugin-no-unsanitized"; +// @ts-expect-error -- Le plugin promise ne fournit pas de types. +import promise from "eslint-plugin-promise"; +import regexp from "eslint-plugin-regexp"; +import unicorn from "eslint-plugin-unicorn"; +import globals from "globals"; + /** * @import { Linter } from "eslint" */ @@ -11,26 +26,19 @@ * @type {Linter.Config} */ export default { - plugins: [ - "array-func", - "eslint-comments", - "import", - "jsdoc", - "mocha", - "n", - "no-unsanitized", - "promise", - "regexp", - "unicorn", - ], - - parserOptions: { - sourceType: "module", + languageOptions: { + globals: { ...globals["shared-node-browser"] }, }, - env: { - "shared-node-browser": true, - es2023: true, + plugins: { + "array-func": arrayFunc, + "eslint-comments": eslintComments, + import: importPlugin, + jsdoc, + "no-unsanitized": noUnsanitized, + promise, + regexp, + unicorn, }, rules: { @@ -74,7 +82,7 @@ export default { }, ], "no-loss-of-precision": "error", - "no-misleading-character-class": "error", + "no-misleading-character-class": ["error", { allowEscape: true }], "no-new-native-nonconstructor": "error", "no-new-symbol": "error", "no-obj-calls": "error", @@ -105,7 +113,6 @@ export default { { args: "all", argsIgnorePattern: "^_", - caughtErrors: "all", caughtErrorsIgnorePattern: "^_", }, ], @@ -135,7 +142,7 @@ export default { }, ], "class-methods-use-this": "error", - complexity: ["warn", { max: 50 }], + complexity: ["warn", { max: 50, variant: "modified" }], "consistent-return": "error", "consistent-this": "error", curly: "error", @@ -181,7 +188,6 @@ export default { "max-nested-callbacks": "warn", "max-params": ["warn", { max: 5 }], "max-statements": ["warn", { max: 50 }], - "multiline-comment-style": ["error", "separate-lines"], "new-cap": "error", "no-alert": "error", "no-array-constructor": "error", @@ -200,7 +206,10 @@ export default { "no-eval": "error", "no-extend-native": "error", "no-extra-bind": "error", - "no-extra-boolean-cast": "error", + "no-extra-boolean-cast": [ + "error", + { enforceForInnerExpressions: true }, + ], "no-extra-label": "error", "no-global-assign": "error", "no-implicit-coercion": ["error", { disallowTemplateShorthand: true }], @@ -308,7 +317,7 @@ export default { "prefer-template": "off", radix: "error", "require-await": "error", - "require-unicode-regexp": "error", + "require-unicode-regexp": ["error", { requireFlag: "v" }], "require-yield": "error", "sort-imports": [ "error", @@ -326,7 +335,6 @@ export default { yoda: ["error", "always"], // Layout & Formatting. - "line-comment-position": "error", "unicode-bom": "error", // Plugin eslint-plugin-array-func. @@ -621,7 +629,10 @@ export default { "regexp/prefer-regexp-exec": "error", "regexp/prefer-regexp-test": "error", "regexp/prefer-set-operation": "error", - "regexp/require-unicode-regexp": "error", + // Désactiver cette règle qui est quasi-identique à la règle + // "require-unicode-regexp" (seule la position de la notification est + // différente). + "regexp/require-unicode-regexp": "off", "regexp/simplify-set-operations": "error", "regexp/sort-alternatives": "error", "regexp/use-ignore-case": "error", @@ -658,9 +669,10 @@ export default { // Plugin eslint-plugin-unicorn. "unicorn/better-regex": "error", - "unicorn/catch-error-name": ["error", { ignore: [/^err$/u, /^e$/u] }], + "unicorn/catch-error-name": ["error", { ignore: [/^err$/v, /^e$/v] }], "unicorn/consistent-destructuring": "error", "unicorn/consistent-empty-array-spread": "error", + "unicorn/consistent-existence-index-check": "error", "unicorn/consistent-function-scoping": "error", "unicorn/custom-error-definition": "error", // Laisser Prettier gérer cette règle. @@ -743,10 +755,12 @@ export default { "unicorn/prefer-dom-node-text-content": "error", "unicorn/prefer-event-target": "error", "unicorn/prefer-export-from": ["error", { ignoreUsedVariables: true }], + "unicorn/prefer-global-this": "error", "unicorn/prefer-includes": "error", "unicorn/prefer-json-parse-buffer": "off", "unicorn/prefer-keyboard-event-key": "error", "unicorn/prefer-logical-operator-over-ternary": "error", + "unicorn/prefer-math-min-max": "error", "unicorn/prefer-math-trunc": "error", "unicorn/prefer-modern-dom-apis": "error", "unicorn/prefer-modern-math-apis": "error", diff --git a/.metalint/eslint_browser.config.js b/.metalint/eslint_browser.config.js index 3bd93f0..9be989d 100644 --- a/.metalint/eslint_browser.config.js +++ b/.metalint/eslint_browser.config.js @@ -3,12 +3,20 @@ * @author Sébastien Règne */ +import globals from "globals"; + +/** + * @import { Linter } from "eslint" + */ + /** - * @type {import("eslint").Linter.Config} + * @type {Linter.Config} */ export default { - env: { - browser: true, + languageOptions: { + globals: { + ...globals.browser, + }, }, rules: { @@ -17,7 +25,13 @@ export default { "import/no-unresolved": [ "error", { - ignore: [String.raw`^https://esm\.sh/`], + // Utiliser des chaines de caractères, car les expressions + // rationnelles ne sont pas supportées. + // https://github.com/import-js/eslint-plugin-import/issues/3087 + // Ne pas utiliser le drapeau "v", car la RegExp est créée sans + // drapeau (dans le eslint-plugin-import). + // eslint-disable-next-line require-unicode-regexp + ignore: [/^https:\/\/esm\.sh\//.source], caseSensitiveStrict: true, }, ], diff --git a/.metalint/eslint_node.config.js b/.metalint/eslint_node.config.js index 113f4b6..439fb2e 100644 --- a/.metalint/eslint_node.config.js +++ b/.metalint/eslint_node.config.js @@ -3,6 +3,8 @@ * @author Sébastien Règne */ +import n from "eslint-plugin-n"; + /** * @import { Linter } from "eslint" */ @@ -11,6 +13,8 @@ * @type {Linter.Config} */ export default { + plugins: { n }, + rules: { // Suggestions. "no-restricted-properties": [ diff --git a/.metalint/eslint_test.config.js b/.metalint/eslint_test.config.js index da02fe4..5533755 100644 --- a/.metalint/eslint_test.config.js +++ b/.metalint/eslint_test.config.js @@ -3,6 +3,10 @@ * @author Sébastien Règne */ +// @ts-expect-error -- Le plugin mocha ne fournit pas de types. +import mocha from "eslint-plugin-mocha"; +import globals from "globals"; + /** * @import { Linter } from "eslint" */ @@ -11,12 +15,14 @@ * @type {Linter.Config} */ export default { - env: { - browser: true, - mocha: true, - webextensions: true, + languageOptions: { + globals: { + ...globals.mocha, + }, }, + plugins: { mocha }, + rules: { // Suggestions. complexity: "off", @@ -36,8 +42,13 @@ export default { "mocha/no-exclusive-tests": "error", "mocha/no-exports": "error", "mocha/no-global-tests": "error", - "mocha/no-hooks": "error", - "mocha/no-hooks-for-single-case": "error", + // Autoriser les hooks "afterEach", car ils sont toujours exécuter après + // les tests (pour nettoyer l'environnement) même si les tests ont + // échoués. + "mocha/no-hooks": ["error", { allow: ["afterEach"] }], + // Désactiver cette règle, car il n'y a pas de condition différente avec + // la règle "no-hook". + "mocha/no-hooks-for-single-case": "off", "mocha/no-identical-title": "error", "mocha/no-mocha-arrows": "error", "mocha/no-nested-tests": "error", diff --git a/.metalint/eslint_webext.config.js b/.metalint/eslint_webext.config.js index 0a4f4b1..483148e 100644 --- a/.metalint/eslint_webext.config.js +++ b/.metalint/eslint_webext.config.js @@ -3,6 +3,8 @@ * @author Sébastien Règne */ +import globals from "globals"; + /** * @import { Linter } from "eslint" */ @@ -11,8 +13,17 @@ * @type {Linter.Config} */ export default { - env: { - browser: true, - webextensions: true, + languageOptions: { + globals: { + ...globals.browser, + ...globals.webextensions, + }, + }, + + rules: { + // Suggestions. + // Ne pas utiliser le drapeau "v", car Add-ons Linter ne le supporte + // pas. https://github.com/mozilla/addons-linter/issues/5462 + "require-unicode-regexp": ["error", { requireFlag: "u" }], }, }; diff --git a/.metalint/markdownlint.config.js b/.metalint/markdownlint.config.js index aa3c839..ee85bad 100644 --- a/.metalint/markdownlint.config.js +++ b/.metalint/markdownlint.config.js @@ -4,11 +4,11 @@ */ /** - * @import { Configuration } from "markdownlint" + * @import { ConfigurationStrict } from "markdownlint" */ /** - * @type {Configuration} + * @type {ConfigurationStrict} */ export default { "heading-increment": true, @@ -80,4 +80,5 @@ export default { "link-image-style": { shortcut: false, url_inline: false }, "table-pipe-style": { style: "leading_and_trailing" }, "table-column-count": true, + "blanks-around-tables": false, }; diff --git a/.metalint/metalint.config.js b/.metalint/metalint.config.js index 13913a0..de82070 100644 --- a/.metalint/metalint.config.js +++ b/.metalint/metalint.config.js @@ -32,12 +32,8 @@ export default { ], checkers: [ { - patterns: ["/build/*.zip", "/src/extension/*/"], + patterns: ["/build/*/*.zip", "/src/extension/*/"], linters: "addons-linter", - overrides: { - patterns: "/src/extension/chromium/", - linters: "addons-linter_mv3", - }, }, { patterns: "*.js", diff --git a/README.md b/README.md index d4cd8f9..2362704 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ des données. - Installez l'extension Gout depuis le [**Firefox Browser Add-ons**][link-firefox]. - Téléchargez et décompressez le zip - [`gout-dashboard-example.zip`](./examples/gout-dashboard-example.zip). + [`gout-dashboard-example.zip`](examples/gout-dashboard-example.zip). - Ouvrez le fichier `gout-dashboard-example/index.html` dans Firefox. - Ouvrez la popup de l'extension Gout et activez Gout pour la page courant. - Découvrez les widgets qui s'affichent. @@ -148,12 +148,12 @@ dans GitHub. ### Module -Les modules sont les composants du widget définissant comment les données sont +Les modules sont les composants des widgets définissant comment les données sont affichées (une liste de liens, une image...). La configuration d'un module a trois propriétés : - `url` : L'URL du fichier JavaScript du module (par exemple pour le module - [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) : + [_list_](src/module/list#readme) : `"https://cdn.jsdelivr.net/gh/regseb/gout@0/src/module/list/list.js"`). - `options` : Les options du module (qui sont spécifiques pour chaque module). - `scrapers` : La liste des [scrapers](#scraper) associés au module. @@ -186,8 +186,8 @@ peuvent être associés avec un module. Dans la configuration du widget, les scrapers sont définis dans une liste ou chaque élément a deux propriétés : - `url` : L'URL du fichier JavaScript du scraper (par exemple pour le scraper - [_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) - : `"https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js"`). + [_list/rss_](src/scraper/list/rss#readme) : + `"https://cdn.jsdelivr.net/gh/regseb/gout@0/src/scraper/list/rss/rss.js"`). - `options` : Les options du scraper (qui sont spécifiques pour chaque scraper). Dans cet exemple, deux scrapers sont définis pour récupérer les dernières vidéos diff --git a/package-lock.json b/package-lock.json index 08eb603..ebe9921 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,39 +15,40 @@ "devDependencies": { "@prantlf/jsonlint": "16.0.0", "@prettier/plugin-xml": "3.4.1", - "@stryker-mutator/core": "8.4.0", - "@stryker-mutator/mocha-runner": "8.4.0", - "@types/eslint": "9.6.0", - "@types/mocha": "10.0.7", - "addons-linter": "6.33.0", - "eslint": "8.57.0", - "eslint-plugin-array-func": "4.0.0", + "@stryker-mutator/core": "8.6.0", + "@stryker-mutator/mocha-runner": "8.6.0", + "@types/firefox-webext-browser": "120.0.4", + "@types/mocha": "10.0.9", + "addons-linter": "7.3.0", + "eslint": "9.14.0", + "eslint-plugin-array-func": "5.0.2", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "50.0.1", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-jsdoc": "50.4.3", "eslint-plugin-mocha": "10.5.0", - "eslint-plugin-n": "17.10.2", - "eslint-plugin-no-unsanitized": "4.0.2", + "eslint-plugin-n": "17.13.1", + "eslint-plugin-no-unsanitized": "4.1.2", "eslint-plugin-promise": "7.1.0", "eslint-plugin-regexp": "2.6.0", - "eslint-plugin-unicorn": "55.0.0", + "eslint-plugin-unicorn": "56.0.0", + "globals": "15.12.0", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.34.0", - "metalint": "0.17.0", - "mocha": "10.7.3", + "markdownlint": "0.36.1", + "metalint": "0.18.0", + "mocha": "10.8.2", "npm-package-json-lint": "8.0.0", "prettier": "3.3.3", "purgecss": "6.0.0", - "stylelint": "16.8.1", + "stylelint": "16.10.0", "stylelint-order": "6.0.4", - "typedoc": "0.26.5", - "typescript": "5.5.4", - "web-ext": "8.2.0", + "typedoc": "0.26.11", + "typescript": "5.6.3", + "web-ext": "8.3.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=22.1.0" + "node": ">=22.10" } }, "node_modules/@ampproject/remapping": { @@ -65,13 +66,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -79,9 +81,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "engines": { @@ -89,22 +91,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.9.tgz", + "integrity": "sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helpers": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -130,44 +132,44 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.9.tgz", + "integrity": "sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/types": "^7.25.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -186,18 +188,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", - "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.0", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -218,44 +220,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -265,22 +266,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -288,15 +289,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -306,37 +307,37 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -344,9 +345,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -354,9 +355,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -364,121 +365,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.9.tgz", + "integrity": "sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.25.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -506,14 +413,13 @@ } }, "node_modules/@babel/plugin-proposal-explicit-resource-management": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-explicit-resource-management/-/plugin-proposal-explicit-resource-management-7.24.7.tgz", - "integrity": "sha512-sYvUjHrKctxFiNe/YFyzNyXoblzP4YaZrWSk0js7QU3Lw2lYjLAxnzV8l/4+7PB5+NDFKGblPUq2YbdTxs3Ppg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-explicit-resource-management/-/plugin-proposal-explicit-resource-management-7.25.9.tgz", + "integrity": "sha512-EbtfSvb6s4lZwef1nH52nw4DTUAvHY6bl1mbLgEHUkR6L8j4WY70mM/InB8Ozgdlok/7etbiSW+Wc88ZebZAKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-explicit-resource-management": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -523,29 +429,13 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", - "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-explicit-resource-management": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-explicit-resource-management/-/plugin-syntax-explicit-resource-management-7.24.7.tgz", - "integrity": "sha512-gEl7s4tkyWl3EcfUCLVcJJRSogDQju6qX2hdJmZVO0wdpVGzss5bJU8wySoZ7JQw1jBjztEY1a/eYstgv+AQkA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -555,13 +445,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -571,13 +461,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -587,15 +477,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -605,17 +495,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", - "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -645,9 +535,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -658,32 +548,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -691,25 +581,34 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", - "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", "dev": true, "funding": [ { @@ -723,16 +622,16 @@ ], "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.4.1" + "@csstools/css-tokenizer": "^3.0.3" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", - "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", "dev": true, "funding": [ { @@ -746,13 +645,13 @@ ], "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", - "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", + "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", "dev": true, "funding": [ { @@ -766,17 +665,17 @@ ], "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1" + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", - "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz", + "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==", "dev": true, "funding": [ { @@ -790,10 +689,10 @@ ], "license": "MIT-0", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.0.13" + "postcss-selector-parser": "^6.1.0" } }, "node_modules/@devicefarmer/adbkit": { @@ -860,32 +759,35 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz", - "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", + "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", "dev": true, "license": "MIT", "dependencies": { "comment-parser": "1.4.1", "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~4.0.0" + "jsdoc-type-pratt-parser": "~4.1.0" }, "engines": { "node": ">=16" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -904,26 +806,75 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -931,7 +882,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -965,48 +916,14 @@ "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1032,27 +949,37 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/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==", + "node_modules/@eslint/js": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@fluent/syntax": { @@ -1066,20 +993,68 @@ "npm": ">=7.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@fregante/relaxed-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fregante/relaxed-json/-/relaxed-json-2.0.0.tgz", + "integrity": "sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=10.10.0" + "node": ">= 0.10.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { @@ -1128,16 +1103,30 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@inquirer/checkbox": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.7.tgz", - "integrity": "sha512-5YwCySyV1UEgqzz34gNsC38eKxRBtlRDpJLlKcRtTjlYA/yDKuc1rfw+hjw+2WJxbAZtaDPsRl5Zk7J14SBoBw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-3.0.1.tgz", + "integrity": "sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -1146,33 +1135,32 @@ } }, "node_modules/@inquirer/confirm": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", - "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-4.0.1.tgz", + "integrity": "sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.10.tgz", - "integrity": "sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.2", + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", "@types/mute-stream": "^0.0.4", - "@types/node": "^22.1.0", + "@types/node": "^22.5.5", "@types/wrap-ansi": "^3.0.0", "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", "cli-width": "^4.1.0", "mute-stream": "^1.0.0", "signal-exit": "^4.1.0", @@ -1185,14 +1173,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.22.tgz", - "integrity": "sha512-K1QwTu7GCK+nKOVRBp5HY9jt3DXOfPGPr6WRDrPImkcJRelG9UTx2cAtK1liXmibRrzJlTWOwqgWT3k2XnS62w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-3.0.1.tgz", + "integrity": "sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0", "external-editor": "^3.1.0" }, "engines": { @@ -1200,14 +1188,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.22.tgz", - "integrity": "sha512-wTZOBkzH+ItPuZ3ZPa9lynBsdMp6kQ9zbjVPYEtSBG7UulGjg2kQiAnUjgyG4SlntpTce5bOmXAPvE4sguXjpA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-3.0.1.tgz", + "integrity": "sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -1215,9 +1203,9 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", - "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", "dev": true, "license": "MIT", "engines": { @@ -1225,42 +1213,42 @@ } }, "node_modules/@inquirer/input": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.9.tgz", - "integrity": "sha512-7Z6N+uzkWM7+xsE+3rJdhdG/+mQgejOVqspoW+w0AbSZnL6nq5tGMEVASaYVWbkoSzecABWwmludO2evU3d31g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-3.0.1.tgz", + "integrity": "sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.10.tgz", - "integrity": "sha512-kWTxRF8zHjQOn2TJs+XttLioBih6bdc5CcosXIzZsrTY383PXI35DuhIllZKu7CdXFi2rz2BWPN9l0dPsvrQOA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-2.0.1.tgz", + "integrity": "sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.22.tgz", - "integrity": "sha512-5Fxt1L9vh3rAKqjYwqsjU4DZsEvY/2Gll+QkqR4yEpy6wvzLxdSgFhUcxfDAOtO4BEoTreWoznC0phagwLU5Kw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-3.0.1.tgz", + "integrity": "sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0", "ansi-escapes": "^4.3.2" }, "engines": { @@ -1268,36 +1256,36 @@ } }, "node_modules/@inquirer/prompts": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", - "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-6.0.1.tgz", + "integrity": "sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^2.4.7", - "@inquirer/confirm": "^3.1.22", - "@inquirer/editor": "^2.1.22", - "@inquirer/expand": "^2.1.22", - "@inquirer/input": "^2.2.9", - "@inquirer/number": "^1.0.10", - "@inquirer/password": "^2.1.22", - "@inquirer/rawlist": "^2.2.4", - "@inquirer/search": "^1.0.7", - "@inquirer/select": "^2.4.7" + "@inquirer/checkbox": "^3.0.1", + "@inquirer/confirm": "^4.0.1", + "@inquirer/editor": "^3.0.1", + "@inquirer/expand": "^3.0.1", + "@inquirer/input": "^3.0.1", + "@inquirer/number": "^2.0.1", + "@inquirer/password": "^3.0.1", + "@inquirer/rawlist": "^3.0.1", + "@inquirer/search": "^2.0.1", + "@inquirer/select": "^3.0.1" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.2.4.tgz", - "integrity": "sha512-pb6w9pWrm7EfnYDgQObOurh2d2YH07+eDo3xQBsNAM2GRhliz6wFXGi1thKQ4bN6B0xDd6C3tBsjdr3obsCl3Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-3.0.1.tgz", + "integrity": "sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/type": "^2.0.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -1305,15 +1293,15 @@ } }, "node_modules/@inquirer/search": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.0.7.tgz", - "integrity": "sha512-p1wpV+3gd1eST/o5N3yQpYEdFNCzSP0Klrl+5bfD3cTTz8BGG6nf4Z07aBW0xjlKIj1Rp0y3x/X4cZYi6TfcLw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-2.0.1.tgz", + "integrity": "sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -1321,15 +1309,15 @@ } }, "node_modules/@inquirer/select": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.7.tgz", - "integrity": "sha512-JH7XqPEkBpNWp3gPCqWqY8ECbyMoFcCZANlL6pV9hf59qK6dGmkOlx1ydyhY+KZ0c5X74+W6Mtp+nm2QX0/MAQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-3.0.1.tgz", + "integrity": "sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.2", + "@inquirer/core": "^9.2.1", + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -1338,9 +1326,9 @@ } }, "node_modules/@inquirer/type": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", - "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", "dev": true, "license": "MIT", "dependencies": { @@ -1369,9 +1357,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -1394,6 +1382,31 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -1482,9 +1495,9 @@ } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.5.40", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.40.tgz", - "integrity": "sha512-5hByR+TGX/iKG7Uv3Zk8f+aUftkBcHqWE3Ym229jxm+cRjeJSBZzUKPm6H+p46vaeooql72kydrqpz0B3UrErw==", + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.6.5.tgz", + "integrity": "sha512-5fwVfdYQ/CnsK1r3DiOfhib46gUr8v0aeJaXt+PQ4aYvZNaBB3hg+3fS+OHdnJkNfm6QdBNjgBNdyV+mBMfBOA==", "dev": true, "license": "CC0-1.0" }, @@ -1628,6 +1641,13 @@ "prettier": "^3.0.0" } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", @@ -1636,28 +1656,61 @@ "license": "MIT" }, "node_modules/@shikijs/core": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.1.tgz", - "integrity": "sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", + "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", "dev": true, "license": "MIT", "dependencies": { - "@types/hast": "^3.0.4" + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.3" } }, - "node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "node_modules/@shikijs/engine-javascript": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", + "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "oniguruma-to-js": "0.4.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", + "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0" } }, + "node_modules/@shikijs/types": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", + "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz", + "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==", + "dev": true, + "license": "MIT" + }, "node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", @@ -1672,15 +1725,15 @@ } }, "node_modules/@stryker-mutator/api": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.4.0.tgz", - "integrity": "sha512-VccQ0s4WOxVkIN0slBNM4CIo5jMf46Mc6gazwIWyyng/MvjuEaXO/yYl3ihL9wFww41FDKXiTy3alOc4WWyIVQ==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/api/-/api-8.6.0.tgz", + "integrity": "sha512-iEZYV40zpSJBDXombffbLuEVr0j/rJseEgmDcfGJQfSc0yxuEg7+MEFRweUQCaJICXu+2A10o9TnCWTyqK5OKg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "mutation-testing-metrics": "3.1.1", - "mutation-testing-report-schema": "3.1.1", - "tslib": "~2.6.3", + "mutation-testing-metrics": "3.3.0", + "mutation-testing-report-schema": "3.3.0", + "tslib": "~2.7.0", "typed-inject": "~4.0.0" }, "engines": { @@ -1688,39 +1741,39 @@ } }, "node_modules/@stryker-mutator/core": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.4.0.tgz", - "integrity": "sha512-vqdggnLFpr6uG/JOwiRYmk62xDJmTrj42gx7Kvth1AAj8txIVeCxcmh0o6gMG31vS22NGkkSzW8uYIxT/gfyKg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/core/-/core-8.6.0.tgz", + "integrity": "sha512-ZuXDf/qd9UBSmqRybbnHKm8FGkYJH6tSY0yZ6LRezWknpHlNX+rQ1NMqVaT8i+Ay1BIZUArVUSRcbI8DOwIdlQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@inquirer/prompts": "^5.3.6", - "@stryker-mutator/api": "8.4.0", - "@stryker-mutator/instrumenter": "8.4.0", - "@stryker-mutator/util": "8.4.0", + "@inquirer/prompts": "^6.0.0", + "@stryker-mutator/api": "8.6.0", + "@stryker-mutator/instrumenter": "8.6.0", + "@stryker-mutator/util": "8.6.0", "ajv": "~8.17.1", "chalk": "~5.3.0", "commander": "~12.1.0", "diff-match-patch": "1.0.5", - "emoji-regex": "~10.3.0", - "execa": "~9.3.0", + "emoji-regex": "~10.4.0", + "execa": "~9.4.0", "file-url": "~4.0.0", "get-port": "~7.1.0", "lodash.groupby": "~4.6.0", "log4js": "~6.9.1", "minimatch": "~9.0.5", - "mutation-testing-elements": "3.1.1", - "mutation-testing-metrics": "3.1.1", - "mutation-testing-report-schema": "3.1.1", - "npm-run-path": "~5.3.0", + "mutation-testing-elements": "3.3.0", + "mutation-testing-metrics": "3.3.0", + "mutation-testing-report-schema": "3.3.0", + "npm-run-path": "~6.0.0", "progress": "~2.0.3", "rxjs": "~7.8.1", "semver": "^7.6.3", "source-map": "~0.7.4", "tree-kill": "~1.2.2", - "tslib": "2.6.3", + "tslib": "2.7.0", "typed-inject": "~4.0.0", - "typed-rest-client": "~2.0.2" + "typed-rest-client": "~2.1.0" }, "bin": { "stryker": "bin/stryker.js" @@ -1730,9 +1783,9 @@ } }, "node_modules/@stryker-mutator/instrumenter": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.4.0.tgz", - "integrity": "sha512-thLblaLuH+hIWk53bVxFJ9gfpnlOY+zNSxGV09986QoztYXejSSqRUWe8cxPc7PKF5xVewEh4yMTJaewX7Nzfw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/instrumenter/-/instrumenter-8.6.0.tgz", + "integrity": "sha512-ynRfpURhuUu9aJLDw2osfnzCTfPGou8hZnqpPuYv6m5UbiGX5+YKC4U35uYSBYA7hlwGqsSTOdClhypi1ASrKg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1742,8 +1795,8 @@ "@babel/plugin-proposal-decorators": "~7.24.7", "@babel/plugin-proposal-explicit-resource-management": "^7.24.7", "@babel/preset-typescript": "~7.24.7", - "@stryker-mutator/api": "8.4.0", - "@stryker-mutator/util": "8.4.0", + "@stryker-mutator/api": "8.6.0", + "@stryker-mutator/util": "8.6.0", "angular-html-parser": "~6.0.2", "semver": "~7.6.3", "weapon-regex": "~1.3.2" @@ -1753,59 +1806,42 @@ } }, "node_modules/@stryker-mutator/mocha-runner": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.4.0.tgz", - "integrity": "sha512-7A83OFZO7vx6U63TF3NLGzEVWZeEPFA9NR925KaX+4u/5pl8UbAP9L3jJLnPQrkZJnFivb4KXXaHZQkaKqcX/A==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/mocha-runner/-/mocha-runner-8.6.0.tgz", + "integrity": "sha512-ZUk6c/DJTe270KdPuGZK2MTot94aVe4byFZ8myMmZvRbt4wHK5JTm37oCrQf1sj4SXuDMpHUXGIk/aRTwLrZaQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@stryker-mutator/api": "8.4.0", - "@stryker-mutator/util": "8.4.0", - "tslib": "~2.6.3" + "@stryker-mutator/api": "8.6.0", + "@stryker-mutator/util": "8.6.0", + "tslib": "~2.7.0" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@stryker-mutator/core": "~8.4.0", + "@stryker-mutator/core": "~8.6.0", "mocha": ">= 7.2 < 11" } }, "node_modules/@stryker-mutator/util": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.4.0.tgz", - "integrity": "sha512-dvDBmIrKpkqICO/7kcmfTzs+dsS1dA61q6XbbF+uB+WSsNLUHMfft0XKQg6BwLY+NLlis4pFN5CJz6gI7bfwxA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@stryker-mutator/util/-/util-8.6.0.tgz", + "integrity": "sha512-SruyNDhioBTR7Eq1sSxr9YYBLGHF5s999W63xcOJ+4RdRwyLwNUX1H8DiYnjQC5vs5X/Ap/UsmGwyVnv1ObSnQ==", "dev": true, "license": "Apache-2.0" }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", - "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } + "license": "MIT" }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "node_modules/@types/firefox-webext-browser": { + "version": "120.0.4", + "resolved": "https://registry.npmjs.org/@types/firefox-webext-browser/-/firefox-webext-browser-120.0.4.tgz", + "integrity": "sha512-lBrpf08xhiZBigrtdQfUaqX1UauwZ+skbFiL8u2Tdra/rklkKadYmIzTwkNZSWtuZ7OKpFqbE2HHfDoFqvZf6w==", "dev": true, "license": "MIT" }, @@ -1819,13 +1855,6 @@ "@types/unist": "*" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1840,6 +1869,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -1855,9 +1894,9 @@ "license": "MIT" }, "node_modules/@types/mocha": { - "version": "10.0.7", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", - "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", + "integrity": "sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==", "dev": true, "license": "MIT" }, @@ -1872,13 +1911,13 @@ } }, "node_modules/@types/node": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", - "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.13.0" + "undici-types": "~6.19.8" } }, "node_modules/@types/normalize-package-data": { @@ -1889,9 +1928,9 @@ "license": "MIT" }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true, "license": "MIT" }, @@ -1943,9 +1982,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -1966,40 +2005,36 @@ } }, "node_modules/addons-linter": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.33.0.tgz", - "integrity": "sha512-FOXyI3v4HTUFCmKdyUH2eC1a6Efekuknq7yqMEIX1pl05USZuUtVO/0Mh+ZbA28Am26S62G5RbQghK7GTxtLhQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-7.3.0.tgz", + "integrity": "sha512-10FNXtpp6nN0hUya4yzrKWVs/82VgqNVUnGI5xsiU6B5oxk8uzGN0s7QaPOOURT5qp67KetXaw8a+lb6C6IydQ==", "dev": true, "license": "MPL-2.0", "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.40", + "@fregante/relaxed-json": "2.0.0", + "@mdn/browser-compat-data": "5.6.5", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.11.0", + "addons-scanner-utils": "9.12.0", "ajv": "8.17.1", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", "deepmerge": "4.3.1", - "eslint": "8.57.0", - "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "4.0.0", - "espree": "10.1.0", + "eslint": "8.57.1", + "eslint-plugin-no-unsanitized": "4.1.2", + "eslint-visitor-keys": "4.1.0", + "espree": "10.2.0", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "11.0.0", "image-size": "1.1.1", - "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", "pino": "8.20.0", - "relaxed-json": "1.0.3", "semver": "7.6.3", - "sha.js": "2.4.11", "source-map-support": "0.5.21", - "tosource": "1.0.0", "upath": "2.0.1", "yargs": "17.7.2", "yauzl": "2.10.0" @@ -2008,99 +2043,414 @@ "addons-linter": "bin/addons-linter" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/addons-linter/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/addons-linter/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/addons-linter/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==", + "node_modules/addons-linter/node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/addons-moz-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/addons-moz-compare/-/addons-moz-compare-1.3.0.tgz", - "integrity": "sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==", + "node_modules/addons-linter/node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MPL-2.0" + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "node_modules/addons-scanner-utils": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.11.0.tgz", - "integrity": "sha512-X95V8ymnue9EHmOLz3zJTGHvHDFlWKiavlH+kJKOlv2sJDWFvD3TWeJMHJgxS9GKOqT/545mOXvX3vuuGGum+g==", + "node_modules/addons-linter/node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "MPL-2.0", + "license": "BSD-2-Clause", "dependencies": { - "@types/yauzl": "2.10.3", - "common-tags": "1.8.2", - "first-chunk-stream": "3.0.0", - "strip-bom-stream": "4.0.0", - "upath": "2.0.1", - "yauzl": "2.10.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, - "peerDependencies": { - "body-parser": "1.20.2", - "express": "4.19.2", - "node-fetch": "2.6.11", - "safe-compare": "1.1.4" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "body-parser": { - "optional": true - }, - "express": { - "optional": true - }, - "node-fetch": { - "optional": true - }, - "safe-compare": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/adm-zip": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", - "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "node_modules/addons-linter/node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "node_modules/addons-linter/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==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/addons-linter/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "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/addons-linter/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/addons-linter/node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/addons-linter/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/addons-linter/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "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/addons-linter/node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/addons-linter/node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/addons-linter/node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/addons-linter/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/addons-linter/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/addons-linter/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/addons-linter/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==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/addons-moz-compare": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/addons-moz-compare/-/addons-moz-compare-1.3.0.tgz", + "integrity": "sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==", + "dev": true, + "license": "MPL-2.0" + }, + "node_modules/addons-scanner-utils": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.12.0.tgz", + "integrity": "sha512-Nn+mOgJhdSZKkycXd5GYfSfoyT1lEGbCVoCBKriEFceuP0dJxVBuFwuRD8+PuXegQQBw7COTS5DwM4nj+bK8Mg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/yauzl": "2.10.3", + "common-tags": "1.8.2", + "first-chunk-stream": "3.0.0", + "strip-bom-stream": "4.0.0", + "upath": "2.0.1", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "body-parser": "1.20.3", + "express": "4.21.0", + "node-fetch": "2.6.11", + "safe-compare": "1.1.4" + }, + "peerDependenciesMeta": { + "body-parser": { + "optional": true + }, + "express": { + "optional": true + }, + "node-fetch": { + "optional": true + }, + "safe-compare": { + "optional": true + } + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" }, "engines": { "node": ">= 14" @@ -2171,28 +2521,6 @@ "string-width": "^4.1.0" } }, - "node_modules/ansi-align/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/ansi-align/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -2245,13 +2573,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -2453,16 +2774,6 @@ "dev": true, "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -2473,6 +2784,16 @@ "node": ">=8.0.0" } }, + "node_modules/atomically": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.0.3.tgz", + "integrity": "sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==", + "dev": true, + "dependencies": { + "stubborn-fs": "^1.2.5", + "when-exit": "^2.1.1" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -2568,32 +2889,32 @@ "license": "ISC" }, "node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", "dev": true, "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/boxen/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -2617,13 +2938,31 @@ } }, "node_modules/boxen/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2646,31 +2985,31 @@ } }, "node_modules/boxen/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12.20" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/boxen/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -2720,9 +3059,9 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -2740,10 +3079,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2823,67 +3162,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "dev": true, - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -2943,9 +3221,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001679", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz", + "integrity": "sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA==", "dev": true, "funding": [ { @@ -2963,6 +3241,17 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -2976,6 +3265,28 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -3072,16 +3383,16 @@ } }, "node_modules/chrome-launcher": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", - "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.1.2.tgz", + "integrity": "sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" + "lighthouse-logger": "^2.0.1" }, "bin": { "print-chrome-path": "bin/print-chrome-path.js" @@ -3142,19 +3453,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -3180,28 +3478,6 @@ "node": ">=12" } }, - "node_modules/cliui/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -3271,6 +3547,17 @@ "node": ">=8.0.0" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -3369,45 +3656,24 @@ } }, "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.0.0.tgz", + "integrity": "sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" + "atomically": "^2.0.3", + "dot-prop": "^9.0.0", + "graceful-fs": "^4.2.11", + "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/yeoman/configstore?sponsor=1" } }, - "node_modules/configstore/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/consola": { "version": "2.15.3", "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", @@ -3423,13 +3689,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.38.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", - "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -3481,9 +3747,9 @@ } }, "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==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "dev": true, "license": "MIT", "dependencies": { @@ -3495,39 +3761,10 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/css-functions-list": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", - "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", "dev": true, "license": "MIT", "engines": { @@ -3552,13 +3789,13 @@ } }, "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.1.tgz", + "integrity": "sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.0.30", + "mdn-data": "2.12.1", "source-map-js": "^1.0.1" }, "engines": { @@ -3591,16 +3828,6 @@ "node": ">=4" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -3673,13 +3900,13 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3727,35 +3954,6 @@ "node": ">=0.10.0" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -3879,6 +4077,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-browser/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -3912,16 +4139,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -3971,6 +4188,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/des.js": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", @@ -3982,6 +4209,20 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", @@ -4013,16 +4254,16 @@ } }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-serializer": { @@ -4085,34 +4326,32 @@ } }, "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "type-fest": "^4.18.2" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", + "node_modules/dot-prop/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", "dev": true, - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=0.10" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eastasianwidth": { @@ -4123,16 +4362,16 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz", - "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==", + "version": "1.5.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz", + "integrity": "sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==", "dev": true, "license": "ISC" }, "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" }, @@ -4348,9 +4587,9 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -4384,59 +4623,64 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.14.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-compat-utils": { @@ -4478,9 +4722,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "license": "MIT", "dependencies": { @@ -4506,16 +4750,16 @@ } }, "node_modules/eslint-plugin-array-func": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-4.0.0.tgz", - "integrity": "sha512-p3NY2idNIvgmQLF2/62ZskYt8gOuUgQ51smRc3Lh7FtSozpNc2sg+lniz9VaCagLZHEZTl8qGJKqE7xy8O/D/g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-5.0.2.tgz", + "integrity": "sha512-iyLex2+pTcxHZ6OLL80oMy+CtffpJ9j6A/57VQi1VN5bK1IS/0o+mWvezDHeAlwXjn6ksRO9L5SGU329BBuY8A==", "dev": true, "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "eslint": ">=8.40.0" + "eslint": ">=8.51.0" } }, "node_modules/eslint-plugin-es-x": { @@ -4571,35 +4815,37 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { @@ -4623,19 +4869,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4660,16 +4893,16 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.0.1.tgz", - "integrity": "sha512-UayhAysIk1Du8InV27WMbV4AMSJSu60+bekmeuGK2OUy4QJSFPr1srYT6AInykGkmMdRuHfDX6Q0tJEr8BtDtg==", + "version": "50.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.4.3.tgz", + "integrity": "sha512-uWtwFxGRv6B8sU63HZM5dAGDhgsatb+LONwmILZJhdRALLOkCX2HFZhdL/Kw2ls8SQMAVEfK+LmnEfxInRN8HA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.46.0", + "@es-joy/jsdoccomment": "~0.49.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.5", + "debug": "^4.3.6", "escape-string-regexp": "^4.0.0", "espree": "^10.1.0", "esquery": "^1.6.0", @@ -4733,20 +4966,20 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.2.tgz", - "integrity": "sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==", + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.13.1.tgz", + "integrity": "sha512-97qzhk1z3DdSJNCqT45EslwCu5+LB9GDadSyBItgKUfGsXAmN/aa7LRQ0ZxHffUxUzvgbTPJL27/pE9ZQWHy7A==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "enhanced-resolve": "^5.17.0", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^15.8.0", - "ignore": "^5.2.4", + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", "minimatch": "^9.0.5", - "semver": "^7.5.3" + "semver": "^7.6.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4758,27 +4991,14 @@ "eslint": ">=8.23.0" } }, - "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-no-unsanitized": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz", - "integrity": "sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.1.2.tgz", + "integrity": "sha512-ydF3PMFKEIkP71ZbLHFvu6/FW8SvRv6VV/gECfrQkqyD5+5oCAtPz8ZHy0GRuMDtNe2jsNdPCQXX4LSbkapAVQ==", "dev": true, "license": "MPL-2.0", "peerDependencies": { - "eslint": "^6 || ^7 || ^8" + "eslint": "^8 || ^9" } }, "node_modules/eslint-plugin-promise": { @@ -4820,19 +5040,19 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz", - "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==", + "version": "56.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.0.tgz", + "integrity": "sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.7", "@eslint-community/eslint-utils": "^4.4.0", "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", - "core-js-compat": "^3.37.0", - "esquery": "^1.5.0", - "globals": "^15.7.0", + "core-js-compat": "^3.38.1", + "esquery": "^1.6.0", + "globals": "^15.9.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", @@ -4840,7 +5060,7 @@ "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", "regjsparser": "^0.10.0", - "semver": "^7.6.1", + "semver": "^7.6.3", "strip-indent": "^3.0.0" }, "engines": { @@ -4853,36 +5073,10 @@ "eslint": ">=8.56.0" } }, - "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4890,7 +5084,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4926,9 +5120,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4984,50 +5178,34 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/json-schema-traverse": { @@ -5063,29 +5241,16 @@ "node": ">=8" } }, - "node_modules/eslint/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==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5182,9 +5347,9 @@ } }, "node_modules/execa": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", - "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.1.tgz", + "integrity": "sha512-5eo/BRqZm3GYce+1jqX/tJ7duA2AnE39i88fuedNFUV8XxGxUpF3aWkBRfbUcjV49gCkvS/pzc0YrCPhaIewdg==", "dev": true, "license": "MIT", "dependencies": { @@ -5192,10 +5357,10 @@ "cross-spawn": "^7.0.3", "figures": "^6.1.0", "get-stream": "^9.0.0", - "human-signals": "^7.0.0", + "human-signals": "^8.0.0", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", - "npm-run-path": "^5.2.0", + "npm-run-path": "^6.0.0", "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", @@ -5292,11 +5457,11 @@ } }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -5328,30 +5493,6 @@ "pend": "~1.2.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -5369,16 +5510,16 @@ } }, "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==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-url": { @@ -5425,46 +5566,48 @@ } }, "node_modules/firefox-profile": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.6.0.tgz", - "integrity": "sha512-I9rAm1w8U3CdhgO4EzTJsCvgcbvynZn9lOySkZf78wUdUIQH2w9QOKf3pAX+THt2XMSSR3kJSuM8P7bYux9j8g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.7.0.tgz", + "integrity": "sha512-aGApEu5bfCNbA4PGUZiRJAIU6jKmghV2UVdklXAofnNtiDjqYw0czLS46W7IfFqVKgKhFB8Ao2YoNGHY4BoIMQ==", "dev": true, "license": "MIT", "dependencies": { "adm-zip": "~0.5.x", - "fs-extra": "~9.0.1", - "ini": "~2.0.0", - "minimist": "^1.2.5", - "xml2js": "^0.5.0" + "fs-extra": "^11.2.0", + "ini": "^4.1.3", + "minimist": "^1.2.8", + "xml2js": "^0.6.2" }, "bin": { "firefox-profile": "lib/cli.js" + }, + "engines": { + "node": ">=18" } }, "node_modules/firefox-profile/node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.14" } }, "node_modules/firefox-profile/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, "license": "ISC", "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/firefox-profile/node_modules/jsonfile": { @@ -5480,7 +5623,7 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/firefox-profile/node_modules/jsonfile/node_modules/universalify": { + "node_modules/firefox-profile/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", @@ -5490,16 +5633,6 @@ "node": ">= 10.0.0" } }, - "node_modules/firefox-profile/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/first-chunk-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-3.0.0.tgz", @@ -5521,18 +5654,17 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -5543,9 +5675,9 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -5590,29 +5722,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -5761,6 +5870,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -5830,9 +5952,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", - "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, "license": "MIT", "dependencies": { @@ -5843,24 +5965,22 @@ } }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": "20 || >=22" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5886,46 +6006,54 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/glob/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, "license": "MIT", "dependencies": { - "ini": "2.0.0" + "ini": "4.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, "license": "ISC", "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/global-modules": { @@ -5970,13 +6098,16 @@ } }, "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==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -6037,45 +6168,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -6189,19 +6281,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -6215,6 +6294,44 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -6284,6 +6401,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/htmlhint": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz", @@ -6304,17 +6432,6 @@ "htmlhint": "bin/htmlhint" } }, - "node_modules/htmlhint/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/htmlhint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6332,49 +6449,14 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/htmlhint/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/htmlhint/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/htmlhint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/htmlhint/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": "^12.20.0 || >=14" } }, "node_modules/htmlhint/node_modules/strip-json-comments": { @@ -6420,13 +6502,6 @@ "entities": "^4.4.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", @@ -6500,33 +6575,6 @@ "node": ">=8" } }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/http2-wrapper/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", @@ -6542,9 +6590,9 @@ } }, "node_modules/human-signals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", - "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6586,9 +6634,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -6635,16 +6683,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6838,39 +6876,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6964,6 +6973,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ci": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz", + "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", + "dev": true, + "license": "MIT", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -7000,29 +7025,22 @@ } }, "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", "dev": true, "license": "MIT", "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-mergeable-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-mergeable-object/-/is-mergeable-object-1.1.1.tgz", - "integrity": "sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==", - "dev": true, - "license": "MIT" - }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -7075,24 +7093,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-obj": { @@ -7221,17 +7232,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, "node_modules/is-unicode-supported": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, "license": "MIT", "engines": { @@ -7274,16 +7278,6 @@ "node": ">=8" } }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -7299,17 +7293,14 @@ "license": "ISC" }, "node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": "20 || >=22" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -7325,9 +7316,9 @@ "license": "MIT" }, "node_modules/jose": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.4.1.tgz", - "integrity": "sha512-U6QajmpV/nhL9SyfAewo000fkiRQ+Yd2H0lBxJJ9apjpOgkOcBQJWOrMo917lxLptdS/n/o/xPzMkXhF46K8hQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.2.tgz", + "integrity": "sha512-ILI2xx/I57b20sd7rHZvgiiQrmp2mcotwsAH+5ajbpFQbrYVQdNHYlQhoA5cFb78CgtBOxtC05TeA+mcgkuCqQ==", "dev": true, "license": "MIT", "funding": { @@ -7362,9 +7353,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", - "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", + "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", "dev": true, "license": "MIT", "engines": { @@ -7372,16 +7363,16 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -7525,17 +7516,30 @@ "dev": true, "license": "MIT" }, + "node_modules/ky": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.7.2.tgz", + "integrity": "sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz", + "integrity": "sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==", "dev": true, "license": "MIT", "dependencies": { - "package-json": "^8.1.0" + "package-json": "^10.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7579,9 +7583,9 @@ } }, "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz", + "integrity": "sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7744,19 +7748,6 @@ "node": ">=8.0" } }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -7826,14 +7817,14 @@ } }, "node_modules/markdownlint": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", - "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.36.1.tgz", + "integrity": "sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==", "dev": true, "license": "MIT", "dependencies": { "markdown-it": "14.1.0", - "markdownlint-micromark": "0.1.9" + "markdownlint-micromark": "0.1.12" }, "engines": { "node": ">=18" @@ -7843,9 +7834,9 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", - "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.12.tgz", + "integrity": "sha512-RlB6EwMGgc0sxcIhOQ2+aq7Zw1V2fBnzbXKGgYK/mVWdT7cz34fteKSwfYeo4rL6+L/q2tyC9QtD/PgZbkdyJQ==", "dev": true, "license": "MIT", "engines": { @@ -7873,10 +7864,32 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.1.tgz", + "integrity": "sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==", "dev": true, "license": "CC0-1.0" }, @@ -7960,9 +7973,9 @@ } }, "node_modules/metalint": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.17.0.tgz", - "integrity": "sha512-j76R59x8wfI9y1j80WtAdknJJntysTs5ddaljFMHQL36R2Xkp9CLAUhfPwYhxOeas/Tjde8uW+pdOz2PqhHwMw==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/metalint/-/metalint-0.18.0.tgz", + "integrity": "sha512-IjZHf8tODLP2wjYWmQFDfWQQ2uilD2qpf6Of8nxZrYVqjFT/i1TgFp11WNRIteQaocJlLGOmAfMXpgTJxtpEuA==", "dev": true, "funding": [ "https://buymeacoffee.com/regseb", @@ -7977,13 +7990,107 @@ "metalint": "src/bin/index.js" }, "engines": { - "node": ">=20.6.0" + "node": ">=22.1.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -8017,19 +8124,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -8122,9 +8216,9 @@ } }, "node_modules/mocha": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", - "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", "dependencies": { @@ -8169,13 +8263,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/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==", - "dev": true, - "license": "MIT" - }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -8197,39 +8284,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/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==", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/mocha/node_modules/wrap-ansi": { @@ -8269,21 +8334,10 @@ "node": ">=10" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, "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==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -8344,26 +8398,26 @@ } }, "node_modules/mutation-testing-elements": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.1.1.tgz", - "integrity": "sha512-pYkrxZJh2zqA8XRSjtkoDFuIbezY1/4kIYjxw+DM6h6WL5wntLVKP5y3vQT8miRz/ek/3MP0qm2tuvgPn1rjOQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/mutation-testing-elements/-/mutation-testing-elements-3.3.0.tgz", + "integrity": "sha512-YMBF+pfOHklpQebOYB/vgd5RXjcRy4TfrSMXaQbUGActfWvXQPJoN6TUtGw/oSv+12rfxXIQhsEd6MNi96yWew==", "dev": true, "license": "Apache-2.0" }, "node_modules/mutation-testing-metrics": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.1.1.tgz", - "integrity": "sha512-AgXM0TAnwD4G5ml0pA4u4qZu6+EuKnFwDHKjwdipgxy6nZRvZzqj2JUOGfFvbTPyjFLeVbAxYMsedPQskxXyxw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/mutation-testing-metrics/-/mutation-testing-metrics-3.3.0.tgz", + "integrity": "sha512-vZEJ84SpK3Rwyk7k28SORS5o6ZDtehwifLPH6fQULrozJqlz2Nj8vi52+CjA+aMZCyyKB+9eYUh1HtiWVo4o/A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "mutation-testing-report-schema": "3.1.1" + "mutation-testing-report-schema": "3.3.0" } }, "node_modules/mutation-testing-report-schema": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.1.1.tgz", - "integrity": "sha512-lWIbgUEnMEdsY2yymC7SZRBO+6dbZa5tY/Bmw+xjXYPdBxTVlnd2mjKRPZ6FUxgHJ9vMQmQnktMNAKCWZp1H0A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/mutation-testing-report-schema/-/mutation-testing-report-schema-3.3.0.tgz", + "integrity": "sha512-DF56q0sb0GYzxYUYNdzlfQzyE5oJBEasz8zL76bt3OFJU8q4iHSdUDdihPWWJD+4JLxSs3neM/R968zYdy0SWQ==", "dev": true, "license": "Apache-2.0" }, @@ -8377,102 +8431,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/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==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -8527,13 +8485,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/nconf/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==", - "dev": true, - "license": "MIT" - }, "node_modules/nconf/node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", @@ -8544,21 +8495,6 @@ "node": ">=10" } }, - "node_modules/nconf/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nconf/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8596,37 +8532,6 @@ "node": ">=10" } }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, "node_modules/node-fetch": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", @@ -8706,19 +8611,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-package-json-lint": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-8.0.0.tgz", @@ -8847,9 +8739,9 @@ } }, "node_modules/npm-package-json-lint/node_modules/type-fest": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", - "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -8860,16 +8752,17 @@ } }, "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8901,20 +8794,10 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", "engines": { @@ -9054,6 +8937,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex": "^4.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/open": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", @@ -9247,16 +9143,6 @@ "node": ">=0.10.0" } }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, "node_modules/p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -9320,28 +9206,28 @@ } }, "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-10.0.1.tgz", + "integrity": "sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==", "dev": true, "license": "MIT", "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" + "ky": "^1.2.0", + "registry-auth-token": "^5.0.2", + "registry-url": "^6.0.1", + "semver": "^7.6.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, @@ -9366,11 +9252,11 @@ } }, "node_modules/parse-imports": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz", - "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0 AND MIT", "dependencies": { "es-module-lexer": "^1.5.3", "slashes": "^3.0.12" @@ -9412,26 +9298,26 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", "dev": true, "license": "MIT", "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" }, "funding": { @@ -9476,31 +9362,28 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "20 || >=22" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", @@ -9520,9 +9403,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -9652,9 +9535,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -9673,24 +9556,24 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.5.tgz", - "integrity": "sha512-tum2m18S22ZSNjXatMG0FSk5ZL83pTttymeJx5Gzxg7RU0s1jNDU9rXltro4osQrukjyNormcb07IEjqEyPNaA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", "dev": true, "license": "MIT" }, "node_modules/postcss-safe-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", - "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", "dev": true, "funding": [ { @@ -9715,9 +9598,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", "dependencies": { @@ -9834,6 +9717,17 @@ "node": ">=6" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -9842,9 +9736,9 @@ "license": "ISC" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, "license": "MIT", "dependencies": { @@ -9898,68 +9792,28 @@ "commander": "^12.0.0", "glob": "^10.3.10", "postcss": "^8.4.4", - "postcss-selector-parser": "^6.0.7" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/purgecss/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "postcss-selector-parser": "^6.0.7" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "bin": { + "purgecss": "bin/purgecss.js" } }, - "node_modules/purgecss/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/purgecss/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "node_modules/purgecss/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=16 || 14 >=14.18" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10286,6 +10140,13 @@ "dev": true, "license": "MIT" }, + "node_modules/regex": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz", + "integrity": "sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/regexp-ast-analysis": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", @@ -10318,16 +10179,16 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -10534,13 +10395,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, - "license": "MIT" - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -10561,22 +10415,6 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10612,52 +10450,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/run-applescript": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", @@ -10840,14 +10632,6 @@ "dev": true, "license": "MIT" }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -10867,9 +10651,9 @@ } }, "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "dev": true, "license": "MIT", "engines": { @@ -10932,22 +10716,6 @@ "node": ">=10" } }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -10999,20 +10767,6 @@ "dev": true, "license": "MIT" }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11051,13 +10805,17 @@ "license": "MIT" }, "node_modules/shiki": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.1.tgz", - "integrity": "sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", + "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.12.1", + "@shikijs/core": "1.22.2", + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", "@types/hast": "^3.0.4" } }, @@ -11149,9 +10907,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -11179,6 +10937,17 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/spawn-sync": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", @@ -11232,9 +11001,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, "license": "CC0-1.0" }, @@ -11308,21 +11077,18 @@ "license": "MIT" }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string-width-cjs": { @@ -11348,42 +11114,13 @@ "dev": true, "license": "MIT" }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/string-width/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -11436,6 +11173,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11539,10 +11291,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stubborn-fs": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-1.2.5.tgz", + "integrity": "sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==", + "dev": true + }, "node_modules/stylelint": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.8.1.tgz", - "integrity": "sha512-O8aDyfdODSDNz/B3gW2HQ+8kv8pfhSu7ZR7xskQ93+vI6FhKKGUJMQ03Ydu+w3OvXXE0/u4hWU4hCPNOyld+OA==", + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz", + "integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==", "dev": true, "funding": [ { @@ -11556,42 +11314,41 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1", - "@csstools/media-query-list-parser": "^2.1.13", - "@csstools/selector-specificity": "^3.1.1", + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1", + "@csstools/media-query-list-parser": "^3.0.1", + "@csstools/selector-specificity": "^4.0.0", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.2", - "css-tree": "^2.3.1", - "debug": "^4.3.6", + "css-functions-list": "^3.2.3", + "css-tree": "^3.0.0", + "debug": "^4.3.7", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.0.0", + "file-entry-cache": "^9.1.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.1", + "ignore": "^6.0.2", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.34.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", - "micromatch": "^4.0.7", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.0.1", - "postcss": "^8.4.40", - "postcss-resolve-nested-selector": "^0.1.4", - "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.1.1", + "postcss": "^8.4.47", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^6.1.2", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^7.1.0", - "supports-hyperlinks": "^3.0.0", + "supports-hyperlinks": "^3.1.0", "svg-tags": "^1.0.0", "table": "^6.8.2", "write-file-atomic": "^5.0.1" @@ -11624,17 +11381,10 @@ "dev": true, "license": "MIT" }, - "node_modules/stylelint/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==", - "dev": true, - "license": "MIT" - }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", - "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", "dev": true, "license": "MIT", "dependencies": { @@ -11658,84 +11408,37 @@ "node": ">=18" } }, - "node_modules/stylelint/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/string-width/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==", + "node_modules/stylelint/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/stylelint/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/stylelint/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/supports-color": { @@ -11755,9 +11458,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, "license": "MIT", "dependencies": { @@ -11766,6 +11469,9 @@ }, "engines": { "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-hyperlinks/node_modules/supports-color": { @@ -11801,9 +11507,9 @@ "dev": true }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "license": "MIT", "dependencies": { @@ -11834,28 +11540,6 @@ "node": ">=10.0.0" } }, - "node_modules/table/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/table/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11873,29 +11557,6 @@ "dev": true, "license": "MIT" }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/thread-stream": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", @@ -11939,16 +11600,6 @@ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11962,15 +11613,6 @@ "node": ">=8.0" } }, - "node_modules/tosource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz", - "integrity": "sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11988,6 +11630,17 @@ "tree-kill": "cli.js" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", @@ -12025,9 +11678,9 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true, "license": "0BSD" }, @@ -12155,9 +11808,9 @@ } }, "node_modules/typed-rest-client": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-2.0.2.tgz", - "integrity": "sha512-rmAQM2gZw/PQpK5+5aSs+I6ZBv4PFC2BT1o+0ADS1SgSejA+14EmbI2Lt8uXwkX7oeOMkwFmg0pHKwe8D9IT5A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-2.1.0.tgz", + "integrity": "sha512-Nel9aPbgSzRxfs1+4GoSB4wexCF+4Axlk7OSGVQCMa+4fWcyxIsN/YNmkp0xTT2iQzMD98h8yFLav/cNaULmRA==", "dev": true, "license": "MIT", "dependencies": { @@ -12178,28 +11831,18 @@ "dev": true, "license": "MIT" }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typedoc": { - "version": "0.26.5", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz", - "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==", + "version": "0.26.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz", + "integrity": "sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==", "dev": true, "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", "markdown-it": "^14.1.0", "minimatch": "^9.0.5", - "shiki": "^1.9.1", - "yaml": "^2.4.5" + "shiki": "^1.16.2", + "yaml": "^2.5.1" }, "bin": { "typedoc": "bin/typedoc" @@ -12208,13 +11851,13 @@ "node": ">= 18" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x" } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -12256,12 +11899,25 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", - "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", @@ -12274,20 +11930,77 @@ "node": ">= 0.8.0" } }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dev": true, "license": "MIT", "dependencies": { - "crypto-random-string": "^4.0.0" + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">=12" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/universalify": { @@ -12322,9 +12035,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -12342,8 +12055,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -12353,29 +12066,25 @@ } }, "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.1.tgz", + "integrity": "sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", + "boxen": "^8.0.1", + "chalk": "^5.3.0", + "configstore": "^7.0.0", + "is-in-ci": "^1.0.0", + "is-installed-globally": "^1.0.0", "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", + "latest-version": "^9.0.0", "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", + "semver": "^7.6.3", "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" @@ -12447,10 +12156,40 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -12479,42 +12218,38 @@ "license": "Apache-2.0" }, "node_modules/web-ext": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.2.0.tgz", - "integrity": "sha512-krU7rmxaG96b3Q9Enbry9/pmE/5FUGkvajCGfJCD+J79rt7JFjhVpw1Dszz4BqQkTd3y8cG5wJ3p1uC6uyAwcA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.3.0.tgz", + "integrity": "sha512-mXSOiDtmm3n0KNpSuQ65fJpypAoNLAmZv3QkdlVbJ6etn0BK+hl/k+tjHefSIKdbzGUIeFbhn2oxWMe9Tdyrdg==", "dev": true, "license": "MPL-2.0", "dependencies": { - "@babel/runtime": "7.24.7", + "@babel/runtime": "7.25.6", "@devicefarmer/adbkit": "3.2.6", - "addons-linter": "6.31.1", - "bunyan": "1.8.15", + "addons-linter": "7.1.0", "camelcase": "8.0.0", - "chrome-launcher": "0.15.1", + "chrome-launcher": "1.1.2", "debounce": "1.2.1", "decamelize": "6.0.0", "es6-error": "4.1.1", - "firefox-profile": "4.6.0", - "fs-extra": "11.2.0", + "firefox-profile": "4.7.0", "fx-runner": "1.4.0", "https-proxy-agent": "^7.0.0", - "jose": "5.4.1", + "jose": "5.9.2", "jszip": "3.10.1", - "mkdirp": "3.0.1", "multimatch": "6.0.0", - "mz": "2.7.0", - "node-fetch": "3.3.2", "node-notifier": "10.0.1", "open": "9.1.0", "parse-json": "7.1.1", + "pino": "9.4.0", "promise-toolbox": "0.21.0", "source-map-support": "0.5.21", "strip-bom": "5.0.0", "strip-json-comments": "5.0.1", "tmp": "0.2.3", - "update-notifier": "6.0.2", - "watchpack": "2.4.1", - "ws": "8.17.1", + "update-notifier": "7.3.1", + "watchpack": "2.4.2", + "ws": "8.18.0", "yargs": "17.7.2", "zip-dir": "2.0.0" }, @@ -12526,48 +12261,139 @@ "npm": ">=8.0.0" } }, + "node_modules/web-ext/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "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/web-ext/node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/@eslint/eslintrc/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/web-ext/node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/web-ext/node_modules/@mdn/browser-compat-data": { - "version": "5.5.34", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.34.tgz", - "integrity": "sha512-e8k7+8r3jiJuP7FMH6AL1OnmfQqLyABhTM+NmRDvFeAbMgtFcNQLHpmT7uza5cBnxI01+CAU3aSsIgcKGRdEBQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.6.0.tgz", + "integrity": "sha512-xArvLyzuk0r2m6hFVjTMYoLvhWwys3h7W8pO15tjSAea+U39cErWDNfoUs4g2C08HVg6bDHyDMBc0LC6FKRpVw==", "dev": true, "license": "CC0-1.0" }, "node_modules/web-ext/node_modules/addons-linter": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.31.1.tgz", - "integrity": "sha512-R9FCyVzqU/h5A2aB1t+jD8t4QKLuLxYqc1FjmjJ0nZrn1qNCna1jFOajt5R1T8pwt0H4WXgT+uwWSD2BdkBzqQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-7.1.0.tgz", + "integrity": "sha512-UmkUB3dZSpf8bqhlulGDbpoxBwcfOk8JvaJTRvJ+AAXKHvTjqeNlFC+GRMqa0EjJJh/0yqpBaJzyaUIx+fjl+A==", "dev": true, "license": "MPL-2.0", "dependencies": { "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.34", + "@mdn/browser-compat-data": "5.6.0", "addons-moz-compare": "1.3.0", "addons-scanner-utils": "9.11.0", - "ajv": "8.16.0", + "ajv": "8.17.1", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "columnify": "1.6.0", "common-tags": "1.8.2", "deepmerge": "4.3.1", - "eslint": "8.57.0", + "eslint": "8.57.1", "eslint-plugin-no-unsanitized": "4.0.2", "eslint-visitor-keys": "4.0.0", - "espree": "10.0.1", + "espree": "10.1.0", "esprima": "4.0.1", "fast-json-patch": "3.1.1", - "glob": "10.4.2", "image-size": "1.1.1", - "is-mergeable-object": "1.1.1", "jed": "1.1.1", "json-merge-patch": "1.0.2", "os-locale": "5.0.0", "pino": "8.20.0", "relaxed-json": "1.0.3", - "semver": "7.6.2", - "sha.js": "2.4.11", + "semver": "7.6.3", "source-map-support": "0.5.21", - "tosource": "1.0.0", "upath": "2.0.1", "yargs": "17.7.2", "yauzl": "2.10.0" @@ -12576,24 +12402,76 @@ "addons-linter": "bin/addons-linter" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/web-ext/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "node_modules/web-ext/node_modules/addons-linter/node_modules/pino": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.20.0.tgz", + "integrity": "sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.1.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "bin": { + "pino": "bin.js" + } + }, + "node_modules/web-ext/node_modules/addons-scanner-utils": { + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.11.0.tgz", + "integrity": "sha512-X95V8ymnue9EHmOLz3zJTGHvHDFlWKiavlH+kJKOlv2sJDWFvD3TWeJMHJgxS9GKOqT/545mOXvX3vuuGGum+g==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/yauzl": "2.10.3", + "common-tags": "1.8.2", + "first-chunk-stream": "3.0.0", + "strip-bom-stream": "4.0.0", + "upath": "2.0.1", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "body-parser": "1.20.2", + "express": "4.19.2", + "node-fetch": "2.6.11", + "safe-compare": "1.1.4" + }, + "peerDependenciesMeta": { + "body-parser": { + "optional": true + }, + "express": { + "optional": true + }, + "node-fetch": { + "optional": true + }, + "safe-compare": { + "optional": true + } + } + }, + "node_modules/web-ext/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/web-ext/node_modules/camelcase": { @@ -12639,14 +12517,172 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/web-ext/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/web-ext/node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/eslint-plugin-no-unsanitized": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz", + "integrity": "sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==", + "dev": true, + "license": "MPL-2.0", + "peerDependencies": { + "eslint": "^6 || ^7 || ^8" + } + }, + "node_modules/web-ext/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "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/web-ext/node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/web-ext/node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/web-ext/node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.0.0" }, @@ -12657,59 +12693,58 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/web-ext/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/web-ext/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==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=14.14" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/web-ext/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "node_modules/web-ext/node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/web-ext/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "node_modules/web-ext/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/web-ext/node_modules/json-parse-even-better-errors": { @@ -12722,18 +12757,12 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/web-ext/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/web-ext/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==", "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "license": "MIT" }, "node_modules/web-ext/node_modules/lines-and-columns": { "version": "2.0.4", @@ -12745,46 +12774,17 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/web-ext/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/web-ext/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/web-ext/node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "node_modules/web-ext/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": "*" } }, "node_modules/web-ext/node_modules/parse-json": { @@ -12807,34 +12807,74 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "node_modules/web-ext/node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=16 || 14 >=14.18" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "node_modules/web-ext/node_modules/pino": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.4.0.tgz", + "integrity": "sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "pino": "bin.js" + } + }, + "node_modules/web-ext/node_modules/pino/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-ext/node_modules/pino/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-ext/node_modules/pino/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "dev": true, + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/web-ext/node_modules/pino/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" } }, "node_modules/web-ext/node_modules/strip-bom": { @@ -12887,38 +12927,18 @@ } }, "node_modules/web-ext/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "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==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web-ext/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -12970,6 +12990,12 @@ "dev": true, "license": "MIT" }, + "node_modules/when-exit": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.3.tgz", + "integrity": "sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==", + "dev": true + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -13024,21 +13050,68 @@ } }, "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", "dev": true, "license": "MIT", "dependencies": { - "string-width": "^5.0.1" + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/winreg": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", @@ -13097,50 +13170,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -13163,9 +13192,9 @@ } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", "engines": { @@ -13205,9 +13234,9 @@ "license": "MIT" }, "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", "dev": true, "license": "MIT", "dependencies": { @@ -13246,9 +13275,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "dev": true, "license": "ISC", "bin": { @@ -13355,28 +13384,6 @@ "node": ">=8" } }, - "node_modules/yargs/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -13447,6 +13454,17 @@ "async": "^3.2.0", "jszip": "^3.2.2" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index cbbd8bd..ad28028 100644 --- a/package.json +++ b/package.json @@ -43,39 +43,40 @@ "devDependencies": { "@prantlf/jsonlint": "16.0.0", "@prettier/plugin-xml": "3.4.1", - "@stryker-mutator/core": "8.4.0", - "@stryker-mutator/mocha-runner": "8.4.0", - "@types/eslint": "9.6.0", - "@types/mocha": "10.0.7", - "addons-linter": "6.33.0", - "eslint": "8.57.0", - "eslint-plugin-array-func": "4.0.0", + "@stryker-mutator/core": "8.6.0", + "@stryker-mutator/mocha-runner": "8.6.0", + "@types/firefox-webext-browser": "120.0.4", + "@types/mocha": "10.0.9", + "addons-linter": "7.3.0", + "eslint": "9.14.0", + "eslint-plugin-array-func": "5.0.2", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "50.0.1", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-jsdoc": "50.4.3", "eslint-plugin-mocha": "10.5.0", - "eslint-plugin-n": "17.10.2", - "eslint-plugin-no-unsanitized": "4.0.2", + "eslint-plugin-n": "17.13.1", + "eslint-plugin-no-unsanitized": "4.1.2", "eslint-plugin-promise": "7.1.0", "eslint-plugin-regexp": "2.6.0", - "eslint-plugin-unicorn": "55.0.0", + "eslint-plugin-unicorn": "56.0.0", + "globals": "15.12.0", "htmlhint": "1.1.4", "http-server": "14.1.1", - "markdownlint": "0.34.0", - "metalint": "0.17.0", - "mocha": "10.7.3", + "markdownlint": "0.36.1", + "metalint": "0.18.0", + "mocha": "10.8.2", "npm-package-json-lint": "8.0.0", "prettier": "3.3.3", "purgecss": "6.0.0", - "stylelint": "16.8.1", + "stylelint": "16.10.0", "stylelint-order": "6.0.4", - "typedoc": "0.26.5", - "typescript": "5.5.4", - "web-ext": "8.2.0", + "typedoc": "0.26.11", + "typescript": "5.6.3", + "web-ext": "8.3.0", "yaml-lint": "1.7.0" }, "engines": { - "node": ">=22.1.0" + "node": ">=22.10" }, "private": true } diff --git a/src/module/image/README.md b/src/module/image/README.md index 7501390..a82b504 100644 --- a/src/module/image/README.md +++ b/src/module/image/README.md @@ -32,7 +32,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code> + Exemple : <a href="https://crontab.guru/#*/5_*_*_*_*"><code>"*/5 * * * *"</code></a> </p> </td> </tr> diff --git a/src/module/list/README.md b/src/module/list/README.md index d71c9ad..0102e41 100644 --- a/src/module/list/README.md +++ b/src/module/list/README.md @@ -38,9 +38,10 @@ suivantes : <td> <p> La ou les - <a href="https://www.npmjs.com/package/cronnor#expression-cron">expressions - <em>cron</em></a> indiquant la fréquence de mise à jour. Sans cette - propriété, les données ne sont jamais mises à jour. + <a href="https://www.npmjs.com/package/cronnor#expression-cron" + >expressions<em>cron</em></a + > indiquant la fréquence de mise à jour. Sans cette propriété, les + données ne sont jamais mises à jour. </p> <p> <!-- Ne pas vérifier les espaces dans les éléments d'emphase car cette @@ -48,7 +49,10 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code> + Exemple : + <a href="https://crontab.guru/#*/5_*_*_*_*" + ><code>"*/5 * * * *"</code></a + > </p> </td> </tr> @@ -126,9 +130,10 @@ suivantes : <p> Le nombre de millisecondes depuis le 1<sup>er</sup> janvier 1970 à 00:00:00 UTC (cf. - <a href="https://developer.mozilla.org/JavaScript/Reference/Global_Objects/Date/getTime"><code>Date.prototype.getTime()</code></a>). - Cette valeur est utilisée pour trier les éléments du plus récent au plus - ancien. Par défaut, le nombre <code>0</code> est utilisé. + <a href="https://developer.mozilla.org/JavaScript/Reference/Global_Objects/Date/getTime" + ><code>Date.prototype.getTime()</code></a + >). Cette valeur est utilisée pour trier les éléments du plus récent au + plus ancien. Par défaut, le nombre <code>0</code> est utilisé. </p> <p> Exemple : <code>900277200000</code> @@ -198,7 +203,9 @@ suivantes : <td> <p> L'emplacement où sera ouvert le lien (cf. l'attribut - <a href="https://developer.mozilla.org/HTML/Element/a#attr-target"><code>target</code></a> + <a href="https://developer.mozilla.org/HTML/Element/a#attr-target" + ><code>target</code></a + > des liens HTML). Par défaut, les liens s'ouvrent dans un nouvel onglet. </p> <p> diff --git a/src/module/podcast/README.md b/src/module/podcast/README.md index 9b3dc43..09d42b2 100644 --- a/src/module/podcast/README.md +++ b/src/module/podcast/README.md @@ -47,7 +47,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code> + Exemple : <a href="https://crontab.guru/#*/5_*_*_*_*"><code>"*/5 * * * *"</code></a> </p> </td> </tr> diff --git a/src/module/search/search.js b/src/module/search/search.js index 482d307..deddb92 100644 --- a/src/module/search/search.js +++ b/src/module/search/search.js @@ -30,7 +30,7 @@ export default class SearchModule extends HTMLElement { this.shadowRoot.querySelector("datalist").replaceChildren(); } else { - window.location.assign(url); + globalThis.location.assign(url); } } diff --git a/src/module/search/search.tpl b/src/module/search/search.tpl index 8e9fed0..f20098c 100644 --- a/src/module/search/search.tpl +++ b/src/module/search/search.tpl @@ -9,7 +9,7 @@ <div> <form> <img /> - <input name="" list="suggestions" placeholder="" /> + <input name="" type="search" list="suggestions" placeholder="" /> <datalist id="suggestions" /> </form> <ul></ul> diff --git a/src/module/single/README.md b/src/module/single/README.md index 73baad3..775eabe 100644 --- a/src/module/single/README.md +++ b/src/module/single/README.md @@ -32,7 +32,7 @@ suivantes : faux-positifs avec les expressions cron. https://github.com/DavidAnson/markdownlint/issues/427 --> <!-- markdownlint-disable-next-line no-space-in-emphasis --> - Exemple : <code>"*/5 * * * *"</code> + Exemple : <a href="https://crontab.guru/#*/5_*_*_*_*"><code>"*/5 * * * *"</code></a> </p> </td> </tr> diff --git a/src/module/tools/contrast/README.md b/src/module/tools/contrast/README.md index 5c2227c..a393e8e 100644 --- a/src/module/tools/contrast/README.md +++ b/src/module/tools/contrast/README.md @@ -4,7 +4,8 @@ Ce module affiche un champ pour saisir une couleur et il retourne la couleur la plus proche ayant un rapport de contraste supérieur à 4,5 avec le noir et le -blanc. +blanc (cf. +[WebAIM: Contrast Checker](https://webaim.org/resources/contrastchecker/)). ## Options diff --git a/src/scraper/examples/README.md b/src/scraper/examples/README.md index 2ef8323..23fcb69 100644 --- a/src/scraper/examples/README.md +++ b/src/scraper/examples/README.md @@ -4,9 +4,8 @@ Ce répertoire regroupe des scrapers d'exemples pour comprendre le fonctionnemen d'un scraper et servir de base pour développer votre propre scraper. Ces scrapers n'ont aucune utilité dans un vrai dashboard. -- [_examples/helloworld_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/helloworld#readme) - : un scraper montrant le minimum pour retourner un élément. -- [_examples/days_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/days#readme) - : un scraper retournant plusieurs éléments. -- [_examples/jsonplaceholder_](https://github.com/regseb/gout/tree/HEAD/src/scraper/examples/jsonplaceholder#readme) - : un scraper appelant une API REST (avec `fetch()`). +- [_examples/helloworld_](helloworld#readme) : un scraper montrant le minimum + pour retourner un élément. +- [_examples/days_](days#readme) : un scraper retournant plusieurs éléments. +- [_examples/jsonplaceholder_](jsonplaceholder#readme) : un scraper appelant une + API REST (avec `fetch()`). diff --git a/src/scraper/examples/days/README.md b/src/scraper/examples/days/README.md index ff34dc4..c2f8b09 100644 --- a/src/scraper/examples/days/README.md +++ b/src/scraper/examples/days/README.md @@ -7,9 +7,9 @@ langue des noms est paramétrable dans les options du scraper. Il peut être utilisé avec les modules : -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) ; -- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) - pour afficher seulement le dernier élément. +- [_list_](../../../module/list#readme) ; +- [_single_](../../../module/single#readme) pour afficher seulement le dernier + élément. ## Options @@ -38,7 +38,33 @@ suivantes : </td> </tr> <tr> - TODO Ajouter les propriétés des scrapers FilterScraper et ComplementScraper. + <td><code>complements</code></td> + <td><code>object</code></td> + <td> + <p> + Des propriétés qui seront ajoutées dans les éléments retournés. Par + défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le + scraper + <a href="../../tools/complements#readme"><em>tools/complements</em></a>. + </p> + <p> + Exemple : <code>target: "_top"</code> + </p> + </td> + </tr> + <tr> + <td><code>filter</code></td> + <td><code>string</code></td> + <td> + <p> + Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun + filtre n'est appliqué. Pour plus de détails, voir le scraper + <a href="../../tools/filter#readme"><em>tools/filter</em></a>. + </p> + <p> + Exemple : <code>"title != 'Lundi'"</code> + </p> + </td> </tr> </table> diff --git a/src/scraper/examples/helloworld/README.md b/src/scraper/examples/helloworld/README.md index 19e9dfd..86e157e 100644 --- a/src/scraper/examples/helloworld/README.md +++ b/src/scraper/examples/helloworld/README.md @@ -7,10 +7,8 @@ dans les options du scraper. Il peut être utilisé avec les modules : -- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) - ; -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) pour - afficher un seul élément. +- [_single_](../../../module/single#readme) ; +- [_list_](../../../module/list#readme) pour afficher un seul élément. ## Options diff --git a/src/scraper/examples/jsonplaceholder/README.md b/src/scraper/examples/jsonplaceholder/README.md index 75996d8..e87ba8d 100644 --- a/src/scraper/examples/jsonplaceholder/README.md +++ b/src/scraper/examples/jsonplaceholder/README.md @@ -9,12 +9,11 @@ scraper. Il peut être utilisé avec les modules : -- [_image_](https://github.com/regseb/gout/tree/HEAD/src/module/image#readme) ; -- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) - pour afficher seulement le nom de la dernière image (avec un lien vers - l'image) ; -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) pour - afficher seulement le nom des images (avec un lien pour voir chaque image). +- [_image_](../../../module/image#readme) ; +- [_single_](../../../module/single#readme) pour afficher seulement le nom de la + dernière image (avec un lien vers l'image) ; +- [_list_](../../../module/list#readme) pour afficher seulement le nom des + images (avec un lien pour voir chaque image). ## Options @@ -49,7 +48,7 @@ suivantes : Des propriétés qui seront ajoutées dans les éléments retournés. Par défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. + <a href="../../tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> @@ -63,7 +62,7 @@ suivantes : <p> Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun filtre n'est appliqué. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + <a href="../../tools/filter#readme"><em>tools/filter</em></a>. </p> <p> Exemple : <code>"title != 'foo'"</code> diff --git a/src/scraper/icon/ping/README.md b/src/scraper/icon/ping/README.md index 68ba884..8c2f798 100644 --- a/src/scraper/icon/ping/README.md +++ b/src/scraper/icon/ping/README.md @@ -4,8 +4,7 @@ Ce scraper vérifie si un serveur est toujours accessible. -Il peut être utilisé avec le module -[_icon_](https://github.com/regseb/gout/tree/HEAD/src/module/icon#readme). +Il peut être utilisé avec le module [_icon_](../../../module/icon#readme). ## Options @@ -66,7 +65,7 @@ xxx: gray Des propriétés qui seront ajoutées dans les éléments retournés. Par défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. + <a href="../../tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>target: "_top"</code> @@ -80,7 +79,7 @@ xxx: gray <p> Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun filtre n'est appliqué. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + <a href="../../tools/filter#readme"><em>tools/filter</em></a>. </p> <p> Exemple : <code>"color != 'green'"</code> diff --git a/src/scraper/icon/ping/ping.js b/src/scraper/icon/ping/ping.js index ef12c2c..3e29ff9 100644 --- a/src/scraper/icon/ping/ping.js +++ b/src/scraper/icon/ping/ping.js @@ -35,7 +35,7 @@ const PingScraper = class { this.#colors = new Map( Object.entries({ ...colors, ...DEFAULT_COLORS }) .filter(([p]) => "xxx" !== p) - .map(([p, c]) => [new RegExp(p, "u"), c]), + .map(([p, c]) => [new RegExp(p, "v"), c]), ); this.#defaultColor = colors?.xxx ?? DEFAULT_COLORS.xxx; } diff --git a/src/scraper/list/jsonfeed/README.md b/src/scraper/list/jsonfeed/README.md index e9d8739..4c80d06 100644 --- a/src/scraper/list/jsonfeed/README.md +++ b/src/scraper/list/jsonfeed/README.md @@ -8,9 +8,9 @@ Ce scraper récupère la liste des derniers éléments d'un flux Il peut être utilisé avec les modules : -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) ; -- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) - pour afficher seulement le dernier élément. +- [_list_](../../../module/list#readme) ; +- [_single_](../../../module/single#readme) pour afficher seulement le dernier + élément. ## Options @@ -44,7 +44,7 @@ suivantes : Des propriétés qui seront ajoutées dans les éléments retournés. Par défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. + <a href="../../tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> @@ -58,7 +58,7 @@ suivantes : <p> Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun filtre n'est appliqué. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + <a href="../../tools/filter#readme"><em>tools/filter</em></a>. </p> <p> Exemple : <code>"title != 'foo'"</code> diff --git a/src/scraper/list/rss/README.md b/src/scraper/list/rss/README.md index 9f347c9..66b1b45 100644 --- a/src/scraper/list/rss/README.md +++ b/src/scraper/list/rss/README.md @@ -7,15 +7,14 @@ Ce scraper récupère les derniers éléments d'un flux **RSS** / **Atom**. Il peut être utilisé avec les modules : -- [_list_](https://github.com/regseb/gout/tree/HEAD/src/module/list#readme) ; -- [_single_](https://github.com/regseb/gout/tree/HEAD/src/module/single#readme) - pour afficher seulement le dernier élément ; -- [_podcast_](https://github.com/regseb/gout/tree/HEAD/src/module/podcast#readme) - pour un flux RSS avec des +- [_list_](../../../module/list#readme) ; +- [_single_](../../../module/single#readme) pour afficher seulement le dernier + élément ; +- [_podcast_](../../../module/podcast#readme) pour un flux RSS avec des [`enclosure`](https://www.rssboard.org/rss-specification#ltenclosuregtSubelementOfLtitemgt) de type `audio` ; -- [_image_](https://github.com/regseb/gout/tree/HEAD/src/module/image#readme) - pour un flux RSS avec des `enclosure` de type `image`. +- [_image_](../../../module/image#readme) pour un flux RSS avec des `enclosure` + de type `image`. ## Options @@ -49,7 +48,7 @@ suivantes : Des propriétés qui seront ajoutées dans les éléments retournés. Par défaut aucune propriété n'est ajoutée. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/complements#readme"><em>tools/complements</em></a>. + <a href="../../tools/complements#readme"><em>tools/complements</em></a>. </p> <p> Exemple : <code>icon: "https://example.com/foo/bar.svg"</code> @@ -63,7 +62,7 @@ suivantes : <p> Le filtre qui sera appliqué sur les éléments retournés. Par défaut aucun filtre n'est appliqué. Pour plus de détails, voir le scraper - <a href="https://github.com/regseb/gout/tree/HEAD/src/scraper/tools/filter#readme"><em>tools/filter</em></a>. + <a href="../../tools/filter#readme"><em>tools/filter</em></a>. </p> <p> Exemple : <code>"title != 'foo'"</code> diff --git a/src/scraper/search/opensearch/README.md b/src/scraper/search/opensearch/README.md index 3b4b5f4..fce9913 100644 --- a/src/scraper/search/opensearch/README.md +++ b/src/scraper/search/opensearch/README.md @@ -6,8 +6,7 @@ Ce scraper extrait les données au format [**OpenSearch**](https://github.com/dewitt/opensearch) d'un moteur de recherche. -Il peut être utilisé avec le module -[_search_](https://github.com/regseb/gout/tree/HEAD/src/module/search#readme). +Il peut être utilisé avec le module [_search_](../../../module/search#readme). ## Options @@ -55,7 +54,7 @@ suivantes : <td> <p> Des propriétés qui seront retournées par la méthode - <a href="https://github.com/regseb/gout/tree/HEAD/src/module/search#scrapers"><code>info()</code></a>. + <a href="../../../module/search#scrapers"><code>info()</code></a>. </p> <p> Exemple : <pre><code> diff --git a/src/scraper/tools/complements/README.md b/src/scraper/tools/complements/README.md index e20d800..ae6e81b 100644 --- a/src/scraper/tools/complements/README.md +++ b/src/scraper/tools/complements/README.md @@ -60,8 +60,7 @@ du tableau. Ce widget affiche les dernières vidéos de la chaine YouTube de [Arte](https://www.youtube.com/@arte) en ajoutant le logo de Arte à chaque élément. L'option `complements` est passée au scraper -[_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) -car ce scraper utilise _tools/complements_. +[_list/rss_](../../list/rss#readme) car ce scraper utilise _tools/complements_. ```html <script type="application/yaml"> diff --git a/src/scraper/tools/filter/README.md b/src/scraper/tools/filter/README.md index 62ea321..d1e1054 100644 --- a/src/scraper/tools/filter/README.md +++ b/src/scraper/tools/filter/README.md @@ -99,8 +99,7 @@ tableau. Ce widget affiche les derniers reportages de la chaine YouTube de [Arte](https://www.youtube.com/@arte). L'option `filter` est passée au scraper -[_list/rss_](https://github.com/regseb/gout/tree/HEAD/src/scraper/list/rss#readme) -car ce scraper utilise _tools/filter_. +[_list/rss_](../../list/rss#readme) car ce scraper utilise _tools/filter_. ```html <script type="application/yaml"> From d5cfcc1ab09847abbaaeef5ffe871ad18e20542c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 18:04:32 +0100 Subject: [PATCH 38/38] chore(main): release 0.13.0 (#20) --- .release-please/manifest.json | 2 +- CHANGELOG.md | 16 ++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/extension/chromium/manifest.json | 2 +- src/extension/firefox/manifest.json | 2 +- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.release-please/manifest.json b/.release-please/manifest.json index 9a1c691..5f36bca 100644 --- a/.release-please/manifest.json +++ b/.release-please/manifest.json @@ -1 +1 @@ -{ ".": "0.12.1" } +{ ".": "0.13.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 20e9b8e..965c4b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [0.13.0](https://github.com/regseb/gout/compare/v0.12.1...v0.13.0) (2024-11-09) + +### Features + +- Simplifier les images SVG. + ([75b0ec7](https://github.com/regseb/gout/commit/75b0ec7b16137c074f21de62d0afd34b744599bc)) +- **tools/filter:** Ajouter le support des RegExp. + ([f1dce28](https://github.com/regseb/gout/commit/f1dce28a5af028e6bd5e92acceb1821b110864d8)) + +### Bug Fixes + +- Gérer les différents cas pour modifier les entêtes. + ([06ea93b](https://github.com/regseb/gout/commit/06ea93b0fa202297a88c2859c774aaa1657975af)) +- **list/rss:** Récupérer les données dans "updated". + ([48ae531](https://github.com/regseb/gout/commit/48ae5313d7c65176ac9db1fe61ebfcc85801401f)) + ## [0.12.1](https://github.com/regseb/gout/compare/v0.12.0...v0.12.1) (2024-08-11) ### Bug Fixes diff --git a/package-lock.json b/package-lock.json index ebe9921..8b27d76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gout", - "version": "0.12.1", + "version": "0.13.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gout", - "version": "0.12.1", + "version": "0.13.0", "funding": [ "https://buymeacoffee.com/regseb", "https://www.paypal.me/sebastienregne" diff --git a/package.json b/package.json index ad28028..44bb1b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gout", - "version": "0.12.1", + "version": "0.13.0", "description": "Agrégateur d'Internet (flux RSS et tout le reste).", "keywords": [ "gout", diff --git a/src/extension/chromium/manifest.json b/src/extension/chromium/manifest.json index eae1e81..975d261 100644 --- a/src/extension/chromium/manifest.json +++ b/src/extension/chromium/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 3, "name": "Gout", - "version": "0.12.1", + "version": "0.13.0", "action": { "default_icon": { "16": "img/icon16.png", diff --git a/src/extension/firefox/manifest.json b/src/extension/firefox/manifest.json index 61001fd..11779b5 100644 --- a/src/extension/firefox/manifest.json +++ b/src/extension/firefox/manifest.json @@ -7,7 +7,7 @@ }, "manifest_version": 2, "name": "Gout", - "version": "0.12.1", + "version": "0.13.0", "browser_action": { "default_icon": { "16": "img/icon16.png",